// JavaScript Document
// Page-specific script 



YAHOO.example.OverlayManager = new YAHOO.widget.OverlayManager();


// Data used to built product category submenus

var g_aYProducts = {

	about: [
	
		{ text: "Overview of the Bi-College MSA", url: "index.php?cid=20" },
		{ text: "Board Members", url: "index.php?cid=30" },
		{ text: "Minutes", url: "index.php?cid=31" }

		],

	events: [

		{ text: "Current Events", url: "index.php?cid=40" },
		{ text: "Past Events", url: "index.php?cid=50" }

	],
	
	resources: [

		{ text: "Islam & Muslims", url: "index.php?cid=60" },
		{ text: "Women & Islam", url: "index.php?cid=70" },
		{ text: "Prayer, Qu'ran, and Hadith", url: "index.php?cid=80" },
		{ text: "Local Mosques", url: "index.php?cid=90" },
		{ text: "Du'a", url: "index.php?cid=100" },
		{ text: "FAQs", url: "index.php?cid=110" }
	]

};

var g_nTimeoutId;


// "mouseover" event handler for the root menu

function onMenuBarMouseOver(p_sType, p_aArguments, p_oMenu) {

	if(g_nTimeoutId) {

		window.clearTimeout(g_nTimeoutId);

	}

}

// "mouseover" event handler for each submenu

function onSubmenuMouseOver(p_sType, p_aArguments, p_oMenu) {

	if(g_nTimeoutId) {

		window.clearTimeout(g_nTimeoutId);

	}

}


// "mouseout" event handler for each submenu

function onSubmenuMouseOut(p_sType, p_aArguments, p_oMenu) {

	function hideMenu() {

		p_oMenu.hide();

	}


	if(g_nTimeoutId) {

		window.clearTimeout(g_nTimeoutId);

	}

	g_nTimeoutId = window.setTimeout(hideMenu, 750);

}


// "mousedown" handler for the document

function onDocumentMouseDown(p_oEvent) {

	YAHOO.example.OverlayManager.hideAll();

}


// "mouseover" handler for each item in the menu bar

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 menu bar

function onMenuBarItemMouseOut(p_sType, p_aArguments, p_oMenuItem) {

	this.cfg.setProperty("selected", false);


	var oSubmenu = this.cfg.getProperty("submenu");

	if(oSubmenu) {

		var oEvent = p_aArguments[0],
			oRelatedTarget = YAHOO.util.Event.getRelatedTarget(oEvent);

		if(
			!(
				oRelatedTarget == oSubmenu.element || 
				this._oDom.isAncestor(oSubmenu.element, oRelatedTarget)
			)
		) {

			oSubmenu.hide();

		}

	}

};




// "load" handler for the window

function onWindowLoad() {

	var oMenuBar = new YAHOO.widget.MenuBar("yproducts");

	var i = oMenuBar.getItemGroups()[0].length - 1,
		oMenuItem,
		oSubmenu,               
		aSubmenuItems,
		nSubmenuItems;


	do {

		oMenuItem = oMenuBar.getItem(i);
		
		aSubmenuItems = g_aYProducts[oMenuItem.element.id];

		if(aSubmenuItems) {
		
			// Create a submenu

			oSubmenu = new YAHOO.widget.Menu(
							(oMenuItem.element.id + "menu")
						);

			// Add a "mouseover" event handler to the submenu

			oSubmenu.mouseOverEvent.subscribe(
					onSubmenuMouseOver, 
					oSubmenu, 
					true
				);


			// Add a "mouseout" event handler to the submenu

			oSubmenu.mouseOutEvent.subscribe(
					onSubmenuMouseOut,
					oSubmenu, 
					true
				);


			// Add items to the submenu

			nSubmenuItems = aSubmenuItems.length;

			for(var n=0; n<nSubmenuItems; n++) {

				oSubmenu.addItem(
					new YAHOO.widget.MenuItem(
						aSubmenuItems[n].text, 
						{ url: aSubmenuItems[n].url}
						)
					);

			}


			// Add the submenu to its parent item in the main menu

			oMenuItem.cfg.setProperty("submenu", oSubmenu);

			YAHOO.example.OverlayManager.register(oSubmenu);
			
		}
	
	}
	while(i--);


	// Render the menubar and corresponding submenus
	
	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, 
			this
		);

		aMenuBarItems[i].mouseOutEvent.subscribe(
			onMenuBarItemMouseOut, 
			this
		);
	
	}
	while(i--);


	// Add a "mouseover" handler to the menubar

	oMenuBar.mouseOverEvent.subscribe(
			onMenuBarMouseOver, 
			oMenuBar, 
			true
		);


	// Add a "mousedown" handler to the document

	YAHOO.util.Event.addListener(
			document, 
			"mousedown", 
			onDocumentMouseDown
		);

}


// Add a "load" handler for the window

YAHOO.util.Event.addListener(window, "load", onWindowLoad);



