var openContainer = null;
var openMenus = null;
var hideMenuTimer = null;

function timeOut(hideTimeout) {
	hideMenuTimer = setTimeout("hideMenus()", hideTimeout);	
}

function hideMenus() {
	resetTimeout();
	if(openContainer) {
		var c = document.getElementById(openContainer);
		c.style.visibility = "inherit";
		openContainer = null;
	}
	if( openMenus ) {
		for(var i in openMenus) {
			var m = document.getElementById(openMenus[i]);
			m.style.visibility = "hidden";			
		}
		openMenus = null;
	}
}

function hideSubs(menuName) {
	if( openMenus ) {
		var h = false;
		var c = 0;
		for(var i in openMenus) {
			if( h ) {
				var m = document.getElementById(openMenus[i]);
				m.style.visibility = "hidden";
			} else if( openMenus[i] == menuName ) {
				h = true;
			} else {
				c++;
			}
		}
		openMenus.length = c+1;
	}
}

function overMenuItem(menuName, subMenuSuffix) {
	resetTimeout();
	hideSubs(menuName);
	if( subMenuSuffix ) {
		var subMenuName = "" + menuName + "_" + subMenuSuffix;
		showSubs(subMenuName);
	}
}

function showSubs(subMenuName) {
	resetTimeout();
	var e = document.getElementById(subMenuName);
	e.style.visibility = "inherit";
	if( !openMenus ) {
		openMenus = new Array;
	}
	openMenus[openMenus.length] = "" + subMenuName;
}

function resetTimeout() {
	if (hideMenuTimer) clearTimeout(hideMenuTimer);
	hideMenuTimer = null;
}

function showMenu(containName, menuName, xOffset, yOffset, triggerName) {
	hideMenus();
	resetTimeout();
	showMenuContainer(containName, xOffset, yOffset, triggerName);
	showSubs(menuName);
}

function showMenuContainer(containName, x, y, triggerName) {	
	var c = document.getElementById(containName);
	var s = c.style;
	s.visibility = "inherit";
	openContainer = "" + containName;
}
