
var LineEnd = "\n\r";
var vidStretch = false;

//-----------------------------------------------
// v7+ onPlayStateChange state options array
//-----------------------------------------------
var psArray = new Array(12);
psArray[0] = "Undefined - Windows Media Player is in an undefined state.";
psArray[1] = "Stopped - Playback of the current media clip is stopped."; 
psArray[2] = "Paused - Playback of the current media clip is paused. When media is paused, resuming playback begins from the same location.";
psArray[3] = "Playing - The current media clip is playing."; 
psArray[4] = "ScanForward - The current media clip is fast forwarding.";
psArray[5] = "ScanReverse - The current media clip is fast rewinding."; 
psArray[6] = "Buffering - The current media clip is getting additional data from the server.";
psArray[7] = "Waiting - Connection is established, however the server is not sending bits. Waiting for session to begin.";
psArray[8] = "MediaEnded - Media has completed playback and is at its end.";  
psArray[9] = "Transitioning - Preparing new media."; 
psArray[10] = "Ready - Ready to begin playing."; 
psArray[11] = "Reconnecting - Reconnecting to stream.";

//-----------------------------------------------
// v6.4 onPlayStateChange state options array
//-----------------------------------------------
var ps64Array = new Array(9);
ps64Array[0] = "mpStopped - Playback is stopped.";
ps64Array[1] = "mpPaused - Playback is paused."; 
ps64Array[2] = "mpPlaying - Stream is playing."; 
ps64Array[3] = "mpWaiting - Waiting for stream to begin."; 
ps64Array[4] = "mpScanForward - Stream is scanning forward."; 
ps64Array[5] = "mpScanReverse - Stream is scanning in reverse."; 
ps64Array[6] = "mpSkipForward - Skipping to next."; 
ps64Array[7] = "mpSkipReverse - Skipping to previous."; 
ps64Array[8] = "mpClosed - Stream is not open."; 
	
aOpenState = new Array();
aOpenState[0] = "Undefined";
aOpenState[1] = "PlaylistChanging";
aOpenState[2] = "PlaylistLocating";
aOpenState[3] = "PlaylistConnecting";
aOpenState[4] = "PlaylistLoading";
aOpenState[5] = "PlaylistOpening";
aOpenState[6] = "PlaylistOpenNoMedia";
aOpenState[7] = "PlaylistChanged";
aOpenState[8] = "MediaChanging";
aOpenState[9] = "MediaLocating";
aOpenState[10] = "MediaConnecting";
aOpenState[11] = "MediaLoading";
aOpenState[12] = "MediaOpening";
aOpenState[13] = "MediaOpen";
aOpenState[14] = "BeginCodecAcquisition";
aOpenState[15] = "EndCodecAcquisition";
aOpenState[16] = "BeginLicenseAcquisition";
aOpenState[17] = "EndLicenseAcquisition";
aOpenState[18] = "BeginIndividualization";
aOpenState[19] = "EndIndividualization";
aOpenState[20] = "MediaWaiting";
aOpenState[21] = "OpeningUnknownURL";

// detect Windows Media Player on IE Win or Mac & code for <object> or <embed> writing
function WMPCheckIE() {	// only called if IE not on Mac
	// all done by the object stuff earlier
	var v = 0;
	if (GetPlayerMajorVer() != "unknown") {
		v = parseInt(GetPlayerMajorVer()+"."+GetPlayerMinorVer());
	} else if (bd.activex) {	// geckomplications
		//debugger
		if (debugMode) alert("[debug] Can't find WMP version");
		v = 0;
	}
	//alert(v);
	//if (v >= 7)
	//	bd.plugin_ok = true;
	return v;
}

