function init() {
	centerMenu();

	window.onresize = function() { centerMenu(); }
}

function centerMenu() {
	var container = document.getElementById("menuContainer");
	if ( container == null ) 
	{
		window.setTimeout(centerMenu, 50);
		return;
	}
		
	var left = ( container.clientWidth - document.getElementById("menu").clientWidth ) / 2;
	document.getElementById("menuCenter").style.left = left + "px";
}

function getAbsolutePosition(e) {
	var pos = { left: 0, top: 0 };
	
	if ( ( e.tagName != "BODY" ) && ( e.offsetParent != null ) ) {
		pos = getAbsolutePosition(e.offsetParent);
	}

	pos.left += e.offsetLeft;
	pos.top += e.offsetTop;

	return pos;
}

var menuTimeout = 50;
var menuTimeoutHandle = null;
var activeMenu = null;
var subMenuTimeoutHandle = null;
var activeSubMenu = null;

function hideMenu() {
	if (activeMenu) { activeMenu.style.visibility = "hidden"; }
}

function stopMenuTimeout() {
	if ( menuTimeoutHandle == null) { return; }
	
	window.clearTimeout(menuTimeoutHandle);
	menuTimeoutHandle = null;
}

function overItem(itemId) {
	stopMenuTimeout();
	hideMenu();
					
	var item = document.getElementById("menu_" + itemId);
	if ( item == null ) { return; }

	activeMenu = document.getElementById("submenu_" + itemId);
	if ( activeMenu == null ) { return; }

	activeMenu.style.left = item.offsetLeft + "px";
	activeMenu.style.top = "20px";

	activeMenu.style.visibility = "visible";
}

function outItem(itemId) {
	activeMenu = document.getElementById("submenu_" + itemId);
	if ( activeMenu == null ) { return; }

	menuTimeoutHandle = window.setTimeout(hideMenu, menuTimeout);
}

function hideSubMenu() {
	if (activeSubMenu) { activeSubMenu.style.visibility = "hidden"; }
}

function stopSubMenuTimeout() {
	if ( subMenuTimeoutHandle == null) { return; }
	
	window.clearTimeout(subMenuTimeoutHandle);
	subMenuTimeoutHandle = null;
}

function overSubItem(subMenuId) {
	stopMenuTimeout();
	
	stopSubMenuTimeout();
	hideSubMenu();
					
	var menu = document.getElementById("menu_" + subMenuId);
	if ( menu == null ) { return; }

	activeSubMenu = document.getElementById("submenu_" + subMenuId);
	if ( activeSubMenu== null ) { return; }

	var pos = getAbsolutePosition(menu);
	
	activeSubMenu.style.left = ( pos.left + menu.offsetWidth + 2 - 4) + "px"; 
	activeSubMenu.style.top = ( pos.top + 4 ) + "px";

	activeSubMenu.style.visibility = "visible";
}

function outMenu(itemId) {
	activeSubMenu = document.getElementById("submenu_" + itemId);
	if ( activeSubMenu== null ) { return; }

	subMenuTimeoutHandle = window.setTimeout(hideSubMenu, menuTimeout);
}

