var m_CurrentMenu = "";

/////////////////////////////////////////////////////////////////////////////////

/**
 * Returns the left offset of an element, relative to the window.
 * @param elem the element to get the left offset of.
 * @return the element's left offset, relative to the window.
 */
function getWindowOffsetLeft(elem)
{
	var result = elem.offsetLeft;

	while( ( elem = elem.offsetParent ) != null )
		result += elem.offsetLeft;

	return result;
} // function getWindowOffsetLeft(elem)

/////////////////////////////////////////////////////////////////////////////////

/**
 * Returns the top offset of an element, relative to the window.
 * @param elem the element to get the top offset of.
 * @return the element's top offset, relative to the window.
 */
function getWindowOffsetTop(elem)
{
	var result = elem.offsetTop;

	while( ( elem = elem.offsetParent ) != null )
		result += elem.offsetTop;

	return result;
} // function getWindowOffsetTop(elem)

/////////////////////////////////////////////////////////////////////////////////

function hideCurrentMenu()
{
	if( m_CurrentMenu != "" )
		hideMenu( m_CurrentMenu );
} // function hideCurrentMenu()

/////////////////////////////////////////////////////////////////////////////////

function hideMenu(IDPrefix)
{
	var menuItems = document.getElementById( IDPrefix + "Items" );

	menuItems.style.display = "none";
	menuItems.style.visibility = "hidden";

	m_CurrentMenu = "";
} // function hideMenu(menuID)

/////////////////////////////////////////////////////////////////////////////////

function inCurrentMenu(event)
{
	if( isIE() )
		window.event.cancelBubble = true;
	else // !isIE()
		event.stopPropagation();
} // function inCurrentMenu(event)

/////////////////////////////////////////////////////////////////////////////////

function initializeMenu()
{
	if( document.captureEvents )
		document.captureEvents( Event.MOUSEOVER );

	document.onmouseover = hideCurrentMenu;
} // function initializeMenu()

/////////////////////////////////////////////////////////////////////////////////

function isIE()
{
	return ( document.all ? true : false );
} // function isIE()

/////////////////////////////////////////////////////////////////////////////////

function showMenu(event, IDPrefix)
{
	var menuItems = document.getElementById( IDPrefix + "Items" );
	var parentItem = document.getElementById( IDPrefix + "Menu" );

	// hide the currently displayed menu item's, if any
	hideCurrentMenu();

	menuItems.style.left = getWindowOffsetLeft( parentItem );
	menuItems.style.top = getWindowOffsetTop( parentItem ) + parentItem.offsetHeight;
	menuItems.style.display = "block";
	menuItems.style.visibility = "visible";

	m_CurrentMenu = IDPrefix;

	if( isIE() )
		window.event.cancelBubble = true;
	else // !isIE()
		event.stopPropagation();
} // function showMenu(parentID, menuID)

