var varOpenMenus = null;
var varOpenParent = null;
var varHideMenuTimer = null;

function ws_StartTimeout(hideTimeout) {
	varHideMenuTimer = setTimeout("ws_HideMenus()", hideTimeout);	
}

function ws_OverMenuItem(menuName, subMenuSuffix) {
	ws_ResetTimeout();
	ws_HideSubmenus(menuName);
	if( subMenuSuffix ) {
		var subMenuName = "" + menuName + "_" + subMenuSuffix;
		ws_ShowSubMenu(subMenuName);
	}
}

function ws_ShowSubMenu(subMenuName) {
	ws_ResetTimeout();
	var e = document.getElementById(subMenuName);
	e.style.visibility = "inherit";
	if( !varOpenMenus ) {
		varOpenMenus = new Array;
	}
	varOpenMenus[varOpenMenus.length] = "" + subMenuName;
}

function ws_ResetTimeout() {
	if (varHideMenuTimer) clearTimeout(varHideMenuTimer);
	varHideMenuTimer = null;
}



function ws_HideMenus() {
	ws_ResetTimeout();
	if(varOpenParent) {
		var c = document.getElementById(varOpenParent);
		c.style.visibility = "inherit";
		varOpenParent = null;
	}
	if( varOpenMenus ) {
		for(var i = 0; i < varOpenMenus.length ; i++) {
			var m = document.getElementById(varOpenMenus[i]);
			m.style.visibility = "hidden";			
		}
		varOpenMenus = null;
	}
}

function ws_HideSubmenus(menuName) {
	if( varOpenMenus ) {
		var h = false;
		var c = 0;
		for(var i = 0; i < varOpenMenus.length ; i++) {
			if( h ) {
				var m = document.getElementById(varOpenMenus[i]);
				m.style.visibility = "hidden";
			} else if( varOpenMenus[i] == menuName ) {
				h = true;
			} else {
				c++;
			}
		}
		varOpenMenus.length = c+1;
	}
}

function ws_ShowMenu(divName, menuName, xOffset, yOffset, triggerName) {
	ws_HideMenus();
	ws_ResetTimeout();
	ws_ShowMenuParent(divName, xOffset, yOffset, triggerName);
	ws_ShowSubMenu(menuName);
}

function ws_ShowMenuParent(divName, x, y, triggerName) {	
	var c = document.getElementById(divName);
	var s = c.style;
	s.visibility = "inherit";
	
	varOpenParent = "" + divName;
}
