// Dropdown menu functions
// Nick Lovibond
// Copyright Experian
// Version 25 July 2002 (NS4.IE4.IE5.NS6)
// -----------------------

// cross browser stuff
isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;

if (isNS4) {
	layerDisplay1 = "document.layers['submenu"; layerDisplay2 = "'].visibility";
	menuXpos1 = "("; menuXpos2 = ").x";
	menuYpos1 = "("; menuYpos2 = ").height";
	layerTag = "layer";
	layerProps1 = " visibility=hidden top="; 
	layerProps2 = " left=";
	}
else if (isIE4) {
	layerDisplay1 = "document.all['submenu"; layerDisplay2 = "'].style.visibility";
	menuXpos1 = "(document.all['"; menuXpos2 = "'].offsetLeft)";
	menuYpos1 = "(document.all['"; menuYpos2 = "'].offsetHeight)";
	layerTag = "div";
	layerProps1 = " STYLE='visibility:hidden; position:absolute; top:"; 
	layerProps2 = "; left:";
}
else if (isIE5 | isNS6) {
	layerDisplay1 = "document.getElementById('submenu"; layerDisplay2 = "').style.visibility";
	menuXpos1 = "(document.getElementById('"; menuXpos2 = "').offsetLeft)";
	menuYpos1 = "(document.getElementById('"; menuYpos2 = "').offsetHeight)";
	layerTag = "div";
	layerProps1 = " STYLE='visibility:hidden; position:absolute; top:"; 
	layerProps2 = "; left:";
}


// Set up menu environment where menus are flagged '0' for hidden and '1' for visible
var activeMenu = new Array;
for (i = 1; i < 99; i++){activeMenu[i] = 0}


// Build the menu items into each submenu
function makeSubmenus(){

	// create submenus for each array
  	for (menuNum = 1; menuNum < menuitem.length; menuNum++){

	// use DHTML to determine where to position the submenu
	xPos = eval(menuXpos1 + "menu" + menuNum + menuXpos2) - 3
	// find the height of the menubar and add an offset
	yPos = eval(menuYpos1 + "menu" + menuNum + menuYpos2) + 1 + 80

	// script to create the layer
	subMenuHTML = "<" + layerTag
	+ " id=submenu" + menuNum 
	+ layerProps1 + yPos + layerProps2 + xPos + ((isNS4) ? "" : "'")
	+ " onMouseOver='activeMenu[" + menuNum + "]=1'" 
	+ " onMouseOut='activeMenu[" + menuNum + "]=0'"
	+ "><table border=0 cellspacing='0' cellpadding='0'><tr><td width=1 class=navkeyline width=1></td><td><table border=0 cellspacing='0' cellpadding='5'>"

	// convert every array value into a menu item
	for (i = 1; i < menuitem[menuNum].length; i++){
		if (menuitem[menuNum][i]) {
		subMenuHTML += "<tr>" + menuitem[menuNum][i] + "</tr>"
		}
	}

	// script to close the layer
	subMenuHTML += ("</table><td width=1 class=navkeyline width=1></td></tr><tr><td colspan=3 height=1 class=navkeyline></td></tr></table>" + "</" + layerTag + ">")

	document.write(subMenuHTML);
  }
}


// Show or hide menu
function showMenu() {
for (i = 1; i < menuitem.length; i++){
	if ((activeMenu[i] != 0) && (menuitem[i][1])){
	eval(layerDisplay1 + i + layerDisplay2 + "='visible'");
	} else {
	eval(layerDisplay1 + i + layerDisplay2 + "='hidden'");
	}
    }
}

// Show menu with delay
function waitMenuOn(drop1){
activeMenu[drop1] = 1;
setTimeout("showMenu()",0);
}

// Hide menu with delay
function waitMenuOff(drop1){
activeMenu[drop1] = 0;
setTimeout("showMenu()",400);
}

// Close all menus at once
function killMenus(){
for (i = 1; i < activeMenu.length; i++){activeMenu[i] = 0;}
showMenu();
}

// Set 'Close all menus' trigger for Netscape4 users
if (isNS4) {
window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=killMenus;
}
