var sizeUpdated;

function getIsIE()
{
	return isIE;
}
function findPlayer()
{
	try
	{
		var control = document.getElementById("windowsMediaPlayerInstance");
		
		if (control == null)
		{
			//alert("Error: The Windows Media player control could not be not found.");
			return;
		}
		return control;
	}
	catch (e)
	{
		return;	
	}
}

function hidePlayer()
{	
	try
	{
		stopPlayer();
		
		var host = findPlayerHost();

		host.style.display = "none";
	}
	catch (e)
	{
		return;	
	}
}

function findPlayerHost()
{
	var id = "windowsMediaPlayerHost";

	var host = document.getElementById(id);
	
	if (host == null)
	{
		//alert("Error: The Windows Media player control host could not be not found.");
		return;
	}
	
	return host;
}

function initPlayer(url)
{
	try
	{	
		playerReconnected = false;
		sizeUpdated = false;
		
		var player = findPlayer();
		
		player.URL		 = url;
		player.FileName	 = url;
	}
	catch (e)
	{
		alert(e);
	}
	finally
	{
		showPlayer();
	}
}

function createWindowsMediaPlayer()
{	
	if (isIE)
	{
		content = "<object id='windowsMediaPlayerInstance' classid='CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6' width='0' height='0'";
		content += " codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' type='application/x-oleobject'>";
		content += " <param name='url' value=''>";
		content += " <param name='uiMode' value='none'>";
		content += " <param name='autoStart' value='true'>";
		content += " <param name='enableContextMenu' value='true'>";
		content += " <param name='StrechToFit' value='true'>";
		content += "</object>";
	}
	else
	{
		 content = "<object id='windowsMediaPlayerInstance' type='application/x-ms-wmp' data='' width='0' height='0'>";
		 content += " <param name='url' value=''>";
		 content += " <param name='uiMode' value='none'>";
		 content += " <param name='autoStart' value='true'>";
		 content += " <param name='enableContextMenu' value='true'>";
		 content += " <param name='StrechToFit' value='true'>";
		 content += "</object>";
	}
	
	findPlayerHost().innerHTML = content;
}

function centerPlayer()
{
	try
	{
		var host = findPlayerHost();		
	
		var playerCtl = findPlayer();
		
		var windowWidth = document.body.clientWidth;
		var windowHeight = document.body.clientHeight;
		
		var sp = host.style;
		
		sp.left = Math.ceil(((windowWidth / 2) - (playerCtl.width / 2)));
		sp.top  = Math.ceil(((windowHeight / 2) - (playerCtl.height / 2))) - 10;
	}
	catch (e)
	{
		return;	
	}
}

function showPlayer()
{	
	try
	{		
		var host = findPlayerHost();
		
		host.style.display = "block";
	}
	catch (e)
	{
		return;	
	}
}

function play()
{
	try
	{	
		var player = findPlayer();
		var controls = player.controls;
		
		controls.play();
	}
	catch (e)
	{
		return;	
	}
}

function pause()
{	
	try
	{
		var player = findPlayer();
		var controls = player.controls;
		
		controls.pause();
	}
	catch (e)
	{
		return;	
	}
}

function stopPlayer()
{	
	try
	{
		var player = findPlayer();
		var controls = player.controls;
			
		controls.stop();
			
		player.URL = "";
		player.FileName = "";
		player.currentMedia = null;
	}
	catch (e)
	{
		return;	
	}
}

function seek(time)
{
	try
	{
		var player = findPlayer();

		player.controls.currentPosition = time;
	}
	catch (e)
	{
		return;	
	}
}

function setFullscreenPlayer()
{
	var player = findPlayer();
		
	player.fullScreen = true;
}

function onWmpPlayStateChange(newState)
{
	if (newState == 3 && !sizeUpdated)
	{
		var player = findPlayer();
			
		var currentMedia = player.currentMedia;
		
		var w = currentMedia.imageSourceWidth;
		var h = currentMedia.imageSourceHeight;
		
		updateAppPlayerMetadata(w, h, currentMedia.duration);
		setPlayerSize(w, h);
		sizeUpdated = true;
	}
}

function setPlayerSize(width, height)
{
	var host = findPlayerHost();
	
	host.style.width = width;
	host.style.height = height;
		
	playerCtl = findPlayer();

	var windowWidth = document.body.clientWidth;
	var windowHeight = document.body.clientHeight;
	
	if ((width + 150) > windowWidth)
	{
		playerCtl.width = windowWidth - 150;
	}
	else
	{
		playerCtl.width  = width;
	}
	
	if ((height + 150) > windowHeight)
	{
		playerCtl.height = windowHeight - 150;
	}
	else
	{
		playerCtl.height  = height;
	}
}

function onWmpPlayStatusChange()
{
	var player = findPlayer();
	
	updateAppPlayerStatus(player.status);
}	

function getPlayerState()
{
	var player = findPlayer();
	
	if (player.playState == 1)
	{
		return "playing";
	}
	else
	{
		return null;
	}
}

function getPlayheadTime()
{
	var player = findPlayer();
	return player.controls.currentPosition;
}

function getDownloadProgress()
{
	var player = findPlayer();
	return player.network.downloadProgress;
}

function updateAppPlayerMetadata(width, height, totalTime)
{	
	var app = getFlexApp("Main");
	
	if (app == null)
	{
		alert("JavaScript could not find the Flex application.");
	}
	else
	{
		centerPlayer();
		app.updateMetadata(width, height, totalTime);
	}
}

function updateAppPlayerStatus(status)
{	
	var app = getFlexApp("Main");
	
	if (app == null)
	{
		alert("JavaScript could not find the Flex application.");
	}
	else
	{
		centerPlayer();
		app.updateStatus(status);
	}
}