$(document).ready(function(){
  $(".slideshow").SlideShowManager();
});

$(document).ready(function(){
  $(".slideshow2").SlideShowManager();
});
 
jQuery.fn.SlideShowManager = function() {
    return this.each(function(){
	new SlideShow(this);
  });
};
 
 
function SlideShow(base){
  var self = this;
 
  self.currentPosition = 0;
  self.slideWidth = 700;
  self.slides = $('.slide', base);
  self.numberOfSlides = this.slides.length;
  self.base = base;
  self.direction = 1;
  self.Timer = null;
 
 
  self.slides
    .wrapAll('<div class="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
	    'float' : 'left',
	    'width' : self.slideWidth
    });
 
  $('.slidesContainer',base).css('overflow', 'hidden');
  $('.slideInner',base).css('width', self.slideWidth * self.numberOfSlides);
 
 
  // $('.slidesContainer',base).prepend ('<div class="autoplayControl">PLAY</div>');
 
  $(base)
  .prepend('<span class="leftControl">Move left</span>')
  .append('<span class="rightControl">Move right</span>');
 
  $('.leftControl', base).bind('click', $.proxy(self.onLeftControlClick, self));
  $('.rightControl', base).bind('click', $.proxy(self.onRightControlClick, self));
  $('.autoplayControl',base).bind('click', $.proxy(self.onAutoPlayControlClick, self));
 
  self.manageControls();
}
 
SlideShow.prototype.manageControls = function(){
	var self = this;
    	if (self.currentPosition == 0){
        	$('.leftControl', self.base).hide();
			self.direction = +1;
    	}
	    else
    	{
        	$('.leftControl', self.base).show();
	    }
    	if (self.currentPosition == (self.numberOfSlides - 1)){
        	$('.rightControl', self.base).hide();
			self.direction = -1;
    	}
	    else
    	{
        	$('.rightControl', self.base).show();
	    }
}

SlideShow.prototype.animate = function(){
	var self = this;
	$('.slideInner', self.base).animate({ 'marginLeft' : self.slideWidth * (-self.currentPosition)});
}      

SlideShow.prototype.onLeftControlClick = function(){
	//for( k in this)   console.log(k);
	var self = this;
    	self.currentPosition--;
	    self.manageControls();
    	self.animate();
}

SlideShow.prototype.onRightControlClick = function(){
	//for( k in this)   console.log(k);
	var self = this;
    	self.currentPosition++;
	    self.manageControls();
    	self.animate();
}

SlideShow.prototype.autoAnimate = function(){
	var self = this;
	if (self.direction == 1){
		self.currentPosition++;
	}
	else
	{
	  	self.currentPosition--;
	}
	//for (k in o) console.log(k);
	self.manageControls();
	self.animate();
}  

SlideShow.prototype.onAutoPlayControlClick = function(){
	var self = this;

	if (self.Timer == null){
		self.Timer = window.setInterval(function(){ self.autoAnimate(); },2500);
		$('.autoplayControl',self.base).html("STOP");
	}
	else
	{
		window.clearInterval(self.Timer);
		self.Timer = null;
		$('.autoplayControl',self.base).html("PLAY")
	}
}
