// 2007-10-16 refactored out useless fields and codes.
// 2006-01-07 add 'if null' testers.

var time = 3000;
var g_numofitems = 17; // total menu categories
var g_menuArray; 
var gPopupRoot = null;



function setDisplay(obj, state) {
	if (obj != null) // typeof(tv) == "object"
		obj.style.visibility = state;		
}


// menu constructor
//
function menu(thisitem, startstate) { 
	try {
		// ref in top.aspx
		callname = "gl" + thisitem;
		divname = "subglobal" + thisitem;  
		
		//?? useful
		this.caller = document.getElementById(callname);
		
		// store the submenus
		var tv = document.getElementById(divname);
		setDisplay(tv, startstate)
		this.thediv = tv;
		
	} finally {
	}	
} // menu


function initMenu() {
	try {
		if (g_menuArray != null)
			if (menuOk()) return;
		
		g_menuArray = new Array(g_numofitems + 1);
		for (var i = 1; i < g_menuArray.length; i++) {
			g_menuArray[i] = new menu(i, "hidden");
			//!! error: eval("menuitem" + i) = g_menuArray[i];
		}
	} finally {
	}
} // initMenu


// may add individual tester later.
//
function menuOk(){
	var rslt = false;
	
	if (g_menuArray == null)
		return false;

	try {		
		for (var i = 1; i < g_menuArray.length; i++) {
			if (g_menuArray[i] != null)
				rslt = true; 
		} 
	} finally {
	}

	return rslt;
}


function closeAll() {
	try {
		
		if (gPopupRoot)
			if (gPopupRoot.isLocked()) return false;
				
		for (var i = 1; i < g_menuArray.length; i++) {
			var shutdiv = eval("g_menuArray[" + i + "].thediv"); 
			setDisplay(shutdiv, "hidden");
		}		
		
		return true;		
	} catch(ex) {
		
	}
} // closeAll


// might run before menus are created.
//
function ehandler(event, thisitem) {
	try {
		if (thisitem > g_numofitems) return;

		initMenu();		

		if (closeAll()) { // close others		
			var tv = g_menuArray[thisitem].thediv;
			setDisplay(tv, "visible");
			
			//if (gPopupRoot)
				//gPopupRoot.setStateShown();
			
			//gPopupRoot.close(event, true, 0);
			//gPopupRoot = null;		
		}
		
	} catch(ex) {
	}
} 
	
	
//	originally called by aspx file <body onmousemove="...
//
function closesubnav(event) {
	try {
		if (!menuOk()) return;
		
		if ((event.clientY < 5) || (event.clientY > 200)) { 
		// do nothing	
			
		}
	} finally {
	}
}


// Startup