//
// Check for Windows Media Player Netscape or Mac
//
function WMPcheckAll() {
	if (bd.browser_ok) {
		// okeydokey, get plugin details
		if ((bd.is_win && bd.is_ie) || bd.activex ) {
			bd.wmp_ver = WMPCheckIE();
			if (bd.wmp_ver >= 7) bd.wmp7 = true; else bd.wmp7 = false;
		} else { // must be Mac? - No!
			bd.wmp_ver = WMPCheckNS(bd);
		}
		if (bd.is_win && bd.wmp_ver >= 7) {	// no longer support 6.4
			bd.plugin_ok = true;
		} else if (bd.is_mac && bd.wmp_ver > 7) {
			bd.plugin_ok = true;
		}
	}
}

function WMPCheckNS(inBd) {	// takes browserdetect ob in, returns wmp version or false
	var hasPlugIn = false;
	var hasASF = false;
	var hasASFplugin = false;
	var hasDRM = false;
	var hasWMP7 = false;
	var hasWMP9 = false;
	var i;
	var wmp = false;
	for (i = 0; i < navigator.plugins.length; i++) {
		if (navigator.plugins[i].name.indexOf("Windows Media") != -1 && navigator.plugins[i].name.indexOf("Plug") != -1) {
			//alert(navigator.plugins[i].filename);
			hasPlugIn = true;
			break;
		}
	}
	var s="";
	for (i = 0; i < navigator.mimeTypes.length; i++) {
		//s += navigator.mimeTypes[i].type;
		//if (navigator.mimeTypes[i].enabledPlugin)
		//	s += "     " + navigator.mimeTypes[i].enabledPlugin.name + "\n";
		//else
		//	s += "\n";
		
		if (navigator.mimeTypes[i].type.indexOf("video/x-ms-asf-plugin") != -1) {
			hasASFplugin = true;
		}
		if (navigator.mimeTypes[i].type.indexOf("video/x-ms-asf") != -1) {
			hasASF = true;
		}
		if (navigator.mimeTypes[i].type.indexOf("application/x-drm") != -1) {
			hasDRM = true;
		}
		if (navigator.mimeTypes[i].type.indexOf("application/Windows_Media_Player_7") != -1) {
			hasWMP7 = true;
		}
		if (navigator.mimeTypes[i].type.indexOf("application/x-mplayer2") != -1) {
			hasWMP7 = true;
		}
		if (navigator.mimeTypes[i].type.indexOf("video/x-ms-wmx") != -1) {	// a bit arbitrary?
			hasWMP9 = true;
		}
	}
	//alert(s);
	if (!hasPlugIn) {	//inBd.is_mac && inBd.is_ie && 
		// This installation of the browser does not have the WMP Plugin, 
		// User needs to install it in this instance of the browser
		wmp = false;
	} else if (hasASF && hasASFplugin) {	//inBd.is_mac && inBd.is_ie && 
		//currently a plugin for new window media 7.1
		if (hasWMP9) {		
			wmp="9.0"
		} else if (hasWMP7) {		
			wmp="7.0"
		} else {
			wmp = true;
		}	
	} else if (hasASF) {
		//currently no plugin for new window media 7.1 only 6.4
		if (hasDRM) {
			wmp = "6.4";
		} else {
			wmp = true;
		} 
	} else {
		//if hasASF and hasDRM but hasASFplugin = false user just needs to download plugin...
		wmp = false;
	}
	return wmp;
}

function getHTML_WMP(inURL,objnome,iniciar,largura,altura,estica,modo) {
	if (largura == "") largura = "320";
	if (altura == "") largura = "240";
	if (modo == "") modo = "mini";
	if (iniciar == "") iniciar = true;
	if (estica == "") estica = true;
	var macSafari = false;
	if(bd.is_mac && bd.browser == "Safari")
		macSafari = true;
	if ((bd.is_ie && bd.is_win)) {
		return getHTML_ieWMP(inURL,objnome,iniciar,largura,altura,estica,modo); // + getWMPEventHandlers(objnome);
	} else if (bd.platform == "unix") {
		return getHTML_ObjUnix(inURL,objnome,iniciar,largura,altura,estica,modo);
	} else if (bd.browser == "FireFox" || macSafari == false) {
		return getHTML_ObjWMP(inURL,objnome,iniciar,largura,altura,estica,modo);		
	} else {
		return getHTML_nsWMP(inURL,objnome,iniciar,largura,altura,estica,modo); // + LineEnd + getHTML_nsWMPapplet();
	}
}

