var portalName = "HiT%20Video%20Portal%20USA";
var playerName = "HiT%20Video%20Portal%20Video%20Page%20USA";

tpRegisterID("playerwidget");
var so = new SWFObject("swf/flvPlayer.swf", "playerwidget", "316", "226", "8.0.0.0", "#131313");
so.addParam("quality", "high");
so.addParam("scale", "noscale");
so.addParam("salign", "tl");
so.addParam("menu", "true");
so.addParam("wmode", "transparent");
so.addParam("allowScriptAccess", "always");
so.addParam("allowFullScreen", "true");
so.addVariable("allowFullScreen", "true");
so.addVariable("commManagerID", tpGetCommManagerID());
so.addVariable("height", 250);
so.addVariable("ID", "playerwidget");
so.addVariable("instanceID", tpGetInstanceID());
so.addVariable("linkHeight", 600);
so.addVariable("linkURL", "http://yourcompany.com");
so.addVariable("linkWidth", 800);
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("plugin0", "type=adcomponent|URL=swf/SMIL.swf|priority=3");
so.addVariable("plugin1", "type=subtitlesManager|URL=swf/subtitlesManager.swf");
so.addVariable("plugin2", "type=subtitlesViewer|URL=swf/subtitlesViewer.swf");
var yume_plugin_url = "type=overlay|URL=swf/YumePlugin.swf|subURL=http://pl.yumenetworks.com/yumeweb/include/advertiser/yume_swf_library.swf|yume_swf_url=http://pl.yumenetworks.com/yumeweb/include/advertiser/yume_player_4x3.swf|yume_leader_slot=true|yume_preroll_playlist=" +encodeURIComponent("http://pl.yumenetworks.com/dynamic_preroll_playlist.fmil?domain=123jZLBconZ") + "|yume_branding_playlist=" +encodeURIComponent("http://pl.yumenetworks.com/dynamic_branding_playlist.fmil?domain=123jZLBconZ");
so.addVariable("plugin3", yume_plugin_url); 
so.addVariable("width", 330);
so.addVariable("backgroundColor", "0x131313");
so.addVariable("controlBackgroundColor", "0x131313");
so.addVariable("controlColor", "0xBEBEBE");
so.addVariable("controlFrameColor", "0x545759");
so.addVariable("controlHoverColor", "0xBEBEBE");
so.addVariable("controlSelectedColor", "0x00CCFF");
so.addVariable("frameColor", "0x545759");
so.addVariable("pageBackgroundColor", "0x131313");
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.addVariable("adPattern", "count:5");

//so.addVariable("emailServiceURL", "https://yourcompany.com/email");
//so.addVariable("embeddedPlayerHTML", "<iframe src=\"http://yourcompany.com/player?v={releasePID}\"><iframe>");
//so.addVariable("overlayImageURL", "images/logo_bug.png");
//so.addVariable("playerURL", "http://yourcompany.com/player?v={releasePID}");
//so.addVariable("RSSURL", "http://feeds.theplatform.com/ps/getRSS?PID=ZmI1QVB4jWSyu0-u6Tj1d_YlsLr6DwCX");
//so.addVariable("previewImageURL", "http://thumbnails.theplatform.com.edgesuite.net/PSAPI/85/1012/MVI_0294.jpg");
//so.addVariable("releaseURL", "http://release.theplatform.com/content.select?pid=lbkUR1c4BCCia7hXOBh2HBO3lw2-NOYg&amp;format=SMIL&amp;Tracking=true");
so.write("playerDiv");

tpRegisterID("categorymodelwidget");
so = new SWFObject("swf/categoryModel.swf", "categorymodelwidget", "1", "1", "8.0.0.0");
so.addParam("wmode", "transparent");
so.addVariable("commManagerID", tpGetCommManagerID());
so.addVariable("feedPID", feedPID);
so.addVariable("feedsServiceURL", "http://feeds.theplatform.com/ps/JSON/PortalService/2.2");
so.addVariable("fields", "");
so.addVariable("ID", "categorymodelwidget");
so.addVariable("instanceID", tpGetInstanceID());
//so.addVariable("params", "query=FullTitles|Animals");
so.addVariable("useJS", tpGetUseJS());
so.write("categoryModelDiv");

