(function($) {
	$.fn.jrotate = function(settings) {
		var config = {'foo': 'bar'};
		var interval = false;
		var active = false;
		
		if (settings) $.extend(config, settings);
	
		this.each(function() {
			$(this).mouseenter(function() {
				pauseSlides();
			});
			$(this).mouseleave(function() {
				startSlides();
			});
			$(this).children('li:not(:first)').hide();
			startSlides();
		});
	
		return this;
		
		function advanceSlide() {
			var nextSlide = $('li:visible', '#slides').next();
			if (!nextSlide.length) {
				nextSlide = $('li:first', '#slides');
			}
			$('li:visible', '#slides').effect('drop', {direction: 'down'}, 'def', function() {
				nextSlide.fadeIn();
			});
		}
		
		function pauseSlides() {
			clearInterval(interval);
			active = false;
		}
		
		function startSlides() {
			if (!active) {
				interval = setInterval(function() { advanceSlide(); }, 5000);
				active = true;
			}
		}
		
	};
	
})(jQuery);