function getWMPEventHandlers(OBJnome) {
	if (OBJnome == "") OBJnome = "mediaPlayer"
	var s = "";
	s += "		<script language=\"JScript\" event=\"playStateChange(NewState)\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZPlayStateChange( NewState );" + LineEnd;
	s += "		</script>" + LineEnd;
	s += "		<script language=\"JScript\" event=\"openStateChange(NewState)\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZOpenStateChange( NewState );" + LineEnd;
	s += "		</script>" + LineEnd;
	s += "		<script language=\"JScript\" event=\"StatusChange(NewState)\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZStatusChange( NewState );" + LineEnd;
	s += "		</script>" + LineEnd;
	s += "		<script language=\"JScript\" event=\"buffering(Start)\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZBuffering(Start);" + LineEnd;
	s += "		</script>" + LineEnd;
	s += "		<script language=\"JScript\" event=\"mediaChange(Item)\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZMediaChange(Item);" + LineEnd;
	s += "		</script>" + LineEnd;
	s += "		<script language=\"JScript\" event=\"error()\" for=\"" + OBJnome + "\">" + LineEnd;
	s += "ZError();" + LineEnd;
	s += "		</script>" + LineEnd;
	return s;
}

function getHTML_ieWMP(inURL,OBJnome,Iniciar,Largura,Altura,Estica,Modo) {
	var u = inURL;
	var clid;
	var params = "";
	bd.wmp_ver = WMPCheckIE();
	clid = "CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6";
	cbase = "http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=7,0,0,1954";
	params += "	<param name=\"stretchToFit\" value=\""+Estica+"\">" + LineEnd;
	params += "	<param name=\"uiMode\" VALUE=\""+Modo+"\">" + LineEnd;
	if (inURL) params += "	<param name=\"url\" value=\""+u+"\">" + LineEnd;

	var t = "<object ID=\""+OBJnome+"\" width=\""+Largura+"\" height=\""+Altura+"\" " + LineEnd +	
			"			classid=\""+clid+"\" " + LineEnd +
			"			codebase= " + cbase + LineEnd +
			"			standby=\"Loading Microsoft Windows Media Player components...\"" +
			"			type=\"application/x-oleobject\">" + LineEnd + // VIEWASTEXT
			"	<param name=\"ShowControls\" value=\"false\">" + LineEnd +
			"	<param name=\"EnableContextMenu\" value=\"true\">" + LineEnd +
			"	<param name=\"AutoStart\" value=\"" + Iniciar + "\">" + LineEnd +
			"	<param name=\"ShowStatusBar\" value=\"false\">" + LineEnd +
			params +
			"</object>";
	//alert(t);
	return t;
}

/*
<object ID="WinMedia" width="320" height="240"
		classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6"
		codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,0,0"
		standby="Loading Microsoft Windows Media Player components..."
		type="application/x-oleobject">	<param name="ShowControls" value="false">
	<param name="EnableContextMenu" value="false">
	<param name='AutoStart' value='true'>
	<param name='ShowStatusBar' value='false'>
	<param name="stretchToFit" VALUE="true">
	<param name="uiMode" VALUE="none">
	<param name="url" VALUE="mms://195.219.160.251/R41_MCP?chid=2&pid=19&vid=15&br=400&tid=2&brid=3">
</object>
*/
function getHTML_nsWMP(inURL,OBJnome,Iniciar,Largura,Altura,Estica,Modo) {
	var u = inURL;
//	prompt("getHTML_nsWMP ",inURL);
	var params = "";
	var le = " ";
	
	if (vidStretch) {
		params = "	AutoSize='0'" + le;
		params += "	stretchToFit='1'" + le;
	} else {
		params = "	AutoSize='1'" + le;
		params += "	stretchToFit='0'" + le;
	}
	var clid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
	var t = "<embed type='application/x-mplayer2'" + le +
			"	name='"+OBJnome+"'" + le +
			"	id='"+OBJnome+"'" + le +
			"	pluginspage='http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=media&sba=plugin' " + le +
//			"	classid='"+clid+"' " + le +
	    	"	width='" + Largura + "' " + le +
	    	"	height='" + Altura + "' " + le;
	if (inURL) t +=	"	src='" + u + "' " + le;
	t +=	"	AutoStart='" + Iniciar + "' " + le;
	if (!debugMode) {
		t +="	EnableContextMenu='0'" + le +
			"	ShowControls='0'" + le +
			"	ShowAudioControls='0'" + le +
			"	ShowTracker='0'" + le +
			"	uiMode='" + Modo + "'" + le;
	} else {
		t += "	uiMode='full'" + le;
	}
	t +=	"	fullScreen='0'>" + le +
		"</embed>" + le;
//alert(t);	
	return t;
}

