var mmOpenContainer = null;
var mmOpenMenus = null;
var mmHideMenuTimer = null;

function menuStartTimeout(hideTimeout) {
	mmHideMenuTimer = setTimeout("menuHideMenus()", hideTimeout);	
}

function menuHideMenus() {
	menuResetTimeout();
	if(mmOpenContainer) {
		var c = document.getElementById(mmOpenContainer);
		c.style.visibility = "inherit";
		mmOpenContainer = null;
	}
	if( mmOpenMenus ) {
		for(var i = 0; i < mmOpenMenus.length ; i++) {
			var m = document.getElementById(mmOpenMenus[i]);
			m.style.visibility = "hidden";			
		}
		mmOpenMenus = null;
	}
}

function menuHideSubmenus(menuName) {
	if( mmOpenMenus ) {
		var h = false;
		var c = 0;
		for(var i = 0; i < mmOpenMenus.length ; i++) {
			if( h ) {
				var m = document.getElementById(mmOpenMenus[i]);
				m.style.visibility = "hidden";
			} else if( mmOpenMenus[i] == menuName ) {
				h = true;
			} else {
				c++;
			}
		}
		mmOpenMenus.length = c+1;
	}
}

function menuOverMenuItem(menuName, subMenuSuffix) {
	menuResetTimeout();
	menuHideSubmenus(menuName);
	if( subMenuSuffix ) {
		var subMenuName = "" + menuName + "_" + subMenuSuffix;
		menuShowSubMenu(subMenuName);
	}
}

function menuShowSubMenu(subMenuName) {
	menuResetTimeout();
	var e = document.getElementById(subMenuName);
	e.style.visibility = "inherit";
	if( !mmOpenMenus ) {
		mmOpenMenus = new Array;
	}

	mmOpenMenus[mmOpenMenus.length] = "" + subMenuName;
}

function menuResetTimeout() {
	if (mmHideMenuTimer) clearTimeout(mmHideMenuTimer);
	mmHideMenuTimer = null;
}

function menuShowMenu(menuName, element, mx, my) {
	var c = document.getElementById(menuName);
	var s = c.style;
	var coords = getPageCoords(element);
//	s.left = coords.x;
//	s.top = coords.y;
	s.left = mx;
	s.top = my;

	menuHideMenus();
	menuResetTimeout();
	menuShowSubMenu(menuName);
}

function getPageCoords (element) {
	var coords = {x: 0, y: 0};
	
	coords.y =+ element.offsetHeight;
	
	while (element) {
		coords.x += element.offsetLeft;
		coords.y += element.offsetTop;
		element = element.offsetParent;
	}
	
	return coords;
}