﻿	//	Media Player support for FLEX
	//	Author : Steve Murrell
	//	©2007 Steve Murrell. All rights reserved.
	
	var m_State = "none";	
	var m_bUnloading = false;
	var m_sFlashPlayerID = "GenericVideoPlayer";
	
	function CreateMediaPlayer(sFlashPlayerID)
	{
		m_sFlashPlayerID = sFlashPlayerID;
		var player = document.getElementById("MediaPlayer1");
		if(player == null)
		{
			var oDiv=document.createElement("DIV");
			oDiv.id = "MediaPlayerDIV";
			oDiv.innerHTML = "<OBJECT id='MediaPlayer1' style='visibility:hidden; position:absolute;' classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' name='MediaPlayer1' ><PARAM NAME='uiMode' VALUE='none'><PARAM NAME='autoStart' VALUE='-1'><PARAM NAME='stretchToFit' VALUE='-1'><PARAM NAME='EnableContextMenu' VALUE='false'></OBJECT>"; 
			document.body.appendChild(oDiv);
			var player = document.getElementById("MediaPlayer1");		
			if(navigator.appVersion.indexOf("MSIE") != -1)
			{
				player.attachEvent('playStateChange',vc_OnPlayStateChanged);
			}
			else
			{
				player.addEventListener('playStateChange',vc_OnPlayStateChanged,false);
			}
		}
		//alert("CreateMediaPlayer() ->\n"+sFlashPlayerID);
	}
	
	function PrepareUnload()
	{
		m_bUnloading = true;
	}
	
	function vc_OnPlayStateChanged(NewState)
	{
		m_State = NewState;
	}
	
	function SetPlayerUIMode(sMode)
	{
		var player = document.getElementById("MediaPlayer1");
		player.uiMode = sMode;
	}
	
	function GetMediaPlayerStatus()
	{
		return m_State;
	}
	
	function ShowMediaPlayer()
	{
		//alert("ShowMediaPlayer()");
		document.getElementById("MediaPlayer1").style.visibility="visible";
	}
	
	function HideMediaPlayer()
	{
		document.getElementById("MediaPlayer1").style.visibility="hidden";
	}
	
	function PauseMediaPlayer()
	{
		var player = document.getElementById("MediaPlayer1");
		player.controls.pause();				
	}
	
	function StopMediaPlayer()
	{
		var player = document.getElementById("MediaPlayer1");
		player.controls.stop();				
	}
	
	function PlayMediaPlayer()
	{
		var player = document.getElementById("MediaPlayer1");
		player.controls.play();				
	}
	
	function GetFlashPlayerPosition() 
	{
		var flashplayer = document.getElementById(m_sFlashPlayerID);
		var curleft = curtop = 0;
		if (flashplayer.offsetParent)
		{
			curleft = flashplayer.offsetLeft
			curtop = flashplayer.offsetTop
			while (flashplayer = flashplayer.offsetParent)
			{
				curleft += flashplayer.offsetLeft;
				curtop += flashplayer.offsetTop;
			}
		}
		return [curleft,curtop];
	}
	
	function MoveMediaPlayer(x,y,width,height)
	{
		var player = document.getElementById("MediaPlayer1");
		if(player != null)
		{
			var arrayFlashPlayerPos = GetFlashPlayerPosition();
			player.style.left 	 = x + arrayFlashPlayerPos[0];
			player.style.top  	 = y + arrayFlashPlayerPos[1];	
			player.style.width   = width;
			player.style.height  = height;
		}
		alert("MoveMediaPlayer() ["+x+","+y+","+width+","+height+"] ["+player.style.left+","+player.style.top+","+player.style.width+","+player.style.height+"]");
	}
	
	function SetPlayerURL(sURL)
	{
		//alert("SetPlayerURL() ->\n"+sURL);
		var player = document.getElementById("MediaPlayer1");
		player.url = sURL;
	}
	
	function StopAndHideMediaPlayer()
	{
		var player = document.getElementById("MediaPlayer1");
		player.style.visibility="hidden";
		player.controls.stop();
		player.innerHTML ="";
	}
	
	function SetPlayerZoom(nZoom)
	{
		var player = document.getElementById("MediaPlayer1");
		switch(nZoom)
		{
			case 0:	//Actual Size
				player.stretchToFit = false;
				player.fullScreen = false;
				player.uiMode = "none";
				break;
			case 1: //Double Size
				player.stretchToFit = true;
				player.fullScreen = false;
				player.uiMode = "none";
				break;
			case 2:	//Fit to window
				player.stretchToFit = true;
				player.uiMode = "none";
				break;
			case 3:	//Full Screen
				player.uiMode = "none";
				player.fullScreen = true;			
				break;
		}
	}			
	
	function GetMediaPlayerDownloadProgress()
	{
		var player = document.getElementById("MediaPlayer1");
		return player.network.downloadProgress;
	}
	
	function GetMediaPlayerDuration()
	{
		var player = document.getElementById("MediaPlayer1");
		return Math.floor(player.currentMedia.duration);
	}
	
	function GetVideoWidth()
	{
		var player = document.getElementById("MediaPlayer1");
		return player.currentMedia.imageSourceWidth;
	}
	
	function GetVideoHeight()
	{
		var player = document.getElementById("MediaPlayer1");
		return player.currentMedia.imageSourceHeight;
	}
	
	function GetMediaPlayerPosition()
	{
		var player = document.getElementById("MediaPlayer1");
		return player.controls.currentPosition;
	}
	
	function SeekMediaPlayer(NewPos)
	{
		var player = document.getElementById("MediaPlayer1");
		player.controls.currentPosition = NewPos;
	}
	
	function SetMediaPlayerVolume(NewPos)
	{
		var player = document.getElementById("MediaPlayer1");			
		player.settings.volume = NewPos;
	}
	
