/*
 *  jquery.rotator
 *  Version: 0.1
 */
 
(function($){ $.fn.rotator = function(options){

    var defaults = {
		ms: 1000,
		n: 1,
		autoHeight: false
	};
  
    var options = $.extend(defaults, options);
    var timer = "";
	
	return this.each(function(index) {
		
		var $this = $(this);
		
		var initialHeight = 0;
		$this.children().filter(":lt("+options.n+")").each(function(index,item){
		    initialHeight += $(item).height();
		});
		
		$this.height(initialHeight);
		
		timer = setInterval(function(){
		    
			var childHeight = $this.children().filter(":first-child").height();
		    var animParams = {scrollTop: (childHeight) + "px"};
			var autoHeight = 0;
		    $this.children().filter(":lt("+(options.n+1)+")").each(function(index,item){
		        if(index>0)autoHeight += $(item).height();
		    });
			if(options.autoHeight)animParams = $.extend({height:(autoHeight) + "px"}, animParams);
		
			
		    $this.animate(animParams, 500, function(){
		        $this.scrollTop(0);
			    $this.append($this.children().filter(":first-child"));
				$this.css("overflow","hidden"); //Chrome hack
		    });

	    }, options.ms);
        
		$this.hover(function(){
		    
		        clearInterval(timer)
		    }, 
		    function(){
		        timer = setInterval(function(){
        		    
			        var childHeight = $this.children().filter(":first-child").height();
		            var animParams = {scrollTop: (childHeight) + "px"};
			        var autoHeight = 0;
		            $this.children().filter(":lt("+(options.n+1)+")").each(function(index,item){
		                if(index>0)autoHeight += $(item).height();
		            });
			        if(options.autoHeight)animParams = $.extend({height:(autoHeight) + "px"}, animParams);
        		
        			
		            $this.animate(animParams, 500, function(){
		                $this.scrollTop(0);
			            $this.append($this.children().filter(":first-child"));
				        $this.css("overflow","hidden"); //Chrome hack
		            });

	            }, options.ms);		        
	        }
		);
	});

  
}})(jQuery);

