var prefix = "http://release.theplatform.com/content.select?UserName=Unknown&Embedded=True&Portal=here%21%20Premium%20Player&Tracking=True&pid=";
var leftOff;
var toPlay;
var storedRelease;
var debug;

function buildWhatsNew(){
	//------------------------------------------------------------------------------
	debug = document.getElementById("debug");
	var feedPrefix = "http://feeds.theplatform.com/ps/JSON/PortalService/2.1/getReleaseList?PID=";
	var feedPID = "Gj_M_JeZuldDwrKwA4VLQxxUz_2yUQtE";
	var feedSuffix = "&query=Categories|here! Premium Series&startIndex=1&endIndex=200&sortField=title&field=title&field=description&field=thumbnailURL&field=assets&field=URL";
	var req = new JSONRequest(feedPrefix + feedPID + feedSuffix, "parseWhatsNew");        
	req.send();
}

function buildMostWatched(){
	//------------------------------------------------------------------------------
	var feedPrefix = "http://feeds.theplatform.com/ps/JSON/PortalService/2.1/getReleaseList?PID=";
	var feedPID = "Gj_M_JeZuldDwrKwA4VLQxxUz_2yUQtE";
	var feedSuffix = "&query=Categories|here! Premium Movies&startIndex=1&endIndex=200&sortField=title&field=title&field=description&field=thumbnailURL&field=assets&field=URL&field=requestCount&sortDescending=false";
	var req = new JSONRequest(feedPrefix + feedPID + feedSuffix, "parseMostWatched");
	req.send();        
}

function parseWhatsNew(response){
	//------------------------------------------------------------------------------
	if(typeof(response) == "string"){
		  alert(response);
	} else {
		  if(response.items.length == 0){
				  
		  } else {
			  var items = response.items;
			  for(var i = 0; i < items.length; i++){                                
				var divThumb = document.createElement("DIV");
				var divText = document.createElement("DIV");
				var divItemWrapper = document.createElement("DIV");
				var title = document.createElement("H2");
				var description = document.createElement("P");
				var link = document.createElement("A");
				var clear = document.createElement("BR");
				var assets = items[i].assets;
				var thumbImage;
				
				if(assets.length > 0){
					for(var j = 0; j < assets.length; j++){
						if(assets[j].URL.indexOf("82x82") != -1){
							thumbImage = assets[j].URL;
							break;
						}
					}
				}
				
				if(thumbImage === undefined){
					thumbImage = items[i].thumbnailURL;
				}
				
				divThumb.style.backgroundImage="url('" + thumbImage + "')";
				thumbImage = undefined;

				title.innerHTML = items[i].title;
				description.innerHTML = items[i].description;
				link.URL = items[i].URL;
				link.identifier = i;
				link.id = "whatsNew"+i.toString();
				link.release = items[i];
				if(typeof(pidMap) == "object"){
					link.innerHTML = "Watch the Video";
				} else {
					link.innerHTML = "Sign in to watch!";
				}
				link.href = "#";
				link.onclick = function(){
					watchIt(this);
					return false;
				}
				divText.appendChild(title);
				divText.appendChild(description);
				divText.appendChild(link);
				divThumb.className = "listing-thumb";
				divText.className = "listing-text";
				document.getElementById("whatsNew-content").appendChild(divItemWrapper);
				divItemWrapper.appendChild(divThumb);
				divItemWrapper.appendChild(divText);
				divItemWrapper.appendChild(clear);
				divItemWrapper.className = "listing-wrapper";
				var divIW = document.getElementById("whatsNew-content_mcontentwrapper");

				if(divIW != null){
				  divIW.appendChild(divThumb);
				  divIW.appendChild(divText);
				  divIW.appendChild(clear);
				  divIW.className = "listing-wrapper";
				}
				document.getElementById("whatsNew-container").style.display = "block";
				leftOff++;
			  }
		  }
	}
	buildMostWatched();
}

