var feedPID = "jBanbaGqvEV_";
var releaseList;
var holder = document.getElementById("pdkHolder");
var thumbs = document.getElementById("thumbs");
var thumbVerticalSpacing = 90;
var thumbFader;
var thumbLibrary = new Array();
var videoTitle;
var removeSpeechBubbleInterval;
var fadeInProgress = false;
var noMovieSelected = true;
var loader = setInterval(checkEverythingIsReady,500);
var nowPlaying = 0;	
var totalNumberOfVideos = 0;
var portalName = "Fireman%20Sam%20USA";
var playerName = "Fireman%20Sam%20USA%20Video%20Page";

var ua = navigator.userAgent;
var ff = false;
var IESIX = false;

if(ua.indexOf("MSIE") == -1)
{
	ff = true;
}
else
{
	if(ua.indexOf("6.0") != -1)
	{
		IESIX = true;
	}
}

tpSetCommManagerID("communicationwidget", true);

var releaseRequest = new JSONRequest("http://feed.theplatform.com/f/iV2yAC/"+ feedPID +"?form=json", "buildReleaseList");
releaseRequest.send();

tpController.addEventListener("OnReleaseStart", "releaseStartEvent");
tpController.addEventListener("OnMediaStart", "onMediaStart");

thumbs.onmouseout = function(){
	
};

