//Styles for mouseover, mouseout, and click. Put in array to minimize script length.
var constLevel1Normal = 'LNButton LNLevel1';
var constLevel1Hover = 'LNButton LNLevel1Hover';
var constLevel1State = 'LNButton LNLevel1State';
var constLevel2Normal = 'LNButton LNLevel2';
var constLevel2Hover = 'LNButton LNLevel2Hover';
var constLevel2State = 'LNButton LNLevel2State';
var constLevel3Normal = 'LNButton LNLevel3';
var constLevel3Hover = 'LNButton LNLevel3Hover';
var constLevel3State = 'LNButton LNLevel3State';
var LevelArray = new Array(3);
LevelArray [0] = new Array(3);
LevelArray [0][0] = constLevel1Normal;
LevelArray [0][1] = constLevel1Hover;
LevelArray [0][2] = constLevel1State;
LevelArray [1] = new Array(3);
LevelArray [1][0] = constLevel2Normal;
LevelArray [1][1] = constLevel2Hover;
LevelArray [1][2] = constLevel2State;
LevelArray [2] = new Array(3);
LevelArray [2][0] = constLevel3Normal;
LevelArray [2][1] = constLevel3Hover;
LevelArray [2][2] = constLevel3State;

//Called when item is clicked to open section
function NavOpenSubMenu(divName){
	div = document.getElementById(divName);
	if(div != null) {
		if(div.style.display == "none"){
			div.style.display = "block";
		}
		else{
			div.style.display = "none";
		}
	}
}

//Called when mouse over left nav item.
function NavMouseOver(obj, level) {
	var tagName = obj.tagName;
	if(tagName.toLowerCase() == "td") {
		if(obj.className!=LevelArray[level-1][2])
		{
			obj.className=LevelArray[level-1][1];
		}
		var aAs = obj.getElementsByTagName("A");
		if(aAs[0] != null)
		{
			if(aAs[0].className!=LevelArray[level-1][2])
			{
				aAs[0].className=LevelArray[level-1][1];
			}
		}
	}
}

//Called when mouse out of left nav item.
function NavMouseOut(obj, level) {
	var tagName = obj.tagName;
	if(tagName.toLowerCase() == "td") {
		if(obj.className!=LevelArray[level-1][2])
		{
			obj.className=LevelArray[level-1][0];
			var aAs = obj.getElementsByTagName("A");
			if(aAs[0] != null)
			{
				aAs[0].className=LevelArray[level-1][0];
			}	
	    }
	}
}

//Called when nav item is clicked.
function NavClick(obj, level, e) {
	//Don't bubble event for IE
	if (!e) var e = window.event;
	e.cancelBubble = true;
	//Don't bubble event for Netscape
	if (e.stopPropagation) e.stopPropagation();
	//set selected class
	var tagName = obj.tagName;
	if(tagName.toLowerCase() == "td") {
		ClearSelectedItems(obj);
		obj.className=LevelArray[level-1][2];
		var aAs = obj.getElementsByTagName("A");
		if(aAs[0] != null)
		{
			aAs[0].className=LevelArray[level-1][2];
		}
		SetHiddenSelectedItemID(obj)
	}
	if(tagName.toLowerCase() == "a") {
		var oTD = obj.parentElement;
		if(oTD)
		{
			ClearSelectedItems(oTD);
			oTD.className=LevelArray[level-1][2];
			obj.className=LevelArray[level-1][2];
			SetHiddenSelectedItemID(oTD)
		}
	}

}

//Sets the hidden input which stores the selected menu item ID.
function SetHiddenSelectedItemID(obj){
	if (window.selectedMenuID) {
		document.getElementById(selectedMenuID).value = obj.id;
	}
}

//Called when nav item is clicked to clear highlighting from all sibling tags and their lower level tags.
function ClearSelectedItems(obj) {
	//Get Siblings (The click event fires from the <td> tag.) 
	var oTR = obj.parentElement;
	ClearSiblings(oTR);
}

//Used to get the parent TR from the Anchor tag. (Gives a starting point)
function GetParentTR(oA){
	var oTD = oA.parentElement;
	var oTR = oTD.parentElement;
	var oTBody = oTR.parentElement;
	var oTable = oTBody.parentElement;
	var oTD2 = oTable.parentElement;
	var oTR2 = oTD2.parentElement;
	return oTR2;
}

//Clears highlighting from Sibling tags (menu items on the same level as item clicked)
function ClearSiblings(oStartTR){
	//Previous siblings
	ClearPreviousSiblings(oStartTR);
	//Next siblings
	ClearNextSiblings(oStartTR);
}


//Clears highlighting from Higher Sibling tags (items on same level as item clicked)
function ClearPreviousSiblings(oTR){
	var oNextTR = oTR.previousSibling;
	if (oNextTR == null) {
		return;
	}
	else {
		ClearChildSelectedItems(oNextTR);
		ClearPreviousSiblings(oNextTR);
		return;
	}
}

//Clears highlighting from Lower Sibling tags (items on same level as item clicked)
function ClearNextSiblings(oTR){
	var oNextTR = oTR.nextSibling;
	if (oNextTR == null) {
		return;
	}
	else {
		ClearChildSelectedItems(oNextTR);
		ClearNextSiblings(oNextTR);
		return;
	}
}

//Loops through and clears highlighting from all child menus. (Called from ClearNextSiblings and ClearPrevious Siblings)
// Also hides any other open submenus.
//Recursive Function - Calls itself repeatedly as many times as necessary to clear all children.
function ClearChildSelectedItems(obj){
	if(obj.childNodes.length>0) {
	    for(var m = obj.firstChild; m != null; m = m.nextSibling) {
			//set CSS Class
			if(m.className == LevelArray [0][2]) {
				m.className = LevelArray [0][0];
			}
			else if (m.className == LevelArray [1][2]) {
				m.className = LevelArray [1][0];
			}
			else if (m.className == LevelArray [2][2]) {
				m.className = LevelArray [2][0];
			}
			//hide other open sections.
			if(m.tagName){
				if(m.tagName.toLowerCase() == "div" && m.style.display.toLowerCase() == "block")
				{
					m.style.display = "none";
				}
			}
			ClearChildSelectedItems(m);
		}
	}
	return;	
}

function changeLanguage(sLink){
	oSlct = document.getElementById("slctLanguage");
	window.location = sLink + "/language/" + oSlct.options[oSlct.SelectedIndex].value;
}