var tabSys = function() {
	this.initialize.apply(this,arguments);
	
}
tabSys.prototype = {
	initialize: function() {
		// Do nothing right now.
	},
	tab: function(e,tabLocation) {
		// Get the parent DIV tabSystem wrapper to use in as reference for getElementsByClassName
		// Don't want it looping through multiple tab systems and breaking
		var parentDiv = e.parentNode.parentNode.parentNode;
		// Get all our tab bodies
		tabBodies = this.getElementsByClassName(parentDiv, "div", "tabBody");
		tabLinks = this.getElementsByClassName(parentDiv, "a", "tabLinks");
		
		
		//Loop through and hide inactive tabs and show active tab and make link active state.
		for(i=0;i<tabBodies.length;i++) {
			if(tabBodies[i].id==tabLocation)
			{
				tabBodies[i].style.display = 'block';
			}
			else
			{
				tabBodies[i].style.display = 'none';
			}
		}
		for(i=0;i<tabLinks.length;i++)
		{
			if(tabLinks[i].className.match('active'))
			{
				tabLinks[i].className = 'tabLinks';
			}
		}
		e.className = 'tabLinks active';
		
	},
	getElementsByClassName: function (oElm, strTagName, oClassNames) {
	    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    var arrRegExpClassNames = new Array();
	    if(typeof oClassNames == "object"){
	        for(var i=0; i<oClassNames.length; i++){
	            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
	        }
	    }
	    else{
	        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	    }
	    var oElement;
	    var bMatchesAll;
	    for(var j=0; j<arrElements.length; j++){
	        oElement = arrElements[j];
	        bMatchesAll = true;
	        for(var k=0; k<arrRegExpClassNames.length; k++){
	            if(!arrRegExpClassNames[k].test(oElement.className)){
	                bMatchesAll = false;
	                break;                      
	            }
	        }
	        if(bMatchesAll){
	            arrReturnElements.push(oElement);
	        }
	    }
	    return (arrReturnElements)
	}
};