/*
	carousel.js
	
*/
var tween = null;
var page = 1;

// window size = thumb size x 5(#thumbs) padding-right:10px
var windowSize = 660;
// thumb size = thumbWidth:120px padding-right:10px border:2px
var thumbSize = 132;
var end;

/*
	Recommended content scroll pane.
*/
function scrollPane (offset, direction){	
	if (tween) {
		tween.fforward();
	}
	
	// covert number of thumbs in to number of pages with 5
	var totalPages = Math.ceil(thumbCount / 5);
	var pageMax = (totalPages - 1) * (windowSize * -1);
	
	log('*************');
	log("pageMax: " + pageMax + ", totalPages: " + totalPages + ", thumbCount: " + thumbCount);
	
	//log("Left value: " + $("videoThumbs").style.left);
	var left = parseInt($("videoThumbs").style.left || "0");
	
	
	if((direction == "left") && left == 0){
		return;
	}
	else if ((direction == "right") && left == pageMax){
		return;
	}
	
	//log("offset: " + offset);
	var remainder = left % windowSize;
	end = left - remainder + offset;
	log("remainder: "+ remainder);
	log("end: "+ end);
	log("left: "+ left);
		
	if(end == pageMax){	
		arrowRightDisabled();
	} else {
		arrowRightEnabled();
	}
	if(end == 0){
		arrowLeftDisabled();
	} else {
		arrowLeftEnabled();
	}
	//
	tween = new Tween($("videoThumbs").style,'left',Tween.strongEaseOut,left,end,2,'px');
	tween.start();
}

// enable and disable arrows on and off functions
function arrowLeftEnabled() {
		MN.Event.Observe($("scrollLeft"), "mouseup", scrollPaneLeft);
		MN.CSS.RemoveClass($("scrollLeft"), "leftOff");
		MN.CSS.AddClass($("scrollLeft"), "leftOn");
		//log("arrowLeftEnabled");
}
function arrowLeftDisabled() {
		MN.Event.StopObserving($("scrollLeft"), "mouseup", scrollPaneLeft);
		MN.CSS.RemoveClass($("scrollLeft"), "leftOn");
		MN.CSS.AddClass($("scrollLeft"), "leftOff");
		//log("arrowLeftDisabled");
}

function arrowRightEnabled() {
		MN.Event.Observe($("scrollRight"), "mouseup", scrollPaneRight);
		MN.CSS.RemoveClass($("scrollRight"), "rightOff");
		MN.CSS.AddClass($("scrollRight"), "rightOn");
		//log("arrowRightEnabled");
}
function arrowRightDisabled() {
		MN.Event.StopObserving($("scrollRight"), "mouseup", scrollPaneRight);
		MN.CSS.RemoveClass($("scrollRight"), "rightOn");
		MN.CSS.AddClass($("scrollRight"), "rightOff");
		//log("arrowRightDisabled");
}

// got to Pain and pane number functions
function goToPane(paneNumber){
	if (tween) {
		tween.stop();	
	}
	// covert number of thumbs in to number of pages with 5
	var totalPages = Math.ceil(thumbCount / 5);
	var pageMax = (totalPages - 1) * (windowSize * -1);
	
	if(paneNumber < 0 || paneNumber >= totalPages){
		log("Pane does not exist");
		return;
	}
	//log("Go to pane " + paneNumber + ". Max num pages is " + totalPages);
	if(paneNumber+1 == totalPages){	
		arrowRightDisabled();
	} else {
		arrowRightEnabled();
	}
	if(paneNumber == 0){
		arrowLeftDisabled();
	} else {
		arrowLeftEnabled();
	}
	
	$("videoThumbs").style.left = (paneNumber * windowSize * -1) + "px";
	tween = false;
}

function scrollPaneLeft() {	
	//log("spl - Left value: " + $("videoThumbs").style.left);
	scrollPane(windowSize, "left");
}

function scrollPaneRight() {
	//log("spr - Left value: " + $("videoThumbs").style.left);
	scrollPane(windowSize * -1 , "right");
}

