<!-- Page-specific script -->
  // "load" handler for the window
  YAHOO.example.onWindowLoad = function(p_oEvent) {

  // Hides submenus of the root Menubar instance
  function hideSubmenus() {
      if(oMenuBar.activeItem) {
          var oSubmenu = oMenuBar.activeItem.cfg.getProperty("submenu");
          if(oSubmenu) {
              oSubmenu.hide();
          }
      }
  }    

  // Cancels the call to "hideSubmenus"
  function cancelTimer() {
      if(nTimeoutId) {
          window.clearTimeout(nTimeoutId);
      }
  }

  // "mouseout" event handler for each submenu of the menubar
  function onSubmenuMouseOut(p_sType, p_aArguments, p_oMenu) {
      cancelTimer();
      nTimeoutId = window.setTimeout(hideSubmenus, 750);
  }

  // "mouseover" handler for each item in the menubar
  function onMenuBarItemMouseOver(p_sType, p_aArguments, p_oMenuItem) {
      var oActiveItem = this.parent.activeItem;
  
      // Hide any other submenus that might be visible
      if(oActiveItem && oActiveItem != this) {
          this.parent.clearActiveItem();
      }
  
      // Select and focus the current MenuItem instance
      this.cfg.setProperty("selected", true);
      this.focus();
  
      // Show the submenu for this instance
      var oSubmenu = this.cfg.getProperty("submenu");
      if(oSubmenu) {
          oSubmenu.show();
      }
  }

  // "mouseout" handler for each item in the menubar
  function onMenuBarItemMouseOut(p_sType, p_aArguments, p_oMenuItem) {
      this.cfg.setProperty("selected", false);
  
      var oSubmenu = this.cfg.getProperty("submenu");
  
      if(oSubmenu) {
  
          var oDOMEvent = p_aArguments[0],
              oRelatedTarget = YAHOO.util.Event.getRelatedTarget(oDOMEvent);
  
          if(
              !(
                  oRelatedTarget == oSubmenu.element || 
                  this._oDom.isAncestor(oSubmenu.element, oRelatedTarget)
              )
          ) {
              oSubmenu.hide();
          }
      }
  }

  var nTimeoutId;

  // Instantiate and render the menubar and corresponding submenus

  var oMenuBar = new YAHOO.widget.MenuBar("absolute_inspections");
  oMenuBar.render();


  /*
      Add a "mouseover" and "mouseout" event handler each item 
      in the menu bar 
  */               

  var aMenuBarItems = oMenuBar.getItemGroups()[0],
      i = aMenuBarItems.length - 1;

  do {
      aMenuBarItems[i].mouseOverEvent.subscribe(onMenuBarItemMouseOver);
      aMenuBarItems[i].mouseOutEvent.subscribe(onMenuBarItemMouseOut);
  }
  while(i--);

  // Assign event handlers

  // Add a "mouseover" handler to the menubar

  oMenuBar.mouseOverEvent.subscribe(cancelTimer);

  var oHomeBuyersSellers = oMenuBar.getItem(0).cfg.getProperty("submenu"),
      oPropertyOwners = oMenuBar.getItem(1).cfg.getProperty("submenu"),
      oAbsoluteService = oMenuBar.getItem(2).cfg.getProperty("submenu");
      oOrderInspection = oMenuBar.getItem(3).cfg.getProperty("submenu"),

  // Add a "mouseover" event handler to each submenu
  
  oHomeBuyersSellers.mouseOverEvent.subscribe(cancelTimer);
  oPropertyOwners.mouseOverEvent.subscribe(cancelTimer);
  oAbsoluteService.mouseOverEvent.subscribe(cancelTimer);
  oOrderInspection.mouseOverEvent.subscribe(cancelTimer);

  // Add a "mouseout" event handler to each submenu

  oHomeBuyersSellers.mouseOutEvent.subscribe(onSubmenuMouseOut, oHomeBuyersSellers, true);
  oPropertyOwners.mouseOutEvent.subscribe(onSubmenuMouseOut, oPropertyOwners, true);
  oAbsoluteService.mouseOutEvent.subscribe(onSubmenuMouseOut, oAbsoluteService, true);
  oOrderInspection.mouseOutEvent.subscribe(onSubmenuMouseOut, oOrderInspection, true);

  // Add a "click" handler to the document

  YAHOO.util.Event.addListener(document, "click", hideSubmenus);
}

  // Add a "load" handler for the window

  YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);

