
// global variables

	var timeOnID = null
	var MenuCnt = 50;
    var curMenuIdx = 1;
    var Menus = new Array(MenuCnt);
    var ActiveMenus = new Array(MenuCnt);
    var menuLayers = new Array(MenuCnt);


	function MenuOut()
    {
        timeOnID = setTimeout("HideAllMenus()", 1000);
    }

    function MenuOver(id, myZindex, refObj)
    {
        // alert(id)
        if(timeOnID != null)
            clearTimeout(timeOnID);

        if(id!="None" && id!=null)
        {
            SetMenuXY(id, refObj);
            ShowMenu(id);
        }
        else
        {
            HideAllaboveLayerMenus(myZindex+1);
        }      
    }

    function SetMenuXY(movingObj, refObj)
    {
        var x = getElementLeft(refObj);
        var y = getElementTop(refObj);

        var width = getElementWidth(refObj);
        var hight = getElementHeight(refObj);

        moveXY(movingObj,x+width,y+hight/2);

    }

    function ShowMenu(id)
    {
        //alert("in ShowMenu : " + id)
        HideAllaboveLayerMenus(GetZIndex(id));
        ActiveMenus[curMenuIdx]=id;
        curMenuIdx++;
        changeObjectVisibility(id,"visible");
    }

    function HideAllMenus()
    {
        //alert(" in HideAllMenus ")
        for(i=1;i<curMenuIdx;i++)
        {
            changeObjectVisibility(ActiveMenus[i],"hidden");
        }
        curMenuIdx=1;
    }

    function HideAllaboveLayerMenus(LayerIndex)
    {
        //alert(" in HideAllaboveLayerMenus ")
        var hideCnt = 0;
        for(i=1;i<curMenuIdx;i++)
        {
            if(GetZIndex(ActiveMenus[i]) >= LayerIndex)
            {
                changeObjectVisibility(ActiveMenus[i],"hidden");
                   hideCnt++;
            }
        }

        // temporary store the all visible menu's id
        var tempArr = new Array(curMenuIdx-hideCnt);
        var j=1;
        for(i=1;i<curMenuIdx;i++)
        {
            if(GetVisibility(ActiveMenus[i]) == "visible")
            {
                tempArr[j] = ActiveMenus[i];
                j++;
            }
        }

        // put all the visible menu's id in active menu array
        curMenuIdx=1;
        for(i=1;i<j;i++)
        {
            ActiveMenus[i] = tempArr[i];
            curMenuIdx++;
        }
    }

    function GetZIndex(id)
    {
        //alert(" in GetZIndex ")
        var style = getStyleObject(id,document);
        return style.zIndex;
    }

    function GetVisibility(id)
    {
        var style = getStyleObject(id,document);
        return style.visibility;
    }
