// JavaScript Document

	// location of the parent heading object
	var pX = pY = 0;
	
	// id used to hold the menu delay timeout
	var idHide = 0;
	
	// cPage needs to be set the current section page being visited, or home if the home apge
	// this is used to show as current being displayed - and not changed for the mouseover events
	var cPage = "tab9"; 
	
	// emnu item displayed waiting to hide
	// dropMenu boolean true if menu if shown (a drop down menu)
	// elemMenu menu id
	var elemMenu = new Array(0,0,0);
	var dropMenu = new Array(0,0,0);
	var levelMenu = 0;
	
	// dealy tiem on hiding menu
	var delayMenu = 500;
	
	var outFColor = "#FFFFFF";
	var outBgColor = "#27a22d";
	var outFWeight = "bold";
	var outFWeightSubMenu = "normal";
	
	var overFColor = "#FFFFFF";
	var overBgColor = "#005ea8";
	var overFWeight = "bold";
	
	var cursor = "pointer";
	
	var currentFColor = "#FFFFFF";
	var currentFStyle = "normal";
	var currentBBColor = "#005ea8";

	function gup( name ){  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  var regexS = "[\\?&]"+name+"=([^&#]*)";  var regex = new RegExp( regexS );  var results = regex.exec( window.location.href );  if( results == null )    return "";  else    return results[1];}

	function getStyleObject (id) {
		if (document.getElementById) 
			return document.getElementById(id);
		else if (document.layers)
			return document.layers[id];
		else if (document.all)
			return document.all[id].style;
		else {
			alert ("dhtml not supported");
			return false;
		}
	}

	function getXYpos(elem) {
		/**
		 * @purpose            : Get the (x,y) coordinate of a DOM element
		 * @param  object elem : a DOM element or null
		 * @return object      : an associative array, where indicies "x"
		 *                       and "y" hold their respective coordinates
		 * @note               : function is recursive
		 */
		 
	   if (!elem) {
		  return {"x":0,"y":0};
	   }
	   var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
	   var par=getXYpos(elem.offsetParent);
	   for (var key in par) {
		  xy[key]+=par[key];
	   }
	   return xy;
	}
	
	function showMenu(elem, drop, level) {
		// boolean child
		
		showVar();
		
		idHide = window.clearTimeout(idHide);

		if (level == 0) {
			hideAllMenu();
		}

		elemMenu[level] = elem;
		dropMenu[level] = drop;

		if (drop==true) {
			showMenu2(elem, level);
			if (level == 2) {
				showMenu(elemMenu[1], true);
			}
		}
		
		// update menu bar item to show highlight
		if (cPage != elem) {
			box2 = getStyleObject (elem);
			if (!box2) { return; }
			box2.style.color = overFColor;
			box2.style.backgroundColor=overBgColor;
			box2.style.fontWeight=overFWeight;
			box2.style.cursor="pointer";
		}

		showVar();
	}
	
	function showMenu2( elem, level ) {
		var i  = getStyleObject (elem);
		var p = getXYpos(i);
		pX = (p['x']);
		pY = (p['y']);

		elem2 = elem + "_d";
		if (level == 2 ) {
			var posx = pX + 170;
			var posy = pY ;
		} else {
			var posx = pX;
			var posy = pY + 34;
		}
		
		// set menu position and dispaly layer
		box = getStyleObject (elem2);
		if (!box) {	return; }
		box.style.left= posx + "px";
		box.style.top = posy + "px";
		box.style.visibility="visible";		
		
	}
	
	function hideAllMenu() {
		showVar();
		if (dropMenu[2] == true) {
			hideMenu2(elemMenu[2], dropMenu[2]);
			elemMenu[2] = dropMenu[2] = 0;								
		}
		if (dropMenu[1] == true) {
			hideMenu2(elemMenu[1], dropMenu[1]);
			elemMenu[1] = dropMenu[1] = 0;								
		}
		if (dropMenu[0] == true) {
			hideMenu2(elemMenu[0], dropMenu[0]);
			elemMenu[0] = dropMenu[0] = 0;								
		}
		return true;	
	}
	
	function hideMenu(elem, drop) {
		showVar();
		if (elem == elemMenu[2]) {
			hideMenu2(elemMenu[2], dropMenu[2]);
			hideMenu2(elemMenu[1], dropMenu[1]);
			hideMenu2(elemMenu[0], dropMenu[0]);
		}	
		
		if (elem == elemMenu[1]) {
			hideMenu2(elemMenu[1], dropMenu[1]);
			hideMenu2(elemMenu[0], dropMenu[0]);
		}	
		
		if (elem == elemMenu[0]) {
			hideMenu2(elemMenu[0], dropMenu[0]);
		}		
		
		//idHide=window.setTimeout("hideMenu2();", delayMenu);
	}
	
	function hideMenu2(elem, drop) {
		showVar();
		//alert("elem: " + elem + "\ndrop: " + drop);
		// hide the visible layer
		if (drop==true) {
			elem2 = elem + "_d";
			box = getStyleObject (elem2);
			box.style.visibility="hidden";
		}
		
		// update menu bar item to remove highlight
		//alert("cpage: " + cPage + "\nelem: " + elem);
		if (cPage != elem) { 
			box2 = getStyleObject (elem);
			if (!box2) { return; }
			box2.style.color=outFColor;
			box2.style.backgroundColor=outBgColor;
			if (elem == elemMenu[0]) {
			 	box2.style.fontWeight=outFWeight;
			} else {
			 	box2.style.fontWeight='normal';
			}
			box2.style.cursor=cursor;
		}

	}
	
	function changeLocation (loc) {
		window.location.href=loc;
		return;
	}

	function currentPage(elem) {
		box2 = getStyleObject (elem);
		if (!box2) { return; }
		box2.style.color=currentFColor;
		box2.style.backgroundColor=currentBBColor;
		box2.style.fontWeight=overFWeight;
		box2.style.fontStyle=currentFStyle;
		box2.style.cursor=cursor;
		return;
	}
	
	function init() {
		if (cPage != 'tab0') {
			currentPage(cPage); 
		} 
		return;
	}

	function logoHighlight (elem) {	
		elem.style.backgroundColor=overBgColor;
		elem.style.fontWeight=overFWeight;
	}
	
	function logoUnHighlight (elem) {	
		elem.style.backgroundColor=outBgColor;
		elem.style.fontWeight=outFWeightSubMenu;
	}
	

	function showVar() {
		return true;
		
		document.form1.text1.value = "elemMenu : " + elemMenu + "\n" + document.form1.text1.value;
		document.form1.text1.value = "dropMenu : " + dropMenu + "\n" + document.form1.text1.value;
	}
