/***
*	MediaPlayerFactory 0.0.1
*
*	An abstract factory class to create an instance of a specific media player.
*	The createMediaPlayer() function initializes the instance of an abstract media provider
*   allowing generic function calls on the returned object.
*
*	(c) 2006 Tachometry Corporation.  
*	contact: support@tachometry.com
*
*	Licensed under the Apache License (v. 2.0)
*	http://www.apache.org/licenses/LICENSE-2.0
*/

MediaPlayerFactory = function( )
{
	var REAL_PLAYER = "real";
	var WINDOWS_MEDIA_PLAYER = "wm";
	var QUICKTIME_PLAYER = "qt";
	var FLASH_PLAYER = "flash";
	var player_type = null;
	
	this.setPlayerType = setPlayerType;
	this.getPlayerType = getPlayerType;
	this.createMediaPlayer = createMediaPlayer;
	
	function createMediaPlayer( player_type, src, width, height )
	{
		if (player_type == null) {
			player_type = this.getPlayerType();
		}
		switch (player_type) 
		{
			case null :
				throw new Error("Media Player Type has not been defined.  Cannot create instance.");
				exit;
			case REAL_PLAYER :
				return new RealPlayer(src, width, height);
			case WINDOWS_MEDIA_PLAYER :
				return new WindowsMediaPlayer(src, width, height);
			case QUICKTIME_PLAYER :
				return new QuicktimePlayer(src, width, height);
			case FLASH_PLAYER :
				return new FlashPlayer(src, width, height);
			default :
				throw new Error("Unrecognized Media Player.  Cannot create instance of "+ player_type +".");
				exit;
		}
	}
	
	function setPlayerType( pt )
	{
		player_type = pt;
	}
	function getPlayerType()
	{
		return player_type;
	}
}


