/*******************************************************************************

Functions to highlight the appropiate navigation level

*******************************************************************************/

function getChildDiv(n)
{
	var objColl = n.childNodes
	for(i=0;i<objColl.length;i++)
	{
		if(objColl.item(i).tagName=="DIV")
			return objColl.item(i)
	}
	return null;
}

//Finds the current node passed by the Domisphere Page
function findCurrentNode(nodes, navName, navURL)
{
	var navURLnqs;
	var qPos;
	var hrefURLnqs;
	qPos = navURL.indexOf("?")
	
	if(qPos > 0){
		navURLnqs = navURL.substring(0, qPos)
	}
	else {
		navURLnqs = navURL
	}
	for(i=0;i<nodes.length;i++)
	{	
		hrefArr = nodes.item(i).href.split("/")
		lastElem = hrefArr.length
		qPos = hrefArr[lastElem-1].indexOf("?")
		if(qPos > 0){
			hrefURLnqs = hrefArr[lastElem-1].substring(0, qPos)
		}
		else {
			hrefURLnqs = hrefArr[lastElem-1]
		}
		if((nodes.item(i).innerHTML == navName) && (hrefURLnqs==navURLnqs))
		{
			if(nodes.item(i).parentNode != null)
				return(nodes.item(i).parentNode);
		}
	}
	for(i=0;i<nodes.length;i++)
	{
		if( (nodes.item(i).innerHTML == navName) )
		{
			if(nodes.item(i).parentNode != null)
				return(nodes.item(i).parentNode);
		}
	}
	return(null);
}

//Add Arrow to end of className if Nav Item has children
function setNodesWithChildren(nodes, navClassPostFix)
{
	var o = nodes.getElementsByTagName("DIV");
	for(i=0;i<o.length;i++)
	{
		if(o.item(i).className == "navleveltwooff" 
		|| o.item(i).className == "navlevelthreeoff"
		|| o.item(i).className == "navlevelfouroff"
		|| o.item(i).className == "navlevelfiveoff"
		|| o.item(i).className == "navlevelsixoff"
		|| o.item(i).className == "navlevelsevenoff"
		|| o.item(i).className == "navleveleightoff"
		|| o.item(i).className == "navlevelnineoff"
		|| o.item(i).className == "navleveltenoff"
		|| o.item(i).className == "navleveltwoon" 
		|| o.item(i).className == "navlevelthreeon"
		|| o.item(i).className == "navlevelfouron"
		|| o.item(i).className == "navlevelfiveon"
		|| o.item(i).className == "navlevelsixon"
		|| o.item(i).className == "navlevelsevenon"
		|| o.item(i).className == "navleveleighton"
		|| o.item(i).className == "navlevelnineon"
		|| o.item(i).className == "navleveltenon")
		{
			if(o.item(i).getElementsByTagName("DIV").length > 0)
				o.item(i).className = o.item(i).className + navClassPostFix;
		}
	}
}

//Unhides the required nav levels
function displayNav(div, currentNodeName, currentNodeURL)
{
	var nav = div.getElementsByTagName("A");
	if(nav != null)
	{

		if(nav.length > 0)
		{
			setNodesWithChildren(div,"arrow");
			var node = findCurrentNode(nav,currentNodeName,currentNodeURL);

			if(node != null)
			{
				var childDiv = getChildDiv(node);
				if(childDiv != null)
				{
					childDiv.style.display = "block";
				}

				while(node.id != "subnav")
				{
					if(node.className != "navleveltwo"
					 && node.className != "navlevelthree"
					  && node.className != "navlevelfour"
					   && node.className != "navlevelfive"
					    && node.className != "navlevelsix"
					     && node.className != "navlevelseven"
					      && node.className != "navleveleight"
					       && node.className != "navlevelnine"
					        && node.className != "navlevelten")
					{
						if(node.className.indexOf("offarrow") > 0)
							node.className = node.className.substring(0,node.className.length-8)+"on";
						else if(node.className.indexOf("offnoarrow") > 0)
							node.className = node.className.substring(0,node.className.length)+"on";
						else
							node.className = node.className.substring(0,node.className.length-3)+"on";
					}
					else
					{
						node.style.display = "block";
					}
					node = node.parentElement;
				}
			}
			setNodesWithChildren(div,"arrow");
		}
	}
}