var adList = new Array();
var adListPos = 0;
var hackedVOD = false;
var hackedVODBrands = new Array("PBRTV");

function initSLPlayer()
{
	if(navigator.userAgent.toLowerCase().indexOf("powerpc")<0 && navigator.userAgent.toLowerCase().indexOf("ppc")<0)
	{
		createSilverlightPlugin(document.getElementById("videoWrapper"));
	}
	else
	{
		alert('Notice: Because Microsoft no longer supports Silverlight on PowerPC machines, you will be unable to view Video on Demand Content. We apologize for the inconvenience.');
	}
	for(var i = 0; i < hackedVODBrands.length; i++)
	{
		if(hackedVODBrands[i].toLowerCase() == brandId.toLowerCase())
		{
			hackedVOD = true;
			
		}
	}
}

function createSilverlightPlugin(parentElement)
{
	altHtml = '<a href=\"http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0\" style=\"text-decoration: none\">';
	altHtml += '<img src=\"http://go.microsoft.com/fwlink/?LinkId=161376\" alt=\"Get Microsoft Silverlight\" style=\"border-style: none\" />';
	altHtml += '</a>'
	Silverlight.createObject(
		"/landing/xap/main.xap",
		parentElement,
		"SilverlightPlayer",
		{
			width:'640',
			height:'410',
			background:'#00000000',
			isWindowless:'true',
			version:'3.0',
			alt: altHtml
		},
		{
			onError:onSilverlightError,
		},
		null
	);
}

function changeVODSource(preroll, source, num_parts)
{
	var player = document.getElementById("SilverlightPlayer");
	if(player)
	{
		if(hackedVOD && num_parts > 0)
		{
			parseAdList();
			player.Content.SLPlayer.SetSource(preroll, source, num_parts);
		}
		else
		{
			player.Content.SLPlayer.SetSource(preroll, source);
		}
	}
}

function onSilverlightError(sender, args)
{
	var appSource = "";
	if (sender != null && sender != 0)
	{
		appSource = sender.getHost().Source;
	}

	var errorType = args.ErrorType;
	var iErrorCode = args.ErrorCode;

	if (errorType == "ImageError" || errorType == "MediaError")
	{
	return;
	}

	var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

	errMsg += "Code: " + iErrorCode + "    \n";
	errMsg += "Category: " + errorType + "       \n";
	errMsg += "Message: " + args.ErrorMessage + "     \n";

	var iErrorCode = args.ErrorCode;

	if (errorType == "ImageError" || errorType == "MediaError")
	{
		return;
	}

	var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

	errMsg += "Code: " + iErrorCode + "    \n";
	if (errorType == "ParserError")
	{
		errMsg += "File: " + args.xamlFile + "     \n";
		errMsg += "Line: " + args.lineNumber + "     \n";
		errMsg += "Position: " + args.charPosition + "     \n";
	}
	else if (errorType == "RuntimeError")
	{
		if (args.lineNumber != 0)
		{
		    errMsg += "Line: " + args.lineNumber + "     \n";
		    errMsg += "Position: " + args.charPosition + "     \n";
		}
		errMsg += "MethodName: " + args.methodName + "     \n";
	}

	alert(errMsg);
	throw new Error(errMsg);
}

function parseAdList()
{
	var adListXML = loadXMLDoc("/access/vod/vod_ads.xml");
	var root = null;
	var ad_elem = null;
	var i = 0;
	
	root = adListXML.getElementsByTagName("adlist")[i];
	ad_elem = root.getElementsByTagName("ad")[i];	
	while(ad_elem)
	{
		adList[i] = ad_elem.attributes.getNamedItem("src").value;
		i++;
		ad_elem = root.getElementsByTagName("ad")[i];		
	}
}

function nextAd()
{
	if(adList.length > 1)
	{
		if(adListPos >= adList.length)
			adListPos = 0;
		return adList[adListPos++];
	}
	return "NULL";
}

function loadXMLDoc(dname)
{
	var xmlDoc;
	if (window.XMLHttpRequest)
	{
		xmlDoc=new window.XMLHttpRequest();
		xmlDoc.open("GET",dname,false);
		xmlDoc.send("");
		return xmlDoc.responseXML;
	}
	// IE 5 and IE 6
	else if (ActiveXObject("Microsoft.XMLDOM"))
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(dname);
		return xmlDoc;
	}
	alert("Error loading document");
	return null;
}
