	var muskOx;
	var req;
	var req2;
	var firstClip;
	var t;
	var nowShowing = -1;
	var numberOfReleases = 0;
	var releaseArray = new Array();
	var releases = document.createElement("DIV"); releases.id = "releases";
	var filter = "";
	var pageActive = false;
	var releasesPerPage = 6;
	var clipXofX = document.getElementById("clipXofX");
	var cxImages = clipXofX.getElementsByTagName("IMG");
	var totalNumberOfClips = 0;
	var houseAd = document.getElementById("videos_ad");
	var q = getArgs();
	var queryCat = "";
	var pageModifier = 0;
	var portalName = "Thomas%20the%20Tank%20Engine%20UK";
	var playerName = "Thomas%20UK%20Video%20Page";

	if((q["c"] != "") && (q["c"] != undefined))
	{
		filter = "&query=Categories|" + q["c"];
		filter = filter.replace(new RegExp(/-/g),"%20");
		queryCat = q["c"].replace(new RegExp(/-/g),"");
	}
	
	var PID = "thoUebjqc_xhRsLTuoq8uMfKlSStAkqm";
	
	hideUnwantedClipNumbers();
	goGetReleases(1,releasesPerPage);
	goGetCategories();

	// ------------------------------------------------------------------------------------
	function goGetReleases(startIndex,endIndex)
	// ------------------------------------------------------------------------------------
	{
		//var requestString = "http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getReleaseList?PID=5Y8jucKzYpfQRTboqz4pO9D9kqLb0UD-&field=ID&field=title&field=URL&field=thumbnailURL&field=categories" + filter + "&startIndex=" + startIndex + "&endIndex=" + endIndex + "&query=CustomText|IntendedPage|video";
		//var requestString = "http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getReleaseList?PID=5yzPnHEeVvFiCKwwcwVrPrLWI1_W7W53";//&query=Categories|Sorting%20Test";
		//var requestString = "http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getReleaseList?PID=RLYGP72TFoCsuNUu0sWjBs26IquHcliO"; /* TEST FEED */
		var requestString = "http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getReleaseList?PID=" + PID + "&field=ID&field=title&field=URL&field=thumbnailURL&field=categories" + filter + "&query=CustomText|IntendedPage|video";
		//alert(requestString);
		req = new JSONRequest (requestString,"parseReleases" );
		req.send();
	}
	
	// ------------------------------------------------------------------------------------
	function goGetCategories()
	// ------------------------------------------------------------------------------------
	{
		var requestString = "http://feeds.theplatform.com/ps/JSON/PortalService/1.8/getCategoryList?PID=" + PID;
		req2 = new JSONRequest (requestString,"parseCategories" );
		req2.send();
	}

	// ------------------------------------------------------------------------------------
	function parseCategories(response)
	// ------------------------------------------------------------------------------------
	{
		if (typeof response != 'string')
		{
			var categoryDiv = document.getElementById("videos_sidemenu").insertBefore(document.createElement("DIV"),document.getElementById("videos_sidemenu").childNodes[1]);
			categoryDiv.id = "videos_sidemenuInner";
			for(var j in response.items)
			{
				var trimmedTitle = response.items[j].title;
				var catWrapper = categoryDiv.appendChild(document.createElement("DIV"));
				catWrapper.className = "cwi";
				var catWrapperInner = catWrapper.appendChild(document.createElement("P"));
				var cat = catWrapperInner.appendChild(document.createElement("A"));
				cat.id = "category_" + response.items[j].title.toLowerCase();
				cat.id = cat.id.replace(new RegExp(/\s/g),"");
				cat.className = "videos_sidemenu_a";
				cat.href = "javascript:filterByCategory('" + response.items[j].title.toLowerCase() + "','" + cat.id + "');";
				if(trimmedTitle.indexOf("[") != -1)
				{
					trimmedTitle = trimmedTitle.substring(4);
				}
				cat.innerHTML = trimmedTitle;
				categoryDiv.appendChild(document.createElement("SPAN"));
			}
			var catWrapper = categoryDiv.appendChild(document.createElement("DIV"));
			catWrapper.className = "cwi";
			var catWrapperInner = catWrapper.appendChild(document.createElement("P"));
			var cat = catWrapperInner.appendChild(document.createElement("A"));
			cat.id = "category_all";
			cat.className = "videos_sidemenu_as";
			cat.href = "javascript:filterByCategory('all','category_all');";
			cat.innerHTML = "All Videos";
			categoryDiv.appendChild(document.createElement("SPAN"));
			if(queryCat != "")
			{
				highlightSelectedCategory("category_"+queryCat,"category_"+queryCat)
			}
		}
	}

	// ------------------------------------------------------------------------------------
	function parseReleases(response)
	// ------------------------------------------------------------------------------------
	{
		if (typeof response == 'string')
		{
			//alert ( "There was an exception: " + response );
		}
		else
		{
			//alert("Returned " + response.listInfo.itemCount + " items out of " + response.listInfo.totalCount);
			
			/*
			for(var j in response.items)
			{
				alert(j + ":" + response.items[j].title);
			}
			*/
			
			totalNumberOfClips = response.listInfo.totalCount;
			if(releasesPerPage < Number(response.listInfo.totalCount))
			{
				// There are more releases to show than the page limit allows
				var tvNext = document.getElementById("tvNext");
				tvNext.href = "javascript:goToNextPage(" + releasesPerPage + ");"; // Not +1 because Array is zero-based
				tvNext.style.display = "block";
				cxImages[1].src = "images/txt_1.gif";
				cxImages[2].style.display = "none";
				cxImages[3].style.display = "none";
				cxImages[5].src = "images/txt_" + releasesPerPage + ".gif";
				cxImages[6].style.display = "none";
				cxImages[7].style.display = "none";
				cxImages[10].style.display = "none";
				cxImages[11].style.display = "none";
				totalClipNumberize(totalNumberOfClips);
				clipXofX.style.display = "block";
			}
			else
			{
				deactivateNextPageButton();
				clipXofX.style.display = "none";
			}
			
			nowShowing = -1;
			if(response.items.length > 0)
			{
				firstClip = response.items[0].URL.substring(0,response.items[0].URL.indexOf("&"));
				if(pageActive)
				{
					while(releaseArray.length > 0)
					{
						releaseArray.pop();
					}
				}

				if(releases.childNodes.length > 0)
				{
					var releaseDIVs = releases.getElementsByTagName("DIV");
					for(var i = 0; i < releaseDIVs.length; i++)
					{
						if(releaseDIVs[i].className == "thumbTT")
						{
							releaseDIVs[i].parentNode.removeChild(releaseDIVs[i]);
						}
					}
				}
				
				var numberOfDisplayedReleases = response.items.length;
				
				if(numberOfDisplayedReleases > releasesPerPage)
				{
					numberOfDisplayedReleases = releasesPerPage;
				}
				
				var releaseListString = "";
				releaseArray = new Array();
				
				for(var i = 0; i < response.items.length; i++)
				{
					//alert("Pushing " + response.items[i].title);
					releaseArray.push(response.items[i]);
					releaseListString += i + ":" + response.items[i].title + "\n";
				}
				//alert(releaseListString);
				
				// ----------------------------------------------------------- //
					buildReleaseList(numberOfDisplayedReleases,releaseArray,0);
				// ----------------------------------------------------------- //
				
				numberOfReleases = numberOfDisplayedReleases;
				if(!pageActive)
				{
					t = setInterval(isTpControllerLoaded,100);
				}
				else
				{
					setTheReleaseURL(firstClip);
					highlight(0);
					nowShowing = 0;
					disablePreviousButton();
					if(numberOfReleases < 2)
					{
						disableNextButton();
					}
					else
					{
						enableNextButton();
					}
					document.getElementById("clipTitle").innerHTML = releaseArray[0].title;
					disablePlayButton();
					enablePauseButton();
				}
				
			}
		}
		//alert(response.items.length);
	}
	
	// ------------------------------------------------------------------------------------
	function buildReleaseList(numberOfReleasesToDisplay,releaseCollection,startAt)
	// ------------------------------------------------------------------------------------
	{
		var positioningCounter = 0;
		
		if((numberOfReleasesToDisplay+startAt) > releaseCollection.length)
		{
			numberOfReleasesToDisplay = releaseCollection.length
		}
		else
		{
			numberOfReleasesToDisplay += startAt;
		}
		
		for (var i = startAt; i < numberOfReleasesToDisplay; i++)
		{
			var release = releaseCollection[i];
			var thumbWrap = document.createElement("DIV");
			var hyperlink = document.createElement("A"); 
			var img = document.createElement("DIV");
			var toolTip = document.createElement("DIV");
			var toolTipText = document.createElement("SPAN");
			
			//alert(release.title);
		
			hyperlink.href = "javascript:doThumbnailClick('" + release.URL.substring(0,release.URL.indexOf("&")) + "&Tracking=true'," + i.toString() + ");";
			hyperlink.id = "tn_" + i;
			hyperlink.className = "thumbFrame";
			hyperlink.toolTipId = "tt_" + i.toString();
			
			img.style.backgroundImage = "url(" + release.thumbnailURL + ")";
			img.className = "thumbPic";
			img.appendChild(hyperlink);
			
			hyperlink.onmouseover = function()
			{
				toggleVisibility(document.getElementById(this.toolTipId));
			}
			
			hyperlink.onmouseout = function()
			{
				toggleVisibility(document.getElementById(this.toolTipId));
			}
		
			toolTipText.innerHTML = release.title;
		
			toolTip.className = "thumbTT";
			toolTip.appendChild(toolTipText);
			toolTip.id = "tt_" + i.toString();
			
			if(positioningCounter < 4)
			{
				toolTip.style.left = ((124*positioningCounter)+15).toString() + "px";
			}
			else
			{
				toolTip.style.left = ((124*positioningCounter)+15).toString() + "px";;
			}
		
			thumbWrap.appendChild(img);
			thumbWrap.className = "thumbWrap";
			thumbWrap.style.left = (124*positioningCounter).toString() + "px";
			
			try
			{
				releases.appendChild(thumbWrap);
				releases.appendChild(toolTip);
			}
			catch(e)
			{
				//alert(e);
			}
			positioningCounter++;
		}
	}
	
	// ------------------------------------------------------------------------------------
	function totalClipNumberize(n)
	// ------------------------------------------------------------------------------------
	{
		var s = n.toString();
		
		for(var i = 0; i < s.length; i++)
		{
			//alert(s.substring(i,1+i));
			cxImages[9+i].src = "images/txt_" + s.substring(i,1+i) + ".gif";
			cxImages[9+i].style.display = "inline";
		}
	}
	
	// ------------------------------------------------------------------------------------
	function clipOfNumberize(index,n)
	// ------------------------------------------------------------------------------------
	{
		//alert("Running ClipOfNumberize(" + index + "," + n + ")");
		var s = Number(n)+1;
		s = s.toString();
		
		for(var i = 0; i < s.length; i++)
		{
			//alert(s.substring(i,1+i));
			cxImages[index+i].src = "images/txt_" + s.substring(i,1+i) + ".gif";
			cxImages[index+i].style.display = "inline";
		}
	}
	
	// ------------------------------------------------------------------------------------
	function hideUnwantedClipNumbers()
	// ------------------------------------------------------------------------------------
	{
		cxImages[2].style.display = "none";
		cxImages[3].style.display = "none";
		cxImages[6].style.display = "none";
		cxImages[7].style.display = "none";
		/*
		cxImages[10].style.display = "none";
		cxImages[11].style.display = "none";
		*/
	}
	
	// ------------------------------------------------------------------------------------
	function goToNextPage(n)
	// ------------------------------------------------------------------------------------
	{
		pageModifier=Number(pageModifier+numberOfReleases);
		var weHid = false;
		if(clipXofX.style.display == "block")
		{
			clipXofX.style.display = "none";
			weHid = true;
		}
		clearReleaseList();
		hideUnwantedClipNumbers();
		buildReleaseList(releasesPerPage,releaseArray,n);
		var tvNext = document.getElementById("tvNext");
		tvNext.href = "javascript:goToNextPage(" + Number(n + releasesPerPage) + ");"; // Not +1 because Array is zero-based
		activatePreviousPageButton(Number(n - releasesPerPage));
		if((Number(n + releasesPerPage)) > releaseArray.length)
		{
			deactivateNextPageButton();
		}
		var nA = ((n-1)+releasesPerPage);
		if(Number(nA) > totalNumberOfClips)
		{
			nA = (totalNumberOfClips-1);
		}
		clipOfNumberize(1,n);
		clipOfNumberize(5,nA);
		if(weHid)
		{
			clipXofX.style.display = "block";
			weHid = false;
		}
	}
	
	// ------------------------------------------------------------------------------------
	function goToPreviousPage(n)
	// ------------------------------------------------------------------------------------
	{
		pageModifier=Number(pageModifier-numberOfReleases);
		var weHid = false;
		if(clipXofX.style.display == "block")
		{
			clipXofX.style.display = "none";
			weHid = true;
		}
		clearReleaseList();
		hideUnwantedClipNumbers();
		buildReleaseList(releasesPerPage,releaseArray,n);
		var tvBack = document.getElementById("tvBack");
		tvBack.href = "javascript:goToPreviousPage(" + Number(n - releasesPerPage) + ");"; // Not +1 because Array is zero-based
		activateNextPageButton(Number(n + releasesPerPage));
		if((Number(n - releasesPerPage)) < 0)
		{
			deactivatePreviousPageButton();
		}
		clipOfNumberize(1,n);
		clipOfNumberize(5,((n-1)+releasesPerPage));
		if(weHid)
		{
			clipXofX.style.display = "block";
			weHid = false;
		}
	}

	// ------------------------------------------------------------------------------------
	function activateNextPageButton(n)
	// ------------------------------------------------------------------------------------
	{
		var tvNext = document.getElementById("tvNext");
		tvNext.href = "javascript:goToNextPage(" + n + ");"; // Not +1 because Array is zero-based
		tvNext.style.display = "block";
	}
	
	// ------------------------------------------------------------------------------------
	function activatePreviousPageButton(n)
	// ------------------------------------------------------------------------------------
	{
		var tvBack = document.getElementById("tvBack");
		tvBack.href = "javascript:goToPreviousPage(" + n + ");"; // Not +1 because Array is zero-based
		tvBack.style.display = "block";
	}
	
	// ------------------------------------------------------------------------------------
	function deactivateNextPageButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("tvNext").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function deactivatePreviousPageButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("tvBack").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function filterByCategory(categoryName,senderId)
	// ------------------------------------------------------------------------------------
	{
		clearReleaseList();
		deactivatePreviousPageButton();
		
		tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");

		if(categoryName != "all")
		{
			filter = "&query=Categories|" + categoryName;
			filter = filter.replace(new RegExp(/\s/g),"%20");
		}
		else
		{
			filter = "";
		}
		
		goGetReleases(1,releasesPerPage);
		clearFocus();
		
		highlightSelectedCategory(categoryName,senderId);
		
		document.getElementById(senderId).style.cursor = "default";
	}
	
	// ------------------------------------------------------------------------------------
	function highlightSelectedCategory(categoryName,senderId)
	// ------------------------------------------------------------------------------------
	{
		var tvCats = document.getElementById("videos_sidemenu").getElementsByTagName("A");
		for(var i = 0; i < tvCats.length; i++)
		{
			tvCats[i].className = "videos_sidemenu_a";
		}
		//alert(senderId);
		document.getElementById(senderId).className = "videos_sidemenu_as";
	}
	
	// ------------------------------------------------------------------------------------
	function clearReleaseList()
	// ------------------------------------------------------------------------------------
	{
		var releaseThumbs = document.getElementById("releases").getElementsByTagName("DIV");
		var toRemove = new Array();
		
		if(releaseThumbs.length > 0)
		{
			for(var i = 0; i < releaseThumbs.length; i++)
			{
				if((releaseThumbs[i].className == "thumbWrap") || (releaseThumbs[i].className == "thumbTT"))
				{
					toRemove.push(releaseThumbs[i]);
				}
			}
			for(var i = 0; i < toRemove.length; i++)
			{
				toRemove[i].parentNode.removeChild(toRemove[i]);
				//alert("R");
			}
		}

		nowShowing = -1;
		
	}
	
	// ------------------------------------------------------------------------------------
	function doThumbnailClick(releaseURL,clip)
	// ------------------------------------------------------------------------------------
	{
		
		tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");
		tpController.addEventListener("OnReleaseStart","onReleaseStart");
		
		if(nowShowing != clip)
		{
			//removeLegacyEventListeners();
			//tpController.addEventListener("OnReleaseStart", "onReleaseStart");
			setTheReleaseURL(releaseURL);
			highlight(clip);
			document.getElementById("clipTitle").innerHTML = releaseArray[clip].title;
			changeClipPosition(clip);
			enablePauseButton();
			hidePlayButton();
			enableMuteButton();
			hideUnMuteButton();
			clearFocus();
			
			if((nowShowing+1) == (numberOfReleases+pageModifier))
			{
				//alert("nowShowing is " + (nowShowing+1));
				//alert("numberofreleases plus pagemodifier is " + (numberOfReleases+pageModifier));
				//alert("this is the last clip!");
				tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");
				tpController.removeEventListener("OnReleaseStart","onReleaseStart");
				disableNextButton();
				
			}
			
		}
		else
		{
			//alert('blocked');
		}
	}

	// ------------------------------------------------------------------------------------
	function isTpControllerLoaded()
	// ------------------------------------------------------------------------------------
	{
		if(tpController)
		{
			clearInterval(t);
			//tpController.addEventListener("OnPlayerLoaded", "onPlayerLoaded");
			setTheReleaseURL(firstClip); //########################################################### COMMENT THIS OUT TO STOP THE MADNESS
			tpController.addEventListener("OnReleaseStart", "onReleaseStartFirst");
			tpController.addEventListener("OnMediaStart", "hideHouseAd");
			tpController.addEventListener("OnMediaEnd", "showHouseAd");
		}
	}
	
	// ------------------------------------------------------------------------------------
	function hideHouseAd(evt)
	// ------------------------------------------------------------------------------------
	{
		var isAd = evt.data.baseClip.isAd;
		if(isAd)
		{
			houseAd.style.display = "none";
		}
	}
	
	// ------------------------------------------------------------------------------------
	function showHouseAd(evt)
	// ------------------------------------------------------------------------------------
	{
		houseAd.style.display = "block";
	}
	
	// ------------------------------------------------------------------------------------
	function highlight(clip)
	// ------------------------------------------------------------------------------------
	{
		var thumbsToUnhighlight = document.getElementById("releases").getElementsByTagName("A");
		for(var i = 0; i < thumbsToUnhighlight.length; i++)
		{
			thumbsToUnhighlight[i].style.backgroundPosition = "0 0";
		}
		var div = document.getElementById("tn_" + clip.toString());
		div.style.backgroundPosition = "0 -76px";
		if(nowShowing != -1)
		{
			document.getElementById("tn_" + nowShowing.toString()).style.backgroundPosition = "0 0";
		}
	}
	
	// ------------------------------------------------------------------------------------
	function changeClipPosition(position)
	// ------------------------------------------------------------------------------------
	{
		var clip = Number(position);
		if(clip == 0)
		{
			disablePreviousButton();
		}
		else
		{
			enablePreviousButton();
		}
		if(position == (numberOfReleases-1))
		{
			disableNextButton();
		}
		else
		{
			enableNextButton();
		}
		nowShowing = position;
	}
	
	// ------------------------------------------------------------------------------------
	function disablePreviousButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPreviousClip").href = "javascript:void(0);";
		document.getElementById("btnPreviousClip").style.backgroundPosition = "0 -65px";
		document.getElementById("btnPreviousClip").className = "";
	}
	
	// ------------------------------------------------------------------------------------
	function disableNextButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnNextClip").href = "javascript:void(0);";
		document.getElementById("btnNextClip").style.backgroundPosition = "0 -65px";
		document.getElementById("btnNextClip").className = "";
	}
	
	// ------------------------------------------------------------------------------------
	function disablePauseButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPause").href = "javascript:void(0);";
		document.getElementById("btnPause").style.backgroundPosition = "0 -70px";
		document.getElementById("btnPause").className = "";
	}
	
	// ------------------------------------------------------------------------------------
	function disablePlayButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPlay").style.display = "none";
	}

	// ------------------------------------------------------------------------------------
	function disableMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnMute").style.backgroundPosition = "0 -60px";
		document.getElementById("btnMute").href = "javascript:void(0);";
		document.getElementById("btnMute").className = "";
	}
	
	// ------------------------------------------------------------------------------------
	function disableUnMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnUnMute").style.backgroundPosition = "0 -60px";
		document.getElementById("btnUnMute").href = "javascript:void(0);";
		document.getElementById("btnUnMute").className = "";
	}

	// ------------------------------------------------------------------------------------
	function hidePauseButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPause").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function hidePlayButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPlay").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function hideMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnMute").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function hideUnMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnUnMute").style.display = "none";
	}
	
	// ------------------------------------------------------------------------------------
	function showPauseButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPause").style.display = "block";
	}
	
	// ------------------------------------------------------------------------------------
	function enablePreviousButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPreviousClip").style.backgroundPosition = "0 0";
		document.getElementById("btnPreviousClip").href = "javascript:buttonClick('previous');";
		document.getElementById("btnPreviousClip").className = "btnPreviousClipH";
	}
	
	// ------------------------------------------------------------------------------------
	function enableNextButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnNextClip").style.backgroundPosition = "0 0";
		document.getElementById("btnNextClip").href = "javascript:buttonClick('next');";
		document.getElementById("btnNextClip").className = "btnNextClipH";
	}
	
	// ------------------------------------------------------------------------------------
	function enablePauseButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPause").style.display = "block";
		document.getElementById("btnPause").style.backgroundPosition = "0 0";
		document.getElementById("btnPause").href = "javascript:buttonClick('pause');";
		document.getElementById("btnPause").className = "btnPauseH";
	}
	
	// ------------------------------------------------------------------------------------
	function enablePlayButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnPlay").style.display = "block";
		document.getElementById("btnPlay").style.backgroundPosition = "0 0px";
		document.getElementById("btnPlay").href = "javascript:buttonClick('play');";
		document.getElementById("btnPlay").className = "btnPlayH";
	}
	
	// ------------------------------------------------------------------------------------
	function enableMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnMute").style.display = "block";
		document.getElementById("btnMute").style.backgroundPosition = "0 0";
		document.getElementById("btnMute").href = "javascript:buttonClick('mute');";
		document.getElementById("btnMute").className = "btnMuteH";
	}
	
	// ------------------------------------------------------------------------------------
	function enableUnMuteButton()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("btnUnMute").style.display = "block";
		document.getElementById("btnUnMute").style.backgroundPosition = "0 0";
		document.getElementById("btnUnMute").href = "javascript:buttonClick('unmute');";
		document.getElementById("btnUnMute").className = "btnUnMuteH";
	}
	
	// ------------------------------------------------------------------------------------
	function clearFocus()
	// ------------------------------------------------------------------------------------
	{
		document.getElementById("top").focus();
	}
	
	// ------------------------------------------------------------------------------------
	function buttonClick(button)
	// ------------------------------------------------------------------------------------
	{
		switch(button)
		{
			case "previous" :
				enableNextButton();
				hidePlayButton();
				showPauseButton();
				disablePauseButton();
				setTheReleaseURL(releaseArray[nowShowing-1].URL.substring(0,releaseArray[nowShowing-1].URL.indexOf("&")));
				tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");
				tpController.addEventListener("OnReleaseStart","onReleaseStart");
				highlight((nowShowing-1).toString());
				if((nowShowing-1) == 0)
				{
					disablePreviousButton();
				}
				document.getElementById("clipTitle").innerHTML = releaseArray[nowShowing-1].title;
				nowShowing--;
				clearFocus();
				enablePauseButton();
				break;
			case "play" :
				tpController.pause(false);
				document.getElementById("btnPlay").style.display = "none";
				document.getElementById("btnPause").style.display = "block";
				break;
			case "pause" :
				tpController.pause(true);
				document.getElementById("btnPause").style.display = "none";
				enablePlayButton();
				break;
			case "next" :
				enablePreviousButton();
				hidePlayButton();
				showPauseButton();
				disablePauseButton();
				setTheReleaseURL(releaseArray[nowShowing+1].URL.substring(0,releaseArray[nowShowing+1].URL.indexOf("&")));
				//alert(releaseArray[nowShowing+1].URL.substring(0,release.URL.indexOf("&")));
				tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");
				tpController.addEventListener("OnReleaseStart","onReleaseStart");
				highlight((nowShowing+1).toString());
				if((nowShowing+1) == (numberOfReleases-1))
				{
					disableNextButton();
				}
				document.getElementById("clipTitle").innerHTML = releaseArray[nowShowing+1].title;
				nowShowing++;
				clearFocus();
				enablePauseButton();
				break;
			case "mute" :
				tpController.mute(true);
				hideMuteButton();
				enableUnMuteButton();
				break;
			case "unmute" :
				tpController.mute(false);
				hideUnMuteButton();
				enableMuteButton();
				break;
			default :
				break;
		}
	}
	
	// ------------------------------------------------------------------------------------
	function onPlayerLoaded(evt)
	// ------------------------------------------------------------------------------------
	{
		//alert("Player loaded");
		tpController.removeEventListener("OnPlayerLoaded","onPlayerLoaded");
		setTheReleaseURL(firstClip); //########################################################### COMMENT THIS OUT TO STOP THE MADNESS
		tpController.addEventListener("OnReleaseStart", "onReleaseStartFirst");
	}
	
	// ------------------------------------------------------------------------------------
	function onReleaseStartFirst(evt)
	// ------------------------------------------------------------------------------------
	{
		//alert("Release started");
		tpController.removeEventListener("OnReleaseStart","onReleaseStartFirst");
		//alert(evt.data.feed);
		tpController.addEventListener("OnReleaseEnd", "onReleaseEnd");
		nowPlaying = 0;
		initializePage();
	}
	
	// ------------------------------------------------------------------------------------
	function onReleaseStart(evt)
	// ------------------------------------------------------------------------------------
	{
		//alert("Release has started");
		tpController.removeEventListener("OnReleaseStart","onReleaseStart");
		tpController.addEventListener("OnReleaseEnd", "onReleaseEnd");
	}
	
	
	// ------------------------------------------------------------------------------------
	function onReleaseEnd(evt)
	// ------------------------------------------------------------------------------------
	{
		//alert(releaseArray[nowShowing+1].title);
		// play next video goes here ****************************
		//alert("go to the next video");
		setTheReleaseURL(releaseArray[nowShowing+1].URL.substring(0,releaseArray[nowShowing+1].URL.indexOf("&")));
		enablePreviousButton();
		hidePlayButton();
		showPauseButton();
		disablePauseButton();
		//checkForSpecialAdCircumstances(releaseArray[nowShowing+1].title);
		//setTheReleaseURL(releaseArray[nowShowing+1].URL.substring(0,releaseArray[nowShowing+1].URL.indexOf("&")));
		//alert(releaseArray[nowShowing+1].URL.substring(0,release.URL.indexOf("&")));
		highlight((nowShowing+1).toString());
		tpController.removeEventListener("OnReleaseEnd","onReleaseEnd");
		tpController.addEventListener("OnReleaseStart", "onReleaseStart");
		if((nowShowing+1) == (numberOfReleases-1))
		{
			//alert("this is the last clip!");
			tpController.removeEventListener("OnReleaseStart","onReleaseStart");
			disableNextButton();
		}
		document.getElementById("clipTitle").innerHTML = releaseArray[nowShowing+1].title;
		nowShowing++;
		clearFocus();
		enablePauseButton();
		
	}
	
	// ------------------------------------------------------------------------------------
	function initializePage()
	// ------------------------------------------------------------------------------------
	{
		//alert("Page starting");
		highlight(nowPlaying);
		disablePreviousButton();
		enableNextButton();
		enablePauseButton();
		hidePlayButton();
		enableMuteButton();
		hideUnMuteButton();
		document.getElementById("buttons").style.display = "block";
		//document.getElementById("tvCategories").style.display = "block";
		nowShowing = 0;
		document.getElementById("clipTitle").innerHTML = releaseArray[0].title;
		pageActive = true;
	}

	// ------------------------------------------------------------------------------------
	function removeLegacyEventListeners()
	// ------------------------------------------------------------------------------------
	{
		//alert("Removing old event listeners");
		tpController.removeEventListener("OnReleaseStart", "onReleaseStartFirst");
		tpController.removeEventListener("OnReleaseStart","onReleaseStart");
	}
	
	// ------------------------------------------------------------------------------------
	function toggleVisibility(e)
	// ------------------------------------------------------------------------------------
	{
		if((e.style.display == "none") || (e.style.display == ""))
		{
			e.style.display = "block";
		}
		else
		{
			e.style.display = "none";
		}
	}
	
	// ------------------------------------------------------------------------------------
	function setTheReleaseURL(theURL)
	// ------------------------------------------------------------------------------------
	{
		//alert(theURL);
		//alert("Setting the release URL");
		tpController.setReleaseURL(theURL + "&Portal=" + portalName + "&Player=" + playerName);
	}
	
	// ------------------------------------------------------------------------------------
	function getArgs() {
	// ------------------------------------------------------------------------------------
		var args = new Object();
		var query = unescape(location.search.substring(1));
		var pairs = query.split("&");
		for(var i = 0; i < pairs.length; i++) {
				var pos = pairs[i].indexOf('=');
				if (pos == -1) continue;
				var argname = pairs[i].substring(0,pos);
				argname = argname.toLowerCase();
				var value = pairs[i].substring(pos+1);
				args[argname] = unescape(value);
		}
		return args;
	}