var isLoaded = false;

var isNS6Up = false;
var isNS6Under = false;
var isIE5Up = false;
var isIE5Under = false;

var isLowNSBrowser = false;
var isLowIEBrowser = false;
var isHighBrowser = false;

var SubnavTimer1 = null;
var subMenuOffsetX = -3;
var subMenuOffsetY = 5;

if (navigator.appName == "Netscape") {
	if (parseInt(navigator.appVersion) > 4) {
	  	isNS6Up = true;
	  	isHighBrowser = true;
	}
	else {
		isNS6Under = true;
		isLowNSBrowser = true;
	}
} 
else if (navigator.appName == "Microsoft Internet Explorer") {
	//parse through appVersion string and look for version of IE since IE5 returns itself as 4
	var searchString;
	searchString = navigator.appVersion.split("MSIE")
	searchString = searchString[1].split(";");
	
	if (parseInt(searchString[0]) >= 5) {
		isIE5Up = true;
		isHighBrowser = true;
	}
	else {
		isIE5Under = true;
		isLowIEBrowser = true;
	}
}
        
	var imgoff = new Array(22);
	var imgon = new Array(22);

	for (var i=0;i<21;i++) {
		imgoff[i] = new Image();
		imgon[i] = new Image();
	}
	
	//These should be set in the template xsl (and thusly rendered on the page) based on navigation type (image vs link)
	var navXOffset_horiz = -3;
	var navYOffset_horiz = 1;
	var navXOffset_vert = 15;
	var navYOffset_vert = 5;
	
	
	//images are loaded
isLoaded = true;

