/*jslint laxbreak: true, eqeqeq: true, browser: true, undef: true, glovar: true */
/*globals allUPlayers, readyForActionscript, __flash__removeCallback */
/*extern DetectFlashVer, __flash__argumentsToXML */

function getUPlayer(movieName)
{
	if (navigator.appName.indexOf("Microsoft") !== -1)
	{
		try
		{
			return document.forms[0][movieName];
		}
		catch(e)
		{
			return window[movieName];
		}
	}
	else
	{
		return document.getElementById(movieName);
	}
}



/**
* Events for initializing and disposing:
*/
readyForActionscript = false;

function isReadyForActionscript() {
	return readyForActionscript;
}

function ie__flash__removeCallback(instance, name) {

	var idx = allUPlayers.length;
	while (idx--) {
		if (allUPlayers[idx]) {
			for (var n in allUPlayers[idx]) {
				try {
					allUPlayers[idx][n] = null;
				} catch (e) {
				}
			}
		}
	}
}

function pageLoad() {
	readyForActionscript = true;

	// Monkeypatching to prevent broken and memoryleaking unloading in IE 6
	//__flash__removeCallback = ie__flash__removeCallback;
	
	// XXX
	// dr.dk/boogie and other sites causes segfault in IE for unknown reasons...
	__flash__removeCallback = function () {};

}


function pageUnload() {
	for (var i = 0; i < allUPlayers.length; i++) {
		try {
			allUPlayers[i].unload();
		}
		catch(e) {
		}
	}
}

window.addEvent('load', pageLoad);
window.addEvent('unload', pageUnload);

/**
* Create the uplayer html and returns a reference to the 
*
* TODO: Optional parameters should be passed as an object litteral!
*/
function createUPlayer(holderElementId, width, height, xmlFile, options, alternativePlayerFile, wmode)
{
	var major = 9;
	var minor = 0;
	var build = 47;
	
	var holder = document.getElementById(holderElementId);
	var file = !alternativePlayerFile ? "/skum/ung/flash/uplayer2.swf" : alternativePlayerFile;

	if (!window.allUPlayers) {
		allUPlayers = [];
	}
	
	if (DetectFlashVer(major, minor, build))
	{
		var htmlString = "<object id=\""+holderElementId+"_player\" data=\""+file+"\" height=\""+ height +"\" width=\""+ width +"\" type=\"application/x-shockwave-flash\">";
		htmlString += "<param name=\"movie\" value=\""+file+"\" />"; 
		htmlString += "<param name=\"AllowScriptAccess\" value=\"always\" />";
		htmlString += "<param name=\"allowFullScreen\" value=\"true\">";
		htmlString += "<param name=\"flashvars\" value=\"data="+xmlFile+"&options="+options+"\"/>";

		if (wmode) {
			htmlString += "<param name=\"wmode\" value=\"" + wmode + "\"/>";
		}

		htmlString += "</object>";
		
		holder.innerHTML = htmlString;
		
		allUPlayers.push(getUPlayer(holderElementId+"_player"));
		
		return allUPlayers[allUPlayers.length - 1];
	}
	else
	{
		holder.innerHTML = "<div style=\"height:"+height+"px; width:"+width+"px; \" class=\"uplayer2error\"><h2>Adobe Flash Player</h2><p>Du har ikke den version af Adobe Flash Player™ (Version "+major+","+minor+","+build+") som du skal bruge for at se vores video.</p><p>Klik <a href=\"http://www.adobe.com/go/getflashplayer\">her</a> for at hente og installere den nyeste version.</p></div>";
		return null;
	}

}