tpRegisterID("clipinfowidget");
so = new SWFObject("swf/info.swf", "clipinfowidget", "230", "300", "8.0.0.0");
so.addParam("quality", "high");
so.addParam("scale", "noscale");
so.addParam("salign", "tl");
so.addParam("menu", "false");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.addVariable("bannerAlignment", "bottom");
so.addVariable("bannerRegions", "");
so.addVariable("commManagerID", tpGetCommManagerID());
so.addVariable("height", 300);
so.addVariable("ID", "clipinfowidget");
so.addVariable("instanceID", tpGetInstanceID());
so.addVariable("showAuthor", "false");
so.addVariable("showBanners", "true");
//so.addVariable("showCopyright", "true");
//so.addVariable("showDescription", "true");
//so.addVariable("showMetadata", "true");
//so.addVariable("skinURL", "swf/skinFloat.swf");
so.addVariable("stylesheetURL", "css/verdana.css");
so.addVariable("useBannerQueuing", "true");
so.addVariable("useJS", tpGetUseJS());
so.addVariable("width", 230);
//so.addVariable("backgroundColor", "0x0079C2");
//so.addVariable("descriptionColor", "0xFFFFFF");
//so.addVariable("frameColor", "0x88A1BF");
//so.addVariable("titleColor", "0xFDBE0F");
so.addVariable("useBannerQueuing", "true");
so.write("clipInfoDiv");

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");
						
tpController.addEventListener("OnRefreshCategoryModel", "onCategoryRefresh");
tpController.addEventListener("OnReleaseStart", "onReleaseStart");
tpController.addEventListener("OnMediaStart", "onMediaStart");

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function showShim()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	document.getElementById("shim").style.display = "block";
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function revealAll()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (readyToReveal)
	{
		clearInterval(revealInterval);
		$("#red").fadeOut(1500, function(){showShim(), $("#thumbs").fadeIn(1500), $("#highlights").fadeIn(1500), $("#button_wrap").fadeIn(1500), $("#releaseTitle").fadeIn(1500), $("#releaseTime").fadeIn(1500, function(){$("#playerDiv").fadeIn(500)})});
	}
}

var clickNum = 0;
var myStart = 1;
var myFinish = 3;
var myNewStart = 1;
var myNewFinish = 6;
var myPos = 1;
var itemsPerPage = 3;
var totalCount = 0;
var releaseTitle = document.createElement("P");
var releaseTime = document.createElement("P");
var playingRelease;
var firstTime = true;
var backRelease = false;
var categoryFilter ="";
var revealInterval = setInterval(revealAll, 1000);
var readyToReveal = false;
var newestReleaseList;

//var mainReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish + "&sortField=added&descending=true","buildReleaseList");
var mainReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish,"buildReleaseList");
mainReleases.send();

var newestReleases;
getNewestReleases();

var characterLinks = document.getElementById("characters").getElementsByTagName("A");

for (var i = 0; i < characterLinks.length; i++)
{
	filterByCharacter(characterLinks[i].name);
}

//RELEASE TIME AND TITLE VARIABLES
releaseTitle.className = "releaseTitle";
releaseTime.className = "releaseTime";
releaseTitle.id = "releaseTitle";
releaseTime.id = "releaseTime";

//BUTTON WRAP
var buttonWrap = document.createElement("DIV");
buttonWrap.id = "button_wrap";

//PLAY BUTTON
var releasePlay = document.createElement("A");
releasePlay.id = "button_play";
releasePlay.style.backgroundImage = "url(images/play.gif)";
releasePlay.href = "#";
releasePlay.className = "playBtn";

//FORWARD BUTTON
var releaseForward = document.createElement("A");
releaseForward.style.backgroundImage = "url(images/forward.gif)";
releaseForward.className = "forwardBtn";
releaseForward.href = "#";
releaseForward.id = "releaseForward";
releaseForward.onclick = function (){
	forwardButtonStandard();
	return false;
}

//BACK BUTTON
var releaseBack = document.createElement("A");
releaseBack.style.backgroundImage = "url(images/back.gif)";
releaseBack.className = "backBtn";
releaseBack.href="#";
releaseBack.id = "releaseBack";
releaseBack.onclick = function (){
	backButtonStandard();
	return false;
}

