// JScript File

var ppExpandHider = 10;
var ppMoveMenu = 0;
var ppKeep = 0;
var ppActive = 0;

document.observe("dom:loaded", function() {
    new PeriodicalExecuter(function(pe) {
        pe.stop();
        $('headernav').descendants().each(function (e) {
            if (e.getAttribute("folderid"))
            {
                e.observe('mouseover',mover);
                e.observe('mouseout',mout);
                $('menu'+e.getAttribute("folderid")).observe('mouseover',keep);
                $('menu'+e.getAttribute("folderid")).observe('mouseout',unkeep);
            }
        });
    },0.2);
    function keep(e) {
        ppKeep = 1;
        //alert(e.element().up(1).id);
    }
    function unkeep(e) {
        ppKeep = 0;
        //alert(e.element().up(1).id.substr(4));
        if (ppActive == 0)
            hide(e.element().up(1).id.substr(4));
    }
    function mover(e) {
        var menu = $('menu'+e.element().getAttribute("folderid"));
        var topmenu = $('topmenu'+e.element().getAttribute("folderid"));
        var wrapper = $('headernavwrapper');
        var left = topmenu.cumulativeOffset().left-wrapper.cumulativeOffset().left;
        var hider = $('hiderest');
        menu.setStyle({'top':e.element().getHeight()+'px'});
        menu.setStyle({'left':left+ppMoveMenu+'px'});
        menu.setStyle({'display':'block'});
        hider.setStyle({'display':'block','height':menu.getHeight()+ppExpandHider+'px'});
        ppActive = e.element().folderid;
    }
    function mout(e) {
        hide(e.element().getAttribute("folderid"));
    }
    function hide(id) {
        //alert("hide"+id);
        ppActive = 0;
        new PeriodicalExecuter(function(pe) {
            pe.stop();
            if (ppKeep != 0)
                return;
            var menu = $('menu'+id);
            if (!menu)
                return;
            var topmenu = $('topmenu'+id);
            var hider = $('hiderest');
            menu.setStyle({'display':'none'});
            if (ppActive == 0)
                hider.setStyle({'display':'none'});
        }, 0.1);
    }
});
