var initParams;
var hdv;

function OnLoad(eltName, appid, params)
{
	SLStreaming.Log("HDView OnLoad()");

	// Set <body> and <html> height to 100%.  Set fonts and colors.
	var elt = document.getElementById(eltName);
	elt.parentNode.style.backgroundColor = "#000000";
	elt.parentNode.style.color = "#FFFFFF";
	elt.parentNode.style.font = "12px/18px Verdana, Arial, Helvetica, sans-serif";
	elt.parentNode.style.height = "100%";
	elt.parentNode.parentNode.style.height = "100%";

	// Escape the parameter values and join them into initParams.
	for (var i = 0; i < params.length; i++) {
		var param = params[i];
		var index = param.indexOf("=");
		if (index > 0) {
			var key = param.substring(0, index);
			var value = param.substring(index + 1);
			params[i] = key + "=" + escape(value);
		}
	}
	initParams = params.join("&");
	SLStreaming.Log("init params = " + initParams);

	// Initialize the list of Javascript files to include HDView2.js.
	var jsFiles = ["http://research.microsoft.com/en-us/um/redmond/groups/ivm/HDView/HDView2.js"];

	// Load the Javascript files.  When complete, call StartViewer.
	for (var i = 0; i < jsFiles.length; i++) {
		SLStreaming._LoadScript(jsFiles[i]);
	}
	SLStreaming._Require("x", jsFiles, StartViewer);
}

// Starts HD View or HD View SL with the given initParams.
function StartViewer()
{
	SLStreaming.Log("HDView StartViewer()");
	hdv = new hdvHost("aghostControl", "aghostDiv", "100%", "100%", location.href, initParams, true);
}

// When Silverlight Streaming detects Safari or Chrome, it uses a version of
// _AddScriptTag that doesn't always work.  Here we change the function
// back to the IE and Firefox version, which also works more reliably in
// Safari and Chrome (at least on Windows).
SLStreaming._AddScriptTag = function(url) {
	var HandleReadyChange = function() {
		SLStreaming.Log("ready change " + tag.readyState + " " + url);
		if (tag.readyState == "loaded" || tag.readyState == "complete") {
			SLStreaming._SignalLoadDone(url);
			SLStreaming._Provide(url);
		}
	}
	var HandleLoad = function() {
		SLStreaming._SignalLoadDone(url);
		SLStreaming._Provide(url);
	}
	SLStreaming.Log("Adding script for " + url);
	var tag = document.createElement("script");
	tag.type = "text/javascript";
	tag.src = url;
	tag.onreadystatechange = HandleReadyChange;
	tag.onload = HandleLoad;
	document.body.appendChild(tag);
}