function parseMostWatched(response){
	//------------------------------------------------------------------------------
	if(typeof(response) == "string"){
		  alert(response);
	} else {
		  if(response.items.length == 0){
		  } else {
			  var items = response.items;
			  var i;
			  for(var i = 0; i < items.length; i++){
				var divThumb = document.createElement("DIV");
				var divText = document.createElement("DIV");
				var divItemWrapper = document.createElement("DIV");
				var title = document.createElement("H2");
				var description = document.createElement("P");
				var link = document.createElement("A");
				var clear = document.createElement("BR");
				var assets = items[i].assets;
				var thumbImage;
				
				if(assets.length > 0){
					for(var j = 0; j < assets.length; j++){
						if(assets[j].URL.indexOf("82x82") != -1){
							thumbImage = assets[j].URL;
							break;
						}
					}
				}
				
				if(thumbImage === undefined){
					thumbImage = items[i].thumbnailURL;
				}
				
				divThumb.style.backgroundImage="url('" + thumbImage + "')";
				thumbImage = undefined;

				if(isNaN(leftOff)){
					var wn = document.getElementById("whatsNew-container");
					var wnLinks = wn.getElementsByTagName("A");
					var lastWN = wnLinks[wnLinks.length - 1];
					try {
						leftOff = Number(lastWN.identifier) + 1;
					} catch(e) {
						alert(e);
					}
					
				}

				title.innerHTML = items[i].title;	//items[i].requestCount;
				description.innerHTML = items[i].description;
				link.identifier = Number(leftOff + i).toString();
				link.URL = items[i].URL;
				var desc = items[i].description;
				link.id = "mostWatched"+i.toString();
				var url = items[i].URL;
				link.release = items[i];if(typeof(pidMap) == "object"){
					link.innerHTML = "Watch the Video";
				} else {
					link.innerHTML = "Sign in to watch!";
				}
				link.href = "#";
				link.onclick = function(){
					watchIt(this);
					return false;
				}
				divText.appendChild(title);
				divText.appendChild(description);
				divText.appendChild(link);
				divThumb.className = "listing-thumb";
				divText.className = "listing-text";
				document.getElementById("mostWatched-content").appendChild(divItemWrapper);
				divItemWrapper.appendChild(divThumb);
				divItemWrapper.appendChild(divText);
				divItemWrapper.appendChild(clear);
				divItemWrapper.className = "listing-wrapper";
				
				var divIW = document.getElementById("mostWatched-content_mcontentwrapper");

				if(divIW != null){
				  divIW.appendChild(divThumb);
				  divIW.appendChild(divText);
				  divIW.appendChild(clear);
				  divIW.className = "listing-wrapper";
				}
				
			  }
			  document.getElementById("mostWatched-container").style.display = "block";
			  CSBfleXcroll('whatsNew-content');
			  CSBfleXcroll('mostWatched-content');
		  }
	  }
}

function signIn(){
	//------------------------------------------------------------------------------
	document.getElementById("loginError").style.visibility = "hidden";
	document.getElementById("loginError").innerHTML = "";
	document.getElementById("signIn").style.visibility = "visible";
	document.getElementById("signInPleaseWait").style.display = "block";
	$.ajax({
		type: "POST",
		url: "login.php",
		data: "signInUsername=" + document.getElementById("signInUsername").value + "&signInPassword=" + document.getElementById("signInPassword").value,
		success: function(data){
			acknowledgeSignIn(data);
		}
	});
	return false;
}

function acknowledgeSignIn(data){
	//------------------------------------------------------------------------------
	$("#signInPleaseWait").fadeOut(500);
	
	var username = "";
	
	if(data.indexOf("AUTHORIZED|")!=-1 || data.indexOf("AUTHORIZED_FROM_VOUCHER|")!=-1){
		var myArr = new Array();
		myArr = data.split("|");
		data = myArr[0];
		username = myArr[1];
	}
		
	if(data.indexOf("ERROR") != -1){
		document.getElementById("loginError").style.visibility = "visible";
		if(data.indexOf("102") != -1){
			document.getElementById("loginError").innerHTML = "Sorry, we couldn't find those details. (102)";
		} else {
			document.getElementById("loginError").innerHTML = "Please make sure both fields are filled in (" + data + ").";
		}
		document.getElementById("signIn").style.visibility = "visible";
	} else {
		if(data == "AUTHORIZED"){
                        if(document.getElementById("lia")) {
                            document.getElementById("lia").style.display = "block";
                            document.getElementById("lia").innerHTML = "Logged in as: " + username;
                        }

			document.getElementById("loginError").style.visibility = "hidden";
			document.getElementById("loginError").innerHTML = "";
			$("#loginDiv").fadeOut(500, function(){loggedIn(false);});                        
                        
//                        $("#loginDiv").fadeOut(500, function(){$("#overlay").fadeOut(500, function(){loggedIn(false);});});
		} else {
			if(data == "AUTHORIZED_FROM_VOUCHER"){
                                if(document.getElementById("lia")) {
                                    document.getElementById("lia").style.display = "block";
                                    document.getElementById("lia").innerHTML = "Logged in as: " + username;
                                }

                                document.getElementById("loginError").style.visibility = "hidden";
				document.getElementById("loginError").innerHTML = "";
				$("#registerDiv").fadeOut(500, function(){$("#overlay").fadeOut(500, function(){loggedIn(true);});});
			} else if(data == "UNAUTHORIZED"){
//				
				document.getElementById("loginError").style.visibility = "visible";
				document.getElementById("loginError").innerHTML = "Sorry, we couldn't find those details.";
				document.getElementById("signIn").style.visibility = "visible";
				
//				document.getElementById("loginError").style.visibility = "hidden";
//				document.getElementById("loginError").innerHTML = "";
				//document.getElementById("links").innerHTML = "<a id='ad' href='heretv-admin/admin.php' title='admin'>admin</a>";
				$("#registerDiv").fadeOut(500, function(){$("#overlay").fadeOut(500, function(){unauthAccess();});});
			}
		}
	}
}

