// Navigation JavaScript
// BY: Cameron McGregor
// CREATED: ???
// LAST UPDATE: OCT-26-2006
// ABSTRACT: Contains javascript functions used to highlight navigation items

function findNav(strURL,nLevel)
{
	var ilNav = document.getElementById(strURL);
		
	//No object call function with next URL, prevent infinite recursion
	if ((!ilNav) && (nLevel < 100) && (strURL != ""))
	{
		
		//Search for last underscore
		var nSlashPos = strURL.lastIndexOf("_");
		if (nSlashPos != -1)
		{
			//Search for second last underscore to move up one level
			nSlashPos = strURL.lastIndexOf("_", nSlashPos - 1);	
			
			//debugScript(strURL);
			
			if ((nSlashPos != -1) && (strURL != "_index.html"))
				ilNav = findNav(strURL.substring(0, nSlashPos + 1) + "index.html", nLevel + 1);
			else
				strURL = "";
		}
	}
	
	return ilNav;
}

function doNavContext()
{
	//Make sure the path ends with "index.html"
	var pathName = location.pathname;
	
	var nSlashPos = pathName.lastIndexOf("/");
	
	if (nSlashPos != -1)
		pathName = pathName.substring(0, nSlashPos + 1) + "index.html"
	
	//Replace slashes and dashes with underscore
	pathName = pathName.replace(/\\/g, "_").replace(/\//g, "_");

	//Check for an "child node (Oncology second nav)
	//var theNav = document.getElementById("category"); //This was once used to find the class name
	var theNav = true;
	var foundNav = findNav("gnav" + pathName, 0);
	if ((theNav) && (foundNav))
		cssjs('add', foundNav, 'active');

	/*
	//This used to be used along with 'theNav' variable on previous nav versions

	//Change the path name to form '/dir_name/index.html' for higher level div search
	nSlashPos = pathName.lastIndexOf("/", nSlashPos - 1);	
	
	//do not proceed if the nav has a "p00" class (top node)
	if ((nSlashPos != -1) && !cssjs('check', foundNav, "p00"))
	{
		
		//Check for a higher node (Oncology top nav)
		if (theNav)
		{
			foundNav = findNav(pathName.substring(0, nSlashPos + 1) + "index.html", 0);

			if (foundNav)
				cssjs('add', foundNav, theNav.className);
		}
		
	}
	*/
}

function debugScript(outln)
{
	alert(outln);
	/*
	var out = document.getElementById("page");
	if (out)
		out.innerHTML = out.innerHTML + outln + "<br />";
	*/
}

var sfHover = function() {
	var sfEls01;

	if (document.getElementById("pnav")) {
		sfEls01=document.getElementById("pnav").getElementsByTagName("LI");
	}

	if (sfEls01) {
		for (var i=0; i<sfEls01.length; i++) {
			sfEls01[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls01[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}

}

if (window.attachEvent) window.attachEvent("onload", sfHover);

//create classes for navigation elements.
function setNavElements() {

	//Functionality moved to XSLT
	return;
	
	var navParentList = $('pnav').immediateDescendants();
	var parentPrefix = 'p';
	var childPrefix = 's';
	
	$('pnav').addClassName('loaded');
	
	if(navParentList.length) {
		for (var i=0;i<navParentList.length;i++) {
			var classNameValue=parentPrefix + i;
			navParentList[i].addClassName(classNameValue);
		}
		
		for (var j=0;j<navParentList.length;j++) {
			var childList = navParentList[j].getElementsByTagName('li');

			if(childList.length) {
				for (var k=0;k<childList.length;k++) {
					classNameValue = childPrefix + k;
					childList[k].addClassName(classNameValue);
				}
			}
		}
	}
}
