// "load" handler for the window

YAHOO.example.onWindowLoad = function(p_oEvent) {


	// Hides submenus of the root Menu instance
	
	function hideSubmenus() {

		if(oMenu.activeItem) {
		
			var oSubmenu = oMenu.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
	
	function onSubmenuMouseOut(p_sType, p_aArguments, p_oMenu) {

		cancelTimer();

		nTimeoutId = window.setTimeout(hideSubmenus, 750);
	
	}


	var nTimeoutId;


	// Initialize the root menu

	var oMenu = new YAHOO.widget.Menu("popupmenu", { position: "static" });


	// Render the root menu and corresponding submenus

	oMenu.render();


	var item_1 = oMenu.getItem(3).cfg.getProperty("submenu");
	var item_2 = oMenu.getItem(8).cfg.getProperty("submenu");


	// Assign event handlers

	// Add a "mouseover" event handler to the root menu
	
	oMenu.mouseOverEvent.subscribe(cancelTimer);


	// Add a "mouseover" event handler to each submenu
	
	item_1.mouseOverEvent.subscribe(cancelTimer);
	item_2.mouseOverEvent.subscribe(cancelTimer);
	

	// Add a "mouseout" event handler to each submenu

	item_1.mouseOutEvent.subscribe(onSubmenuMouseOut, item_1, true);
	item_2.mouseOutEvent.subscribe(onSubmenuMouseOut, item_2, 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);
