﻿// 定义：
// QQ直播的最新版本号：
var VER_QQLIVE		= "5.0.3236.0";
var VER_MEDIAPLAYER	= "9.0.0.0";
var QQLIVE_DOWNLOAD_URL = "qqlive";
var QQLIVE_DOWNLOAD_TPTURL = "";
var QQLIVE_INSTALLER_CAB = "http://cache.tv.qq.com/qqlive_ocx/QQLiveInstaller.cab#version=1,0,0,3";
var MEDIAPLAYER_DOWNLOAD_URL = "http://tv.qq.com/download.htm";
//var QQLIVE_PRODUCT_NAME	= "QQLive软件";
//var QQLIVE_PRODUCT_ICON = "http://cache.tv.qq.com/qqlive_ocx/ocx_download_guide03.gif"
//var QQLIVE_PRODUCT_DOWNLOAD_PIC = "http://cache.tv.qq.com/qqlive_ocx/ocx.gif"
var QQLIVE_SETUP = "http://qqlivedl.qq.com/QQLive7.0.4111.0.exe";

var QQLIVE_DOWNLOAD_UI = "DownloadUI"
var QQLIVE_FRESH_UI = "FreshUI"
var QQLIVE_PRECENT_UI = "PrecentUI"
var QQLIVE_ERR_UI = "ErrUI"

var QQLIVE_DOWNLOAD_VERSION = "QQLive 2008"
var QQLIVE_SWF_PATH = "http://imgcache.qq.com/video/out/"  	//swf的基础地址的位置
var QQLIVE_SWF_SKIN = "skins/"  							//swf的skin的文件夹

// 控件参数开始
function qqliveOcxParam(strName, strValue)
{
	this.Name = strName;
	this.Value = strValue;
}

function qqliveOcxParams()
{
	this.count = 0;
}
// 控件参数结束

// 系统监测开始
function compareVersions(strVer1, strVer2)
{
	strVer1 = strVer1.replace(/,/g, '.');
	strVer2 = strVer2.replace(/,/g, '.');
	
	var vArray1 = strVer1.split('.');
	var vArray2 = strVer2.split('.');
	
	for (var i = 0; i < 4; i++)
	{
		var nVer1 = Number(vArray1[i]);
		var nVer2 = Number(vArray2[i]);
			
		if (nVer1 > nVer2)
		{
			return 1;
		}
		else if (nVer1 < nVer2)
		{
			return -1;
		}
	}
	
	return 0;
}

// 当前版本是否7.0以上
function IfAbove7Versions(strVer)
{
	strVer = strVer.replace(/,/g, '.');
	var vArray = strVer.split('.');
	var nVer = Number(vArray[0]);		
	if (nVer >= 7)
	{
		return 1;
	}
	return 0;
}

// 下载开始
var vURL = "";
function DownloadCallBack(stateType, strResult)
{
	var strState = "";
	switch (stateType)
	{
	case 0:
		strState = "正在准备下载。。。";
		break;
	case 1:
		if (strResult > 93)
		{
			strResult = "93";
		}
		strState = "正在下载。。。" + strResult + "%";
		break;
	case 2:
		strResult = "96";
		strState = "正在安装。。。" + strResult + "%";
		break;
	case 3:
		strState = "运行安装程序完毕!";
		window.location.reload();
		break;
	case -1:
		strState = "启动下载失败！"; 
		break;
	case -2:
		strState = "安装程序被终止！";
		break;
	case -3:
		strState = "下载失败!";
		break;
	case -100:
		strState = "下载路径不合法！";
		break;
	default:
		strState = "未知状态！";
		break;
	}
	var strHtml = "";
	if (stateType == 1 || stateType == 2)
	{
		try{
			document.getElementById("UISWF").setInstallProgress(strResult);
		}
		catch(e)
		{
		}
	}
	else if (stateType < 0)
	{
		vURL = strResult;
		if (vURL == "" || vURL == null)
		{
			vURL = "http://tv.qq.com";
		}
		
		try{
			document.getElementById("UISWF").showTips(QQLIVE_ERR_UI);
		}
		catch(e)
		{
		}
		//strHtml = "<div class=\"download_body\"><h1>QQ视频播放器下载</h1><div class=\"content_body\"><p class=\"h\"> </p><h2>QQ视频播放器</h2><p class=\"tips\">可以欣赏在线视频的客户端软件</p><p class=\"refresh\">您可以通过点击<a href=" + vURL + ">此处</a>手动下载安装</p></div></div>";
	}
	//_qqlivecontent.innerHTML =  strHtml ;
}
//自动下载
function Download()
{	
	var objQQLiveInstaller = null;
	objQQLiveInstaller = document.getElementById('QLiveInstaller');
	try
	{
		objQQLiveInstaller.DownloadSetup(QQLIVE_DOWNLOAD_URL, QQLIVE_DOWNLOAD_TPTURL, 1, " /S", DownloadCallBack);
		
		document.getElementById("UISWF").showTips(QQLIVE_PRECENT_UI);
	}
	catch(e)
	{
		//_qqlivecontent.innerHTML = "<div class=\"download_body\"><h1>QQ视频播放器下载</h1><div class=\"content_body\"><p class=\"h\"> </p><h2>QQ视频播放器</h2><p class=\"tips\">可以欣赏在线视频的客户端软件</p>	<p class=\"refresh\">请先安装QQ视频安装控件，在弹出的对话框中，请确认<br/>控件具有Tencent签名，选择安装。安装之后请点击<a href=\"javascript:window.location.reload();\">刷新</a></p></div></div>";
		
		document.getElementById("UISWF").showTips(QQLIVE_FRESH_UI);
	}
}
//手动下载
function Download2()
{
	window.location.href = QQLIVE_SETUP;
}
// 下载结束

