var currentTabID = "none";
addLoadEvent(currentPage);
addLoadEvent(currentTab);
//
// Primary functions
//
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}
function currentTab() {
	if(currentTabID != "none") {
		var currentSection = document.getElementById(currentTabID);
		currentSection.className = "currentSection";
	}
}
function currentPage() {
	var totalLinks = document.links.length;
	var currentPage = location.href;
	var links;
	for (i = 1; i < totalLinks; i++) {
		if (document.links[i].href == currentPage) {
			document.links[i].className = 'current';
		}
	}
}
function formatTable() {
	var tables = document.getElementsByTagName("table");
	for(i = 0; i < tables.length; i++) {
		if(tables[i].className == "formatted") {
			var table = tables[i];
			var rows = table.getElementsByTagName("tr");  
			for(x = 0; x < rows.length; x++) {
				if(x % 2 == 0) {
					rows[x].className = "background";
				}
			}
		}
	}
}
// Toggle
var toggleState = false;
function initToggle () {
	var toggleDivs = getElementsByClassName(document, "div", "toggle");
	for(var i = 0; i < toggleDivs.length; i++) {
		toggleDivs[i].style.display = "none";
	}
}
function toggle(elemID) {
	var elem = document.getElementById(elemID);
	if(toggleState == true) {
		elem.style.display = 'none';
		toggleState = false;
	}
	else {
		elem.style.display = 'block';
		toggleState = true;
	}
}
//
// Supporting functions
//
function getElementsByClassName(oElm, strTagName, strClassName) {
	var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++) {
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)) {
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}