
var submenuTimer, submenutimerRunning = false;
var menuID = '';

var blnMouseIn = false  //To stablize the image swap
function MouseOver(ID){

    //Move onver the same menu, then do nothing to eliminate screen flash
    if (menuID == ID)
        return;
    
    if (menuID != '')
        turnOff();
        
    if(!blnMouseIn){
        var img = document.getElementById(ID);
        var swapSrc = img.getAttribute("swapsrc");
        img.setAttribute("swapsrc",img.src);
        img.src = swapSrc;
        blnMouseIn=true;
    }
    
  
    // display flyout if neccessary
    var flyout = document.getElementById(ID + '_FlyOut');
    if (flyout != null)
    {
        positionFlyout(document.getElementById(ID), flyout);
        menuID = ID;
    }
}

function MouseOut(ID){

	var flyout = document.getElementById(ID + '_FlyOut');
	if (flyout == null)
	{
		blnMouseIn=false;

		var img = document.getElementById(ID);
		var swapSrc = img.getAttribute("swapsrc");
		img.setAttribute("swapsrc",img.src);
		img.src = swapSrc;
	}
	else
	{
		submenuTimer = setTimeout("turnOff()",500);
		submenutimerRunning = true;
	}
}

function submenuMouseOver(submenuID, parentID)
{
    if (submenutimerRunning)
	    clearTimeout(submenuTimer);
    menuID = parentID;
    var item = document.getElementById(submenuID);
    item.className = 'submenuSelected';
}

function submenuMouseOut(submenuID)
{
    submenuTimer = setTimeout("turnOff()",500);
    submenutimerRunning = true;
    var item = document.getElementById(submenuID);
    item.className = 'submenu';
}

function turnOff()
{
    if (submenutimerRunning)
	    clearTimeout(submenuTimer);
    // unhover button
    var selectedMenu = document.getElementById(menuID);
    if (selectedMenu != null)
    {
       	blnMouseIn=false;

		var img = document.getElementById(menuID);
		var swapSrc = img.getAttribute("swapsrc");
		img.setAttribute("swapsrc",img.src);
		img.src = swapSrc;
    }
    // hide flyout
    var flyout = document.getElementById(menuID + '_FlyOut');
    if (flyout != null)
	    flyout.className = 'submenuHide';
    menuID = '';
    submenutimerRunning = false;
}

function relativePosition(currentObject) 
{
    var totalLeft = 0;
    var totalTop = 0;
    if (currentObject.offsetParent) 
    {
	    totalLeft = currentObject.offsetLeft;
	    totalTop = currentObject.offsetTop;

	    while (currentObject = currentObject.offsetParent)
	    {
	        totalLeft += currentObject.offsetLeft;
    		totalTop += currentObject.offsetTop;
	    }

    }
    return [totalLeft,totalTop];
}
 
function positionFlyout(selectedMenu, flyout)
{
    var offset = relativePosition(selectedMenu);
    flyout.className = 'submenuShow';
    flyout.style.left = offset[0];
    flyout.style.top = offset[1] + 24;
}
		