﻿/***************************************************************************************************************
 * 文 件 名：newplay.js
 * 创建时间：2008.8.25
 * 修改时间：2009.6.6
 * 创 建 人：Polo1559
 * 公    司：远古网络有限公司
 * 文件描述：全部采用EXE形式，调用播放器快，支持WebPlayer 2007/2008/2009版本，2009版本可支持连续播放！
 ******************************************转载请保留作者版权
 ****************************************************************************************************************/
function CheckPlay()
{
	try
	{
		var oTest = new ActiveXObject("URLCALLER.URLCallerCtrl.1");
	}
	catch(e)
	{
		if(window.opener == undefined)
		{
			if (confirm("首次点播将安装播放器插件，[确定]下载播放器插件，[取消]不下载播放器插件！")){
				window.open("/player/WebPlayer2009.exe");
			} 
		}
		else
		{
			if (confirm("首次点播将安装播放器插件，[确定]下载播放器插件，[取消]不下载播放器插件！")){
				window.opener.open("/player/WebPlayer2009.exe");
			} 
			self.close();
		}
		return false;
	}
	delete oTest;
	return true;
}

function vodplay(progguid,partno)
{
	if(!CheckPlay ()) return false;
	try
	{
		var newoTest = new ActiveXObject("URLCALLER.URLCallerCtrl.1");
		var WebPlayerver = "2009";
	}
	catch(e)
	{
		try
		{
			var newTest = new ActiveXObject("VGPlayer.WebPlayer7P2P.1");
			var WebPlayerver = "2008";
		}
		catch(e)
		{
			try
			{
				var oldTest = new ActiveXObject("VGPlayer.WebVGPlayer.1");
				var WebPlayerver = "2007";
			}
			catch(e)
			{
				alert("检测播放器版本出错，请重新安装播放器！");
			}
			delete oldTest;
		}
		delete newTest;
	}
	delete newoTest;
	var objXmlHttp = GetXMLHttpObj();
	if(typeof(objXmlHttp) != "object"){alert("XmlHttp 对象创建失败！");return;}
	objXmlHttp.Open("GET", "/player/player.php?progguid="+progguid, false);
	objXmlHttp.Send();
	if (objXmlHttp.status == 200){
		var strParam = objXmlHttp.responseText;
		if (strParam =="-1001") {alert("请您先登录！");return;}
		if (strParam =="-1002") {alert("您的帐户上余额不足！");return;}
 		if (strParam =="-1003") {alert("您的账户等级不够！");return;}
 		if (strParam =="-1004") {alert("您的账户已经过期！");return;}
		if (strParam =="-1005") {alert("此节目现在当前不允许播放！");return;}
		if (strParam =="-1006") {alert("登录用户错误！");return;}
		if (strParam =="-1007") {alert("您没有观看此节目的权限！");return;}
		if (strParam =="-1008") {alert("您的账户已经被禁用！");return;}
		if (strParam =="-1009") {alert("您不能访问本系统资源！");return;}
		if (strParam==""){alert("网络错误，您无法得到服务！");return;}
		var objDOM = GetXMLDOMObject();
		if(typeof(objDOM) != "object"){alert("DOMDocument 对象创建失败！");return;}
		objDOM.async = false;
		objDOM.loadXML(strParam);
		if(objDOM.parseError.errorCode == 0){
			var root = objDOM.documentElement.selectSingleNode("/webplayer")
			var ServerMode = root.childNodes.item(0).getAttribute("ServerMode");
			var UserName = root.childNodes.item(1).getAttribute("UserName");
			var UserID = root.childNodes.item(2).getAttribute("UserID");
			var PlayMode = root.childNodes.item(3).getAttribute("PlayMode");
			var PlayModeValue = root.childNodes.item(4).getAttribute("PlayModeValue");
			var ChannelID = root.childNodes.item(5).getAttribute("ChannelID");
			var ServerHost = root.childNodes.item(6).getAttribute("ServerHost");
			var Session = root.childNodes.item(7).getAttribute("Session");
			var ProtocolType = root.childNodes.item(8).getAttribute("ProtocolType");
			var EmbedMode = root.childNodes.item(9).getAttribute("EmbedMode");
			var ProgName = root.childNodes.item(10).getAttribute("ProgName");
			var PlayInExe = root.childNodes.item(11).getAttribute("PlayInExe");
			var oHttp = GetXMLHttpObj();
			if(typeof(oHttp) != "object"){alert("XmlHttp 对象创建失败！");return;}
			oHttp.Open("GET", "/player/playerlist.php?progguid="+progguid, false);
			oHttp.Send();
			try
			{
				var objPlayCaller = new ActiveXObject("PlayCaller7.PlayCallerP2P.1");
			}
			catch(e)
			{
				alert("PlayCaller 创建失败");
			}
			if (WebPlayerver == "2007"){
				objPlayCaller.Start("|progname="+ProgName+"|servermode="+ServerMode+"|serverhost="+ServerHost+"|username="+UserName+"|userid="+UserID+"|channelid="+ChannelID+"|session="+Session+"|authenhost="+GetHostName(this.location.href)+":"+GetHostPort(this.location.href)+"|playmode="+PlayMode+"|playmodevalue="+PlayModeValue+"|protocoltype="+ProtocolType+"|nettype=||");
			} else if (WebPlayerver == "2008") {
				objPlayCaller.Start("http://"+GetHostName(this.location.href)+":"+GetHostPort(this.location.href)+"/webmedia/webmedia.das?clientver=4801&servermode="+ServerMode+"&username="+UserName+"&userid="+UserID+"&channelid="+ChannelID+"&playmode="+PlayMode+"&playmodevalue="+PlayModeValue+"&progname="+ProgName+"&session="+Session);
			} else if (WebPlayerver == "2009") {
				if (oHttp.status == 200){
					var listParam = oHttp.responseText;
					if (listParam !="-1001"){
						if (listParam ==""){
							objPlayCaller.Start("http://"+GetHostName(this.location.href)+":"+GetHostPort(this.location.href)+"/webmedia/webmedia.das?clientver=4801&servermode="+ServerMode+"&username="+UserName+"&userid="+UserID+"&channelid="+ChannelID+"&playmode="+PlayMode+"&playmodevalue="+PlayModeValue+"&progname="+ProgName+"&session="+Session);
						} else {
							var objlistDOM = GetXMLDOMObject();
							if(typeof(objlistDOM) != "object"){alert("DOMDocument 对象创建失败！");}
							objlistDOM.async = false;
							objlistDOM.loadXML(listParam);
							if(objlistDOM.parseError.errorCode == 0){
								var maxNum = objlistDOM.getElementsByTagName("count").length;
								var vStart = VGPDemo.StartPlayer();
								if (vStart !="0") {alert("运行播放器失败，请检查客户端！");}
								for (var n=0;n<maxNum;n++)
								{
									var szPartNO = objlistDOM.getElementsByTagName("partno").item(n).text;
									var szProgID = objlistDOM.getElementsByTagName("proaid").item(n).text;
									var szProgName= objlistDOM.getElementsByTagName("progname").item(n).text;
									if (szPartNO >= partno){
										//VGPDemo.PlayFlashURL("http://www.highvod.cn/webmedia/livetv/img/LoaDing.swf","Loading");
										if (szPartNO == partno){
											var szPlayURL = VGPDemo.PlayURL("http://www.highvod.cn/webmedia/webmedia.das?clientver=4801&servermode="+ServerMode+"&username="+UserName+"&userid="+UserID+"&channelid="+szProgID+"&playmode="+PlayMode+"&playmodevalue="+szProgID+"&progname="+szProgName+"&session="+Session, szProgName);
											//if (szPlayURL !="0") {alert("调试："+szPlayURL);}
										} else {
											var szPlayURL = VGPDemo.AddURL("http://www.highvod.cn/webmedia/webmedia.das?clientver=4801&servermode="+ServerMode+"&username="+UserName+"&userid="+UserID+"&channelid="+szProgID+"&playmode="+PlayMode+"&playmodevalue="+szProgID+"&progname="+szProgName+"&session="+Session, szProgName);
											//if (szPlayURL !="0") {alert("调试："+szPlayURL);}
										}
									}
								}
							} else {
								alert("错误代码：" + objlistDOM.parseError.errorCode + "\n\n错误信息：" +objlistDOM.parseError.reason);
							}
						}
					}
				} else {
					objPlayCaller.Start("http://"+GetHostName(this.location.href)+":"+GetHostPort(this.location.href)+"/webmedia/webmedia.das?clientver=4801&servermode="+ServerMode+"&username="+UserName+"&userid="+UserID+"&channelid="+ChannelID+"&playmode="+PlayMode+"&playmodevalue="+PlayModeValue+"&progname="+ProgName+"&session="+Session);
				}
			}
			delete objPlayCaller;
		} else {
			alert("错误代码：" + objDOM.parseError.errorCode + "\n\n错误信息：" +objDOM.parseError.reason);
		}
	} else {
		alert("网络错误，您无法得到服务！");
	}
}

