/* script for top navigation menus - no user-editable items; last modified by renn 12-20-06 */

var activeSection;

function generateTopNav() {
	
	if(topNavExistence) {

		for( var i=0; i<topnavArray.length; i++ ) {
		var topnavNode = document.getElementById(getDivName(topnavArray[i]));
		doTopNavAnchors(topnavNode);
		applyTableEvents(getContainer(topnavNode));
		
		
		if(opera && subnavArray.indexOf(topnavArray[i]) > -1  ) {
		repositionDivforOpera(topnavNode)
		}
	
		}
	}
	}


function repositionDivforOpera(node) 
	{
		node.className = stripDiv(node.id)+'Opera';
	
	}


function doTopNavAnchors(n) {
	
   if (n == null) 
      return;
   var numNodes = n.childNodes.length;
   for (var i = 0; i < numNodes; i++) {

		if(n.nodeName.toLowerCase() == 'a'){			
		applyDropDownTableCellStyles(n)
						
		} else {
		
	doTopNavAnchors(n.childNodes[i]);
			
		}
   }      
}
	


function applyTableEvents(tableNode) {

	if (tableNode == null) 
      return;
	
	if (tableNode.addEventListener) {
	
	tableNode.addEventListener("mouseover",doTableMouseover, false);
	tableNode.addEventListener("mouseout", doTableMouseout, false);
	}

	if (tableNode.attachEvent){	
	tableNode.attachEvent("onmouseover", doTableMouseover);
	tableNode.attachEvent("onmouseout",  doTableMouseout);
	}
	
	}

function doTableMouseover(e) { 


var targ;
	var tname;
	if(!e) e = window.event;
	if (e.target) {targ = e.target }
	else if (e.srcElement) {targ = e.srcElement}
	
	if(targ.nodeName == '#text') {
		targ = targ.parentNode;
		}

	var container = getContainer(targ);
	var divId = getDiv(container).getAttribute('id');

	
	var id = stripDiv(divId);	
		

	if(subnavArray.indexOf(id) > -1 ){	
	
	var parentId = getParentOfSecondaryNav(id);
	var parentDiv = getDivName(parentId);
 
	MM_showHideLayers(divId,'','show',parentDiv,'','show');	
	swapImage(parentId,'',TPath+parentId+'_f2.gif',1);
	}
	else {
	MM_showHideLayers(divId,'','show');
	swapImage(id,'',TPath+id+'_f2.gif',1);

	}
}


function doTableMouseout(e) { 

var targ;
	var tname;
	if(!e) e = window.event;
	if (e.target) {targ = e.target }
	else if (e.srcElement) {targ = e.srcElement}	

		if(targ.nodeName == '#text') {
		targ = targ.parentNode;
		}
		

	var divNode = getDiv(getContainer(targ));
	var id = divNode.getAttribute('id');
	var id = stripDiv(divId);
	
	if(subnavArray.indexOf(id) > -1 ){
		
	var parentDiv = getDivName(getParentOfSecondaryNav(id));
	var parentId = stripDiv(parentDiv);

	MM_showHideLayers(divId,'','hide',parentDiv,'','hide');	
	doImageSwap(parentId,e);
	}
	
	else {

	MM_showHideLayers(divId,'','hide');
	doImageSwap(id ,e);
	
	}
	
	}
	
	
function isUndefined(a) {
    return typeof a == 'undefined';
} 	
	
function doImageSwap(id, e) 
{
 
if(isUndefined(activeSection)) true;

if(navigator.appName=="Microsoft Internet Explorer")
	{
	var outside = checkIfOutOfTheTopNav(e.toElement,id);	

	}
else if(navigator.appName=="Netscape" && !mac) 
	{
	var outside = checkIfOutOfTheTopNav(e.relatedTarget,id);
	}
else {
	var outside = true; 

	}	

if(outside) 
{
	
if(id == activeSection)
  {
startState(activeSection);
  }

else 
  {
  swapImgRestore();
  }
}

}



function checkIfOutOfTheTopNav(node,id) {
	
while (node.nodeName.toLowerCase() != 'body') {
	
if(node.getAttribute('id') == id+divExt || node.getAttribute('id') == id)  {
 return false;
}
 	node = node.parentNode;
 
	}

return true;	
	
	}

function getContainer(node) {
	
while (node.className.toLowerCase() != 'topNav') {	
	if(node.nodeName.toLowerCase() == 'td') {
	
	
	
	if(getDiv(node)){
	divId = getDiv(node).getAttribute('id');
	if(topnavArray.indexOf(stripDiv(divId)) > -1 ) { 
	return node;
	  }
	 }
	}
	node = node.parentNode;

	}	

}





function getDiv(n) {
	
   var numNodes = n.childNodes.length;

   for (var i = 0; i < numNodes; i++) {

	if(n.nodeName.toLowerCase() == 'div'){
	return n;
	
	}	
	
	var divNode = getDiv(n.childNodes[i]);
	
	if (divNode)
	return divNode;

   }
   
   
}

function applyDropDownTableCellStyles(node) {

	if (node == null) 
      return;
	
	var tableNode = getDropDownTableCellNode(node)
	
	if (tableNode.addEventListener) {
	tableNode.addEventListener("mouseover", setClassNameOver , false);
	tableNode.addEventListener("mouseout", setClassNameOff, false);
	}


	if (tableNode.attachEvent){	
	tableNode.attachEvent("onmouseover", setClassNameOver);
	tableNode.attachEvent("onmouseout",  setClassNameOff);
	}
	
	}



function getDropDownTableCellNode(node) {
while (node.nodeName.toLowerCase() != 'top') {	
	if(node.nodeName.toLowerCase() == 'td') {	
	return node;
	}
	node = node.parentNode;
	}	
}


function setClassNameOver(e) { 

var targ;
	var tname;
	if(!e) e = window.event;
	if (e.target) {targ = e.target }
	else if (e.srcElement) {targ = e.srcElement}	
	
	

	var node = getDropDownTableCellNode(targ);
	node.className=NavTopOver;
}

function setClassNameOff(e) { 

var targ;
	var tname;
	if(!e) e = window.event;
	if (e.target) {targ = e.target }
	else if (e.srcElement) {targ = e.srcElement}	

	var node = getDropDownTableCellNode(targ);
	node.className=NavTopOff;
}



function startState(str, obj) {

	var id, img;
	id=str;	
	img=TPath+str+'_f3.gif'; 
	
	swapImage(id,'',img,1);
}	

function swapImgRestore(obj) { 
  
    var i,x,a=document.MM_sr; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function swapImage() { //v3.0
  var i,j=0,x,a=swapImage.arguments;
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null)
   {document.MM_sr[j++]=x; 
     if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
	 }
}

function getParentOfSecondaryNav(id) {
var i = subnavArray.indexOf(id)+1;
var topnavitem = topnavArray[subnavArray[i]];
return topnavitem;
	}


function getContainerName(name) {
	var containerName = name+containerExt;
	return containerName
	}
	
function getDivName(name) {
	var divName = name+divExt;
	return divName
	}	

function getProgramName(num){
		return programArray[num];
	}	

function stripDiv(string) {
 	var newstring = string.replace(divExt,'');
return newstring;
}