/*

tabThis by Rik Weber - www.webr.co.uk
for Just Search Ltd - www.justsearching.co.uk
---------------------------------------------

Version History
---------------
16-10-07 - version 0.2
06-06-07 - version 0.0.0.0.1

*/

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

var $tabNodes = new Array();

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function createLink($text, $class){
	var $linkText = document.createTextNode($text);
	var $link = document.createElement('a');
	$link.onclick = switchThis;
	$link.className = $class;
	$link.appendChild($linkText);
	return $link;
}

function tabThis(){
	var $firstLink = 'true';
	$tabNodes = getElementsByClass('tab-this');
	for(var $i=0; $i<$tabNodes.length; $i++){
		var $linkText = $tabNodes[$i].title;
		if($firstLink == 'true') var $linkClass = 'tablink-on';
		else var $linkClass = 'tablink-off';
		document.getElementById('tabs').insertBefore(createLink($linkText, $linkClass), $tabNodes[0]);
		$firstLink = 'false';
		if($i == 0) $tabNodes[$i].className = 'tab-this show-this';
		else $tabNodes[$i].className = 'tab-this hide-this';
	}
}

function switchThis(){
	for(var $i=0; $i<$tabNodes.length; $i++){
		if($tabNodes[$i].title == this.innerHTML) $tabNodes[$i].className = 'tab-this show-this';
		else $tabNodes[$i].className = 'tab-this hide-this';
	}
	var $linkClasses = new Array();
	$linkClasses = getElementsByClass('tablink-on');
	for(var $k=0; $k<$linkClasses.length; $k++){
		$linkClasses[$k].className = 'tablink-off';
	}
	this.className = 'tablink-on';
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(tabThis);
