(function($){
	$.fn.extend({
		rotateImages: function(imgs,options) {
			var defaults = {
				interval:'5s',
				transitionTime:'500ms'
			};
			options = (typeof options == 'object') ? $.extend(defaults,options) : defaults;
			return this.each(function(){
				var $this = $(this);
				var w = $this.width();
				var h = $this.height();
				var div = $this.wrap('<div />').parent();
				div.css({position:'relative'});
				// Preload all images
				imgs = $.map(imgs,function(e){var img=new Image();img.src=e;return img;});
				imgs.unshift(this);
				// Add the second img tag
				var posCss = {position:'absolute',top:'0px',left:'0px'};
				//$this.css(posCss);
				div.append($('<img />',{alt:$this.attr('alt')}).css(posCss).attr('src',imgs[1].src).hide());
				var currentIdx = 1;
				div.everyTime(options.interval,function(){
					var $div = $(this);
					var $current = $div.children(':visible');
					var $next = $div.children(':hidden');
					$current.fadeOut(options.transitionTime,function(){
						currentIdx = (currentIdx == (imgs.length - 1)) ? 0 : (currentIdx+1);
						this.src = imgs[currentIdx].src;
						$(this).css({zIndex:0});
					});
					$next.fadeIn(options.transitionTime,function(){
						$(this).css({zIndex:1});
					});
				},0);
			});
		}
	});
})(jQuery);
