(function($) {
	$.fn.doSlide = function(options){
	  var defaults = {			
			pause:1000,
			speed:800,
			nextButton:$(".nextButton")
		}; 
    var options = $.extend(defaults, options); 
    this.each(function() {
      var lastMove = (new Date()).getTime();    
  		var slide = $("ul",$(this));
      var nbSlide = $("li", slide).length; 
      var width = $("li", slide).width();
      slide.append($("li:first-child", slide).clone()); 
      slide.width((nbSlide + 1) * width);
      var currentSlideIndex = 0; 		
			function adjust(){
        if (currentSlideIndex >= nbSlide)
          slide.css("left",0);
      };
			function animate(clicked){
        if (clicked || ((new Date()).getTime() - lastMove) >= options.pause)
        { 
          if (currentSlideIndex >= nbSlide)
            currentSlideIndex = 0;
          currentSlideIndex = currentSlideIndex + 1;  	 
  				position = width * currentSlideIndex * -1;
  				slide.animate(
  					{ left:position }, 
  					{ queue:false, duration:options.speed, complete:adjust }
  				);
          lastMove = (new Date()).getTime();                              
				  timeout = setTimeout(function(){animate(false);}, options.pause + options.speed);
				}
			};            
			options.nextButton.click(function(){animate(true);});
      var timeout = setTimeout(function(){animate(false);}, options.pause);
		});
	};
})(jQuery);
