var menuIsOpen = new Array();
var menuAwaitingClose = new Array();
var menuRollOutPosition = new Array();
var lastMenuOpened = "";
function closeLastMenu() {
		if(lastMenuOpened) {
			testCloseMenu(lastMenuOpened);
		}
}

function onMenuElementOver(menuName,shouldOpen) {
	menuAwaitingClose[menuName] = false;
	if(shouldOpen && !menuIsOpen[menuName]) {
		closeLastMenu();
		
		var oMenuObject = document.getElementById(menuName + "_menu");
		var oMenuContainer = document.getElementById(menuName + "_container");
		var oMenuLink = document.getElementById(menuName + "_link");
		var oLeftBackgroundCell = document.getElementById("leftBackgroundCell");
		
		oMenuContainer.style.display = "block";
		menuRollOutPosition[menuName] = -oMenuObject.offsetWidth * 2;
		rollOutMenu(menuName);
		
		oMenuContainer.style.height = (oMenuObject.offsetHeight + 3) + "px";
		oMenuContainer.style.left = (oLeftBackgroundCell.offsetWidth + oMenuLink.offsetLeft + oMenuLink.offsetWidth) + "px";
		oMenuContainer.style.top = (oMenuLink.offsetTop + oMenuLink.offsetHeight + 25) + "px";
		oMenuContainer.style.visibility = "visible";
		
		menuIsOpen[menuName] = true;
		lastMenuOpened = menuName;
	}
}

function onMenuElementOut(menuName) {
	menuAwaitingClose[menuName] = true;
	window.setTimeout("testCloseMenu('" + menuName + "');", 1000);
}

function rollOutMenu(menuName) {
	var oMenuObject = document.getElementById(menuName + "_menu");
	var currentPosition = menuRollOutPosition[menuName];
	
	if(currentPosition > - 2) {
		currentPosition = 0;
	}
	else{
		currentPosition = Math.floor(currentPosition / 2);
		window.setTimeout("rollOutMenu('" + menuName + "');", 33);	
	}
	
	menuRollOutPosition[menuName] = currentPosition;
	oMenuObject.style.left = currentPosition + "px";	
}

function testCloseMenu(menuName) {
	if(menuAwaitingClose[menuName]) {
		var oMenuContainer = document.getElementById(menuName + "_container");
		oMenuContainer.style.visibility = "hidden";
		menuIsOpen[menuName] = false;
	}
}
