var feedPID = "_SA9z67bMUimtmTx5sHZlubfCbo_o6Lg";
var requestString =	"http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + "&field=title&field=PID&field=Assets&field=length&sortField=airDate&sortDescending=true&startIndex=1&endIndex=3&query=Categories|[THOUK]Home%20Page";
var releaseLocation = "http://release.theplatform.com/content.select?pid=";
var db;
var isPlaying = true;
var videos = new Array();
var currentVideo;
var currentDuration;
var replay;
var thomasFlash;
var firstTime = true;
var isMute = false;

function showVideoPlayer()
{
	document.getElementById("playerWrap").style.display = "block";
	document.getElementById("player").style.display = "block";
	document.getElementById("videoFrame").style.display = "block";
	document.getElementById("videoControls").style.display = "block";
	return true;
}

function setTheRelease(PID)
{
    tpController.setReleaseURL(releaseLocation + PID + "&Tracking=true&Player=Thomas%20the%20Tank%20Engine%20UK%20Home%20Page&Portal=Thomas%20the%20Tank%20Engine%20UK");
}

function playVideo(PID)
{
	tpController.removeEventListener("OnReleaseEnd", "onReleaseEnd");
	//db.innerHTML += "OnReleaseEnd removed<br>";
	replay.style.display = "none"
	currentVideo = PID;
	setTheRelease(PID);
	//db.innerHTML += "Play video routine sets the currentVideo to " + PID + "<br>";
	
	try
	{
		if(firstTime)
		{
			firstTime = false;
			try
			{
				thomasFlash.highlightThumb('1');
				//db.innerHTML += "Thumb highlight set to 1<br>";
			}
			catch(e)
			{
				//db.innerHTML += "ERROR:" + e + "<br>";
			}
		}
		else
		{
			for (var i = 0; i < videos.length; i++)
			{
				if(videos[i].PID == currentVideo)
				{
					try
					{
						thomasFlash.highlightThumb((i+1));
						//db.innerHTML += "Thumb highlight set to 1<br>";
					}
					catch(e)
					{
						//db.innerHTML += "ERROR:" + e + "<br>";
					}
				}
			}
		}
	}
	catch(e)
	{
		//db.innerHTML += "ERROR:" + e + "<br>";
	}
	
	for (var i = 0; i < videos.length; i++)
	{
		if(videos[i].PID == currentVideo)
		{
			currentDuration = convertMS(videos[i].length);
			break;
		}
	}
}

function replayVideos()
{
	currentVideo = videos[0].PID;
	playVideo(currentVideo);
	//onReleaseFirstStart("");
}

function onReleaseStart(evt)
{
	tpController.addEventListener("OnReleaseEnd", "onReleaseEnd");
	db.innerHTML += "OnReleaseEnd added<br>";
	//tpController.seekToPercentage(90);
}

function onReleaseEnd(evt)
{
	tpController.removeEventListener("OnReleaseEnd", "onReleaseEnd");
	db.innerHTML += "OnReleaseEnd removed (by itself)<br>";
	for (var i = 0; i < videos.length; i++)
	{
		db.innerHTML += "Checking video number " + i + " which is " + videos[i].PID+ " against the current video (which is " + currentVideo + ")" + "<br>";
		
		if(videos[i].PID == currentVideo)
		{
			db.innerHTML += "Found it in location " + i + "<br>";
			if(i == 2)
			{
				try
				{
					thomasFlash.highlightThumb('0');
					//db.innerHTML += "Thumb highlights reset<br>";
				}
				catch(e)
				{
					//db.innerHTML += "ERROR:" + e + "<br>";
				}
				$(replay).fadeIn(1000);
			}
			else
			{
				try
				{
					db.innerHTML += "We're not at the end so the new current video comes from slot " + (i+1) + " and is " + videos[i+1].PID + "<br>";
					currentVideo = videos[i+1].PID;
					playVideo(currentVideo);
				}
				catch(e)
				{
					db.innerHTML += "ERROR 2:" + e + "<br>";
				}
			}
			break;
		}
	}
}