function getHTML_nsWMPapplet() {
	// java helper applet for non IE browsers?  WMPNS.WMP
	var t = "<"+"APPLET NAME=\"WMPHelper\" width=\"5\" height=\"5\" CODE=\"NPDS.npDSEvtObsProxy.class\" MAYSCRIPT>" + LineEnd 
			"</"+"APPLET>";
	return t;
}

function getHTML_ObjWMP(inURL,OBJnome,Iniciar,Largura,Altura,Estica,Modo) {
	var u = inURL;
//	prompt("getHTML_nsWMP ",inURL);
	var params = "";
	var le = " ";
	if (Estica == "true")
		vidStretch = true;

	var t = "<object ID=\""+OBJnome+"\"" + LineEnd +
		" type=\"application/x-ms-wmp\" " + LineEnd +
		" width=\""+Largura+"\" height=\""+Altura+"\" " + LineEnd;
//	if (inURL) t +=	"   data=\""+ u +"\">";
	if (inURL) t +=	" >";
		t += " <param name=\"autostart\" value=\""+Iniciar+"\" />" + LineEnd;
	if (inURL) t +=	" <param name=\"filename\" value=\""+u+"\" />" + LineEnd;
		t += " <param name=\"animationatstart\" value=\"0\" />" + LineEnd +
		 " <param name=\"transparentatstart\" value=\"0\" />" + LineEnd +
		 " <param name=\"showdisplay\" value=\"0\" />" + LineEnd +
		 " <param name=\"EnableContextMenu\" value=\"1\" />" + LineEnd;
	if (Modo == "full") {
		t +=" <param name=\"showcontrols\" value=\"1\" />" + LineEnd +
		 	" <param name=\"showstatusbar\" value=\"1\" />" + LineEnd +
			" <param name=\"showaudiocontrols\" value=\"1\" />" + LineEnd +
			" <param name=\"showtracker\" value=\"1\" />" + LineEnd +
			" <param name=\"uiMode\" value=\""+Modo+"\" />" + LineEnd;
	} else if (Modo == "mini") {
		t +=" <param name=\"showcontrols\" value=\"1\" />" + LineEnd +
		 	" <param name=\"showstatusbar\" value=\"0\" />" + LineEnd +
			" <param name=\"showaudiocontrols\" value=\"1\" />" + LineEnd +
			" <param name=\"showtracker\" value=\"0\" />" + LineEnd +
			" <param name=\"uiMode\" value=\""+Modo+"\" />" + LineEnd;
	} else {
		t +=" <param name=\"showcontrols\" value=\"0\" />" + LineEnd +
		 	" <param name=\"showstatusbar\" value=\"0\" />" + LineEnd +
			" <param name=\"showaudiocontrols\" value=\"0\" />" + LineEnd +
			" <param name=\"showtracker\" value=\"0\" />" + LineEnd +
			" <param name=\"uiMode\" value=\""+Modo+"\" />" + LineEnd;
	}

	if (vidStretch) {
		t +=" <param name=\"AutoSize\" value=\"0\" />" + LineEnd +
		 " <param name=\"stretchToFit\" value=\"1\">" + LineEnd;
	} else {
		t +=" <param name=\"AutoSize\" value=\"1\" />" + LineEnd +
		 " <param name=\"stretchToFit\" value=\"0\">" + LineEnd;	
	}
	t += " <param name=\"fullScreen\" value=\"1\" />" + LineEnd +
		"</object>" + le;
//alert(t);	
	return t;
	
}


