﻿// JavaScript Document

var TCNV_XML_Unknown 			= -1;
var TCNV_XML_Local				= 0;	//本地文件存储
var TCNV_XML_FixedInfo			= 1;	//远程DVR主机硬件配置信息
var TCNV_XML_User				= 2;	//远程DVR主机用户信息
var TCNV_XML_Setup				= 3;	//远程DVR主机系统设置信息
var TCNV_XML_Performance		= 4;	//远程DVR主机运行性能
var TCNV_XML_Status				= 5;	//远程DVR主机运行状态
var TCNV_XML_Protocol			= 6;	//远程DVR主机安装外设协议
var TCNV_XML_Ini				= 7;	//远程DVR主机扩展设置信息
var TCNV_XML_RemotePB			= 8;	//远程DVR主机远程回放文件信息
var TCNV_XML_DBQuery			= 9;	//数据中心数据库查询返回表单
var TCNV_XML_MatrixStatus		= 10;	//数字矩阵切换状态

var g_Priority = new Array(11);
var	g_MatrixAddress = "127.0.0.1";
var	g_MatrixPort = 8002;
var g_DeviceType = 0;
var g_CenterHttpPort = 0;

function ConvertDomainToIP(domain)
{
	return VP.ConvertDomainToIP(domain);
}

function IsSameIP(domain1, domain2)
{
	var IP1 = ConvertDomainToIP(domain1);
	var IP2 = ConvertDomainToIP(domain2);
	return (IP1==IP2)
}

function SetRetValue(value)
{
	thisMovie("AppLoader").DoRetValue(value);
}

function SetMatrix(strAddress, nPort)
{
	g_MatrixAddress = strAddress;
	g_MatrixPort = nPort;
}

function GetDataCenterInfo()
{
	return {ip:g_DataCenterAddress,port:g_DataCenterPort,user:g_DataCenterUsername,pwd:g_DataCenterPassword};
}

function SetDataCenterInfo(value)
{
	SetDataCenter(value.ip, value.port, value.user, value.pwd);
	if(!VP.RegisterConnectionType(g_DataCenterAddress, g_DataCenterPort, TCVDEV_PC_DVR))
	{
		return false;
	}
	return true;
}

function SetDataCenter(strAddress, nPort, strUserName, strPassword)
{
	g_DataCenterAddress = strAddress;
	g_DataCenterPort = nPort;
	g_DataCenterUsername = strUserName;
	g_DataCenterPassword = strPassword;
}

function SetServer(strAddress, nPort, strUserName, strPassword,nDevType)
{
	g_Address = strAddress;
	g_Port = nPort;
	g_Username = strUserName;
	g_Password = strPassword;
	g_DeviceType = nDevType;
	VP.RegisterConnectionType(strAddress,nPort,nDevType);
}

function GetServer()
{
	return {ip:g_Address,port:g_Port,user:g_Username,pwd:g_Password};
}

function GetRemoteFileList(bIsFolder)
{
	if(bIsFolder==0||bIsFolder==1)
	{
		return VP.GetRemoteFileList(g_Address, g_Port, bIsFolder);
	}

	return "";
}

function DATESTR(timeArray)
{
	var dataArray = new Array();
	for(var i = 0; i < timeArray.length; i++)
	{
		dataArray.push(VP.DATESTR(parseFloat(timeArray[i]/1000)));
	}
	return dataArray;
}

function refreshWindow()
{
	location.reload(true);	
}

function LoginServer(bIsServer)
{
	var strAddress = "";
	var nPort = 0;
	var user_name = "";
	var password = "";	
	if(bIsServer)
	{
		if(g_Address==null||g_Address==""||g_Port<=0||g_Username==null||g_Username=="")
		{
			return false;
		}
		strAddress = g_Address;
		nPort = g_Port;
		user_name = g_Username;
		password = g_Password;
	}
	else
	{
		if(g_DataCenterAddress==null||g_DataCenterAddress==""||g_DataCenterPort<=0||g_DataCenterUsername==null||g_DataCenterUsername=="")
		{
			return false;
		}
		strAddress = g_DataCenterAddress;
		nPort 	= g_DataCenterPort;
		user_name = g_DataCenterUsername;
		password = g_DataCenterPassword;
	}
	if(!VP.Login(strAddress,nPort,user_name,password))
	{
		return false;
	}
	if(bIsServer)
	{
		if(!VP.GetServerInfo(strAddress, nPort, user_name, password, 1))
		{
			return false;
		}
	}
	return true;
}

function SetEventListener(event, func)
{
	VP.attachEvent(event,func);
	g_isDispatched = true;
}

