
/* Start closure */
(function(jQuery) {
	
	//----- jQuery plugin to handle primary and secondary navigation
	jQuery.fn.siteNav = function(options)
	{
		//----- Support jQuery chaining
		return this.each(function()
		{
			var container = jQuery(this);
			var primary   = jQuery(options.primary  );
			var secondary = jQuery(options.secondary);

			//----- Set the rollover class names
			primary.each(function()
			{
				var existingClasses = this.className.split(' ', 10);
				var newClasses = [];
				for (var i = 0; i < existingClasses.length; i++)
				{
					newClasses[newClasses.length] = existingClasses[i] + '_selected';
				}
				jQuery( this ).data( 'hoverClass', newClasses.join( ' ' ) );
			});

			//----- Handle rollovers
			primary.mouseover(function()
			{
				resetNav(false);
				jQuery(this).find("ul").first().show(); //----- Show sub-menu
				jQuery(this).addClass("selected");      //----- Ensure primary nav remains selected even after css a:hover state ends
				jQuery(this).addClass(jQuery(this).data('hoverClass'));
			});

			//----- Handle rollouts
			primary  .mouseout(function() { resetNav(true); });
			secondary.mouseout(function() { resetNav(true); });

			function resetNav(useDelay)
			{
				container.stopTime();
				if (useDelay)
				{
					container.oneTime(100, function() { resetNav(false); }); //----- Delay to avoid unwanted hides in IE
				}
				else
				{
					secondary.hide();                //----- Hide all sub-menus
					primary.removeClass("selected"); //----- Hide all selected classes
					primary.each(function() {
						jQuery(this).removeClass(jQuery(this).data('hoverClass'));
					});
				}
			}
		});

	}; /* End jQuery.fn.siteNav */


})(jQuery); /* End closure */