function Fresh()
{
	window.location.reload();
}

function JumpUrl()
{
//	window.location.href = vURL;
	window.location.href = MEDIAPLAYER_DOWNLOAD_URL;
}

function QQLiveObject(vWidth, vHeight)
{
	this.width = vWidth;
	this.height = vHeight;
	this.ocxParams = new qqliveOcxParams();
}

QQLiveObject.prototype.addParam = function(strName, strValue)
{
	this.ocxParams[this.ocxParams.count] = new qqliveOcxParam(strName, strValue);
	this.ocxParams.count++;
}

QQLiveObject.prototype.write = function(vElementId)
{
	// 安装控件
	var strHtml = "";
	strHtml += "<OBJECT style=\"display:none;\" classid=\"clsid:1DABF8D5-8430-4985-9B7F-A30E53D709B3\" codebase=\"" + QQLIVE_INSTALLER_CAB + "\" ID=QLiveInstaller></OBJECT>";
	strHtml += "<table align='center' cellpading=0 cellspacing=0 width=" + this.width + " height=" + this.height + " bgcolor=#000000><tr><td><div id=_qqlivecontent></div></td></tr></table>";
	
	document.getElementById(vElementId).innerHTML = strHtml;
	vElementId = "_qqlivecontent";
	
	{
		// 判断版本
		var objQQLiveInstaller = null;
		objQQLiveInstaller = document.getElementById('QLiveInstaller');
		var nVer = 0;
		try
		{
			nVer = objQQLiveInstaller.GetVersion();
		}
		catch(e)
		{
			nVer = 0;
		}
		
		var strVer;
		var nMain = parseInt(nVer / 10000 / 100);
		var nSub = parseInt(nVer / 10000) - nMain * 100;
		var nReleaseNO = parseInt(nVer) - (nMain * 100 * 10000 + nSub * 10000);
		strVer = nMain + "." + nSub + "." + nReleaseNO;
		
		// alert(strVer);
		
		if (compareVersions(strVer, VER_QQLIVE) < 0)
		{
			// 版本过旧或没有安装QQLive
			//strHtml = "正在检测您的QQ视频系统环境。。。";
			//document.getElementById(vElementId).innerHTML = strHtml;		

			strHtml = "";
	        strHtml += " <OBJECT ID=\"UISWF\" CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"  width=\"" +this.width+ "\" height=\""+ this.height +"\"  >\n";
	        strHtml += "      <param name=\"movie\" value=\""+ QQLIVE_SWF_PATH + QQLIVE_SWF_SKIN+ "uit.swf\" />\n";
	        strHtml += "      <param name=\"allowscriptaccess\" value=\"always\"/>\n"
	        strHtml += "  </OBJECT>\n";
			document.getElementById(vElementId).innerHTML = strHtml;			
			
		    //刷新问题由用户点击Download后去做。
		}
		else
		{
			strHtml = "<Object id=QQLiveOcx width=" + this.width;
			strHtml += " height=" + this.height;
			if(IfAbove7Versions(strVer) == 1)
			{
			    strHtml += " classid=CLSID:11F2A418-94B2-4E16-9B0C-B00C0435F903";
			}
			else
			{
			    strHtml += " classid=CLSID:9242BB35-0DB0-43ac-8DFC-8EA07E63B92A";
			}
			strHtml += " standby=\"Loading Tencent QQ视频 componets...\">";
			
			// 添加属性
			var nParamCount = this.ocxParams.count;
			for (i = 0; i < nParamCount; i++)
			{
				var vParam = this.ocxParams[i];
				if (vParam != null)
				{
					strHtml += " <PARAM NAME=\"" + vParam.Name + "\" VALUE=\"" + vParam.Value + "\">";
				}
			}
			strHtml += " </Object>";
		}
	}
	document.getElementById(vElementId).innerHTML = strHtml;	
}

QQLiveObject.prototype.getCtrl = function()
{
	return document.getElementById("QQLiveOcx");
}
function OnOk()
{
	try{
		document.getElementById("UISWF").showTips(QQLIVE_DOWNLOAD_UI);
		//document.getElementById("UISWF").setVersion(QQLIVE_DOWNLOAD_VERSION);
	}
    catch(e)
    {
    	//alert("OnOk:" + e);
    }	
}
function createQQLive(vElementId)
{
	var vQQLive = new qqlive();
	vQQLive.Create(vElementId);
	return vQQLive;
}

