/*
 * Image Rotator
 *
 * based on the tutorial code from Sho Tanaka 
 * http://www.sohtanaka.com/web-design/automatic-image-slider-w-css-jquery/
 *
 */

function setupBannerTwist(id, delay, speed) {

	// Create the HTML based ribbon
	$("." + id + "_image_reel img").each(function(index) {
		$('<a href="#" rel="' + (index+1) + '">' + (index+1) + '</a>').appendTo('div.' + id + '_paging');
	});

	//Set Default State of each portfolio piece
	$("." + id + "_paging a:first").addClass("active");
		
	//Get size of images, how many there are, then determin the size of the image reel.
	var imageWidth = $("." + id + "_image_reel img").first().width();
	var imageHeight = $("." + id + "_image_reel img").first().height();
	var imageSum = $("." + id + "_image_reel img").size();
	var imageReelWidth = imageWidth * imageSum;
	
	//Adjust all divs inside the image_reel to the same width
	/*
	$("." + id + "_image_reel .stacks_out").each(function(i) {
		$(this).css({'width' : imageWidth, 'height' : imageHeight});
	});
	*/
	
	//Adjust the image reel and window to its new size
	$("." + id + "_window").css({'width' : imageWidth, 'height' : imageHeight});
	$("." + id + "_image_reel").css({'width' : imageReelWidth});
	
	//Paging + Slider Function
	rotate = function() {	
		var triggerID = $active.attr("rel") - 1; //Get number of times to slide
		var image_reelPosition = triggerID * imageWidth; //Determines the distance the image reel needs to slide

		$("." + id + "_paging a").removeClass('active'); //Remove all active class
		$active.addClass('active'); //Add active class (the $active is declared in the rotateSwitch function)
		
		//Slider Animation
		$("." + id + "_image_reel").animate({ 
			left: -image_reelPosition
		}, speed );
		
	}; 
	
	//Rotation + Timing Event
	rotateSwitch = function() {		
		play = setInterval(function(){ //Set timer - this will repeat itself every 3 seconds
			$active = $("." + id + "_paging a.active").next();
			if ( $active.length === 0) { //If paging reaches the end...
				$active = $("." + id + "_paging a:first"); //go back to first
			}
			rotate(); //Trigger the paging and slider function
		}, delay); //Timer speed in milliseconds (3 seconds)
	};
	
	rotateSwitch(); //Run function on launch
	
	//On Hover
	$("." + id + "_image_reel a").hover(function() {
		clearInterval(play); //Stop the rotation
	}, function() {
		rotateSwitch(); //Resume rotation
	});	
	
	//On Click
	$("." + id + "_paging a").click(function() {	
		$active = $(this); //Activate the clicked paging
		
		//Reset Timer
		clearInterval(play); //Stop the rotation
		rotate(); //Trigger rotation immediately
		rotateSwitch(); // Resume rotation
		return false; //Prevent browser jump to link anchor
	});	
}