function unauthAccess(){
	//------------------------------------------------------------------------------
	
	document.getElementById("li").style.display = "block";
	document.getElementById("ss").style.display = "block";
	document.getElementById("lo").style.display = "none";
	document.getElementById("ma").style.display = "none";
        document.getElementById("lia").style.display = "block";
	
        $("#overlay").fadeIn(500, function(){$("#whateverisfine").fadeIn(500);});
        

}

function showSignin(){
	//------------------------------------------------------------------------------
	closeBox();
	$("#overlay").fadeIn(500, function(){$("#loginDiv").fadeIn(500);});
}

function showSubscribe(){
	//------------------------------------------------------------------------------
	closeBox();
	$("#overlay").fadeIn(500, function(){$("#registerDiv").fadeIn(500);});
}	

function showRegisterForm(){
	//------------------------------------------------------------------------------
	$("#regPartOne").fadeOut(500, function(){$("#regPartTwo").fadeIn(500);});
}

function displayPlayer(){
	//------------------------------------------------------------------------------
	document.getElementById("player-container").style.display = "block";
	if(document.getElementById("player-container").style.display == "none"){
		$("#overlay").fadeIn(2000);
	}
}

function loggedIn(fromVoucher){
	//------------------------------------------------------------------------------
	var scriptObj = document.createElement("SCRIPT");
	scriptObj.setAttribute("type", "text/javascript");
	scriptObj.setAttribute("language", "javascript");
	scriptObj.setAttribute("src", "scripts/hereplayer.js");
	document.getElementsByTagName("HEAD")[0].appendChild(scriptObj);
        if(document.getElementById("li")) document.getElementById("li").style.display = "none";

	if(document.getElementById("ss")) document.getElementById("ss").style.display = "none";
	if(document.getElementById("lo")) document.getElementById("lo").style.display = "block";
	if(document.getElementById("ma")) document.getElementById("ma").style.display = "block";
        if(document.getElementById("lia")) document.getElementById("lia").style.display = "block";


	var links = document.getElementsByTagName("A");
	for(var i = 0; i < links.length; i++){
		if(links[i].innerHTML == "Sign in to watch!"){
			links[i].innerHTML = "Watch the Video";
		}
	}

	if(fromVoucher){
		$("#overlay").fadeIn(500, function(){$("#messageBoard").fadeIn(500);});
		if(document.getElementById("messageText")) document.getElementById("messageText").innerHTML = "You have successfully subscribed.<br /><br /><a href=\"#\" onclick=\"closeBox();\" id=\"continue\" ><br/>";
/*		var anchorObj = document.createElement("A");
		anchorObj.setAttribute("href", "#");
		anchorObj.setAttribute("onclick", "closeBox();");
		anchorObj.innerHTML = "Continue...";
		document.getElementById("messageText").appendChild(anchorObj);
*/
		}
}

function doRegister(){
	//------------------------------------------------------------------------------
	document.getElementById("regTwoError").style.visibility = "hidden";
	document.getElementById("regTwoError").innerHTML = "";
	document.getElementById("agreementSubmitB").style.visibility = "hidden";
	document.getElementById("registerPleaseWait").style.display = "block";
	
	$.ajax({
		type: "POST",
		url: "register.php",
		data: "regUsername=" + document.getElementById("regUsername").value + "&regPassword=" + document.getElementById("regPassword").value + "&repPassword=" + document.getElementById("repPassword").value + "&regEmail=" + document.getElementById("regEmail").value + "&regCoupon=" + document.getElementById("regCoupon").value,
		success: function(data){
			acknowledgeRegistration(data, document.getElementById("regUsername").value);
		}
	});
}