// ------------------------------------------------------------------------------------
function onMediaStart(evt)
// ------------------------------------------------------------------------------------
{
	
	//check if there are any ads in the adspace already, if there is then delete them
	var target = document.getElementById("adspace");
	target.style.backgroundImage = "none";
	
	var links = target.getElementsByTagName("A");
	
	if(links.length>0)
	{
		for(var i = 0; i < links.length; i++)
		{
			target.removeChild(links[i]);
			i--;
		}
	}
	
	//ONE BY ONE PIXEL MANUALLY IMPLEMENTED WITHOUT USING CLIPINFO WIDGET
	var clipTitle = evt.data.baseClip.title;
	
	//this is for the Bed time with Pooh ad
	if(clipTitle.indexOf("MacRipper") != -1)
	{
		var image = document.createElement("IMG");
		image.src= "http://n4403ad.doubleclick.net/ad/gn.hitentertainment.com/redirect;adid=231575779;sect=redirect;sz=1x1;ord=1234567890?"; 
		image.style.width = 1 + "px";
		image.style.height = 1 + "px";
		
		
		var a = document.createElement("A");
		a.href="http://n4403ad.doubleclick.net/jump/gn.hitentertainment.com/redirect;adid=231575779;sect=redirect;sz=1x1;ord=1234567890"; 
		a.target="_blank";
		a.style.display="block";
		a.style.width= 1 + "px";
		a.style.height= 1 + "px";
		
		a.appendChild(image);
		
		target.appendChild(a);
	}
	
	if(clipTitle.indexOf("MacRip2") != -1)
	{
		var image = document.createElement("IMG");
		image.src= "http://n4403ad.doubleclick.net/ad/gn.hitentertainment.com/redirect;adid=231575782;sect=redirect;sz=1x1;ord=1234567890?"; 
		image.style.width = 1 + "px";
		image.style.height = 1 + "px";
		
		
		var a = document.createElement("A");
		a.href="http://n4403ad.doubleclick.net/jump/gn.hitentertainment.com/redirect;adid=231575782;sect=redirect;sz=1x1;ord=1234567890"; 
		a.target="_blank";
		a.style.display="block";
		a.style.width= 1 + "px";
		a.style.height= 1 + "px";
		
		a.appendChild(image);
		
		target.appendChild(a);
	}
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function buildReleaseList(response)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	$("#console").fadeIn(2000, function(){$("#playerDiv").fadeIn(2000)});
	
	releaseList = response.entries;
	totalNumberOfVideos = 5		// totalNumberOfVideos = response.listInfo.totalCount;	// SW:2009/01/06 -> CHANGE THIS BACK
	
	if (releaseList.length > 0)
	{
		for (var i = 0; i < releaseList.length; i++) // CHANGE THIS BACK
		//for (var i = 0; i < 5; i++)
		{
			var release = releaseList[i];
			var URL = release.media$content[0].plfile$url
			var thumbHighlight = document.createElement("A");
			var thumb = document.createElement("SPAN");
			thumbHighlight.href = "#";
			thumbHighlight.videoTitle = release.title;
			thumbHighlight.release = release;
			setThumbOnclick(thumbHighlight);
			setThumbOnmouseover(thumbHighlight);
			setThumbOnmouseout(thumbHighlight);
			thumbHighlight.className = "thumbHighlight";
			thumbHighlight.videoNumber = i;
			thumb.className = "thumb";
			thumb.style.backgroundImage = "url(" + release.media$thumbnails[0].plfile$url + ")";
			thumb.style.top = (i * thumbVerticalSpacing).toString() + "px";
			thumb.appendChild(thumbHighlight);
			thumb.id = "thumb_" + findPID(URL, true);
			thumbs.appendChild(thumb);
			thumbLibrary.push(thumb);
		}
		thumbs.style.height = (thumbVerticalSpacing * releaseList.length).toString() + "px";
		thumbFader = setInterval(fadeInThumb,500);
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function removeSpeechBubble()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	clearInterval(removeSpeechBubbleInterval);
	removeSpeechBubbleInterval = null;
	$("#speech").fadeOut(500);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function fadeInThumb()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var allThumbsFaded = true;
	
	for (var i = 0; i < thumbLibrary.length; i++)
	{
		if ((thumbLibrary[i].className == "thumb") && (!thumbLibrary[i].shown))
		{
			$("#" + thumbLibrary[i].id).fadeIn(1000);
			thumbLibrary[i].shown = true;
			break;
		}
	}
	
	for (var i = 0; i < thumbLibrary.length; i++)
	{
		if (!thumbLibrary[i].shown)
		{
			allThumbsFaded = false;
			break;
		}
	}
	
	if (allThumbsFaded)
	{
		clearInterval(thumbFader);
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function resetThumbs()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	for (var i = 0; i < document.getElementById("thumbs").getElementsByTagName("A").length; i++)
	{
		if (document.getElementById("thumbs").getElementsByTagName("A")[i].className == "thumbHighlightSelected")
		{
			var thumbHighlight = document.getElementById("thumbs").getElementsByTagName("A")[i];
			thumbHighlight.className = "thumbHighlight";
			setThumbOnclick(thumbHighlight);
			setThumbOnmouseover(thumbHighlight);
			setThumbOnmouseout(thumbHighlight);
			break;
		}
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function setThumbOnclick(targetThumb)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	targetThumb.onclick = function(){
		playVideo(targetThumb.videoNumber);
		return false;
	};
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function setThumbOnmouseover(targetThumb)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	targetThumb.onmouseover = function(){
		videoTitle = this.videoTitle;
		if(!fadeInProgress)
		{
			fadeInProgress = true;
			$("#speech").fadeIn(500, function(){document.getElementById("videoTitle").innerHTML = videoTitle; fadeInProgress = false;})
		}
		else
		{
			document.getElementById("videoTitle").innerHTML = videoTitle
		}
	};
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function setThumbOnmouseout(targetThumb)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	targetThumb.onmouseout = function(){
		$("#speech").fadeOut(250, function(){document.getElementById("videoTitle").innerHTML = ""});
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function releaseEndEvent(evt)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	resetThumbs();
	//tellFlashVideoIsPlaying(false);
	noMovieSelected = true;
	document.getElementById("nowPlaying").innerHTML = "";
	if(!IESIX)
	{
		document.getElementById("playPause").style.backgroundImage = "url(images/play.png)";
	}
	else
	{
		document.getElementById("playPause").style.backgroundImage = "url(images/play.gif)";
	}
	document.getElementById("playPause").onclick = function(){
		playVideo(0);
		return false;
	}
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function releaseStartEvent(evt)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	tpController.addEventListener("OnReleaseEnd", "releaseEndEvent");
	if(!IESIX)
	{
		document.getElementById("playPause").style.backgroundImage = "url(images/pause.png)";
		document.getElementById("playPause").onclick = function(){
			tpController.pause(this.pause);
			if (this.pause)
			{
				document.getElementById("playPause").style.backgroundImage = "url(images/play.png)";
				this.pause = false;
			}
			else
			{
				document.getElementById("playPause").style.backgroundImage = "url(images/pause.png)";
				this.pause = true;
			}
			this.blur();
			return false;
		};
	}
	else
	{
		document.getElementById("playPause").style.backgroundImage = "url(images/pause.gif)";
		document.getElementById("playPause").onclick = function(){
			tpController.pause(this.pause);
			if (this.pause)
			{
				document.getElementById("playPause").style.backgroundImage = "url(images/play.gif)";
				this.pause = false;
			}
			else
			{
				document.getElementById("playPause").style.backgroundImage = "url(images/pause.gif)";
				this.pause = true;
			}
			this.blur();
			return false;
		};
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function playPauseFromFlash(doPause)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	//document.getElementById("console_flash").blur();
	if(!noMovieSelected)
	{
		if (doPause)
		{
			tpController.pause(true);
		}
		else
		{
			tpController.pause(false);
		}
	}
	else
	{
		//tellFlashVideoIsPlaying(false);
		playVideo(0);
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function playVideo(videoNumber)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var targetThumb = document.getElementById("thumbs").getElementsByTagName("A")[videoNumber];
	tpController.removeEventListener("OnReleaseEnd", "releaseEndEvent");
	resetThumbs();
	tpController.setReleaseURL(targetThumb.release.media$content[0].plfile$url + "?Portal=" + portalName + "&Player=" + playerName);
	$("#speech").fadeOut(250, function(){document.getElementById("videoTitle").innerHTML = ""});
	targetThumb.className = "thumbHighlightSelected";
	targetThumb.onclick = function(){
		return false;
	};
	targetThumb.onmouseover = function(){
	};
	targetThumb.style.cursor = "default";
	document.getElementById("nowPlaying").innerHTML = "<span style='color:#F9AB52;'>Now playing: </span>" + targetThumb.videoTitle;
	noMovieSelected = false;
	document.getElementById("playPause").pause = true;
	nowPlaying = videoNumber;
	if (videoNumber == 0)
	{
		disableButton(document.getElementById("previous"));
	}
	else
	{
		enableButton(document.getElementById("previous"));
	}
	
	if ((videoNumber + 1) == totalNumberOfVideos)
	{
		disableButton(document.getElementById("next"));
	}
	else
	{
		enableButton(document.getElementById("next"));
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function tellFlashVideoIsPlaying(isPlaying)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var objMovie = document.getElementById("console_flash");
	objMovie.setIsPlayingFunction(isPlaying);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function checkEverythingIsReady()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if((document.getElementById("thumbs")) && (document.getElementById("thumbs").getElementsByTagName("A").length > 0) && (document.getElementById("playerDiv")) && (typeof(tpController) == "object"))
	{
		clearInterval(loader);
		document.getElementById("next").oldOnClick = function(){
			tpController.removeEventListener("OnReleaseEnd", "releaseEndEvent");
			nowPlaying++;
			playVideo(nowPlaying);
			if ((nowPlaying + 1) == totalNumberOfVideos)
			{
				disableButton(this);
			}
			return false;
		}
		document.getElementById("previous").oldOnClick = function(){
			tpController.removeEventListener("OnReleaseEnd", "releaseEndEvent");
			nowPlaying--;
			playVideo(nowPlaying);
			if (nowPlaying == 0)
			{
				disableButton(this);
			}
			return false;
		}
		playVideo(0);
	}
	else
	{
		/*
		var div = document.createElement("DIV");
		div.innerHTML = "waiting";
		document.getElementById("debug").appendChild(div);
		*/
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function disableButton(target)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (target.className.indexOf("Disabled") == -1)
	{
		target.oldOnClick = target.onclick;
		target.onclick = function(){
			return false;
		};
		target.className += "Disabled";
		target.blur();
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function enableButton(target)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	target.className = target.className.replace("Disabled","");
	target.onclick = target.oldOnClick;
}


// ------------------------------------------------------------------------------------
function showTrackingPixel()
// ------------------------------------------------------------------------------------
{
	var wrapper = document.getElementById("wrapper");
	var dot = document.createElement("IMG");
	dot.src = "http://ad.doubleclick.net/ad/gn.gorillanation.com/redirect;adid=216343891;sz=1x1;ord=" + ord;
	dot.style.position = "absolute";
	dot.style.top = "0px";
	dot.style.left = "0px";
	wrapper.appendChild(dot);
}

// ------------------------------------------------------------------------------------
function findPID(link, feed){
// ------------------------------------------------------------------------------------
		if(feed){
			PID = link.substr(0,link.indexOf("?"));
			PID = PID.substring(PID.lastIndexOf("/")+1,PID.length - 1);
		} else {
			PID = link.substring(link.lastIndexOf("/")+1,link.length - 1);
		}
		//console.log('findPID() = '+PID);
		return PID;
}
