function initMenu()
{
    var e, m;
    try {
        m = $("the-top-menu");
        window.canhide = true;
        window.topitems = filter(
            function(n){ return n.getAttribute("NodId"); },
            m.getElementsByTagName("a"));
        window.submenu = $("the-submenu");
        window.subitems = filter(
            function(n){ return n.getAttribute("ParId"); },
            window.submenu.getElementsByTagName("dt"));
        foreach(
            function(n){
                n.onmouseover = function(){
                    var e;
                    try {
                        inMenu(n);
                    } catch(e){}
                };
            },
            window.topitems);
        m.onmouseover = inMenu;
        m.onmouseout = outMenu;
        window.submenu.onmouseover = inMenu;
        window.submenu.onmouseout = outMenu;
    } catch(e) {}
}

function killMenu()
{
    var e;
    try {
        window.submenu.style.display = "none";
        document.onclick = null;
        unblockMenu();
    } catch(e){}
}

function hideMenu()
{
    var e;
    try{
        if(window.canhide) setTimeout(killMenu, 1500);
    } catch(e){}
}

function showMenu(el)
{
    var e, pid, o = false;
    try {
        pid = parseInt(el.getAttribute("NodId"));
        foreach(
            function(n){
                var p = parseInt(n.getAttribute("ParId"));
                n.style.display = (p==pid ? "" : "none");
                if(p==pid) o = true;
            },
            window.subitems);
        if(o){
            if(!document.onclick) document.onclick = killMenu;
            position(window.submenu, el, "tl", 14, 26);
            window.submenu.style.display = "";
        } else {
            killMenu();
        }
    } catch(e){}
}

function outMenu()
{
    var e;
    try{
        unblockMenu();
        setTimeout(
            hideMenu,
            1000);
    } catch(e){}
}

function inMenu(el)
{
    var e;
    try{
        if("undefined"!=typeof(el)) showMenu(el);
        blockMenu();
    } catch(e){}
}

function blockMenu()
{
    window.canhide = false;
}

function unblockMenu()
{
    window.canhide = true;
}

window.onload_stack = [initMenu];

window.onload = function(){
    if(!window.onload_stack) return false;
    foreach(
        function(f){ f(); },
        window.onload_stack);
};
