
var FlexSpace = new Object();
	
// Instance Properties
FlexSpace.fs_currentImg 		= 1;
FlexSpace.fs_previousImg		= 1;
FlexSpace.fs_activePosition		= 1;
FlexSpace.fs_timer 				= null;
FlexSpace.fs_content 			= new Array();
FlexSpace.fs_lastVideoPlayedId	= -1;
FlexSpace.fs_TimeToFade 		= 0;
FlexSpace.fs_cardWaitTime		= 0;
FlexSpace.fs_pageCompleted		= false;


//// page level Functions /////
///////////////////////////////

FlexSpace.onPlayVideo 				= function (p_val){
		
}

FlexSpace.doCheckVideoPlayer 		= function (p_val){
		
}

FlexSpace.doUpdateThumbHighlight 	= function (p_val){
		
}

FlexSpace.completePage 				= function (){
	
}

//// Timer Functions //////////
///////////////////////////////

FlexSpace.stopAutoPlay = function (){

	clearTimeout(this.fs_timer);
}

FlexSpace.doReplayVideo = function (val){

	if(this.fs_lastVideoPlayedId == val){
		return true;
	}else{
		return false;
	}
}

FlexSpace.resumeAutoPlay = function (){

	this.doStartAutoPlayTimer(this.fs_cardWaitTime);
}

FlexSpace.doStartAutoPlayTimer = function (p_msec){

	this.stopAutoPlay();
	this.fs_timer = setTimeout("FlexSpace.doAutoPlay()", p_msec);
}

FlexSpace.doAutoPlay = function (){
	
	this.fs_previousImg = this.fs_currentImg;
	
	this.fs_activePosition = (this.fs_currentImg <= 6) ? this.fs_currentImg+1 : 1;		
	this.fs_currentImg = (this.fs_currentImg <= 5) ? this.fs_currentImg+1 : 1;

	this.doFlexSpaceTransition (this.fs_currentImg);
}


//// Transition Functions /////
///////////////////////////////

FlexSpace.doFlexSpaceTransition  = function (p_number){

	setTimeout("FlexSpace.doChangeImg("+p_number+")");
}

FlexSpace.doChangeImg = function (p_number){

	for(var i = 1; i < 7; i++){	
		document.getElementById("flexspacecardImg" + i).style.display = 'none';
		document.getElementById("flexspacecardImg" + i).style.zIndex = 1;
	}

	document.getElementById("flexspacecardImg" + p_number).style.zIndex = 2;
	document.getElementById("flexspacecardImg" + p_number).style.display = 'block';

	this.onImgChanged(p_number);
}

FlexSpace.onImgChanged = function (p_number){

	this.doWriteFlexSpaceCopy(p_number, this.fs_content[p_number-1].title, this.fs_content[p_number-1].description, this.fs_content[p_number-1].url, this.fs_content[p_number-1].timesplayed, this.fs_content[p_number-1].rating);

	for(var i=1; i<=6; i++){
		if(i!=p_number){
			this.doRemoveHighlight("fs_slotnumber" + i);		
		}
	}

	this.doHighlight("fs_slotnumber" + p_number);
	
	this.fs_currentImg = p_number;

	if(this.fs_content[p_number-1].episodeId != null){
		this.onPlayVideo(this.fs_content[p_number-1].episodeId);
		this.fs_lastVideoPlayedId = this.fs_content[p_number-1].episodeId;
		this.stopAutoPlay();
	}else{
		this.doStartAutoPlayTimer(this.fs_cardWaitTime);
	}

	this.doUpdateThumbHighlight(p_number);
}

//// Data Functions ///////////
///////////////////////////////

FlexSpace.doBuildFlexSpaceData = function (p_obj){

	var o = new Object();

	o.episodeId		= (p_obj.fsVideoEpisodeId.length > 0) 	? p_obj.fsVideoEpisodeId 	: null;
	o.image 		= (p_obj.fsImageURL.length > 0) 		? p_obj.fsImageURL 			: "http://i.cdn.turner.com/toon/tools/img/flexspace.jpg";
	
	o.url 			= (p_obj.fsClickURL.length > 0) 		? p_obj.fsClickURL 			: "http://www.cartoonnetwork.com";
	o.title 		= (p_obj.fsTitle.length > 0) 			? p_obj.fsTitle 			: "";
	o.description 	= (p_obj.fsDescription.length > 0)		? p_obj.fsDescription 		: "";
	
	if(p_obj.fsTimesplayed){
		o.timesplayed = (p_obj.fsTimesplayed.length > 0)	? p_obj.fsTimesplayed 		: "0";
	}else{
		o.timesplayed 	= "0";
	}

	if(p_obj.fsRating){
		o.rating = (p_obj.fsRating.length > 0)				? p_obj.fsRating 			: "0";
	}else{
		o.rating 	= "0";
	}
	
	if(this.fs_content.length <= 5){
		this.fs_content.push(o);
	}
	
	o = null;
	
	if(this.fs_content.length == 6){
		this.doBuildSliderContent();
	}
}

