  window.addEvent('domready', function(){
    var submenu = null,
        delay   = null,
        top     = 92;
    $$('ul.submenu ul.subnav').addClass('invisible');
    $$('ul.submenu li').each(function(e) {
      
        e.addEvent('mouseenter', function(ev) {
          submenu = e.getElement('ul.subnav');
          showSubmenu(e,submenu);
          e.getAllNext().each(function(el) {
            hideSubmenu(el, el.getElement('ul.subnav'), 50);
          });
          e.getAllPrevious().each(function(el) {
            hideSubmenu(el, el.getElement('ul.subnav'), 50);
          });
        });
        e.addEvent('mouseleave', function(ev) {
          submenu = e.getElement('ul.subnav');
          hideSubmenu(e, submenu);

        });
    });

    function showSubmenu(e, submenu) {
      if(submenu != null) {
        submenu.setStyle('top', e.getCoordinates().top - top);
        submenu.removeClass('invisible');
        if(!submenu.visible) {
          submenu.fade('hide');
          submenu.fade('in');
          submenu.visible = true;
        }

        if(delay != null) clearTimeout(delay);
      }
    }

    function hideSubmenu(e, submenu, _delay) {
      _delay = $defined(_delay) ? _delay : 500;
      if(submenu != null) {
        delay = submenu.fade.delay(_delay, submenu, ['out']);
        setFalse = function() {
          try {
            submenu.visible = false;
          }catch(e) {}
        };
        setFalse.delay(750);
      }
    }
  });
