$(function() {
	homePageCarosel();
});

function homePageCarosel() {
	$("#homepage-carosel-hold").each(function() {
		var homeSlider = this;
		
		// Scroll content parts
		homeSlider.$scrollArea = $('#carosel-entries-hold', homeSlider);
		homeSlider.$scrollContent = $('#carosel-entry-set', homeSlider);
		
		homeSlider.entryCount =  homeSlider.$scrollContent.find("li").length;
		homeSlider.normEntryWidth = homeSlider.$scrollContent.find("li").not(".video-entry").filter(":first").outerWidth();
		
		homeSlider.$previousTrigger = $("#prev-entries", homeSlider);
		homeSlider.$nextTrigger = $("#next-entries", homeSlider);
		
		/*** Deal with video links ***/
		homeSlider.$scrollContent.find("li.video-entry").each(function() {
		  var mediaItem = this;
		  
			$(".youtube-carousel-replace", mediaItem).each(function() {
        var selfRef = this;
        
        selfRef.$vidInfo = $(mediaItem).children(".youtube-vid-info");

        if(selfRef.$vidInfo.length > 0) {
          selfRef.vidID = selfRef.$vidInfo.attr("id");

          selfRef.$flashRef = $(mediaItem).flash({
            width:368,
            height:232,
      			swf: 'http://www.youtube.com/v/'+selfRef.vidID+'?enablejsapi=1&amp;hl=en_GB&amp;fs=1',
      			allowFullScreen: true,
      			allowscriptaccess: 'always',
      			wmode: 'transparent'
          });

          $(mediaItem).find("object").addClass("youtube-vid");
        }
      });
		});
		
		homeSlider.triggerLeftAnimation;
		homeSlider.triggerRightAnimation;
		
		homeSlider.moveImagesLeft = function() {
		  var currLeftShift = homeSlider.$scrollContent.position().left;
			var contentWidthDisplay = currLeftShift;
			
			if(contentWidthDisplay < 0) {
				contentWidthDisplay = -1 * contentWidthDisplay;
			}
			
			contentWidthDisplay = contentWidthDisplay + homeSlider.$scrollArea.width();
			
			if(homeSlider.$scrollContent.width() > contentWidthDisplay) {
				var newLeft = (contentWidthDisplay - homeSlider.$scrollArea.width()) + homeSlider.normEntryWidth;
				
				if((newLeft + homeSlider.$scrollArea.width()) > homeSlider.$scrollContent.width()) {
				  newLeft = homeSlider.$scrollContent.width() - homeSlider.$scrollArea.width();
				}
				
				homeSlider.$scrollContent.animate({
  				left: ((-1 * newLeft)) + 'px'
  			}, 500, function () {
  			});
			}
		}
		
		homeSlider.moveImagesRight = function() {
		  var currLeftShift = homeSlider.$scrollContent.position().left;
			var contentWidthDisplay = currLeftShift;
			
			if(contentWidthDisplay < 0) {
				contentWidthDisplay = -1 * contentWidthDisplay;
			}
			
			contentWidthDisplay = contentWidthDisplay + homeSlider.$scrollArea.width();
			
			if(currLeftShift < 0) {
				var newLeft = (contentWidthDisplay - homeSlider.$scrollArea.width()) - homeSlider.normEntryWidth;
				
				if(newLeft < 0) {
				  newLeft = 0;
				}
				
				homeSlider.$scrollContent.animate({
  				left: ((-1 * newLeft)) + 'px'
  			}, 500, function () {
  			});
  	  }
		}
		
		homeSlider.stopYouTube = function() {
		  homeSlider.$scrollContent.find(".youtube-vid").each(function() {
		    var ytVidRef = this;
		    
		    ytVidRef.pauseVideo();
		  });
	  }
		
		homeSlider.$nextTrigger.click(function() {
		  homeSlider.stopYouTube();
			return false;
		});
		
		homeSlider.$nextTrigger.mousedown(function() {
		  homeSlider.moveImagesLeft();
		  
			homeSlider.triggerLeftAnimation = setInterval(homeSlider.moveImagesLeft, 550);
		});
		
		homeSlider.$nextTrigger.mouseup(function() {
		  clearInterval(homeSlider.triggerLeftAnimation);
		});
		
		homeSlider.$previousTrigger.click(function() {
		  homeSlider.stopYouTube();
			return false;
		});
		
		homeSlider.$previousTrigger.mousedown(function() {
		  homeSlider.moveImagesRight();
		  
			homeSlider.triggerRightAnimation = setInterval(homeSlider.moveImagesRight, 550);
		});
		
		homeSlider.$previousTrigger.mouseup(function() {
		  clearInterval(homeSlider.triggerRightAnimation);
		});
	});
}