function GetHostName(szUrl)
{
	iNameSize	= szUrl.indexOf("/", 7) - 7;
	szUrl		= szUrl.substr(7, iNameSize);
	if(szUrl.indexOf(":") > 0)iNameSize = szUrl.indexOf(":");
	szHostName	= szUrl.substr(0, iNameSize);
	return szHostName;
}

function GetHostPort(szUrl)
{
	var szHostPort, iPortPos, iPortSize;
	if(szUrl.indexOf(":", 5) > 0)
	{
		iPortPos = szUrl.indexOf(":", 5) + 1;
		if(szUrl.indexOf("/", iPortPos) > 0)iPortSize = szUrl.indexOf("/", iPortPos) - iPortPos;
		szHostPort = szUrl.substr(iPortPos, iPortSize);
	}
	else
	{
		szHostPort = 80;
	}
	return szHostPort;
}

function GetXMLHttpObj()
{
	var oXMLHttpRequest;
	try{
		oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}catch(e){
		try{
			oXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				oXMLHttpRequest = new XMLHttpRequest();
			}catch(e){
				oXMLHttpRequest = false;
			}
		}
	}
	if (typeof(oXMLHttpRequest) == "object"){return oXMLHttpRequest;}
	else{return null;}
}

function GetXMLDOMObject()
{
	try{
		if(window.ActiveXObject)
		{
			var oReturnObject = new ActiveXObject(GetDOMDocumentPrefix() + ".DOMDocument");
			oReturnObject.async		= false;
			oReturnObject.resolveExternals	= false;
			return oReturnObject;
		}
	}
	catch(ex){
		return null;
	}
}

function GetDOMDocumentPrefix()
{
	var szPrefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var oReturnObject;
	for(var i = 0; i < szPrefixes.length; i++)
	{
		try
		{
			oReturnObject = new ActiveXObject(szPrefixes[i] + ".DOMDocument");
			return szPrefixes[i];
		}
		catch(ex){}
	}
	return "";
}