function PresetElements(){
	if(bShowLogout){
		ShowLogoutLink()
	}else{
		HideLogoutLink()
	}
	
	if(document.getElementById){
	
		//if the nav isn't drawn, don't try to access it or errors will result; return instead;
		if(!document.getElementById("nav0")) return;
		
		if(document.getElementById("choose")){
			//detect horiz vs. vert main nav:
			if(GetPageOffsetTop("nav0") == GetPageOffsetTop("nav1")){
				//horiz nav
				subMenuOffsetY = GetElementHeight("nav0") + navYOffset_horiz;
				subMenuOffsetX = navXOffset_horiz;
			}else{
				//vert nav
				subMenuOffsetY = navYOffset_vert;
				subMenuOffsetX = GetElementWidth("nav0") + navXOffset_vert;
			}
			document.getElementById("choose").style.top = GetPageOffsetTop("nav0") + subMenuOffsetY;
			document.getElementById("choose").style.left = GetPageOffsetLeft("nav0") + subMenuOffsetX;
		}
		
		if(document.getElementById("apply")){
			document.getElementById("apply").style.top = GetPageOffsetTop("nav1") + subMenuOffsetY;
			document.getElementById("apply").style.left = GetPageOffsetLeft("nav1") + subMenuOffsetX;
		}
		
		if(document.getElementById("learn")){
			document.getElementById("learn").style.top = GetPageOffsetTop("nav2") + subMenuOffsetY;
			document.getElementById("learn").style.left = GetPageOffsetLeft("nav2") + subMenuOffsetX;
		}
		
		if(document.getElementById("more")){
			document.getElementById("more").style.top = GetPageOffsetTop("nav3") + subMenuOffsetY;
			document.getElementById("more").style.left = GetPageOffsetLeft("nav3") + subMenuOffsetX;
		}
		
		
		
	} else if(document.all){
		if(!document.all("nav0")) return;
		
		if(document.all("choose")){
			
			//detect horiz vs. vert main nav:
			if(GetPageOffsetTop("nav0") == GetPageOffsetTop("nav1")){
				//horiz nav
				subMenuOffsetY = GetElementHeight("nav0") - navYOffset_horiz;
				subMenuOffsetX = navXOffset_horiz;
			}else{
				//vert nav
				subMenuOffsetY = navYOffset_vert;
				subMenuOffsetX = GetElementWidth("nav0") + navXOffset_vert;
			}
			document.all("choose").style.top = GetPageOffsetTop("nav0") + subMenuOffsetY;
			document.all("choose").style.left = GetPageOffsetLeft("nav0") + subMenuOffsetX;
		}
				
		if(document.all("apply")){
			document.all("apply").style.top = GetPageOffsetTop("nav1") + subMenuOffsetY;
			document.all("apply").style.left = GetPageOffsetLeft("nav1") + subMenuOffsetX;
		}
		
		if(document.all("learn")){
			document.all("learn").style.top = GetPageOffsetTop("nav2") + subMenuOffsetY;
			document.all("learn").style.left = GetPageOffsetLeft("nav2") + subMenuOffsetX;
		}
		
		if(document.all("more")){
			document.all("more").style.top = GetPageOffsetTop("nav3") + subMenuOffsetY;
			document.all("more").style.left = GetPageOffsetLeft("nav3") + subMenuOffsetX;
		}
		
		if(document.all("TopNavLogInDiv")){
			document.all("TopNavLogInDiv").style.top = GetPageOffsetTop("TopNavLogOutDiv");
			document.all("TopNavLogInDiv").style.left = GetPageOffsetLeft("TopNavLogOutDiv");
		}
		
	} else if(document.layers){
	
		if(!document["nav0"]) return;
		
		//detect horiz vs. vert main nav:
			if(GetPageOffsetTop("nav0") == GetPageOffsetTop("nav1")){
				//horiz nav
				subMenuOffsetY = GetElementHeight("nav0") + navYOffset_horiz;
				subMenuOffsetX = navXOffset_horiz;
			}else{
				//vert nav
				subMenuOffsetY = navYOffset_vert;
				subMenuOffsetX = GetElementWidth("nav0") + navXOffset_vert;
			}
		
		if(document.layers["choose"]){
			document.layers["choose"].top = document["nav0"].y + subMenuOffsetY;
			document.layers["choose"].left = document["nav0"].x + subMenuOffsetX;
		}
		
		if(document.layers["apply"]){
			document.layers["apply"].top = document["nav1"].y + subMenuOffsetY;
			document.layers["apply"].left = document["nav1"].x + subMenuOffsetX;
		}
		
		if(document.layers["learn"]){
			document.layers["learn"].top = document["nav2"].y + subMenuOffsetY;
			document.layers["learn"].left = document["nav2"].x + subMenuOffsetX;
		}
		
		if(document.layers["more"]){
			document.layers["more"].top = document["nav3"].y + subMenuOffsetY;
			document.layers["more"].left = document["nav3"].x  + subMenuOffsetX;
		}
		
		if(document.layers["TopNavLogInDiv"]){
			document.layers["TopNavLogInDiv"].top = document["TopNavLogOutDiv"].y;
			document.layers["TopNavLogInDiv"].left = document["TopNavLogOutDiv"].x;
		}
	}
	SetListener();
}

function GetElementWidth(ctrl) {
	if(document.getElementById){
		return document.getElementById(ctrl).width;
	}else if(document.all){
		return document.all(ctrl).width;
	}else if(document.layers){
		return document[ctrl].width;
	}
}

function GetElementHeight(ctrl) {
	if(document.getElementById){
		return document.getElementById(ctrl).height;
	}else if(document.all){
		return document.all(ctrl).height;
	}else if(document.layers){
		return document[ctrl].height;
	}
}

function GetPageOffsetTop(ctrl) {
	if(document.layers){
		return document[ctrl].y;
	}

	var obj;
	if(document.getElementById){
		obj = document.getElementById(ctrl);
	}else if(document.all){
		obj = document.all(ctrl);
	}
	var ot=obj.offsetTop;
	while((obj=obj.offsetParent) != null) { ot += obj.offsetTop; }
	return ot;
}
	
function GetPageOffsetLeft(ctrl) {
	if(document.layers){
		return document[ctrl].x;
	}
	
	var obj;
	if(document.getElementById){
		obj = document.getElementById(ctrl);
	}else if(document.all){
		obj = document.all(ctrl);
	}
	var ol=obj.offsetLeft;
	while((obj=obj.offsetParent) != null) { ol += obj.offsetLeft; }
	return ol;
}

function SetListener() {
	if (document.layers){
		document.captureEvents(Event.MOUSEUP);
	}
	window.popupWindowOldEventListener = document.onmouseup;
	
	if (window.DefaultEventListener != null){
		document.onmouseup = new Function("window.DefaultEventListener(); CheckClick();");
	}
	else{
		document.onmouseup = CheckClick;
	}
}

