$(window).load(function () {

  //Set Default State of each portfolio piece
  $(".paging").show();
  $(".paging a:first").addClass("active");
    
  //Get size of images, how many there are, then determine the size of the image reel.
  var sliderWidth = $(".window").width();
  var sliderHeight = parseInt($(".window").css("height"), 10);
  var imageNumber = $(".image_reel img").size();
  var imageReelWidth = sliderWidth * imageNumber;
  
  //Adjut the crop window to fit the window (stretch or shrink)
  var cropElements = $(".image_reel #crop");
  cropElements.css({'width' : sliderWidth });
  cropElements.css({'height' : sliderHeight });
  
  cropElements.each(function(index, domCropElement) {
    var cropElement = $(domCropElement);
    var imageElement = cropElement.find('img');
    var imageWidth = imageElement.outerWidth(true);
    var imageHeight = imageElement.outerHeight(true);
    
    var marginLeft = -(imageWidth - sliderWidth) / 2;
    var marginTop = -(imageHeight - sliderHeight) / 2;

    imageElement.css({'margin-left' : marginLeft});
    imageElement.css({'margin-top' : marginTop});
    imageElement.css({'visibility' : 'visible'});
  });

  //Adjust the image reel to its new size
  $(".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 * sliderWidth ; //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
    }, 1500 );
    
  }; 
  
  //Rotation + Timing Event
  rotateSwitch = function(){    
    play = setInterval(function(){ //Set timer - this will repeat itself every 3 seconds
      $active = $('.paging a.active').next();
      if ( $active.length === 0) { //If paging reaches the end...
        $active = $('.paging a:first'); //go back to first
      }
      rotate(); //Trigger the paging and slider function
    }, 10000); //Timer speed in milliseconds (3 seconds)
  };
  
  rotateSwitch(); //Run function on launch
  
  //On Hover
  $(".image_reel a").hover(function() {
    clearInterval(play); //Stop the rotation
  }, function() {
    rotateSwitch(); //Resume rotation
  });  
  
  //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
    return false; //Prevent browser jump to link anchor
  });  
  
});

