(function($){
   $.fn.limenu = function(options) {
        var menu = $(this);
		var timeout    = 0;
		var closeTimer = 0;
		var visibleItem = 0;
		var divider = options.dividerBackground;
        $(' > li.divider', menu).css('background', divider);
		function init()
		{  
		   resetTime();
		   resetAll();
		   visibleItem = $(this).find('ul').css('visibility', 'visible');
		}
		
		function dropSubmenu()
		{  resetTime();
		   resetAll();
		   visibleItem = $(this).find('ul').css('visibility', 'visible');
		   $(this).addClass('dropped');
		   $('.dropped > a').removeClass('selected').css('color', 'gray');
		}
		
		function resetAll()
		{  
		   if(visibleItem) {visibleItem.css('visibility', 'hidden')};
		}
		
		function resetSubmenu()
		{
		   $('.drop > a').css('color', '#000000');
		   $('#selected').css('color', 'gray').addClass('selected');
		   $(' > li.drop', menu).removeClass('dropped');
		}
		
		function resetTimer()
		{  
		  closeTimer = window.setTimeout(resetAll, timeout);
		}
		
		function resetTime()
		{  if(closeTimer)
		   {  
		      window.clearTimeout(closeTimer);
		      closeTimer = null;
		   }
	   }
	   $(' > li', menu).bind('mouseover', init);
	   $(' > li', menu).bind('mouseout',  resetTimer);
	   $(' > li.drop', menu).bind('mouseover', dropSubmenu);
	   $(' > li.drop', menu).bind('mouseout', resetSubmenu);
   }
})(jQuery);