/* Author: Benny Jien */

$(function(){
	
	//Show the paging and activate its first link
	$(".paging").show();
	$(".paging a:first").addClass("active");
	
	//Show the paging and activate its first link
	$(".testipaging").show();
	$(".testipaging a:first").addClass("active");
	
	//Get size of the image, how many images there are, then determin the size of the image reel.
	var imageWidth = $(".before-after").width();
	var imageSum = $(".image_reel img").size();
	var imageReelWidth = imageWidth * imageSum;
	
	//Get size of the image, how many images there are, then determin the size of the image reel.
	var testiWidth = $(".testimonial").width() + 40;
	var testiSum = $(".testi-reel li").size();
	var testiReelWidth = testiWidth * testiSum;
	
	//Adjust the image reel to its new size
	$(".image_reel").css({'width' : imageReelWidth});
	
	//Adjust the image reel to its new size
	$(".testi-reel").css({'width' : testiReelWidth});
	
	//Rotate image 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
	
		$(".paging a").removeClass('active'); //Remove all active class
		$active.addClass('active'); //Add active class (the $active is declared in the rotateSwitch function)
	
		//Slider Animation
		$(".image_reel").fadeOut();
		$(".image_reel").animate({
			left: -image_reelPosition
		}, 0 );
		$(".image_reel").fadeIn();
	}; 
	
	rotateSwitch = function(){
		play = setInterval(function(){ //Set timer - this will repeat itself every 7 seconds
			$active = $('.paging a.active').next(); //Move to the next paging
			if ( $active.length === 0) { //If paging reaches the end...
				$active = $('.paging a:first'); //go back to first
			}
			rotate(); //Trigger the paging and slider function
		}, 5000); //Timer speed in milliseconds (5 seconds)
	};

	rotateSwitch();
	
	//Rotate testi function
	rotateTesti = function(){
		var triggerTestiID = $active.attr("rel")-1; //Get number of times to slide
		var testi_reelPosition = triggerTestiID * testiWidth; //Determines the distance the image reel needs to slide
	
		$(".testipaging a").removeClass('active'); //Remove all active class
		$active.addClass('active'); //Add active class (the $active is declared in the rotateSwitch function)
	
		//Slider Animation
		$(".testi-reel").fadeOut();
		$(".testi-reel").animate({
			left: -testi_reelPosition
		}, 950 );
		$(".testi-reel").fadeIn();
	}; 
	
	rotateTestiSwitch = function(){
		play = setInterval(function(){ //Set timer - this will repeat itself every 7 seconds
			$active = $('.testipaging a.active').next(); //Move to the next paging
			if ( $active.length === 0) { //If paging reaches the end...
				$active = $('.testipaging a:first'); //go back to first
			}
			rotateTesti(); //Trigger the paging and slider function
		}, 7000); //Timer speed in milliseconds (7 seconds)
	};

	rotateTestiSwitch();
	
	//On Hover
	$(".image_reel a").hover(function() {
		clearInterval(play); //Stop the rotation
	}, function() {
		rotateSwitch(); //Resume rotation timer
	});
	
	//On Click
	$(".paging a").click(function() {
		$active = $(this); //Activate the clicked paging
		//Reset Timer
		clearInterval(play); //Stop the rotation
		rotate(); //Trigger rotation immediately
		rotateSwitch(); // Resume rotation timer
		return false; //Prevent browser jump to link anchor
	});
	
	//On Hover
	$(".testi-reel a").hover(function() {
		clearInterval(play); //Stop the rotation
	}, function() {
		rotateTestiSwitch(); //Resume rotation timer
	});
	
	//On Click
	$(".testipaging a").click(function() {
		$active = $(this); //Activate the clicked paging
		//Reset Timer
		clearInterval(play); //Stop the rotation
		rotateTesti(); //Trigger rotation immediately
		rotateTestiSwitch(); // Resume rotation timer
		return false; //Prevent browser jump to link anchor
	});
	
});
