window.addEvent('domready', function() {

    var active = false;
    var m = $$('.top-bar .menu li.active');
    active = $(m[0]);
    var dropDowns = $$('.banner ul').fade('hide').set('tween', {'link':'cancel'}).setStyle('display','block');

    var current = false;
    var lock = false;
    function hideDrops(remain) {
        dropDowns.each(function(item) {
            if(item != remain) item.fade('hide');
        });
    }
    function showActive() {
        var menu = active.retrieve('menu');
        hideDrops(menu);
//         if(menu) menu.fade('show');
    }

    $$('.top-bar .menu li').each(function(li) {
        var menu = $(li.get('dynfor'));
        if(menu) {
            var pos = li.getPosition(li.getParent('.top-bar'));
            menu.setStyle('left', pos.x); //XXX: fix this
        }
        li.store('menu', menu);
        var group = new HoverGroup({
            elements: [ li, $(li.get('dynfor')) ],
            delay: 60
        });
        li.store('group', group);
        group.addEvent('enter', function(event) {
            li.addClass('highlight');
            hideDrops(menu);
            lock = true;
            current = li;
            if(!menu) { return; }
            menu.fade('show')
        });
        group.addEvent('leave', function(event) {
//             if(li == active) return;
            lock = false;
            current = false;
            li.removeClass('highlight');
            if(!menu) { showActive(); return;}
            else menu.fade('hide');
            (function(){ if(!lock) showActive(); }).delay(300);
        });
    });


    if($chk(active) && $chk(active.retrieve('menu'))) {
        var menu = active.retrieve('menu');
//         menu.fade('show');
    }
});