// Dependecies:
// -----------
//
//      stack.js
//

var menuDelay = 500;
var timerID = null;
var openMenus = new Stack();

function closeMenu(to_menu1, to_menu2)
{
    while ((openMenus.Top() != to_menu1) && (openMenus.Top() != to_menu2) && (openMenus.Top() != null))
    {
        showMenu(openMenus.Top(), false);
        if (timerID != null) clearTimeout(timerID);
    }
}

function startCloseMenu(wait)
{
    if (openMenus.Top() != null)
        timerID = setTimeout('closeMenu(null, null)', wait);
}

function cancelCloseMenu()
{
    clearTimeout(timerID);
}

function showMenu(menu, visible)
{
    var menuID = menu;
    var agent = navigator.userAgent.toLowerCase();
    var msie = ((agent.indexOf("msie 6") != -1) && (agent.indexOf("opera") == -1));

    if (menu == null) return;
    menu = document.getElementById(menuID);

    if (((menu.style.visibility == 'visible') && visible) || ((menu.style.visibility == 'hidden') && !visible)) return;

//    if (msie) menu.filters[1].Apply();
    if (visible)
    {
        menu.style.visibility = 'visible';
        if (!openMenus.Contains(menuID))
            openMenus.Push(menuID);
    }
    else
    {
        menu.style.visibility = 'hidden';
        openMenus.Pop();
    }
//    if (msie) menu.filters[1].Play();
}

