$(document).ready(function() {

    //Show the paging and activate its first link
    $(".paging").show();
    $(".paging a:first").addClass("active");
    
    //Get size of the image, how many images there are, then determin the size of the image reel.
    var imageWidth = $(".window").width();
    var imageSum = $(".image_reel img").size();
    var imageReelWidth = imageWidth * imageSum;
	
	for(x=0; x<imageSum; x++) {
		if( $(".image_reel img").eq(x).parent()[0].tagName!="A" ) {
			$(".image_reel img").eq(x).wrap("<a name='"+$(".image_reel img").eq(x).attr('src')+"' />");
		}
	}
    
    //Adjust the image reel to its new size
    $(".image_reel").css({'width' : imageReelWidth});
    
	var reachedEnd = false;
    
    //Paging  and Slider Function
    rotate = function(prevActive){
        var triggerID = $active.attr("rel") - 1; //Get number of times to slide
		
		if(triggerID==0 && prevActive==3) {
			
			obj1 = $(".image_reel a").eq(0);
			obj2 = $(".image_reel a").eq(1);
			obj3 = $(".image_reel a").eq(2);
			
			obj1.hide().remove();
			obj2.hide().remove();			
			obj3.hide().remove();		
			
			$(".image_reel").animate({ left: 0 }, 0 );
			
			$(".image_reel").append(obj1);
			$(".image_reel").append(obj2);
			$(".image_reel").append(obj3);
			
			$(".image_reel a").eq(1).show();
			$(".image_reel a").eq(2).fadeIn(150);
			$(".image_reel a").eq(3).fadeIn(300);
			
        	triggerID=1;
			reachedEnd = true;

		}		

        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").animate({ 
            left: -image_reelPosition
        }, { duration: 750, easing: "easeInOutQuint" } ); // ATTENTION, relié au délai du setTimeout plus bas, ajouter +250 au setTimeout (1/4 secondes);
		
		if(reachedEnd==true) {
			
			setTimeout(function() {

				obj1 = $(".image_reel a").eq(0);
				obj1.hide().remove();
				
				//$(".image_reel").animate({ left: 0 }, 0 );
				$(".image_reel").css("left", "0px");
				
				$(".image_reel").append(obj1);
				$(".image_reel a").eq(3).fadeIn(150);

			}, 1000)	;	// ATTENTION, relié à l'anim jQuery plus haut, ajouter +250 ici (1/4 secondes);
			reachedEnd = false;
			
		}		
    
    }; 
    
    //Rotation  and Timing Event
    rotateSwitch = function(){
        play = setInterval(function(){ //Set timer - this will repeat itself every 7 seconds
			prevActive = $('.paging a.active').index();
            $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(prevActive); //Trigger the paging and slider function
        }, 7000); //Timer speed in milliseconds (7 seconds)
    };
    
    rotateSwitch(); //Run function on launch
    
    //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(null); //Trigger rotation immediately
        rotateSwitch(); // Resume rotation timer
        return false; //Prevent browser jump to link anchor
    });
        
});
