var playerHandle;
var playerIsReady = false;
var urlToLoad = null;

var playerWidth = 480;
var playerHeight = 290;

var aboutText = "FanzIn";
var aboutLink = "http://www.mediamerx.com";

var appRootUrl = "/";
var pathFromRootToComponents = "features/players/jw-4.5/";
var autostart = true;

var playerDivId = "player";


function setProperty(type, value) {
	if (value == null || value < 1) return false;
	switch (type) {
		case "playerWidth":
			playerWidth = value;
		break;
		case "playerHeight":
			playerHeight = value;
		break;
		case "urlToLoad":
			urlToLoad = value;
		break;
		case "appRootUrl":
			appRootUrl = value;
		break;
		case "aboutText":
			aboutText = value;
		break;
		case "aboutLink":
			aboutLink = value;
		break;
		case "autostart":
			autostart = value;
		break;
		case "playerDivId":
			playerDivId = value;
		break;
		default:
			return false;
	}
	return true;
}

function initialize() {

	// sets up the video player itself
	var so = new SWFObject(appRootUrl+pathFromRootToComponents+'mediaplayer.swf','mpl',playerWidth,playerHeight,'9');	
	so.addParam('allowfullscreen','true');
	so.addParam('allowScriptAccess','always');
	so.addParam('wmode','transparent');
	so.addVariable('controlbar','bottom');
	so.addVariable("frontcolor","0xf1f6fb"); //999999
	so.addVariable("lightcolor", "0x155bad"); //56c1ff
	so.addVariable('backcolor','0x000000');
	so.addVariable('displayclick','fullscreen');
	so.addVariable('fullscreen','true');
	so.addVariable('repeat','list');
	so.addVariable('bufferlength','2');
	so.addVariable('linktarget','none');
	so.addVariable('abouttext',aboutText);
	so.addVariable('aboutlink',aboutLink);
	so.addVariable('autostart',autostart);
	
	so.write(playerDivId);
}

function play(url) 
{
	if (playerIsReady)	{
		playerHandle.sendEvent("LOAD",url);
		sendVideoStartIfDefined();
	} else {
		urlToLoad = url;
	}
}

function stopPlayback()
{
	if (playerHandle) {playerHandle.sendEvent("STOP");}
}

function playerReady(obj) 
{
	// player calls this function when it initializes. callback is built into the player swf
	playerIsReady = true;
	playerHandle = getSwf('mpl');
	setPlayerListeners();
	if (urlToLoad!=null)
	{
		play(urlToLoad);
	}
};

function setPlayerListeners()
{
	if (playerHandle.addModelListener)
	{
		playerHandle.addModelListener("ERROR","onPlayerError");
		playerHandle.addModelListener("STATE","onPlayerStateChange");
		return true;
	}
	else
	{
		return false;
	}
}

function onPlayerError(msg)
{
	// stub function.  could use this to do something w/ player error states.
	if (typeof(onVideoComplete)=="function") onVideoComplete();
}

function onPlayerStateChange(status)
{
	if (status.newstate=="COMPLETED" && status.oldstate=="PLAYING") //status.newstate!=status.oldstate)
	{
		if (typeof(onVideoComplete)=="function")
		{
			onVideoComplete();
		}
	}
}

function sendVideoStartIfDefined()
{
	if (typeof(trackVideoStart)=="function")
	{
		
		trackVideoStart("not_set",videoTitle);
	}
}

function getSwf(gid) 
{
	if(navigator.appName.indexOf("Microsoft") != -1) 
	{
		return window[gid];
	} 
	else 
	{
		return document[gid];
	}
};