function HideLogoutLink(){

	if(document.getElementById){
		if(document.getElementById("TopNavLogOutDiv")){
			document.getElementById("TopNavLogOutDiv").style.visibility = "hidden";
			document.getElementById("TopNavLogOutDiv").innerHTML = "";
			document.getElementById("TopNavLogOutSeparatorDiv").style.visibility = "hidden";
		}
	} else if(document.all){
		
		if(document.all("TopNavLogInDiv")){
			document.all("TopNavLogOutDiv").style.visibility = "hidden";
			document.all("TopNavLogOutDiv").innerHTML = "";
			document.all("TopNavLogOutSeparatorDiv").style.visibility = "hidden";
			
		}
		
	} else if(document.layers){
		if(document.layers["TopNavLogOutDiv"]){
			document.layers["TopNavLogOutDiv"].visibility = "hide";
			document.layers["TopNavLogOutSeparatorDiv"].visibility = "hide";
		}
	}
	
}

function ShowLogoutLink(){

	if(document.getElementById){
		if(document.getElementById("TopNavLogOutDiv")){
			document.getElementById("TopNavLogOutDiv").style.visibility = "visible";
			document.getElementById("TopNavLogOutDiv").innerHTML = '<a class="topNavMenuItem" target="_parent" href="/resetSession.asp"><nobr>LOG OUT</nobr></a>';
			document.getElementById("TopNavLogOutSeparatorDiv").style.visibility = "visible";
		}
	} else if(document.all){
		
		if(document.all("TopNavLogInDiv")){
			document.all("TopNavLogOutDiv").style.visibility = "visible";
			document.all("TopNavLogOutDiv").innerHTML = '<a class="topNavMenuItem" target="_parent" href="/resetSession.asp"><nobr>LOG OUT</nobr></a>';
			document.all("TopNavLogOutSeparatorDiv").style.visibility = "visible";
			
		}
		
	} else if(document.layers){
		if(document.layers["TopNavLogOutDiv"]){
			document.layers["TopNavLogOutDiv"].visibility = "show";
			document.layers["TopNavLogOutSeparatorDiv"].visibility = "show";
		}
	}
	
}



function CheckClick(e){

	//onmouseup handler
	//closes menu if menu not active
	
	if(GetActiveDiv() !=""){
		if (document.layers) {
			var clickX = e.pageX;
			var clickY = e.pageY;
			var t = document.layers[GetActiveDiv()];
			if ((clickX > t.left) && (clickX < t.left+t.clip.width) && (clickY > t.top) && (clickY < t.top+t.clip.height)){
				return;
			}
			else{ 
				document.layers[GetActiveDiv()].visibility = "hide"
			}
		}
		else if (document.all){ 
			var t = window.event.srcElement;
			while (t.parentElement != null){
				if (t.id==GetActiveDiv()){
					return;
				}
				t = t.parentElement;
			}
			document.all(GetActiveDiv()).style.visibility = "hidden";
		}
		else if (document.getElementById && e){
			var t = e.originalTarget;
			while (t.parentNode != null){
				if(t.id==GetActiveDiv()){
					return;
				}
				t = t.parentNode;
			}
			document.getElementById(GetActiveDiv()).style.visibility = "hidden";
		}
		
	}
}

function GetActiveDiv(){
	//This function will tell which menu item is active
	if(document.getElementById){
		if(document.getElementById("choose")){
			if(document.getElementById("choose").style.visibility != "hidden")
				return "choose";
				
			if(document.getElementById("apply").style.visibility != "hidden")
				return "apply";
				
			if(document.getElementById("learn").style.visibility != "hidden")
				return "learn";
				
			if(document.getElementById("more").style.visibility != "hidden")
				return "more";
		}
		return "";
		
	}else if(document.all){
		if(document.all("choose")){
			if(document.all("choose").style.visibility != "hidden")
				return "choose";
				
			if(document.all("apply").style.visibility != "hidden")
				return "apply";
				
			if(document.all("learn").style.visibility != "hidden")
				return "learn";
				
			if(document.all("more").style.visibility != "hidden")
				return "more";
		}
		return "";
		
	}else if(document.layers){
		if(document.layers["choose"]){
			if(document.layers["choose"].visibility != "hide")
				return "choose";
				
			if(document.layers["apply"].visibility != "hide")
				return "apply";
				
			if(document.layers["learn"].visibility != "hide")
				return "learn";
				
			if(document.layers["more"].visibility != "hide")
				return "more";
		}
		return "";
	}
}

