var navControl = {
	init: function (defaultLinkId) {
		var listItems = document.getElementById("nav").getElementsByTagName("li");
		defaultLinkId = (defaultLinkId||listItems[0].getElementsByTagName("a")[0].id);
		defaultLinkId = (document.getElementById(defaultLinkId)) ? defaultLinkId : listItems[0].getElementsByTagName("a")[0].id;
		
		for (i=0; i<listItems.length; i++) { listItems[i].getElementsByTagName("a")[0].onclick = navControl.clickHandler; }
		navControl.makeActive(document.getElementById(defaultLinkId));
	},
	
	makeActive: function (targetAnchor) {
		targetAnchor = (typeof(targetAnchor) == "string") ? document.getElementById(targetAnchor) : targetAnchor;
		navControl.makeAllDormant();
		
		// Un-hide the correct header.
		targetHeader = document.getElementById("header_"+targetAnchor.id);
		if (targetHeader.className == "hidden") targetHeader.className = "";
		else if (targetHeader.className.indexOf(" hidden") != -1) targetHeader.className = targetHeader.className.substr(0,targetHeader.className.indexOf(" hidden"));
		
		// Un-hide the correct body copy.
		targetCopy = document.getElementById("main_"+targetAnchor.id);
		if (targetCopy.className == "hidden") targetCopy.className = "";
		else if (targetCopy.className.indexOf(" hidden") != -1) targetCopy.className = targetCopy.className.substr(0,targetCopy.className.indexOf(" hidden"));
		
		//Activate the correct Anchor tag...
		var LIs = document.getElementById("nav").getElementsByTagName("li");
		for (var x=0; x < LIs.length; x++) {
			for (y = 0; y < LIs[x].getElementsByTagName("a").length; y++) {
				if (LIs[x].getElementsByTagName("a")[y] == targetAnchor) LIs[x].className = "activeTab";
				else LIs[x].className = "";
			}
		}
		window.scrollTo(0,0);
	},
	
	makeAllDormant: function () {
		// Add "hidden" to class.
		var headerChildNodes = document.getElementById("pageHeader").childNodes;
		for (var i=0; i<headerChildNodes.length; i++) {
			if (headerChildNodes[i].nodeName == "DIV" && headerChildNodes[i].id.indexOf("header_") != -1) {
				if (headerChildNodes[i].className) {
					if (headerChildNodes[i].className.indexOf("hidden") == -1) headerChildNodes[i].className = headerChildNodes[i].className+" hidden";
				} else {
					headerChildNodes[i].className = "hidden";
				}
			}
		}
		var contentChildNodes = document.getElementById("pagesContainer").childNodes;
		for (var i=0; i<contentChildNodes.length; i++) {
			if (contentChildNodes[i].nodeName == "DIV" && contentChildNodes[i].id.indexOf("main_") != -1) {
				if (contentChildNodes[i].className) {
					if (contentChildNodes[i].className.indexOf("hidden") == -1) contentChildNodes[i].className = contentChildNodes[i].className+" hidden";
				} else {
					contentChildNodes[i].className = "hidden";
				}
			}
		}
	},
	
	clickHandler: function (e) {
		e = (e||window.event);
		// FF + Safari uses target. IE uses targetNode.
		// Safari bug; if the nodeType == 3 (a text node) then get the parentNode.
		// Safari difference; will see the targeted window as 'document' so change it to window.
		// For Explorer, if the srcElement is 'null' its refering to the Window.
		e.targetNode=(e.target)?((e.target.nodeType==3)?e.target.parentNode:((e.target==document)?window:e.target)):((e.srcElement==null)?window:e.srcElement);
		
		var aTag = (e.targetNode.nodeName=="SPAN") ? e.targetNode.parentNode : e.targetNode;
		aTag.blur();
		navControl.makeActive(aTag);
	},
	
	getDefaultTab: function () {
		name = "defaultTab".replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
 		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		if( results == null ) return "";
		else return results[1];
	}
}

/* // Removed do to analytic code load-time
if (window.addEventListener) window.addEventListener("load", function(){navControl.init(navControl.getDefaultTab())}, false);
else if (window.attachEvent) window.attachEvent("onload", function(){navControl.init(navControl.getDefaultTab())});
*/