(function($){  


  $.fn.rotimage = function(options) {  
		_debug(this);

		var $defaults = {
			container: '#rotimage',
			timeout: 2500,
			initial_timeout: 2500,
			random: false,
			curr: 0
		
		};
		var options = $.extend($defaults, options);
		var curr = 0;

		return this.each(function() {
			function myFade(opts){
				setTimeout(function(){ myFade(opts);},opts.timeout);
				//$('#output').append("<p>" + opts.initial_timeout + "</p>");
				next = (opts.curr + 1) % opts.images.length;
				$(opts.parents[opts.curr]).animate({opacity: 0},2000, function(){$(this).css({display: 'none'})});
				$(opts.parents[next]).css({display: 'block'}).animate({opacity: 1},2000);
				opts.curr = next;
			}
		
			$this = $(this);
			$images = $(this).find('img');
			$parents = null;
			var o = $.meta ? $.extend({}, options, _container.data()) : options;
			if($images.length > 1)
			{
				$parents = $images.parent();
				o.images = $images;
				o.parents = $parents;
				$parents.css({display : 'block'});
				for(i = 1; i < $images.length; i++)
				{
					$($parents[i]).css({opacity: 0, display: 'none'});
				}
				setTimeout(function(){ myFade(o);},o.initial_timeout);
			}
			else if( $images.length == 1)
			{
				$parents = $images.parent();
				$parents.css({display : 'block'});
			}
			
		});
	};
	
	$.fn.rotimage.myFade = function(opts) {
		setTimeout(function(){ $.fn.rotimage.myFade(opts);},opts.timeout);
		//$('#output').append("<p>" + opts.initial_timeout + "</p>");
		next = (opts.curr + 1) % opts.images.length;
		$(opts.parents[opts.curr]).animate({opacity: 0},2000);
		$(opts.parents[next]).animate({opacity: 1},2000);
		opts.curr = next;
	};
	
	
	
	 // private function for debugging
     //
    function _debug($obj) {
          if (window.console && window.console.log)
            window.console.log('Number of rotimages: ' + $obj.size());
    };
})(jQuery);