function OnXMLChanged(nType, bIsModifyied)
{
	thisMovie("AppLoader").OnXMLChanged(nType, bIsModifyied);
}

function GetPriority(regetFlag)
{
	for(var i=0;i<=TCNV_XML_MatrixStatus;i++)
	{
		g_Priority[i] = 0;
	}
	if(!VP.GetServerInfo(g_Address, g_Port, g_Username, g_Password, regetFlag))
	{
		return null;
	}
	g_Priority[TCNV_XML_FixedInfo] = VP.GetXMLInfo(TCNV_XML_FixedInfo, g_Address, g_Port, g_Username, g_Password, regetFlag);
	g_Priority[TCNV_XML_Setup] = VP.GetXMLInfo(TCNV_XML_Setup, g_Address, g_Port, g_Username, g_Password, regetFlag) && VP.GetXMLInfo(TCNV_XML_Protocol, g_Address, g_Port, g_Username, g_Password, regetFlag);
	return g_Priority;
}

function SaveCurrentXML(nType, strPath, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	VP.SaveXMLInfo(nType, strAddress, nPort, strPath);
}

function QueryDB(strSql, bRunAnyway)
{
	return VP.QueryDB(g_DataCenterAddress,
										g_DataCenterPort,
										g_DataCenterUsername,
										g_DataCenterPassword,
										strSql,bRunAnyway);
}

function GetServerInfo(bRunAnyway)
{
	return VP.GetServerInfo(g_Address, g_Port, g_Username, g_Password, bRunAnyway);
}

function GetXMLInfo(nType, bRunAnyway)
{
	return VP.GetXMLInfo(nType, g_Address, g_Port, g_Username, g_Password, bRunAnyway);
}

function SetXMLInfo(nType)
{
	return VP.SetXMLInfo(nType, g_Address, g_Port, g_Username, g_Password);
}

function GetXMLChildren(nType, Property, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	var tagNum = 0;
	if(!VP.GetXMLChildren(nType, strAddress, nPort, Property))
	{
		return false;
	}
	return true;
}

function GetXMLChildrenTag()
{
	var retArray = null;
	tagNum = VP.GetXMLChildrenTagNum();
	if(tagNum>0)
	{
		retArray = new Array;
		for(var i=0;i<tagNum;i++)
		{
			retArray.push(VP.GetXMLChildrenTag(i));
		}
	}
	SetRetValue(retArray);
	retArray = null;
}

function GetXMLChildrenContent()
{
	var retArray = null;
	contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		retArray = new Array;
		for(var i=0;i<contentNum;i++)
		{
			currentContent = VP.GetXMLChildrenContent(i);
			retArray.push(currentContent);
		}
	}
	SetRetValue(retArray);
	retArray = null;
}

function GetXMLContent(nType, strPath, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	return  VP.GetXMLContent(nType, strAddress, nPort, strPath);
}

function SetXMLContent(nType, strPath, strValue, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	return  VP.SetXMLContent(nType, strAddress, nPort, strPath, strValue);
}

function GetXMLContentArray(nType, strLocation, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	if(!VP.GetXMLChildren(nType, strAddress, nPort, strLocation))
	{
		return null;
	}
	
	var retArray = null;
	var ArrayObject = null;
	var strPath = null;
	var strContent = null;
	var strValue = null;
	contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		retArray = new Array;
		for(var i=0;i<contentNum;i++)
		{
			strContent = VP.GetXMLChildrenContent(i);
			strPath = strLocation + "." + strContent;
			strValue = VP.GetXMLContent(nType, strAddress, nPort, strPath);
			retArray.push({key:strContent, value:strValue});
		}
	}
	SetRetValue(retArray);
	retArray = null;
}

function SetXMLContentArray(nType, strLocation, contentAray, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	if(!GetXMLChildren(nType, strLocation, bIsServer))
	{
		return false;
	}
	
	var retArray = null;
	var ArrayObject = null;
	var strPath = null;
	var strContent = null;
	var bRet = true;
	contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum<0)
	{
		return false;
	}
	for(var i=0;i<contentNum;i++)
	{
		strPath = strLocation + "." + contentAray[i].key;
		bRet = bRet && VP.SetXMLContent(nType, strAddress, nPort, strPath, contentAray[i].value);
	}
	return bRet;
}

