var EPlayer = function(obj)
{
	this.EObject = new Object();
	this.Player = new Object();
	this.RealPlayerFileType = 'rm,rmvb';

  this.write = function(src, width, height, innerObjId)
	{
	  if (this.isRealPlayerFileType(src))
		{
		  this.Player = new RealPlayer(obj);
		}
		else
		{
		  this.Player = new MediaPlayer(obj);
		}		
		
		this.Player.write(src, width, height, innerObjId);
		
		this.EObject = this.Player.EObject;
	}
	
	this.play = function(src)
	{
	  this.Player.play(src);
	}
	
	this.pause = function()
	{
	  this.Player.pause();
	}
	
	this.stop = function()
	{
	  this.Player.stop();
	}
	
	this.previous = function()
	{
	  this.Player.previous();
	}
	
	this.next = function()
	{
	  this.Player.next();
	}
	
	this.mute = function(mute)
	{
		this.Player.mute(mute);
	}

this.isRealPlayerFileType = function(src)
	{
		var types = this.getFileType(src);
		if(("," + this.RealPlayerFileType.toLowerCase() + ",").indexOf("," + types.toLowerCase() + ",") > -1)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	this.getFileType = function(str)
	{
		var regExp = /\.([^\.]+)(\?|$)/;
		if(regExp.test(str))
		{
			var type = str.match(/\.([^\.]+)(\?|$)/)[1];
			return type;
		}
		else
		{
			return "";
		}
	}
	
//MediaPlayer
var MediaPlayer = function(obj)
{
	//
	this.EObjectId = obj ? obj : 'MediaPlayer';
	//
	this.EObject;
	this.FileName = '';
	
	
	this.write = function(src, width, height, innerObjId)
	{
		//player code.
		var code = '';
		code += '<object id="' + this.EObjectId + '" width="' + width + '" height="' + height + '" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95">';
		code += '<param name="AudioStream" value="-1" />';
		code += '<param name="AutoSize" value="0" />';
		code += '<param name="AutoStart" value="1" />';
		code += '<param name="AnimationAtStart" value="-1" />';
		code += '<param name="AllowScan" value="-1" />';
		code += '<param name="AllowChangeDisplaySize" value="-1" />';
		code += '<param name="AutoRewind" value="0" />';
		code += '<param name="Balance" value="0" />';
		code += '<param name="BaseURL" value />';
		code += '<param name="BufferingTime" value="5" />';
		code += '<param name="CaptioningID" value />';
		code += '<param name="ClickToPlay" value="-1" />';
		code += '<param name="CursorType" value="0" />';
		code += '<param name="CurrentPosition" value="-1" />';
		code += '<param name="CurrentMarker" value="0" />';
		code += '<param name="DefaultFrame" value />';
		code += '<param name="DisplayBackColor" value="0" />';
		code += '<param name="DisplayForeColor" value="16777215" />';
		code += '<param name="DisplayMode" value="0" />';
		code += '<param name="DisplaySize" value="0" />';
		code += '<param name="Enabled" value="-1" />';
		code += '<param name="EnableContextMenu" value="-1" />';
		code += '<param name="EnablePositionControls" value="-1" />';
		code += '<param name="EnableFullScreenControls" value="0" />';
		code += '<param name="EnableTracker" value="-1" />';
		code += '<param name="Filename" value="' + src + '" />';
		code += '<param name="InvokeURLs" value="-1" />';
		code += '<param name="Language" value="-1" />';
		code += '<param name="Mute" value="0" />';
		code += '<param name="PlayCount" value="1" />';
		code += '<param name="PreviewMode" value="0" />';
		code += '<param name="Rate" value="1" />';
		code += '<param name="SAMILang" value />';
		code += '<param name="SAMIStyle" value />';
		code += '<param name="SAMIFileName" value />';
		code += '<param name="SelectionStart" value="-1" />';
		code += '<param name="SelectionEnd" value="-1" />';
		code += '<param name="SendOpenStateChangeEvents" value="-1" />';
		code += '<param name="SendWarningEvents" value="-1" />';
		code += '<param name="SendErrorEvents" value="-1" />';
		code += '<param name="SendKeyboardEvents" value="0" />';
		code += '<param name="SendMouseClickEvents" value="0" />';
		code += '<param name="SendMouseMoveEvents" value="0" />';
		code += '<param name="SendPlayStateChangeEvents" value="-1" />';
		code += '<param name="ShowCaptioning" value="0" />';
		code += '<param name="ShowControls" value="0" />';
		code += '<param name="ShowAudioControls" value="-1" />';
		code += '<param name="ShowDisplay" value="0" />';
		code += '<param name="ShowGotoBar" value="0" />';
		code += '<param name="ShowPositionControls" value="-1" />';
		code += '<param name="ShowStatusBar" value="1" />';
		code += '<param name="ShowTracker" value="-1" />';
		code += '<param name="TransparentAtStart" value="0" />';
		code += '<param name="VideoBorderWidth" value="0" />';
		code += '<param name="VideoBorderColor" value="0" />';
		code += '<param name="VideoBorder3D" value="0" />';
		code += '<param name="Volume" value="60" />';
		code += '<param name="WindowlessVideo" value="0" />';
		code += '<embed width="' + width + '" height="' + height + '" border="0" showdisplay="0" showcontrols="0" autostart="1" autorewind="1" playcount="1" src="' + src + '" />';
		code += '</object>';	
		
		if (innerObjId)
		{
			document.getElementById(innerObjId).innerHTML = code;
		}
		else
		{
		  document.write(code);
		}
		
		this.EObject = document.getElementById(this.EObjectId);
		this.FileName = src;
	}
	
	this.play = function(src)
	{
		if (this.FileName.length == 0 && src)
		{
		  this.FileName = src;
			this.EObject.FileName = this.FileName;
		}
		try
		{
		  this.EObject.Play();
		}
		catch(e)
		{
		}
	}
	
	this.pause = function()
	{
		this.EObject.Pause();
	}
	
	this.stop = function()
	{
		this.EObject.Stop();
	}
	
	this.previous = function()
	{
		this.EObject.previous();
	}
	
	this.next = function()
	{
		this.EObject.next();
	}
	
	this.mute = function(mute)
	{
		this.EObject.Mute = mute;
	}
}
//MediaPlayer

//RealPlayer
var RealPlayer = function(obj)
{
	//
	this.EObjectId = obj ? obj : 'RealPlayer';
	//
	this.EObject;
	this.FileName = '';
	
	
	this.write = function(src, width, height, innerObjId)
	{
		//player code.
		var code = '';
		code += '<object id="' + this.EObjectId + '" classid="clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa" width="' + width + '" height="' + height + '">';
		code += '<param name="controls" value="imagewindow" />';
		code += '<param name="console" value="clip1" />';
		code += '<param name="autostart" value="false" />';
		code += '<param name="src" value="' + src + '" />';
		code += '<embed src="' + src + '" type="audio/x-pn-realaudio-plugin" console="clip1" controls="imagewindow" width="' + width + '" height="' + height + '" autostart="false"></embed>';
		code += '</object>';
		
		if (innerObjId)
		{
			document.getElementById(innerObjId).innerHTML = code;
		}
		else
		{
		  document.write(code);
		}
		
		this.EObject = document.getElementById(this.EObjectId);
		this.FileName = src;
	}
	
	this.play = function(src)
	{
		if (!this.isInstall())
		{
		  alert('温馨提示：您还没正确安装RealPlayer,要正常收看,请先下载并正确安装RealPlayer！');
			return;
		}
		
		if (this.FileName.length == 0 && src)
		{
		  this.FileName = src;
			try
			{
			  this.EObject.src = this.FileName;
			}
			catch(e)
			{
			}
		}
		
		try
		{
			this.EObject.DoPlay();
		}
		catch(e)
		{
		}
	}
	
	this.pause = function()
	{
		this.EObject ? this.EObject.DoPause() : '';
	}
	
	this.stop = function()
	{
		this.EObject ? this.EObject.DoStop() : '';
	}
	
	this.previous = function()
	{
		this.EObject ? this.EObject.DoPrevItem() : '';
	}
	
	this.next = function()
	{
		this.EObject ? this.EObject.DoNextItem() : '';
	}
	
	this.mute = function(mute)
	{
		this.EObject ? this.EObject.SetMute(mute) : '';
	}
	
	this.isInstall = function()
	{
		var install = false;
	  if (navigator.userAgent.indexOf("MSIE") < 0 )
	  {
			var numPlugins = navigator.plugins.length;
			for (i = 0; i < numPlugins; i++)
			{
				var plugin = navigator.plugins[i];
				if (plugin.name.substring(0, 10) == "RealPlayer")
				{
					install = true;
					break;
				}
			}
		}
		return install;
	}

}
//RealPlayer
}
//init
var EPlayer = new EPlayer();