function getHTML_ObjUnix(inURL,OBJnome,Iniciar,Largura,Altura,Estica,Modo) {
	var u = inURL;
//	prompt("getHTML_nsWMP ",inURL);
	var params = "";
	var le = " ";
	if (Estica == "true")
		vidStretch = true;
		
	if (vidStretch) {
		params = "	AutoSize='0'" + le;
		params += "	stretchToFit='1'" + le;
	} else {
		params = "	AutoSize='1'" + le;
		params += "	stretchToFit='0'" + le;
	}

	var t = "<object ID=\""+OBJnome+"\"" + LineEnd +
		" type=\"video/x-ms-wmv\" " + LineEnd +
		" width=\""+Largura+"\" height=\""+Altura+"\" " + LineEnd;
	if (inURL) t +=	"   data=\""+ u +"\">";
	t += " <param name=\"autostart\" value=\""+Iniciar+"\" />" + LineEnd;
//		if (inURL) t +=	" <param name=\"filename\" value=\""+u+"\" />" + LineEnd;
	t += " <param name=\"animationatstart\" value=\"0\" />" + LineEnd +
		 " <param name=\"transparentatstart\" value=\"0\" />" + LineEnd +
		 " <param name=\"showdisplay\" value=\"0\" />" + LineEnd +
		 " <param name=\"showstatusbar\" value=\"0\" />" + LineEnd;
	if (!debugMode) {
		t +=" <param name=\"showcontrols\" value=\"0\" />" + LineEnd +
			" <param name=\"showaudiocontrols\" value=\"0\" />" + LineEnd +
			" <param name=\"showtracker\" value=\"0\" />" + LineEnd +
			" <param name=\"uiMode\" value=\""+Modo+"\" />" + LineEnd;
	} else {
		t +=" <param name=\"uiMode\" value=\"full\" />" + LineEnd;
	}
	t += " <param name=\"fullScreen\" value=\"0\" />" + LineEnd +
		"</object>" + le;
//alert(t);	
	return t;
}

//------------------------------------------------
// Name:  GetPlayerMajorVer
// Purpose: Get Media Player Major Version Number
//------------------------------------------------
function GetPlayerMajorVer()
{
	var strVer = new String(WMPVer);
	s = strVer.split(".");
	if (s[0])
		return s[0];
	else
		return("unknown");
}
//-------------------------------------------------
// Name:  GetPlayerMinorVer
// Purpose: Get Media Player Major Version Number. (no! minor version!)
//-------------------------------------------------
function GetPlayerMinorVer()
{
	var strVer = new String(WMPVer);
	s = strVer.split(".");
	if (s[1])
		return s[1];
	else
		return("unknown");
}

function ZPlayStateChange(inState){
}
function ZOpenStateChange(inState){
	if (inState) {
	}
}
function ZStatusChange(inState) {
	if (inState) {
	}
}
function ZBuffering(inStart){
   if (inStart) {
   }
}
function ZMediaChange(inItem){
	if (ZPlayer && aZPlayer[n].currentMedia) {
	
	}
}
function ZError(){
	if (ZPlayer) {
		var max = aZPlayer[n].error.errorCount - 1 
		var errItem = aZPlayer[n].error.item(max);
		errDesc = errItem.errorDescription;
		errNum = errItem.errorCode;
		alert("Zplayer - código do erro: "+errNum + "\n" + errDesc);
	} else {
		alert("Zplayer: erro não determinado.");
	}
}
