(function($) {
	$.fn.randomShuffler = function(shuffledElements, fadeInTime, fadeOutTime, timeout) {
	    fadeInTime = fadeInTime || 3000;
	    fadeOutTime = fadeOutTime || 3000;
	    timeout = timeout || 9000;
	
		$(shuffledElements).hide();
		
		var $old_element;
		var $new_element;
		var old_index = 0;
		var new_index = 0;
		
		function shuffleElement() {
			$old_element = $new_element;
			old_index = new_index;
			while ($(shuffledElements).length > 1 && old_index == new_index) { // don't display the same element twice in a row
				new_index = Math.floor(Math.random()*$(shuffledElements).length);
			}
			$new_element = $(shuffledElements + ":eq(" + new_index + ")");
			if ($old_element != undefined) {
				$old_element.fadeOut(fadeOutTime, function() {
					$new_element.fadeIn(fadeInTime);
				});
			} else {
				$new_element.fadeIn(fadeInTime);
			}
			setTimeout(shuffleElement, timeout);
		}
		
		$(this).show();
		shuffleElement();
	}
})(jQuery);
