(function($){  
	$.fn.rotimage = function(options) {  
		
		if (this.length > 1) { 
            this.each(function() { $(this).rotimage(options) }); 
            return this;
        }
			
		var ri = this;
		var $defaults = {
			timeout: 5000,
			initial_timeout: 5000,
			//random: false,
			curr: 0
		
		};
		var opts = $.extend($defaults, options);
		var curr = 0;

		
		function myFade(images, parents){
			setTimeout(function(){ myFade(images,parents);},opts.timeout);
			next = (curr + 1) % images.length;
			$(parents[curr]).animate({opacity: 0},2000, function(){$(this).css({display: 'none'})});
			$(parents[next]).css({display: 'block'}).animate({opacity: 1},2000);
			curr = next;
		}
		var initialize = function() {
			var images = ri.find('img');
			if(images.length > 1)
			{
				var parents = images.parent();
				parents.css({display : 'block'});
				for(i = 1; i < parents.length; i++)
				{
					$(parents[i]).fadeTo(0,0);
				}
				setTimeout(function(){
					myFade.call(ri,images, parents)
				},opts.initial_timeout);
			}
			else if( $images.length == 1)
			{
				parents = images.parent();
				parents.css({display : 'block'});
			}
		}
		initialize();
		return this;
	};
})(jQuery);
