var feedPID = "_30yMB2H8PPLfDKDFyo0THbZ5H7S_CE_";
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%20UK";
var playerName = "Fireman%20Sam%20UK%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");

tpRegisterID("playerwidget");
var so = new SWFObject("swf/flvPlayer.swf", "playerwidget", "322", "242", "8.0.0.0");
so.addParam("quality", "high");
so.addParam("scale", "noscale");
so.addParam("salign", "tl");
so.addParam("menu", "true");
so.addParam("bgcolor", "#131313");
so.addParam("wmode", "transparent");
so.addParam("allowFullScreen", "true");
so.addParam("allowScriptAccess", "always");
so.addVariable("allowFullScreen", "true");
so.addVariable("autoPlay", "false");
so.addVariable("commManagerID", tpGetCommManagerID());
so.addVariable("height", 259);
so.addVariable("ID", "playerwidget");
so.addVariable("instanceID", tpGetInstanceID());
so.addVariable("parserURL", "swf/parser.swf");
so.addVariable("playbackManagerURL", "swf/playback.swf");
so.addVariable("qosURL", "swf/qos.swf");
so.addVariable("showFullTime", "true");
so.addVariable("skinURL", "swf/skinCinematic.swf");
so.addVariable("stylesheetURL", "css/verdana.css");
so.addVariable("useJS", tpGetUseJS());
so.addVariable("width", 322);
so.addVariable("backgroundColor", "0x131313");
so.addVariable("controlBackgroundColor", "0x131313");
so.addVariable("controlColor", "0xBEBEBE");
so.addVariable("controlFrameColor", "0x545759");
so.addVariable("controlHoverColor", "0x00CCFF");
so.addVariable("controlSelectedColor", "0xBEBEBE");
so.addVariable("frameColor", "0x545759");
so.addVariable("playProgressColor", "0x00CCFF");
so.addVariable("scrubberColor", "0xBEBEBE");
so.addVariable("scrubberFrameColor", "0x00CCFF");
so.addVariable("scrubTrackColor", "0xBEBEBE");
so.addVariable("textBackgroundColor", "0x383838");
so.addVariable("textColor", "0xBEBEBE");
so.write("playerDiv");

var so = new SWFObject("swf/commManager.swf", tpGetCommManagerID(), "1", "1", "8.0.0.0");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.addVariable("ID", tpGetCommManagerID());
so.addVariable("instanceID", tpGetInstanceID());
so.addVariable("registeredIDs", tpGetRegisteredIDs());
so.write("commManagerDiv");

var releaseRequest = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getReleaseList?PID=" + feedPID + "&sortField=author", "buildReleaseList");
releaseRequest.send();

tpController.addEventListener("OnReleaseStart", "releaseStartEvent");

thumbs.onmouseout = function(){
	
};

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function buildReleaseList(response)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	$("#console").fadeIn(2000, function(){$("#playerDiv").fadeIn(2000)});
	
	releaseList = response.items;
	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 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.thumbnailURL + ")";
			thumb.style.top = (i * thumbVerticalSpacing).toString() + "px";
			thumb.appendChild(thumbHighlight);
			thumb.id = "thumb_" + release.PID;
			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.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(4);	// playVideo(0);	// SW:2009/01/06 -> CHANGE THIS BACK
	}
	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;
}