function parseReleases(response)
{
	var fv = "";
	db = document.createElement("DIV");
	db.style.position = "absolute";
	db.style.top = "0px";
	db.style.width = "100%";
	db.style.border = "2px solid red";
	db.style.backgroundColor = "#fff";
	db.style.color = "#000";
	db.style.font = "normal 10px Verdana";
	db.style.display = "none";
	document.body.appendChild(db);
	
	replay = document.getElementById("replay");
	//thomasFlash = document.getElementById("thomas-flash");
	
	//db.innerHTML += "The reponse is: " + response + "<br>";
	//db.innerHTML += "We have this many items: " + response.items.length + "<br>";
	
	tpController.addEventListener("OnReleaseStart", "onReleaseStart");
	//tpController.addEventListener("OnReleaseStart", "onReleaseFirstStart");
	tpController.addEventListener("OnMediaPlaying", "onMediaPlaying");
	
	db.innerHTML += "OnReleaseStart added<br>";
	
	for(var i = 0; i < response.items.length; i++)
	{
		var largeThumb = "";
		var objVideo = new Object();
		objVideo.PID = response.items[i].PID;
		objVideo.length = response.items[i].length;
		videos.push(objVideo);
		//db.innerHTML += "Pushed " + response.items[i].PID + " to videos array" + "<br>";
		
		if(typeof(response.items[i].assets == "object"))
		{
			//db.innerHTML += i + " has assets.<br>";
			//db.innerHTML += "This is it: " + response.items[i] + "<br>";
			//db.innerHTML += "This is its assets: " + response.items[i].assets + "<br>";
			for(var j = 0; j < response.items[i].assets.length; j++)
			{
				//db.innerHTML += "In the loop now (" + j + " of " + response.items[i].assets.length + ")<br>";
				if(response.items[i].assets[j].assetType == "LargeThumb")
				{
					largeThumb = response.items[i].assets[j].URL;
					//db.innerHTML += "Got a large thumb (" + response.items[i].assets[j].URL + ")<br>";
					break;
				}
			}
		}
		else
		{
			//db.innerHTML += "No assets.<br>";
		}
		
		if(largeThumb == "")
		{
		    largeThumb = "/Thomas/img/thumb1.jpg";
		}
		
		fv += largeThumb + "$" + response.items[i].PID + "$" + escape(response.items[i].title) + "|";
	}
	
	fv = fv.substr(0,fv.length - 1);
	//db.innerHTML += fv;
	
	embedThomasHomeFlash(fv);
	thomasFlash = document.getElementById("thomas-flash");
}

function play()
{
	if(isPlaying)
	{
		tpController.pause(true);
		isPlaying = false;
	}
	else
	{
		tpController.pause(false);
		isPlaying = true;
	}
}

function next()
{
	tpController.removeEventListener("OnReleaseEnd", "onReleaseEnd");
	db.innerHTML += "OnReleaseEnd removed<br>";
	for (var i = 0; i < videos.length; i++)
	{
		if(videos[i].PID== currentVideo)
		{
			if((i+1) > 2)
			{
				//db.innerHTML += "We're at the end, dammit<br>";
				currentVideo = videos[0].PID;
			}
			else
			{
				//db.innerHTML += "Here we go<br>";
				currentVideo = videos[i+1].PID;
			}
			playVideo(currentVideo);
			break;
		}
	}
}

function previous()
{
	tpController.removeEventListener("OnReleaseEnd", "onReleaseEnd");
	db.innerHTML += "OnReleaseEnd removed<br>";
	for (var i = 0; i < videos.length; i++)
	{
		if(videos[i].PID== currentVideo)
		{
			if((i-1) < 0)
			{
				//db.innerHTML += "We're at the start, dammit<br>";
				currentVideo = videos[2].PID;
			}
			else
			{
				//db.innerHTML += "Here we go<br>";
				currentVideo = videos[i-1].PID;
			}
			playVideo(currentVideo);
			break;
		}
	}
}

function mute()
{
	if(isMute)
	{
		isMute = false;
		tpController.mute(false);
	}
	else
	{
		isMute = true;
		tpController.mute(true);
	}
}

function onMediaPlaying(evt)
{
	document.getElementById("videoControls").getTimeCode(convertMS(evt.data["currentTime"]) + "/" + currentDuration);
}

function two(x)
{
	return ((x>9)?"":"0")+x;
}

function three(x)
{
	return ((x>99)?"":"0")+((x>9)?"":"0")+x;
}

function convertMS(ms)
{
	var sec = Math.floor(ms/1000)
	var min = Math.floor(sec/60);
	sec = sec % 60;
	t = two(sec);
	
	var hr = Math.floor(min/60);
	min = min % 60;
	t = two(min) + ":" + t;
	
	return t;
}