//获取子节点数组。。并且该子节点下的 content 为 object 的 属性
function GetXMLTagInfoArray(nType, strLocation, bIsServer)
{
	var strAddress;
	var nPort;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	if(!GetXMLChildren(nType, strLocation, bIsServer))
	{
		return null;
	}
	
	var tagNum = VP.GetXMLChildrenTagNum();
	if(tagNum<0)
	{
		return null;
	}
	var i=0;
	var strPath = "";
	var contentNum = 0;
	var retArray = new Array(tagNum);
	var strContent = "";
	var strValue = "";
	var tagArray = new Array(tagNum);
	for(i=0;i<tagNum;i++)
	{
		tagArray[i] = VP.GetXMLChildrenTag(i);
	}
	for(i=0;i<tagNum;i++)
	{
		strPath = strLocation+"."+tagArray[i];
		retArray[i] = GetXMLContentArray(nType, strPath, bIsServer);
		if(!GetXMLChildren(nType, strPath, bIsServer))
		{
			continue;
		}
		var data = new Object();
		contentNum = VP.GetXMLChildrenContentNum();
		data.tag = tagArray[i];
		for(var j=0;j<contentNum;j++)
		{
			strContent = VP.GetXMLChildrenContent(j);
			strValue = VP.GetXMLContent(nType, strAddress, nPort, strPath+"."+strContent);
			data[strContent] = strValue;
		}
		retArray[i] = data;
		tagArray[i] = null;
		data = null;
	}
	
	SetRetValue(retArray);
	retArray.length = 0;
	retArray = null;
	tagArray.length = 0;
	tagArray = null;
}

//递归获取xml 的节点信息。。
function GetXmlRecursion(nType, strLocation, bIsServer)
{
	var retObject = null;
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	retObject = GetXmlDataInfo(nType, strAddress, nPort, strLocation);
	SetRetValue(retObject);
	retObject = null;
}

function GetXmlDataInfo(nType, strAddress, nPort, strLocation)
{
	if(strLocation==null||strLocation.length<1)
	{
		return null;
	}
	if(!VP.GetXMLChildren(nType, strAddress, nPort, strLocation))
	{
		return null;
	}
	var tempArray = strLocation.split(".");
	if(tempArray.length<=0)
	{
		return null;
	}
	var i = 0;
	var strPath = null;
	var strContent = null;
	var strValue = null;
	var retData = new Object();
	retData.label = tempArray[tempArray.length-1];
	
	contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		for(i=0;i<contentNum;i++)
		{
			strContent = VP.GetXMLChildrenContent(i);
			strPath = strLocation + "." + strContent;
			strValue = VP.GetXMLContent(nType, strAddress, nPort, strPath);
			retData[strContent] = strValue;
		}
	}
	
	var childArray = null;
	var tagNum = VP.GetXMLChildrenTagNum();
	if(tagNum>0)
	{
		var tagArray = new Array(tagNum);
		for(i=0;i<tagNum;i++)
		{
			tagArray[i] = VP.GetXMLChildrenTag(i);
		}
		childArray = new Array(tagNum);
		for(i=0;i<tagNum;i++)
		{
			strPath = strLocation+"."+tagArray[i];
			childArray[i] = GetXmlDataInfo(nType, strAddress, nPort, strPath);
			tagArray[i] = null;
		}
		tagArray = null;
	}
	retData.children = childArray;
	childArray = null;
	return retData;
}

