
//version:   1.0
//author:    Dave McDermid
//email:     dave.mcdermid@headscape.co.uk
//website:   http://www.headscape.co.uk

//return an object based on id
function $(id) {
	return document.getElementById(id);
}

// return an array of elements with particular class.
function getElementsByClassName(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;
}

//hide or show a tab based on href of link that was clicked on.
function hideshow(e) {
	if (!e) var e = window.event;
	var href=null;
	if(this.href) href = this.href;
	if(e.srcElement) href = String(e.srcElement);
	var tabs = getElementsByClassName('tab',null,'A');
	for(key in tabs) {
		tabs[key].className = 'tab';
	}
	this.className = 'tab tabOn';
	try {
		var id = href.substring(href.indexOf('#')+1);
		var vTab = getElementsByClassName('vTab',null,'UL');
		for(key in vTab) {
			vTab[key].className='hTab';
		}
		$(id).className = 'vTab';
	}
	catch(e) {}
	
	if (window.event) {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e.preventDefault) {
		e.stopPropagation();
		e.preventDefault();
	}
}

// Attach events to tab-links when page is loaded
window.onload=function(){
	var tabs = getElementsByClassName('tab',null,'A');
	for(key in tabs) {
		if (document.addEventListener) {
			tabs[key].addEventListener('click',hideshow,false);
		}
		else if (document.attachEvent) {
			tabs[key].attachEvent('onclick',hideshow,false);
		}
	}
}