function acknowledgeRegistration(data, username){
	//------------------------------------------------------------------------------
	$("#registerPleaseWait").fadeOut(500);
	document.getElementById("agreementSubmitB").style.visibility = "visible";
	if(data.indexOf("ERROR:") != -1){
		var errorMessage = data.substring(6,data.length);
		document.getElementById("regTwoError").style.visibility = "visible";
		document.getElementById("regTwoError").innerHTML = "Sorry, an error occurred. " + errorMessage;
	} else {
		if(data == "PAYMENT"){
			document.location.href = "https://premium.heretv.com/payment.php";
            //document.location.href = "payment.php";
		} else if (data.search("PAYMENT_VOUCHER") == 0) {
            document.location.href = "https://premium.heretv.com/payment.php";
        } else {
			switch(data){
				case "USER EXISTS":
					document.getElementById("regTwoError").style.visibility = "visible";
					document.getElementById("regTwoError").innerHTML = "Sorry, that username is already in use.";
					break;
				case "REGISTRATION SUCCESS":
					acknowledgeSignIn("AUTHORIZED_FROM_VOUCHER|"+username);
					break;
				case "COUPON FAIL":
					document.getElementById("regTwoError").style.visibility = "visible";
					document.getElementById("regTwoError").innerHTML = "Sorry, that promo code is not valid.";
					break;
				default:
					document.getElementById("regTwoError").style.visibility = "visible";
					document.getElementById("regTwoError").innerHTML = "Sorry, an unexpected error occurred: " + data;
					break;
			}
		}
	}
}

function forgotPassword(){
	//------------------------------------------------------------------------------
}

function watchIt(sender){
	//------------------------------------------------------------------------------
	var PID;
	var title;
	var descl
	if(typeof(pidMap) == "object"){
		try {
			PID = pidMap[sender.identifier].PID;
			title = pidMap[sender.identifier].title;
			desc = pidMap[sender.identifier].description;
			$("#overlay").fadeIn(1000, function(){$("#player-container").fadeIn(1000, function(){storedRelease = {};storedRelease.URL = prefix + PID;storedRelease.title = title;storedRelease.description = desc;setTimeout(delayedSetRelease, 1000);});});
		} catch (e){
			alert("Sorry, a technical error has occurred (" + e + ").");
		};
	} else {
		toPlay = sender.identifier;
		showSignin();
	}
	return false;
}

function delayedSetRelease(){
	//------------------------------------------------------------------------------
	setRelease(storedRelease);
}

function setRelease(release){
	//------------------------------------------------------------------------------
	tpController.setReleaseURL(release.URL)
	tpController.pause(false);
	document.getElementById("player-caption").innerHTML = "";
	var title = document.createElement("H2");
	var description = document.createElement("P");
	title.innerHTML = release.title;
	description.innerHTML = release.description;
	document.getElementById("player-caption").appendChild(title);
	document.getElementById("player-caption").appendChild(description);
}

function closeBox(){
	//------------------------------------------------------------------------------
          if(tpController)
            {
              tpController.pause(true);
            }
		
		document.getElementById("signInPleaseWait").style.display = "none";
		document.getElementById("registerPleaseWait").style.display = "none";
		
		if(document.getElementById("loginError"))
		{
			document.getElementById("loginError").style.visibility = "hidden";	
		}
		if(document.getElementById("loginDiv"))
		{
			document.getElementById("loginDiv").style.display = "none";	
		}
		
		if(document.getElementById("registerFormDiv"))
		{
			document.getElementById("registerFormDiv").style.display = "none";
		}
		
		if(document.getElementById("payment_elements"))
		{
			document.getElementById("payment_elements").style.display = "none";
		}
		
		if(document.getElementById("pswd_reset"))
		{
			document.getElementById("pswd_reset").style.display= "none";
		}
		
		if(document.getElementById("registerDiv"))
		{
			document.getElementById("registerDiv").style.display = "none";
		}
		
		if(document.getElementById("myAccountWrapper"))
		{
			document.getElementById("myAccountWrapper").style.display = "none";
		}
		
		if(document.getElementById("changePasswordWrapper"))
		{
			document.getElementById("changePasswordWrapper").style.display = "none";
		}
		if(document.getElementById("forgotPasswordWrapper"))
		{
			document.getElementById("forgotPasswordWrapper").style.display = "none";
		}
		if(document.getElementById("player-caption"))
		{
			var playerCaption = document.getElementById("player-caption");
			if(playerCaption.getElementsByTagName("H2").length > 0){
				playerCaption.getElementsByTagName("H2")[0].innerHTML = "";
			}
			if(playerCaption.getElementsByTagName("P").length > 0){
				playerCaption.getElementsByTagName("P")[0].innerHTML = "";
			}
		}
		
		
		if(document.getElementById("messageBoard").style != "none"){
			$("#messageBoard").fadeOut(1000, function(){$("#overlay").fadeOut(1000);});
			document.getElementById("messageText").innerHTML = "";
		}
		if(document.getElementById("player-container").style != "none"){
			$("#player-container").fadeOut(1000, function(){$("#overlay").fadeOut(1000);});
		}
	}