function show(divName,imgID) {
	//hide all divs
	if ((isHighBrowser) && (isLoaded)) {
		if (document.getElementById("learn") != null) {
			document.getElementById("learn").style.visibility = "hidden";
		}
		if (document.getElementById("choose") != null) {
			document.getElementById("choose").style.visibility = "hidden";
		}
		if (document.getElementById("apply") != null) {
			document.getElementById("apply").style.visibility = "hidden";
		}
		if (document.getElementById("more") != null) {
			document.getElementById("more").style.visibility = "hidden";
		}
	} else if ((isLowIEBrowser) && (isLoaded)) {
		if (document.all["learn"] != null) {
			document.all("learn").style.visibility = "hidden";
		}
		if (document.all["choose"] != null) {
			document.all("choose").style.visibility = "hidden";
		}
		if (document.all["apply"] != null) {
			document.all("apply").style.visibility = "hidden";
		}
		if (document.all["more"] != null) {
			document.all("more").style.visibility = "hidden";
		}
	} else if ((isLowNSBrowser) && (isLoaded)) { 
		if (document.layers["learn"] != null) {
			document.layers["learn"].visibility = "hide";
		}	
		if (document.layers["choose"] != null) {
			document.layers["choose"].visibility = "hide";
		}
		if (document.layers["apply"] != null) {
			document.layers["apply"].visibility = "hide";
		}
		if (document.layers["more"] != null) {
			document.layers["more"].visibility = "hide";
		}
	}
	
	//show targeted div
	if ((isHighBrowser) && (isLoaded) && (document.getElementById(divName) != null)) {
		document.getElementById(divName).style.visibility = "visible";
	}
	else if ((isLowIEBrowser) && (isLoaded) && (document.all[divName] != null)) {
		document.all[divName].style.visibility = "visible";
	}
	else if ((isLowNSBrowser) && (isLoaded) && (document.layers[divName] != null)) {
		document.layers[divName].visibility = "show";
	}

	overIt(imgID,divName);
}


function overIt(imgID,divName) {
	var imgName = "nav" + imgID;
	
	if ((isHighBrowser) && (isLoaded)) {
		document.getElementById(imgName).src = imgon[imgID].src;
	} else if ((isLowIEBrowser) && (isLoaded)) {
		document.all[imgName].src = imgon[imgID].src;
	} else if ((isLowNSBrowser) && (isLoaded)) {
		document.images[imgName].src = imgon[imgID].src;
	}
	DivOver();
}

function outOfIt(imgID,divName) {
	var imgName = "nav" + imgID;
		
	if ((isHighBrowser) && (isLoaded)) {
		document.getElementById(imgName).src = imgoff[imgID].src;
	} else if ((isLowIEBrowser) && (isLoaded)) {
		document.all[imgName].src = imgoff[imgID].src;	
	} else if ((isLowNSBrowser) && (isLoaded)) {
		document.images[imgName].src = imgoff[imgID].src;
	}
	DivOut();
}

function DivOver(){
	if(SubnavTimer1){
		SubnavTimer1 = clearTimeout(SubnavTimer1);
	}
}

function DivOut(){
	if(SubnavTimer1){
		SubnavTimer1 = clearTimeout(SubnavTimer1);
	}
	SubnavTimer1 = setTimeout("timerCallout();",500);
}

function timerCallout(){
	//After the timeout has occurred, hide the active menu
	var ActiveDiv = GetActiveDiv();
	if(ActiveDiv != ""){
		if(document.getElementById){
			document.getElementById(ActiveDiv).style.visibility = "hidden";
		}else if(document.all){
			document.all(ActiveDiv).style.visibility = "hidden";
		}else if(document.layers){
			document.layers[ActiveDiv].visibility = "hide"	
		}
	}
}
