var jlib = {};

jlib.addStyleSheet = function (href, media) {
	if (!href) {
		return;
	}
	href = ' href="' + href + '"';
	media = (media) ? ' media="' + media + '"' : '';
	document.writeln('<link rel="stylesheet" type="text/css"' + media + href + '>');
};

jlib._rolloverHandler = function (e) {
	var target;
	if (!e) {
		e = window.event;
	}
	target = e.target || e.srcElement;
	if (!target || !target.offSrc || !target.onSrc) {
		return;
	}
	target.src = (e.type == 'mouseover') ? target.onSrc : target.offSrc;
};

jlib.rolloverInit = function (root) {
	var _rolloverHandler, els, img, src, preload, i;
	if (!root) {
		return;
	}
	_rolloverHandler = jlib._rolloverHandler;
	els = root.getElementsByTagName('img');
	for (i = els.length - 1; i >= 0; i--) {
		img = els[i];
		src = img.src;
		if (img.className.indexOf('rollover') > -1 && src.indexOf('_off.') > -1) {
			img.offSrc = src;
			img.onSrc = src.replace('_off.', '_on.');
			preload = document.createElement('img');
			preload.src = img.onSrc;
			img.preload = preload;
		}
	}
	root.onmouseover = _rolloverHandler;
	root.onmouseout = _rolloverHandler;

};

jlib.rolloverUninit = function (root) {
	var els, img, i;
	if (!root) {
		return;
	}

	els = root.getElementsByTagName('img');
	for (i = els.length - 1; i >= 0; i--) {
		img = els[i];
		if (img.preload) {
			img.src = img.offSrc;
			img.preload = null;
		}
	}
	root.onmouseover = null;
	root.onmouseout = null;

};

jlib.externalLinkInit = function (root) {

  var anchors = root.getElementsByTagName('a');

  if(anchors.length < 1) return;

  for(var i = 0; i < anchors.length; i++) {
    // not every anchor has rel, so better check if it has rel first
    
    if(anchors[i].rel && anchors[i].rel.indexOf('external') > -1) {
      anchors[i].onclick = function() {
        window.open(this.href,'','');
        return false;   
      }
    }
  }
}


jlib.externalLinkUninit = function (root) {

  var anchors = root.getElementsByTagName('a');

  if(anchors.length < 1) return;

  for(var i = 0; i < anchors[i].length; i++) {
    if(anchors[i] && anchors[i].rel.indexOf('external') > -1) {
      anchors[i].onclick = null;
    }
  }
}


jlib.popupVideoInit = function (root) {
	 var w = '640',
		h = '360',
		winl = (screen.width-w)/2,
		wint = (screen.height-h)/2,
		settings = 'width='+w+',height='+h+',top='+wint+',left='+winl+',toolbar=no,menubar=no,location=no';
		
  var anchors = root.getElementsByTagName('a');
  if(anchors.length < 1) return;
  for(var i = 0; i < anchors.length; i++) {
    // not every anchor has rel, so better check if it has rel first
    if(anchors[i].rel && anchors[i].rel.indexOf('popup') > -1) {
      	anchors[i].onclick = function() {
        window.open(this.href,'video',settings);
        return false;
      }
    }
  }
}

jlib.tabsInit = function (root) {
	var els, a, href, tab, parent, cn, firstA, i;
	if (!root) {
		return;
	}
	els = root.getElementsByTagName('a');
	for (i = els.length - 1; i >= 0; i--) {
		a = els[i];
		href = a.href;
		tab = document.getElementById(href.substring(href.indexOf('#') + 1));
		if (tab) {
			parent = a.parentNode;
			cn = parent.className;
			parent.offClassName = cn;
			parent.onClassName = ((cn) ? cn + ' ' : '') + 'selected';
			cn = tab.className;
			tab.offClassName = cn;
			tab.onClassName = ((cn) ? cn + ' ' : '') + 'show';
			a.tab = tab;
			firstA = a;
		}
	}
	if (firstA) {
		parent.className = parent.onClassName;
		tab.className = tab.onClassName;
		root.open = firstA;
	}
	root.onclick = jlib._tabsHandler;
};


jlib.tabsUninit = function (root) {
	var els, a, i;
	if (!root) {
		return;
	}
	els = root.getElementsByTagName('a');
	for (i = els.length - 1; i >= 0; i--) {
		a = els[i];
		if (a.tab) {
			a.tab = null;
		}
	}
	root.open = null;
	root.onclick = null;
};