function AddXMLTagInfo(type,strLocation,contentArray,bIsServer)
{
	var strAddress = "";
	var nPort = 0;
	if(bIsServer)
	{
		strAddress = g_Address;
		nPort = g_Port;
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
//	alert(type+"|"+strAddress+"|"+nPort+"|"+strLocation);
	if(!VP.AddXMLTag(type, strAddress, nPort,"Root",strLocation))
	{
		return false;
	}

	var bRet = true;
	if(contentArray!=null)
	{
		var nSize = contentArray.length;
		for(var i=0;i<nSize;i++)
		{
			bRet = bRet&&VP.AddXMLContent(type, strAddress, nPort,strLocation,contentArray[i].key,contentArray[i].value);
		}
	}
	return bRet;
}

function SetXmlTag(nType,strLocation,oldTag,newTag, bIsServer)
{
	var strAddress = "";
	var nPort = 0;
	if(bIsServer)
	{
		strAddress = g_Address;
		nPort = g_Port;
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	if(!VP.SetXMLTag(nType,strAddress,nPort,strLocation,oldTag,newTag))
	{
		return false;
	}
	return true;
}

function DeleteXMLTagArray(type,strLocation,tagArray,bIsServer)
{
	var strAddress = "";
	var nPort = 0;
	if(bIsServer)
	{
		strAddress = g_Address;
		nPort = g_Port;
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	
	if(tagArray==null)
	{
		return false;
	}
	
	for(var i=0;i<tagArray.length;i++)
	{
		if(!VP.DelXMLTag(type,strAddress,nPort,strLocation,tagArray[i]))
		{
			return false;
		}
	}
	return true;
}

function CopyXMLChildren(nType, Path, srcTag, destTagArray, contentArray, bIsServer)
{
	var strAddress;
	var nPort;
	var content = "";
	var destTag = "";
	if(bIsServer)
	{
		if(nType==TCNV_XML_MatrixStatus)
		{
			strAddress = g_MatrixAddress;
			nPort = g_MatrixPort;
		}
		else
		{
			strAddress = g_Address;
			nPort = g_Port;
		}
	}
	else
	{
		strAddress = g_DataCenterAddress;
		nPort = g_DataCenterPort;
	}
	if(destTagArray!=null)
	{
		for(var i=0;i<destTagArray.length;i++)
		{
			if(i>0)
			{
				destTag+="||";
			}
			destTag+=destTagArray[i];
		}
	}
	if(contentArray!=null)
	{
		for(i=0;i<contentArray.length;i++)
		{
			if(i>0)
			{
				content+="||";
			}
			content+=contentArray[i];
		}
	}
	
	return VP.CopyXmlChildren(nType, strAddress, nPort, Path, srcTag, destTag, content)	
}

//时间格式转换
function STDTOLOCAL(strStd,strDivChar)
{
	var strLocal = "";
	strLocal = VP.STDTOLOCAL(strStd, strDivChar);
	return strLocal;
}

function STDTOLOCAL_Array(stdArray, strDivChar)
{
	var localArray = new Array(stdArray.length);
	for(var i=0;i<stdArray.length;i++)
	{
		localArray[i] = VP.STDTOLOCAL(stdArray[i], strDivChar);
	}
	return localArray;
}

function LOCALTOSTD(strLocal,strDivChar)
{
	var strStd = "";
	strStd = VP.LOCALTOSTD(strLocal, strDivChar);
	return strStd;
}

//获取报警设备信息
function GetAlarmDeviceProtocol()
{
	var dataArray = new Array();
	
	if(!VP.GetXMLChildren(6, g_Address, g_Port, "WDevice"))
	{
		return null;
	}
	
	var count = VP.GetXMLChildrenTagNum();
	var i, property, protocol, id, enabled;
	for(i = 0; i < count; i++)
	{
		property = VP.GetXMLChildrenTag(i);
		id = VP.GetXMLContent(6, g_Address, g_Port, "WDevice." + property + ".ID");
		protocol = VP.GetXMLContent(6, g_Address, g_Port, "WDevice." + property + ".Name");
		if(VP.GetXMLContent(6, g_Address, g_Port, "WDevice." + property + ".UseCOM") == 1)
		{
			enabled = true;
		}
		else
		{
			enabled = false;
		}
		dataArray.push({protocolName: protocol, enabled: enabled, id: id});
	}
	
	return dataArray;
}

//获取云台协议
function PTZGetProtocol()
{
	var dataArray = new Array();
	
	if(!VP.GetXMLChildren(6, g_Address, g_Port, "YTDevice"))
	{
		return null;
	}
	
	var count = VP.GetXMLChildrenTagNum();
	var i, property, protocol;
	for(i = 0; i < count; i++)
	{
		property = VP.GetXMLChildrenTag(i);
		//id = VP.GetXMLContent(6, g_Address, g_Port, "YTDevice." + property + ".ID");
		protocol = VP.GetXMLContent(6, g_Address, g_Port, "YTDevice." + property + ".Name");
		dataArray.push({protocolName: protocol});
	}
	
	return dataArray;
}

//获取服务器端软件日志的日期
function GetServerLogsDateArray()
{
	var dateLength = VP.GetServerLogList(g_Address, g_Port, g_Username, g_Password);
	var dataArray = new Array();
	for(var i = dateLength - 1; i >= 0; i--)
	{
		dataArray.push({date: VP.STDTOLOCAL(VP.GetServerLogListInfo(i), "")});
	}
	SetRetValue(dataArray);
	dataArray = null;
}

//获取该天日志的信息
function GetServerLogsArray(strDate)
{
	var temp = "";
	var retArray = new Array();
	var nCount = VP.GetServerLogDetail(g_Address, g_Port, g_Username, g_Password, strDate);
	for(var i=0;i<nCount;i++)
	{
		temp = VP.GetServerLogDetailInfo(i);
		retArray.push(temp);
	}
	SetRetValue(retArray);
	retArray = null;
}

//获取系统日志的描述
function GetSystemLogDescription(recordNum)
{
	var description;
	description = VP.GetServerEventDetailInfoEx(recordNum);
	return description;
}

//更新服务器系统日志
function UpdateSystemLogs(type)
{
	var temp = "";
	var logsArray = new Array();
	var maxlength = VP.GetServerEvent(g_Address, g_Port, g_Username, g_Password, type+1);
	
	for(var i=maxlength-1;i>0;i--)
	{
		temp = VP.GetServerEventInfo(i);
		logsArray.push(temp);
	}
	SetRetValue(logsArray);
	logsArray = null;
}

function GetServerChannelList(ChannelType)
{
	var channelNum = VP.GetServerChannelNum(ChannelType, g_Address, g_Port);
	if(channelNum<=0)
	{
		return null;
	}
	var channelList = new Array(channelNum);
	var chName = null;
	for(i=0; i <channelNum; i++)
	{
		chName = VP.GetServerChannelName(ChannelType, g_Address, g_Port, i);
		channelList[i] = {channelName:chName};
	}
	SetRetValue(channelList);
	channelList = null;
}

function RemoteCtrl(ip,port,user,pwd,strControlParam)
{
	ip = (ip==null)?g_Address:ip;
	port = (port==0)?g_Port:port;
	user = (user==null)?g_Username:user;
	pwd = (pwd==null)?g_Password:pwd;
	return VP.RemoteCtrl(ip, port, user, pwd, strControlParam);
}

function CtrlPTZ(CtrlCode,CodeEx)
{
	return VP.CtrlPTZ(VP.CurrentChannel,CtrlCode,CodeEx);
}

function RemoteCtrlDB(command)
{
	return VP.RemoteCtrlDB(g_DataCenterAddress, g_DataCenterPort, g_DataCenterUsername, g_DataCenterPassword, command);
}

function StartGetMatrixStatusRoutine()
{
	return VP.StartGetMatrixStatusRoutine();
}

function GetMatrixStatusInfo()
{
	return VP.GetMatrixStatusInfo(g_MatrixAddress, g_MatrixPort, g_DataCenterUsername, g_DataCenterPassword);
}

function StopGetMatrixStatusRoutine()
{
	return VP.StopGetMatrixStatusRoutine();
}

function MatrixCtrl(command)
{
	var commArray = command.split("||");
	var i;
	for(i = 0; i < commArray.length; i++)
	{
		if(!RemoteCtrl(g_MatrixAddress, g_MatrixPort, g_DataCenterUsername, g_DataCenterPassword, commArray[i]))
		{
			return false;
		}
	}
	return true;
}

function AddMatrixServer(strServerAddress, nServerMessagePort)
{
	return VP.AddMatrixServer(strServerAddress, nServerMessagePort, g_DataCenterUsername, g_DataCenterPassword);
}

function ResetMatrixServer()
{
	VP.ResetMatrixServer();
}

function StartMatrixStatusRoutine()
{
	return VP.StartGetMatrixStatusRoutine();
}

function StopMatrixStatusRoutine()
{
	return VP.StopGetMatrixStatusRoutine();
}

function downloadOCX(fileName)
{
	window.open(fileName,"_self");
}

function closeWindow()
{
	window.opener = null;
	window.open("","_self");
	window.close(); 
}

function removeIETempFiles()
{
	return VP.RemoveIETempFiles();
}

function thisMovie(movieName)
{
	if (navigator.appName.indexOf("Microsoft") != -1) 
	{
     	return window[movieName];
    } 
	else 
	{
     	return document[movieName];
    }
}

function Request(strName)
{
	var intPos = strHref.indexOf("?");
	var strRight = strHref.substr(intPos + 1);
	g_strParameter = strRight;
	var arrTmp = strRight.split("&");
	
	for(var i = 0; i < arrTmp.length; i++)
	{
		var arrTemp = arrTmp[i].split("=");

		if(arrTemp[0].toUpperCase() == strName.toUpperCase())
		return arrTemp[1];
	}	
	return "";
}

function GetUrlInfo()
{
	return g_DataCenterAddress+":"+GetDataCenterWebPort();
}

function startGetServerStatusRoutine()
{
	return VP.StartGetServerStatusRoutine(g_Address, g_Port, g_Username, g_Password);
}

function stopGetServerStatusRoutine()
{
	return VP.StopGetServerStatusRoutine();
}

function GetServerStatusInfo()
{
	return VP.GetServerStatusInfo(g_Address, g_Port, g_Username, g_Password);
}

function GetDataCenterWebPort()
{
	if(g_CenterHttpPort==0)
	{
		g_CenterHttpPort = VP.GetWebPort(g_DataCenterAddress,g_DataCenterPort,g_DataCenterUsername,g_DataCenterPassword);
	}
	return g_CenterHttpPort; 
}

