
  //plugin definition for slideshow
jQuery.fn.SlideShowManager = function(options) {

	 var defaults = {
		slideWidth: 560,
		autoPlay: false
	}; 

	var options = $.extend({}, defaults, options);
	
	return this.each(function(){
		new SlideShow(this, options.slideWidth, options.autoPlay);
	});
 };
 
 
function SlideShow(base, inSlideWidth, inAutoPlay){
  var self = this;
 
  self.currentPosition = 0;
  self.slideWidth = inSlideWidth;
  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));
 
  if(inAutoPlay==true){
	$('.autoplayControl').click();
	}
 
  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();}
						,7000);
		$('.autoplayControl',self.base).html("STOP");
	    }else
	    {
		window.clearInterval(self.Timer);
		self.Timer = null;
		$('.autoplayControl',self.base).html("PLAY")
	    }
	}
