var openBox = null;
var openSubMenu = null;
var hideTimer = null;

function subMenuTimeout(hideTimeout) {
	hideTimer = setTimeout("hideSubBox()", hideTimeout);	
}

function hideSubBox() {
	resetTimeout();
	if(openBox) {
		var c = document.getElementById(openBox);
		c.style.visibility = "inherit";
		openBox = null;
	}
	if( openSubMenu ) {
		for(var i in openSubMenu) {
			var m = document.getElementById(openSubMenu[i]);
			m.style.visibility = "hidden";			
		}
		openSubMenu = null;
	}
}

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

function subMenuOver(menuName, subMenuSuffix) {
	resetTimeout();
	hideSubMenu(menuName);
	if( subMenuSuffix ) {
		var subMenuName = "" + menuName + "_" + subMenuSuffix;
		showSubMenu(subMenuName);
	}
}

function showSubMenu(subMenuName) {
	resetTimeout();
	var e = document.getElementById(subMenuName);
	e.style.visibility = "inherit";
	if( !openSubMenu ) {
		openSubMenu = new Array;
	}
	openSubMenu[openSubMenu.length] = "" + subMenuName;
}

function resetTimeout() {
	if (hideTimer) clearTimeout(hideTimer);
	hideTimer = null;
}

function subMenuShow(containName, menuName, xOffset, yOffset, triggerName) {
	hideSubBox();
	resetTimeout();
	subMenuShowContainer(containName, xOffset, yOffset, triggerName);
	showSubMenu(menuName);
}

function subMenuShowContainer(containName, x, y, triggerName) {	
	var c = document.getElementById(containName);
	var s = c.style;
	s.visibility = "inherit";
	s.left=x+"px";
	s.top=y+"px";
	openBox = "" + containName;
}