FlexSpace.doBuildSliderContent = function (){
	
	for(var i = 0; i < this.fs_content.length; i++){					
		var content = "";
		var elementID = "flexspacecard" + (i+1);
		
		if(this.fs_content[i].episodeId != null){
			content = "<div id='videoFlexSpace'></div>"; 
		}else{
			var jsStr = "javascript:FlexSpace.goCartoonNetworkURL('" + this.fs_content[i].url + "'); adbpGameCategory('gp_Q1_flexspace_card" + (i+1) + "');";
			var hrefStr = 'href="' + jsStr + '"';			

			content = "<a " + hrefStr + " onmouseover='javascript:FlexSpace.stopAutoPlay();' onmouseout='javascript:FlexSpace.resumeAutoPlay();'><img src='"  + this.fs_content[i].image + "' id='flexspacecardImg"+(i+1)+"' name='flexspacecardImg"+(i+1)+"' height='216' width='384' border='0'></a>"; 

			jsStr = null;
			hrefStr = null;
		}		

		document.getElementById(elementID).innerHTML = content;

		if(i > 0){
			document.getElementById("flexspacecardImg" + (i+1)).style.display = 'none';
		}
		
		content = null;
		elementID = null;
	}

	this.fs_pageCompleted = true;
	this.completePage();
	this.doStartTransitions();
}


//// Init Functions ///////////
///////////////////////////////

FlexSpace.init = function (){
	
	this.flexSpace 			= this;
	this.fs_currentImg 		= 1;
	this.fs_activePosition	= 1;
	this.fs_timer 			= null;
	this.fs_content 		= new Array();
	this.fs_TimeToFade 		= 600.0;
	this.fs_cardWaitTime	= 4000;
}

FlexSpace.doStartTransitions = function (){
	document.getElementById("flexspacecardImg1").style.zIndex = 2;
	this.doWriteFlexSpaceCopy("1", this.fs_content[0].title, this.fs_content[0].description, this.fs_content[0].url, this.fs_content[0].timesplayed, this.fs_content[0].rating);

	if(this.fs_content[this.fs_activePosition-1].episodeId == null){
		this.doStartAutoPlayTimer(this.fs_cardWaitTime);
	}else{
		this.onPlayVideo(this.fs_content[this.fs_activePosition-1].episodeId);
		this.fs_lastVideoPlayedId = this.fs_content[this.fs_activePosition-1].episodeId;
		this.stopAutoPlay();
	}
	
	this.doHighlight("fs_slotnumber1");
}


//// Display Functions ////////
///////////////////////////////

FlexSpace.goCartoonNetwork = function (p_number){

	if(this.fs_pageCompleted){
		this.stopAutoPlay(); 
		this.fs_activePosition =  (p_number <= 6) ? p_number : 1;;		
		this.fs_currentImg = (p_number <= 5) ? p_number : 1;
		this.doWriteFlexSpaceCopy(p_number, this.fs_content[p_number-1].title, this.fs_content[p_number-1].description, this.fs_content[p_number-1].url, this.fs_content[p_number-1].timesplayed, this.fs_content[p_number-1].rating);
	
		this.doFlexSpaceTransition (p_number);
	}
}

FlexSpace.goCartoonNetworkURL = function (p_url){

	location.href = p_url;
}

FlexSpace.showFlexspaceCards = function (p_show){
	
	document.getElementById("flexspacevideoWrapper").style.zIndex = (p_show) ? "1" : "2";
}

FlexSpace.doWriteFlexSpaceCopy = function (p_number, p_title, p_descr, p_url, p_timesplayed, p_rating){

	document.getElementById("fs_desc_title").innerHTML 	= p_title;
	
	this.doRating(p_rating);
	
	var playerNo = parseInt(p_timesplayed) == 0 ? " " : parseInt(p_timesplayed) + " PLAYERS";
	
	document.getElementById("fs_players").innerHTML 	= playerNo;
	
	var jsStr = "javascript:FlexSpace.goCartoonNetworkURL('" + p_url + "'); ClickMapTracking.sendClickMapTrack('Q1_flexspace_description" + p_number + "', 'prop14');";
	var hrefStr = 'href="' + jsStr + '"';
	
	document.getElementById("fs_desc").innerHTML 		= "<a class=" + '"' + "fs_descA" + '"' + " " + hrefStr + " >" + p_descr + "</a>";
}

FlexSpace.doHighlight = function (p_highlightElement){

	document.getElementById(p_highlightElement + "a").className = "fs_uparrow_on";
	document.getElementById(p_highlightElement + "b").className = "fs_number_on";
	document.getElementById(p_highlightElement + "c").className = "fs_underline_on";
}

FlexSpace.doRemoveHighlight = function (p_removeHighlightElement){

	document.getElementById(p_removeHighlightElement + "a").className = "fs_uparrow";
	document.getElementById(p_removeHighlightElement + "b").className = "fs_number";
	document.getElementById(p_removeHighlightElement + "c").className = "fs_underline";
}

FlexSpace.doRating = function (p_rate){

	if(p_rate == "0"){
		document.getElementById("fs_spryrating").style.display = "none";
	}else{
		document.getElementById("fs_spryrating").style.display = "block";
		var rateVal = p_rate;
		var widgetname = new Spry.Widget.Rating("fs_spryrating",{ratingValue:rateVal, readOnly:true});
	}
}


