var g_nHideTimerID = 0;
var g_nDelayTimerID = 0;
var g_aInitTopSubmenus = new Array();
var g_nNewTopSubmenuNumber = 0;
var g_aInitSubSubmenus = new Array();
var g_nNewSubSubmenuNumber = 0;
var g_aActiveSubmenus = new Array();
var g_nActiveSubmenus = 0;
var g_oActiveMenuItem = null;
var g_aActiveGroupToggle = new Array();

function InitializeMenu()
{
    if (!g_bDHTML) return;
    var i;
    for (i = 0; i < g_aInitTopSubmenus.length; i++)
    {
        var oMenu = g_aInitTopSubmenus[i];
        var oParent = oMenu.parentElement;
        oMenu.style.top = oParent.offsetTop + 30;
        oMenu.style.left = oParent.offsetLeft;
    }
    for (i = g_aInitSubSubmenus.length - 1; i >= 0; i--)
    {
        var oMenu = g_aInitSubSubmenus[i];
        var oParent = oMenu.parentElement;
        if (g_bIE4Pos)
            oMenu.style.top = oParent.offsetTop + 25;
        else
            oMenu.style.top = oParent.offsetTop - 2;
        oMenu.style.left = oParent.offsetLeft + oParent.offsetWidth - 6;
    }
}

function StartHideTimer(strCode, nTimeout)
{
    StopHideTimer();
    g_nHideTimerID = window.setTimeout(strCode, nTimeout);
}

function StopHideTimer()
{
    if (g_nHideTimerID != 0)
    {
        window.clearTimeout(g_nHideTimerID);
        g_nHideTimerID = 0;
    }
}

function StartDelayTimer(strCode, nTimeout)
{
    StopDelayTimer();
    g_nDelayTimerID = window.setTimeout(strCode, nTimeout);
}

function StopDelayTimer()
{
    if (g_nDelayTimerID != 0)
    {
        window.clearTimeout(g_nDelayTimerID);
        g_nDelayTimerID = 0;
    }
}

function ActivateSubmenu(bRootMenu, strSubmenuID)
{
    if (!g_bDHTML) return;
    StartDelayTimer("ActivateSubmenu2(" + (bRootMenu ? "true" : "false") + ", '" + strSubmenuID + "');", 200);
    window.event.cancelBubble = true;
}

function ActivateSubmenu2(bRootMenu, strSubmenuID)
{
    StopHideTimer();
    if (bRootMenu)
    {
        HideSubmenu("");
    }
    var oMenu = GetElement(strSubmenuID);
    oMenu.style.visibility = "visible";
    g_aActiveSubmenus[g_nActiveSubmenus++] = oMenu;
}

function DeactivateSubmenu()
{
    if (!g_bDHTML) return;
    StopDelayTimer();
    StartHideTimer("HideSubmenu('');", 750);
}

function DeactivateSubSubmenu(strSubmenuID)
{
    StartHideTimer("HideSubmenu('" + strSubmenuID + "');", 200);
}

function HideSubmenu(strSubmenuID)
{
    if (strSubmenuID == "")
    {
        var i;
        for (i = g_nActiveSubmenus - 1; i >= 0; i--)
        {
            g_aActiveSubmenus[i].style.visibility = "hidden";
            g_aActiveSubmenus[i] = null;
        }
        g_nActiveSubmenus = 0;
    }
    else
    {
        var oMenu = GetElement(strSubmenuID);
        while ((g_nActiveSubmenus > 0) && (g_aActiveSubmenus[g_nActiveSubmenus - 1] != oMenu))
        {
            g_aActiveSubmenus[g_nActiveSubmenus - 1].style.visibility = "hidden";
            g_aActiveSubmenus[g_nActiveSubmenus - 1] = null;
            g_nActiveSubmenus--;
        }
    }
}

function ActivateMenuItem(oMenuItem)
{
    if (!g_bDHTML) return;
    DeactivateMenuItem();
    g_oActiveMenuItem = oMenuItem;
    g_oActiveMenuItem.children(0).className = "active";
    g_oActiveMenuItem.children(1).className = "active";
    DeactivateSubSubmenu(oMenuItem.parentElement.parentElement.id);
    window.event.cancelBubble = true;
}

function DeactivateMenuItem()
{
    if (!g_bDHTML) return;
    if (g_oActiveMenuItem != null)
    {
        g_oActiveMenuItem.children(0).className = "notactive";
        g_oActiveMenuItem.children(1).className = "notactive";
        g_oActiveMenuItem = null;
    }
}

function Navigate(strTarget)
{
    DeactivateMenuItem();
    HideSubmenu("");
    window.navigate(strTarget);
}

function ToggleLeftSubmenu(strSubmenuID)
{
    if (!g_bDHTML) return;
    var oSubmenu = GetElement(strSubmenuID);
    if (oSubmenu != null)
    {
        if (oSubmenu.style.display == "none")
        {
            oSubmenu.style.display = "";
        }
        else
        {
            oSubmenu.style.display = "none";        
        }
        AdjustBodyHeight();
    }
}

function ToggleLeftSubmenuGroup(strSubmenuID, nGroupToggle)
{
    if (!g_bDHTML) return;
    var oSubmenu = GetElement(strSubmenuID);
    if (oSubmenu != null)
    {
        if (oSubmenu.style.display == "none")
        {
            if (g_aActiveGroupToggle[nGroupToggle] != null)
                g_aActiveGroupToggle[nGroupToggle].style.display = "none";
            oSubmenu.style.display = "";
            g_aActiveGroupToggle[nGroupToggle] = oSubmenu;
        }
        else
        {
            g_aActiveGroupToggle[nGroupToggle] = null;
            oSubmenu.style.display = "none";        
        }
        AdjustBodyHeight();
    }
}

function AdjustBodyHeight()
{
    ContentColumn.style.height = (LeftColumn.offsetHeight - 100).toString() + "px";
}
