var mmOpenMenus = null;
var mmHideMenuTimer = null;

function MM_menuStartTimeout(hideTimeout) {
	mmHideMenuTimer = setTimeout("MM_menuHideMenus()", hideTimeout);	
}

function MM_menuHideMenus() {
	MM_menuResetTimeout();
	if( mmOpenMenus ) {
		for(var i in mmOpenMenus) {
			var s = document.getElementById(mmOpenMenus[i]).style;
			s.visibility = "hidden";
			s.zIndex = 0;
		}
		mmOpenMenus = null;
	}
}

function MM_menuHideSubmenus(menuName) {
	if( mmOpenMenus ) {
		var h = false;
		var c = 0;
		for(var i in mmOpenMenus) {
			if( h ) {
				var s = document.getElementById(mmOpenMenus[i]).style;
				s.visibility = "hidden";
				s.zIndex = 0;
			} else if( mmOpenMenus[i] == menuName ) {
				h = true;
			} else {
				c++;
			}
		}
		mmOpenMenus.length = c+1;
	}
}

function MM_menuOverMenuItem(menuName, subMenuSuffix) {
	MM_menuResetTimeout();
	MM_menuHideSubmenus(menuName);
	if( subMenuSuffix ) {
		var subMenuName = "" + menuName + "_" + subMenuSuffix;
		MM_menuShowSubMenu(subMenuName);
	}
}

function MM_menuShowSubMenu(subMenuName) {
	MM_menuResetTimeout();
	var m = document.getElementById(subMenuName);
	m.style.visibility = "visible";
	m.style.zIndex = m.parentNode.style.zIndex + 10000;
	if( !mmOpenMenus ) {
		mmOpenMenus = new Array;
	}
	mmOpenMenus[mmOpenMenus.length] = "" + subMenuName;
}

function MM_menuResetTimeout() {
	if (mmHideMenuTimer) clearTimeout(mmHideMenuTimer);
	mmHideMenuTimer = null;
}

function MM_menuShowMenu(menuName) {
	MM_menuHideMenus();
	MM_menuResetTimeout();
	MM_menuShowSubMenu(menuName);
}

function MM_menuInstallHandlers() {
	for(var i = 0; i < arguments.length; i++) {
		var m = document.getElementById(arguments[i]);
		m.style.visibility = "hidden";
		m.style.position = "absolute";
		m.style.borderStyle = "solid";
		var aUl = m.getElementsByTagName("UL");
		for (var j = 0; j < aUl.length; j++) {
			aUl[j].style.visibility = "hidden";
			aUl[j].style.position = "absolute";
			aUl[j].style.borderStyle = "solid";
		}
		var aLi = m.getElementsByTagName("LI");
		for (var j = 0; j < aLi.length; j++) {
			aLi[j].style.cssFloat = "left";
			aLi[j].style.styleFloat = "left";
		}
		var aA = m.getElementsByTagName("A");
		for (var j = 0; j < aA.length; j++) {
			aA[j].onmouseover = MM_menuMouseOver;
			aA[j].onmouseout = MM_menuMouseOut;
			aA[j].mouseoutTimer = arguments[i + 1];
		}
		
		i++;
	}
}

function MM_menuMouseOver() {
	var mId = this.parentNode.parentNode.id;
	var smId = this.parentNode.getElementsByTagName("UL").length ? this.parentNode.getElementsByTagName("UL")[0].id : null;
	if (smId) smId = smId.replace(mId + "_", "");
	MM_menuOverMenuItem(mId, smId);
}

function MM_menuMouseOut() {
	MM_menuStartTimeout(this.mouseoutTimer);
}