//NEXT BUTTON
var nextBtn = document.createElement("A");
nextBtn.style.backgroundImage = "url(images/next.gif)";
nextBtn.className = "nextBtn";
nextBtn.href="#";
nextBtn.id = "nextBtn";

//PREVIOUS BUTTON
var previousBtn = document.createElement("A");
previousBtn.style.backgroundImage = "url(images/previous.gif)";
previousBtn.className = "previousBtn";
previousBtn.id = "previousBtn";
previousBtn.href="#";

// NEXT BUTTON NEW
var nextBtnNew = document.getElementById("nextBtnNew");
nextBtnNew.href = "#";
nextBtnNew.onclick = function (){
	myNewStart += 6;
	myNewFinish += 6;
	getNewestReleases();
	return false;
}

// PREV BUTTON NEW
var prevBtnNew = document.getElementById("prevBtnNew");
prevBtnNew.href = "#";
prevBtnNew.onclick = function (){
	myNewStart -= 6;
	myNewFinish -= 6;
	getNewestReleases();
	return false;
}



// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function writeDebug(txt)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var myBug = document.getElementById("debug");
	var newLine = document.createElement("P");
	newLine.innerHTML = txt;
	myBug.style.position = "absolute";
	myBug.style.top = "0";
	myBug.style.left = "1000px";
	myBug.style.border = "1px solid black";
	myBug.style.width = "400px";
	myBug.appendChild(newLine);
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~		
function buildNewestReleaseList(response)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	newestReleaseList = response;
	
	if (myNewStart == 1)
	{
		$("#prevBtnNew").fadeOut(1500);
	}
	else
	{
		$("#prevBtnNew").fadeIn(1500);
	}
	
	if (myNewFinish >= newestReleaseList.listInfo.totalCount)
	{
		$("#nextBtnNew").fadeOut(1500);
	}
	else
	{
		$("#nextBtnNew").fadeIn(1500);
	}
	
	if (document.getElementById("newReleases").getElementsByTagName("A").length > 2)
	{
		removeNewestReleases();
	}
	else
	{
		buildNewestReleaseListItems();
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function buildNewestReleaseListItems()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var newReleases = new Array();
	
	for (var i = 0; i < newestReleaseList.items.length; i++)
	{
		var release = newestReleaseList.items[i];
		var newRelease = document.createElement("A");
		newRelease.className = "newRelease";
		newRelease.style.backgroundImage = "url(" + release.thumbnailURL + ")";
		newRelease.style.display = "none";
		newRelease.title = release.title;
		newRelease.href = "#";
		newRelease.release = release;
		newRelease.id = "newReleaseThumb_" + i;
		newRelease.onclick = function (){
			resetHighlights();
			this.className = "newReleasePlaying";
			playingRelease = this.release;
			$("#white").fadeIn(1500, function(){playRelease(playingRelease)});
			return false;
		}
		newReleases.push(newRelease);
		document.getElementById("newReleases").appendChild(newRelease);
	}
	
	for(var i = 0; i < newReleases.length; i++)
	{
		$("#" + newReleases[i].id).fadeIn(1500);
	}
	
	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~		
function buildReleaseList(response)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var releaseList = response;
	var x = 0;
	
	totalCount = releaseList.listInfo.totalCount;
	
	if (totalCount > 0)
	{
		
		if (firstTime)
		{
			playingRelease = releaseList.items[0];
		}
		
		removeReleases();
		
		releasePlay.title = releaseList.items[0].title;
		releasePlay.length = releaseList.items[0].length;
		releasePlay.currentRelease = releaseList.items[0];
		
		if (typeof(releaseList.items[1]) == "object")
		{
			releasePlay.nextRelease = releaseList.items[1];
		}
		
		releasePlay.PID = releaseList.items[0].PID;
	
				
		for(var i = 0; i < releaseList.items.length; i++)
		{ 
			//initialise variables
			var release = releaseList.items[i];
			var releaseLink = document.createElement("A");
			var releaseHighlight = document.createElement("A");
			var thumbBlocker = document.createElement("DIV");
			var speechBubble = document.createElement("DIV");
			var toolTip = document.createElement("SPAN");
			
			toolTip.innerHTML = releaseList.items[i].title;
			toolTip.className = "toolTip";
			toolTip.id = "toolTip_" + Number(myStart+i).toString();

			if (releaseList.items[i].title.length < 9)
			{
				speechBubble.className = "speechBubble";
			}

			if (releaseList.items[i].title.length >= 9)
			{
				speechBubble.className = "speechBubble";
			}
			
			if (releaseList.items[i].title.length >= 12)
			{
				speechBubble.className = "speechBubbleTwo";
			}
			
			if (releaseList.items[i].title.length >= 27)
			{
				speechBubble.className = "speechBubbleThree";
			}
			
			if (releaseList.items[i].title.length > 36)
			{
				speechBubble.className = "speechBubbleFour";
			}
			
			speechBubble.appendChild(toolTip);
			speechBubble.id = "speechBubble_" + Number(myStart+i).toString();
			speechBubble.style.left = ((x * 81) - 22).toString() + "px";
			
			thumbBlocker.style.left = ((x * 81) + 30).toString() + "px";
			thumbBlocker.className = "thumbBlocker";
			
			var leftPos = (x * 81).toString();
			leftPos += "px";
			x++;
			
			if (typeof(releaseList.items[i+1]) == "object")
			{
				releaseLink.nextRelease = releaseList.items[i+1];
				releaseHighlight.nextRelease = releaseList.items[i+1];
				releaseHighlight.nextReleaseTitle = releaseList.items[i+1].title;
			}
			
			if (typeof(releaseList.items[i-1]) == "object")
			{
				releaseLink.prevRelease = releaseList.items[i-1];
				releaseHighlight.prevRelease = releaseList.items[i-1];
				releaseHighlight.prevReleaseTitle = releaseList.items[i-1].title;
			}
			
			releaseLink.release = release;
			releaseLink.length = release.length;
			releaseLink.title = release.title;
			releaseLink.href = "#";
			releaseLink.id = "thumb_" + Number(myStart+i).toString();
			releaseLink.URL = release.URL;
			releaseLink.style.backgroundImage = "url("+ release.thumbnailURL +")";
			releaseLink.className = "releaseThumb";
			releaseLink.myNum = Number(myStart+i);
			releaseLink.style.left = leftPos;
			
			// THUMBNAIL ONCLICK
			releaseLink.onclick = function()
			{
				deactivateAll(this.myNum);
				resetHighlights();
				playingRelease = this.release;
				myPos = this.myNum;
				assessButtonStates();
				document.getElementById("highlight_" + this.myNum).className = "releaseHighlight";
				$("#white").fadeIn(1500, function(){playRelease(playingRelease)});
				return false;				
			}
			
			// HIGHLIGHT ONCLICK
			releaseHighlight.onclick = function()
			{
				deactivateAll(this.myNum);
				resetHighlights();
				playingRelease = this.release;
				myPos = this.myNum;
				assessButtonStates();
				document.getElementById("highlight_" + this.myNum).className = "releaseHighlight";
				$("#white").fadeIn(1500, function(){playRelease(playingRelease)});
				return false;				
			}
			
			releaseHighlight.onmouseover = function()
			{
				document.getElementById("speechBubble_" + this.myNum).style.display = "block";
			}
			
			releaseHighlight.onmouseout = function()
			{
				document.getElementById("speechBubble_" + this.myNum).style.display = "none";
			}
			
			releaseHighlight.release = release;
			releaseHighlight.id = "highlight_" + Number(myStart+i).toString();
			//releaseHighlight.title = release.title;
			releaseHighlight.style.left = leftPos;
			releaseHighlight.myNum = Number(myStart+i);
			releaseHighlight.className = "releaseHighlightOff";
			
			document.getElementById("thumbs").appendChild(releaseLink);
			document.getElementById("highlights").appendChild(speechBubble);
			document.getElementById("highlights").appendChild(releaseHighlight);
			document.getElementById("blockers").appendChild(thumbBlocker);
		}
		
		if (firstTime)
		{
			deactivateAll(myStart);
			playRelease(playingRelease);
			document.getElementById("highlight_" + myStart.toString()).className = "releaseHighlight";
		}
			
		if (backRelease){
			deactivateAll(myFinish);
			playingRelease = releaseList.items[itemsPerPage - 1];
			playRelease(playingRelease);
			releaseBack.onclick = function() {
				backButtonStandard();
				return false;
			}
			document.getElementById("highlight_" + myFinish.toString()).className = "releaseHighlight";
		}
	
		if (myStart > 1)
		{
			releaseBack.style.display = "block";
			if (firstTime)
			{
				//alert("rbns");
				releaseBack.onclick = function() {
					backButtonNonStandard(releaseBack);
					return false;
				}
			}
		}
		
		assessButtonStates();
		backRelease = false;
		firstTime = false;
	}
	readyToReveal = true;
	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function playRelease(releaseToPlay)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	playingRelease = releaseToPlay;
	tpController.setReleaseURL(releaseToPlay.URL + "&Portal=" + portalName + "&Player=" + playerName);
	releaseTitle.innerHTML = releaseToPlay.title;
	releaseTime.innerHTML = convertMS(releaseToPlay.length);
	releasePlay.style.backgroundPosition = "0 -40px";
	releasePlay.isPaused = false;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function removeReleases() <!-- /////////////////FUNCTION TO REMOVE RELEASES START///////////////////--> 
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	//this removes the current releases when the next button is clicked in order to show the next lot of releases
	var wrapper = document.getElementById("thumbs");
	var thumbs = wrapper.getElementsByTagName("A");	
	
	for(var i = 0; i < thumbs.length; i++)
	{
		wrapper.removeChild(thumbs[i]);
		i--;
	}
	
	wrapper = document.getElementById("highlights");
	thumbs = wrapper.childNodes;
	
	for(var i = 0; i < thumbs.length; i++)
	{
		wrapper.removeChild(thumbs[i]);
		i--;
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function resetHighlights() <!-- /////////////////FUNCTION TO HIDE HIGHLIGHTS START///////////////////-->
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var wrapper = document.getElementById("highlights");
	var highlights = wrapper.getElementsByTagName("A");
	var newHighlights = document.getElementById("newReleases").getElementsByTagName("A");
	
	for(var i = 0; i < highlights.length; i++)
	{
		highlights[i].className = "releaseHighlightOff";
	}
	
	for(var i = 0; i < newHighlights.length; i++)
	{
		if (newHighlights[i].className.indexOf("Release") != -1)
		{
			newHighlights[i].className = "newRelease";
		}
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function assessButtonStates()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (myFinish >= totalCount)
	{
		nextBtn.style.display = "none";
	}
	else
	{
		nextBtn.style.display = "block";
	}

	if (myStart <= 1)
	{
		previousBtn.style.display = "none";
	}
	else
	{
		previousBtn.style.display = "block";
	}

	if (myPos <= 1)
	{
		releaseBack.style.display = "none";
	}
	else
	{
		releaseBack.style.display = "block";
	}
	
	if (myPos >= totalCount)
	{
		releaseForward.style.display = "none";
	}
	else
	{
		releaseForward.style.display = "block";
	}
	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
setOpacity = function(id, o)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (document.getElementById(id))
	{
		var object = document.getElementById(id).style;
		object.opacity = (o / 100);
		object.MozOpacity = (o / 100);
		object.KhtmlOpacity = (o / 100);
		object.filter = "alpha(opacity=" + o + ")";
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function activateAll()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var thumbs = document.getElementById("thumbs").getElementsByTagName("A");
	for (var i = 0; i < thumbs.length; i++)
	{
		setOpacity(thumbs[i].id, 100);
	}
	setOpacity("releaseForward", 100);
	setOpacity("releaseBack", 100);
	setOpacity("nextBtn", 100);
	setOpacity("prevBtn", 100);
	setOpacity("button_play", 100);
	document.getElementById("blockers").style.display = "none";
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function deactivateAll(exception)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var thumbs = document.getElementById("thumbs").getElementsByTagName("A");
	for (var i = 0; i < thumbs.length; i++)
	{
		if (exception !== null)
		{
			if (thumbs[i].id !== "thumb_" + exception)
			{
				setOpacity(thumbs[i].id, 20);
			}
		}
		else
		{
			setOpacity(thumbs[i].id, 20);
		}
	}
	setOpacity("releaseForward", 50);
	setOpacity("releaseBack", 50);
	setOpacity("nextBtn", 70);
	setOpacity("prevBtn", 70);
	setOpacity("button_play", 50);
	document.getElementById("blockers").style.display = "block";
	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function onCategoryRefresh(evt)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{	

}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function onReleaseStart(evt)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{

}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function onMediaStart(evt)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	activateAll();
	$("#white").fadeOut(1500);
/*	for (var j in evt.data)
	{
		writeDebug(j + ":" + evt.data[j]);
	}
	
	try
	{
		if (typeof(evt.data) == "object")
		{
			try
			{
				if (Boolean(evt.data.baseClip.isAd))
				{
					//document.getElementById("clipInfoDiv").style.visibility = "visible";
				}
				else
				{
					//document.getElementById("clipInfoDiv").style.visibility= "hidden";
				}
			}
			catch (e)
			{
				alert(e.message + " 2");
			}
		}
	}
	catch (e)
	{
		alert(e.message + " 1");
	}*/
	var baseClipTitle = evt.data.baseClip.title;
	if(baseClipTitle.indexOf("ADVERT") != -1)
	{
		var dot = document.createElement("IMG");
		var vord = Math.floor(Math.random()*1E16);
		dot.src = "http://n4403ad.doubleclick.net/ad/gn.barney.com/redirect;adid=217121970;sect=redirect;sz=1x1;ord=" + vord + "?";
		dot.style.position = "absolute";
		dot.style.top = "0px";
		dot.style.left = "0px";
		document.getElementById("content").appendChild(dot);
	}
	
	var onePixel = evt.data.baseClip.title;
	if(onePixel.indexOf("Milk_640") != -1)
	{
		var dot = document.createElement("IMG");
		dot.src = "http://ads.pointroll.com/PortalServe/?pid=946699R81220100120221353&pos=i&r=[RANDOM]";
		dot.style.position = "absolute";
		dot.style.top = "0px";
		dot.style.left = "0px";
		document.getElementById("content").appendChild(dot);
	}
	
	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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);
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
previousBtn.onclick = function() <!-- /////////////////FUNCTION FOR 'PREVIOUS' BUTTON TO SHOW LAST SET OF RELEASES///////////////////--> 
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	deactivateAll(null);
	resetHighlights();
	myStart = Number(myStart - itemsPerPage);
	myFinish = Number(myFinish - itemsPerPage);
	firstTime = true;
	var myReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish,"buildReleaseList");
	myReleases.send();
	myPos = myStart;
	assessButtonStates();
	releaseBack.onClick = function ()
	{
		backButtonNonStandard();
	}
	releaseForward.onClick = function ()
	{
		forwardButtonNonStandard();
	}
	return false;
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nextBtn.onclick = function() <!-- /////////////////FUNCTION FOR 'Next' BUTTON TO SHOW NEXT SET OF RELEASES///////////////////--> 
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	deactivateAll(null);
	resetHighlights();
	myStart = Number(myStart + itemsPerPage);
	myFinish = Number(myFinish + itemsPerPage);
	firstTime = true;
	var myReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish,"buildReleaseList");
	myReleases.send();
	myPos = myStart;
	assessButtonStates();
	releaseBack.onClick = function ()
	{
		backButtonNonStandard();
	}
	releaseForward.onClick = function ()
	{
		forwardButtonNonStandard();
	}
	return false;
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function forwardButtonStandard()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{	
	deactivateAll(myPos+1);
	resetHighlights();
	releaseBack.style.display = "block";
	if (document.getElementById("thumb_" + Number(myPos+1).toString()))
	{
		playRelease(document.getElementById("thumb_" + Number(myPos+1).toString()).release)
		document.getElementById("highlight_" + Number(myPos+1).toString()).className = "releaseHighlight";
	}
	myPos++;
	if (!document.getElementById("thumb_" + Number(myPos+1).toString()))
	{
		releaseForward.onclick = function (){
			forwardButtonNonStandard();
			return false;
		}
	}
	releaseBack.onclick = function (){
		backButtonStandard();
		return false;
	}
	assessButtonStates();
	return false;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function forwardButtonNonStandard()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	resetHighlights();
	firstTime = true;
	myStart = Number(myStart + itemsPerPage);
	myFinish = Number(myFinish + itemsPerPage);
	var myReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" +  myFinish,"buildReleaseList");
	myReleases.send();
	myPos++;
	releaseForward.onclick = function (){
		forwardButtonStandard();
		return false;
	}
	releaseBack.onclick = function (){
		backButtonNonStandard();
		return false;
	}
	return false;
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function backButtonStandard()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	deactivateAll(myPos-1);
	resetHighlights();
	releaseForward.style.display = "block";
	if (document.getElementById("thumb_" + Number(myPos-1).toString()))
	{
		playRelease(document.getElementById("thumb_" + Number(myPos-1).toString()).release)
		document.getElementById("highlight_" + Number(myPos-1).toString()).className = "releaseHighlight";
	}
	myPos--;
	if (!document.getElementById("thumb_" + Number(myPos-1).toString()))
	{
		releaseBack.onclick = function (){
			backButtonNonStandard();
			return false;
		}
	}
	releaseForward.onclick = function (){
		forwardButtonStandard();
		return false;
	}
	assessButtonStates();
	return false;}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function backButtonNonStandard()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	resetHighlights();
	backRelease = true;
	myStart = Number(myStart - itemsPerPage);
	myFinish = Number(myFinish - itemsPerPage);
	var myReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" +  myFinish,"buildReleaseList");
	myReleases.send();
	myPos--;
	releaseBack.onclick = function (){
		backButtonStandard();
		return false;
	}
	releaseForward.onclick = function (){
		forwardButtonNonStandard();
		return false;
	}
	return false;
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
releasePlay.onclick = function()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (this.isPaused)
	{
		tpController.pause(false);
		this.style.backgroundPosition = "0 -40px";
		this.isPaused = false;
		return false;
	}
	else 
	{
		tpController.pause(true);
		this.style.backgroundPosition = "0 0";
		this.isPaused = true;
		return false;
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getNewestReleases()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	//newestReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + "&startIndex=" + myNewStart + "&endIndex=" + myNewFinish + "&sortField=added&descending=true","buildNewestReleaseList");
	newestReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + "&startIndex=" + myNewStart + "&endIndex=" + myNewFinish,"buildNewestReleaseList");
	newestReleases.send();
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function removeNewestReleases()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var newReleases = document.getElementById("newReleases").getElementsByTagName("A");
	var newReleaseArray = new Array();
	
	for(var i = 0; i < newReleases.length; i++)
	{
		if (newReleases[i].className.indexOf("Release") != -1)
		{
			newReleaseArray.push(newReleases[i]);
			$("#" + newReleases[i].id).fadeOut(500);
		}
	}
	
	for(var i = 0; i < newReleaseArray.length; i++)
	{
		if (i < newReleaseArray.length - 1)
		{
			$("#" + newReleaseArray[i].id).fadeOut(500);
		}
		else
		{
			$("#" + newReleaseArray[i].id).fadeOut(500, function(){removeNewestReleasesCompletely()});
		}
	}
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function removeNewestReleasesCompletely()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	var newReleases = document.getElementById("newReleases").getElementsByTagName("A");
	for(var i = 0; i < newReleases.length; i++)
	{
		if (newReleases[i].className.indexOf("Release") != -1)
		{
			document.getElementById("newReleases").removeChild(newReleases[i]);
			i--;
		}
	}
	
	buildNewestReleaseListItems();
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function doCharFilter(safeName, title)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	firstTime = true;
	categoryFilter = "&query=categories|[HP]" + safeName;
	//mainReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish + "&sortField=added&descending=true","buildReleaseList");
	mainReleases = new JSONRequest("http://feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList?PID=" + feedPID + categoryFilter + "&startIndex=" + myStart + "&endIndex=" + myFinish,"buildReleaseList");
	mainReleases.send();
	document.getElementById("characterTitle").innerHTML = title;	
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function filterByCharacter(characterName)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{
	if (document.getElementById("char_" + characterName))
	{
		document.getElementById("char_" + characterName).onclick = function ()
		{
			var safeName = characterName.replace(/-/g,"%20");
			var sendTitle = this.title;
			$("#white").fadeIn(1500, function(){doCharFilter(safeName, sendTitle)});
			return false;
		}
	}
}

var main = document.getElementById("videomain");

buttonWrap.appendChild(releaseForward);
buttonWrap.appendChild(releaseBack);
buttonWrap.appendChild(releasePlay);
main.appendChild(buttonWrap);
main.appendChild(releaseTime);
main.appendChild(releaseTitle);
main.appendChild(previousBtn);
main.appendChild(nextBtn);