  YAHOO.namespace("Swaminarayan.Cricket.navBar");
    
  YAHOO.Swaminarayan.Cricket.navBar = function() {
      var hoverTimer,
          menus = [];
      function createDropDown(el) {
          var el = YAHOO.util.Dom.get(el);

          if(el) {
              YAHOO.util.Dom.addClass(el, 'menu');

              var contents = YAHOO.util.Dom.getElementsByClassName('sub', '*', el);
              if (contents.length) {
                  contents = contents[0];

                  menus[el.id] = new YAHOO.widget.Overlay(el.id + '-menu', { visible:false, constraintoviewport:false, zIndex:2 } );
                  menus[el.id].setBody(contents);
                  menus[el.id].render(el);

                  YAHOO.util.Event.on(el, 'mouseover', function(e) {
                      YAHOO.util.Dom.addClass(el, 'hover');

                      for (var menu in menus) {
                        if (menu !== this.id) {
                          YAHOO.util.Dom.removeClass(menu, 'hover');
                          menus[menu].hide();
                        }
                        else {
                          menus[this.id].cfg.setProperty('context', [this,'tl','bl']);
                          menus[this.id].show();
                          clearTimeout(hoverTimer);
                        }
                      }
                  });
                  YAHOO.util.Event.on(el, 'mouseout', function(e) {
                      var self = this;
                      hoverTimer = setTimeout(function() {
                          YAHOO.util.Dom.removeClass(el, 'hover');
                          menus[self.id].hide();
                      }, 500);
                  });

                  YAHOO.util.Event.on(el.getElementsByTagName('a'), 'focus', function(e) {
                      var self = YAHOO.util.Dom.getAncestorByClassName(this, 'menu');
                      menus[self.id].cfg.setProperty('context', [self,'tl','bl']);
                      menus[self.id].show();
                      clearTimeout(hoverTimer);
                  });
                  YAHOO.util.Event.on(el.getElementsByTagName('a'), 'blur', function(e) {
                      var self = YAHOO.util.Dom.getAncestorByClassName(this, 'menu');
                      hoverTimer = setTimeout(function() {
                          menus[self.id].hide();
                      }, 500);
                  });
              }
          }
      }
      return {
          init : function() {
              var bar = document.getElementById('navigation');
              if(bar) {
                  createDropDown('match');
                  createDropDown('members');
                  createDropDown('teams');

                  YAHOO.util.Event.on(bar.getElementsByTagName('li'), 'mouseenter', function(e) {
                      if(!YAHOO.util.Dom.hasClass(this, 'disabled') && this.parentNode.id === 'navigation') {
                          YAHOO.util.Dom.addClass(this, 'hover');
                      }
                  });
                  YAHOO.util.Event.on(bar.getElementsByTagName('li'), 'mouseleave', function(e) {
                      if(this.parentNode.id === 'navigation') {
                        YAHOO.util.Dom.removeClass(this, 'hover');
                      }
                  });
              }
          }
      };
  } ();
  
  YAHOO.Swaminarayan.Cricket.navBar.init();
