// jQuery to drive multi-instance slideshow & controls
$(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 = 618;
  	self.slides = $('.slide', base);
  	self.numberOfSlides = this.slides.length;
  	self.base = base;
 
  	self.slides
    	.wrapAll('<div class="slideInner"></div>')
		.css({
	    	'float' : 'left',
	    	'width' : self.slideWidth
    });
 
  	$('.slidesContainer',base).css('overflow', 'hidden');
  	$('.slideInner',base).css('width', self.slideWidth * self.numberOfSlides);
 
  	$(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));
	
	// Hide arrows initially
 	$('.leftControl', base).hide()
	$('.rightControl', base).hide()
	
	// Establish hover functions
	$('.slideInner', base).hover(function() {
		// Fade in controls
		$('.leftControl', base).show();
		$('.rightControl', base).show();
		// Manage controls
		self.manageControls();
	},
		function() {
		// Fade in controls
		$('.leftControl', base).hide();
		$('.rightControl', base).hide();	
	});
	
	// Establish hover functions for controls
	$('.leftControl', base).hover(function() {
		// Fade in controls
		$('.leftControl', base).show();	
		// Manage controls
		self.manageControls();
	});
	$('.rightControl', base).hover(function() {
		// Fade in controls
		$('.rightControl', base).show();
		// Manage controls
		self.manageControls();
	});
  
}
 
SlideShow.prototype.manageControls = function(){
	
	var self = this;
	
	// Establish hover functions
	//$('.slideInner', self.base).hover(function() {					   
	
		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(){
	var self = this;
	self.currentPosition--;
	self.manageControls();
	self.animate();
}

SlideShow.prototype.onRightControlClick = function(){
	var self = this;
	self.currentPosition++;
	self.manageControls();
	self.animate();
}
