var g_menu_button;
var g_menu;
// Show a menu beneath a button.
function showMenu(menuID, button)
{
	g_menu_button = button;
	g_menu = document.getElementById(menuID);
	//var button = document.getElementById(buttonID);
	var buttonPos = getPos(button);
	var buttonSize = getDim(button);
	
	var menuTop = buttonPos[1] + buttonSize[1] - 10;
	var menuLeft = buttonPos[0] + buttonSize[0] - 200;
	//alert(menuSize[0]);
	g_menu.style.left = menuLeft + "px";
	g_menu.style.top = menuTop + "px";
	g_menu.style.display = 'block';
	
	//setTimeout(menuHoverCheck(),3000);
}
function hideMenu(e)
{
	// Close the active menu if the mouse is outside of the menu button AND the menu itself.
	var mousePos = getMousePos(e);
	
	if ( (!isPointInElement(g_menu, mousePos[0], mousePos[1])) && (!isPointInElement(g_menu_button, mousePos[0], mousePos[1])) )
		g_menu.style.display = 'none';
	
}
function isPointInElement(elem, ptX, ptY)
{
	var pos = getPos(elem);
	var dim = getDim(elem);
	
	if (ptX < pos[0])
		return false;
	if (ptX > pos[0] + dim[0] - 1)
		return false;
	if (ptY < pos[1])
		return false;
	if (ptY > pos[1] + dim[1] - 1)
		return false;
		
	return true;
}
function getMousePos(e)
{
	var posx = 0;
	var posy = 0;

	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return [posx,posy];
}
function getPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		do
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
function getDim(obj)
{
	return [obj.offsetWidth,obj.offsetHeight];
}
