(function ($)
{
	// This works on <ul> tags with indefinite children - Developed by Nick Johnson of Sabramedia.com
	$.fn.navigationMenu = function( callerSettings )
	{
		var settings = $.extend({
			eventType : 'hover',
			menuWrap: 'ul'
			
		}, callerSettings || {});
		
		var navigation = $(this);

		$('li:has('+settings.menuWrap+')',this).children(settings.menuWrap).hide().end()
			.each(function(i){
				var menu = $(this).children(settings.menuWrap);
				
				$(this).mouseover(function(event){
					if(event.target){
						if($(menu).is(':hidden')){							
							$(menu).slideDown(100);
							menuHandler(menu);
						}
					}
				});
			});
				
		function menuHandler(menu)
		{
			var timerID = 0;
			
			switch(settings.eventType){
				case 'hover':
					$(menu).parent().hover(function(event){
						if(timerID){ clearTimeout(timerID) };
						timerID  = 0;
						$(this).siblings().children(settings.menuWrap).slideUp(100);
					},
					function(){
						timerID = setTimeout(function(){$(menu).slideUp(100)},300);
					});
				break;
				
				case 'toggle':
					// We can do this later
				break;
			
			}
		};
	};
})(jQuery);

// Plugin Calls Here
$(document).ready(function(){
	$('ul#nav-primary').navigationMenu();
});