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

jQuery.fn.SlideShowManager = function() {
  return this.each(function(){
    new SlideShow(this);
  });
};

function SlideShow(base){ 
  var self = this;
  self.currentPosition = 0;
  self.slideWidth = 283;
  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>')
    .css({
	    'width' : self.slideWidth
    });
 
  $('.slidesContainer',base).css('overflow', 'hidden');
  $('.slideInner',base).css('width', self.slideWidth);
  
  $(base)
    .prepend('<div class="leftControl"><img src="but.up.png" /></div>')
    .append('<div  class="rightControl"><img src="but.dn.png" /></div>');
 
  $('.leftControl', base).bind('click', $.proxy(self.onLeftControlClick, self));
  $('.rightControl', base).bind('click', $.proxy(self.onRightControlClick, self));
 
  self.manageControls();
}
 
SlideShow.prototype.manageControls = function(){
  var self = this;
  if (self.numberOfSlides != 0){
    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();
    }
  } else {
    $('.rightControl', self.base).hide();
    $('.leftControl', self.base).hide();
  }
}

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

SlideShow.prototype.onLeftControlClick = function(){
  var self = this;
  self.currentPosition--;
  self.manageControls();
  self.animate();
}

SlideShow.prototype.onRightControlClick = function(){
  var self = this;
  self.currentPosition++;
  self.manageControls();
  self.animate();
}
