/* Left Nav Structure
   ------------------
   IE-Win interprets the DOM tree differently than all other browsers
   Therefore we have added separate support for this.
*/
leftNav = function() {
	var browser = navigator.appName;
	var platform = navigator.platform;
	var pageid = document.getElementById("pageID").content;	
	
	//Check for page id
	if (document.getElementById(pageid)){
		var selectedNode = document.getElementById(pageid);
		var noid = false;
	}
	else {
		var selectedNode = document.getElementById("0");
		var noid = true;
	}
	
	//Current item class name assignment
	if ((selectedNode.parentNode.parentNode.parentNode.parentNode.parentNode.id == "left") || (selectedNode.parentNode.parentNode.parentNode.id == "left")){
		if (!noid) {
			selectedNode.getElementsByTagName("a")[0].className = "currentAnchor";
			selectedNode.style.background = "none";
		}
		//Re-define padding for selected TOP items only
		if ((selectedNode.parentNode.parentNode.parentNode.id == "left") && (!noid)) {
			if (selectedNode.getElementsByTagName("li").length > 0)
				selectedNode.style.padding = "0 0 6px 20px";
			else selectedNode.style.padding = "0 0 0 20px";
		}
	}
	else selectedNode.className = "current";
	
	//Condition for items that are too deep to display but must have their parent node highlighted
	if ((selectedNode.parentNode.parentNode.parentNode.id != "left") && (selectedNode.parentNode.parentNode.parentNode.parentNode.parentNode.id != "left") && (selectedNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id != "left")){
		var testNode = selectedNode;
		var counter = 1;
		while (testNode.parentNode.parentNode.parentNode.id != "left") {
			counter++;
			testNode = testNode.parentNode.parentNode;
		}
		testNode = selectedNode;
		for (z = 0; z < counter-3; z++) {
			testNode = testNode.parentNode.parentNode;
		}
		testNode.className = "current";
	}
	
	//special handling for children of top elements
	if ((selectedNode.parentNode.parentNode.parentNode.id == "left") && (selectedNode.getElementsByTagName("li").length > 0)) {
		//var subNode = selectedNode.childNodes[2].childNodes;
		var subNode = selectedNode.getElementsByTagName("li");
		for (i = 0; i < subNode.length; i++) {
			if (subNode[i].getElementsByTagName("li").length > 0)
				subNode[i].childNodes[2].style.display = "none";
		}
	}
	
	//Start Main Functionality
	hideSiblings(browser, platform, selectedNode);
	
	while (selectedNode.parentNode.parentNode.parentNode.id != "left") {
		selectedNode = selectedNode.parentNode.parentNode;
		hideSiblings(browser, platform, selectedNode);
	}
	
	document.getElementById("left").getElementsByTagName("ul")[0].style.display = "block";
	if (document.getElementById("Features"))
		document.getElementById("Features").style.display = "block";
}

function hideSiblings(browser, platform, selectedNode) {
	if ((browser == "Microsoft Internet Explorer") && (platform == "Win32")) { //ie-win fix
		var nNode = selectedNode.nextSibling;		
		var pNode = selectedNode.previousSibling;
		while (nNode) {
			if (nNode.childNodes[2])
				nNode.childNodes[2].style.display = "none";
			nNode = nNode.nextSibling;
		}
		while (pNode) {
			if (pNode.childNodes[2])
				pNode.childNodes[2].style.display = "none";
			pNode = pNode.previousSibling;
		}
	}
	
	else {		
		try {
			var nNode = selectedNode.nextSibling.nextSibling;		
			var pNode = selectedNode.previousSibling.previousSibling;
		}
		catch (e) {	}
		while (nNode) {
			if ((nNode.getElementsByTagName("li").length) > 0)	
			    try
			    {		
				nNode.childNodes[2].style.display = "none";			
				}
				catch (f) {break;}
			try { nNode = nNode.nextSibling.nextSibling; }
			catch (f) { break; }
		}
		while (pNode) {
			if ((pNode.getElementsByTagName("li").length) > 0)			
				pNode.childNodes[2].style.display = "none";
			try { pNode = pNode.previousSibling.previousSibling; }
			catch (g) { break; }
		}
	}
}