﻿// 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_DBQuery			= 7;	//数据中心数据库查询返回表单
var TCNV_XML_MatrixStatus		= 8;	//数字矩阵切换状态

var g_Priority = new Array(11);

function RegisterFlexEvent()
{
	try
	{
		VP.attachEvent("CustomMessage", OnCustomMessage);
	}
	catch(error)
	{
		return false;
	}
	return true;
}

function ClearFlexEvent()
{
	VP.detachEvent("CustomMessage", OnCustomMessage);
}

var g_strInvoke = "";
function OnCustomMessage(strUrl, Type, SubType, strParam, nParam)
{
/*	g_strInvoke = "<invoke name=\"OnCustomMessage\" returntype=\"xml\"><arguments>";
	g_strInvoke += ("<string>"+strUrl+"</string>");
	g_strInvoke += ("<number>"+Type+"</number>");
	g_strInvoke += ("<number>"+SubType+"</number>");
	g_strInvoke += ("<string>"+strParam+"</string>");
	g_strInvoke += ("<number>"+nParam+"</number>");
	g_strInvoke += ("</arguments></invoke>");
	AppLoader.CallFunction(g_strInvoke);
*/	thisMovie("AppLoader").OnCustomMessage(strUrl, Type, SubType, strParam, nParam, null);
}

function IsCmdLinked(address, port)
{
	return VP.IsCmdLinked(address, port);
}

function IsSameIP(domain1, domain2)
{
	return VP.IsSameIP(domain1, domain2);
}

function RefreshServerConnection(strAddress, nPort)
{
	VP.RefreshConnection(strAddress, nPort);
}

function RefreshServerReport(strAddress, nPort, nReportType)
{
	return VP.RefreshReport(strAddress, nPort, nReportType);
}

function SetRetValue(value)
{
	thisMovie("AppLoader").DoRetValue(value);
}

function SetCMSInfo(strAddress, nPort, strUserName, strPassword)
{
	if(!VP.SetCMSInfo(strAddress, nPort, strUserName, strPassword))
	{
		return false;
	}
	return true;
}

function BroadcastMessage(nType,strParam,nParam)
{
	return VP.BroadcastCMSMessage(nType+"#"+strParam,nParam);
}

function StartServerLinkCheckRoutine()
{
	return VP.StartServerLinkCheckRoutine();
}

function StopServerLinkCheckRoutine()
{
	return VP.StopServerLinkCheckRoutine();
}

//------------------------------

function RefreshMatrixState(infoArray)
{
	if(infoArray==null)
	{
		return false;
	}
	for(var i=0;i<infoArray.length;i++)
	{
		var strRet = VP.GetXMLContent(TCNV_XML_MatrixStatus,infoArray[i].ip,infoArray[i].port,"Changed");
		if(strRet=="")
		{
			return true;
		}
		else if(strRet=="1")
		{
			VP.SetXMLContent(TCNV_XML_MatrixStatus,infoArray[i].ip,infoArray[i].port,"Changed", "0");
			return true;
		}
	}
	return false;
}

//-------------------------------

function GetRemoteFileList(strAddress,nPort,bIsFolder)
{
	if(bIsFolder==0||bIsFolder==1)
	{
		return VP.GetRemoteFileList(strAddress, nPort, 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(strAddress,nPort,strUser,strPassword,nType)
{
	if(nType!=0)
	{
		return VP.SimpleLogin(strAddress,nPort,strUser,strPassword);
	}
	if(!VP.Login(strAddress,nPort,strUser,strPassword))
	{
		return false;
	}
	return true;
}

function LoginCenter()
{
	return VP.LoginCMS();
}

function LogoutCenter()
{
	VP.LogoutCMS();
	return true;
}

function GetPriority(strAddress,nPort,strUser,strPassword,regetFlag)
{
	for(var i=0;i<=TCNV_XML_MatrixStatus;i++)
	{
		g_Priority[i] = 0;
	}
	if(!VP.GetServerInfo(strAddress, nPort, strUser, strPassword, regetFlag))
	{
		return null;
	}
	g_Priority[TCNV_XML_FixedInfo] = VP.GetXMLInfo(TCNV_XML_FixedInfo, strAddress, nPort, strUser, strPassword, regetFlag);
	g_Priority[TCNV_XML_Setup] = VP.GetXMLInfo(TCNV_XML_Setup, strAddress, nPort, strUser, strPassword, regetFlag) && VP.GetXMLInfo(TCNV_XML_Protocol, strAddress, nPort, strUser, strPassword, regetFlag);
	
	return g_Priority;
}

function SaveCurrentXML(nType,strAddress,nPort,strPath)
{

}

function GetServerInfo(strAddress, nPort, strUser, strPassword, bRunAnyway)
{
	if( strAddress == null || strAddress.length <1 )
	{
		return false;
	}
	return VP.GetServerInfo(strAddress, nPort, strUser, strPassword, bRunAnyway);
}

function GetXMLInfo(nType,strAddress, nPort, strUser, strPassword, bRunAnyway)
{
	if( strAddress == null || strAddress.length <1 )
	{
		return false;
	}
	
	return VP.GetXMLInfo(nType, strAddress, nPort, strUser, strPassword, bRunAnyway);
}

function SetXMLInfo(nType,strAddress, nPort, strUser, strPassword)
{
	return VP.SetXMLInfo(nType, strAddress, nPort, strUser, strPassword);
}

function DiscardXMLInfo(nType,strAddress, nPort)
{
	return VP.DiscardXMLInfo(nType, strAddress, nPort);
}

function AddXMLContent(nType, strAddress, nPort, strLoaction, strContent, value)
{
	return VP.AddXMLContent(nType, strAddress, nPort, strLoaction, strContent, value);
}

function GetXMLChildren(nType,strAddress, nPort, Property)
{
	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,strAddress, nPort, strPath)
{
	return  VP.GetXMLContent(nType, strAddress, nPort, strPath);
}

function SetXMLContent(nType,strAddress, nPort, strPath, strValue)
{
	return  VP.SetXMLContent(nType, strAddress, nPort, strPath, strValue);
}

function GetXMLContentArray(nType, strAddress, nPort, strLocation)
{
	if(!VP.GetXMLChildren(nType, strAddress, nPort, strLocation))
	{
		SetRetValue(null);
		return;
	}

	var retArray = null;
	var ArrayObject = null;
	var strPath = null;
	var strContent = null;
	var strValue = null;
	contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		if(!VP.FindXMLNode(nType, strAddress, nPort, strLocation))
		{
			return;
		}
		retArray = new Array();
		for(var i=0;i<contentNum;i++)
		{
			strContent = VP.GetXMLChildrenContent(i);
			strValue = VP.GetXMLContentFromNode(nType, strAddress, nPort, strContent);
			retArray.push({key:strContent, value:strValue});
		}
	}
	SetRetValue(retArray);
	retArray = null;
}

function SetXMLContentArray(nType, strAddress, nPort, strLocation, contentAray)
{
	if(!GetXMLChildren(nType, strAddress, nPort, strLocation))
	{
		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;
	}
	var nSize = contentAray.length;
	if(nSize>contentNum)
	{
		nSize = contentNum; 
	}
	for(var i=0;i<nSize;i++)
	{
		strPath = strLocation + "." + contentAray[i].key;
		bRet = bRet && VP.SetXMLContent(nType, strAddress, nPort, strPath, contentAray[i].value);
	}
	return bRet;
}

//获取子节点数组。。并且该子节点下的 content 为 object 的 属性
function GetXMLTagInfoArray(nType, strAddress, nPort, strLocation)
{
	if(!GetXMLChildren(nType, strAddress, nPort, strLocation))
	{
		SetRetValue(null);
		return;
	}
	var tagNum = VP.GetXMLChildrenTagNum();
	if(tagNum<0)
	{
		SetRetValue(null);
		return;
	}
	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];
		if(!VP.GetXMLChildren(nType, strAddress, nPort, strPath))
		{
			continue;
		}
		var data = new Object();
		contentNum = VP.GetXMLChildrenContentNum();
		data.tag = tagArray[i];
		if(!VP.FindXMLNode(nType, strAddress, nPort,strPath))
		{
			return;
		}
		for(var j=0;j<contentNum;j++)
		{
			strContent = VP.GetXMLChildrenContent(j);
			strValue = VP.GetXMLContentFromNode(nType, strAddress, nPort,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, strAddress, nPort, strLocation)
{
	var retObject = null;
	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];

	var contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		if(!VP.FindXMLNode(nType, strAddress, nPort,strLocation))
		{
			return null;
		}
		for(i=0;i<contentNum;i++)
		{
			strContent = VP.GetXMLChildrenContent(i);
			strValue = VP.GetXMLContentFromNode(nType, strAddress, nPort, strContent);
			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 GetXMLObject(nType, strAddress, nPort, strLocation)
{
	var retObject = null;
	retObject = GetXMLObjectInfo(nType, strAddress, nPort, strLocation);
	SetRetValue(retObject);
	retObject = null;
}

function GetXMLObjectInfo(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();

	var contentNum = VP.GetXMLChildrenContentNum();
	if(contentNum>0)
	{
		if(!VP.FindXMLNode(nType, strAddress, nPort,strLocation))
		{
			return null;
		}
		for(i=0;i<contentNum;i++)
		{
			strContent = VP.GetXMLChildrenContent(i);
			strValue = VP.GetXMLContentFromNode(nType, strAddress, nPort, strContent);
			retData[strContent] = strValue;
		}
	}

	var tagNum = VP.GetXMLChildrenTagNum();
	var tagArray = null;
	var tagName = null;
	if(tagNum>0)
	{
		tagArray = new Array(tagNum);
		for(i=0;i<tagNum;i++)
		{
			tagArray[i] = VP.GetXMLChildrenTag(i);
		}
		for(i=0;i<tagNum;i++)
		{
			if(tagArray[i]==null||tagArray[i]=="")
			{
				continue;
			}
			tagName = tagArray[i];
			strPath = strLocation + "." + tagName;
			retData[tagName] = GetXMLObjectInfo(nType, strAddress, nPort, strPath);
		}
		tagName = null;
		tagArray = null;
	}
	
	return retData;
}

function AddXMLTagInfo(type, strAddress, nPort, strLocation, contentArray)
{
	var bRet = true;
	if(!VP.AddXMLTag(type, strAddress, nPort,"Root",strLocation))
	{
		return false;
	}
	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,strAddress,nPort,strLocation,oldTag,newTag)
{
	if(!VP.SetXMLTag(nType,strAddress,nPort,strLocation,oldTag,newTag))
	{
		return false;
	}
	return true;
}

function DeleteXMLTagArray(type,strAddress,nPort,strLocation,tagArray)
{
	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, strAddress, nPort, Path, srcTag, destTagArray, contentArray)
{
	var i=0;
	var content = "";
	var destTag = "";
	if(destTagArray!=null)
	{
		for(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 GetServerLogsDateArray(strAddress, nPort, strUser, strPassword)
{
	var dateLength = VP.GetServerLogList(strAddress, nPort, strUser, strPassword);
	var dataArray = new Array();
	for(var i = dateLength - 1; i >= 0; i--)
	{
		dataArray.push({date: VP.STDTOLOCAL(VP.GetServerLogListInfo(strAddress, nPort, i), "")});
	}
	SetRetValue(dataArray);
	dataArray = null;
}

//获取该天日志的信息
function GetServerLogsArray(strAddress, nPort, strUser, strPassword, strDate)
{
	var temp = "";
	var retArray = new Array();
	var nCount = VP.GetServerLogDetail(strAddress, nPort, strUser, strPassword, VP.LOCALTOSTD(strDate,""));
	for(var i=0;i<nCount;i++)
	{
		temp = VP.GetServerLogDetailInfo(strAddress, nPort,i);
		retArray.push(temp);
	}
	SetRetValue(retArray);
	retArray = null;
}

/**************************/
var g_DvrLogsArray = null;
function GetDVRLogsCount(strAddress, nPort, strUser, strPassword, strDate, nType)
{
	g_DvrLogsArray = null;
	g_DvrLogsArray = new Array();
	
	var temp = "";
	var nReturnCount = 0;
	var TempArray = null;
	var nCount = VP.GetServerLogDetail(strAddress, nPort, strUser, strPassword, VP.LOCALTOSTD(strDate,""));
	for(var i=0;i<nCount;i++)
	{
		temp = VP.GetServerLogDetailInfo(strAddress, nPort,i);
		TempArray = temp.split("|");
		if(TempArray==null||TempArray.length<5)
		{
			continue;
		}
		if(nType==0||Number(TempArray[0])==nType)
		{
			g_DvrLogsArray.push({key:	Number(TempArray[0]),
								 time:	TempArray[1] + " " + TempArray[2],
								 description: TempArray[3],
								 operator: 	TempArray[4]});
		}
	}
	if(g_DvrLogsArray!=null)
	{
		g_DvrLogsArray.reverse();
		nReturnCount = g_DvrLogsArray.length;
	}
	return nReturnCount;
}

function GetDVRLogsList(nBegin, nEnd)
{
	var nSize = g_DvrLogsArray?g_DvrLogsArray.length:0;
	var TempArray = new Array();
	if(nBegin<0||nBegin>nEnd)
	{
		SetRetValue(null);
		return;
	}
	nEnd = nEnd<nSize?nEnd:nSize;
	for(var i = nBegin; i < nEnd; i++)
	{
		TempArray.push(g_DvrLogsArray[i]);
	}
	SetRetValue(TempArray);
	TempArray = null;
}

function GetServerLogsCountByDate(strAddress, nPort, strUser, strPassword, strDate)
{
	return VP.GetServerLogDetail(strAddress, nPort, strUser, strPassword, strDate);
}

function GetServerLogs(strAddress, nPort, nBegin, nEnd)
{
	var temp = "";
	var retArray = new Array();
	for(var i=nBegin; i<nEnd; i++)
	{
		temp = VP.GetServerLogDetailInfo(strAddress, nPort,i);
		retArray.push(temp);
	}
	retArray.reverse();
	SetRetValue(retArray);
	retArray = null;
}

/**************************/

//获取系统日志的描述
function GetSystemLogDescription(recordNum)
{
	var description;
	description = VP.GetServerEventDetailInfoEx(recordNum);
	return description;
}

//更新服务器系统日志
function UpdateSystemLogs(strAddress, nPort, strUser, strPassword, type)
{
	var temp = "";
	var logsArray = new Array();
	var maxlength = VP.GetServerEvent(strAddress, nPort, strUser, strPassword, type+1);

	for(var i=maxlength-1;i>0;i--)
	{
		temp = VP.GetServerEventInfo(strAddress, nPort,i);
		logsArray.push(temp);
	}
	SetRetValue(logsArray);
	logsArray = null;
}

//*****系统日志按页取*****/
function GetSystemLogsCount(strAddress, nPort, strUser, strPassword, type)
{
	return VP.GetServerEvent(strAddress, nPort, strUser, strPassword, type);
}

function GetSystemLogs(strAddress, nPort, nBegin, nEnd)
{
	var temp = "";
	var logsArray = new Array();
	for(var i=nEnd; i>nBegin; i--)
	{
		temp = VP.GetServerEventInfo(strAddress, nPort,i);
		logsArray.push(temp);
	}
	SetRetValue(logsArray);
	logsArray = null;
}
//*********/

function GetServerChannelList(ChannelType, strAddress, nPort)
{
	var channelNum = VP.GetServerChannelNum(ChannelType, strAddress, nPort);
	if(channelNum<=0)
	{
		SetRetValue(null);
		return;
	}
	var channelList = new Array(channelNum);
	var chName = null;
	for(i=0; i <channelNum; i++)
	{
		chName = VP.GetServerChannelName(ChannelType, strAddress, nPort, i);
		channelList[i] = {channelName:chName};
	}
	SetRetValue(channelList);
	channelList = null;
}

function RemoteCtrl(strAddress, nPort,strUser,strPassword,strControlParam)
{
	if(strAddress==null)
	{
		return false;
	}
	if(nPort<=0)
	{
		return false;
	}
	if(strUser==null)
	{
		return false;
	}
	return VP.RemoteCtrl(strAddress, nPort, strUser, strPassword, strControlParam);
}

function CtrlPTZ(CtrlCode,CodeEx)
{
	return VP.CtrlPTZ(VP.CurrentChannel,CtrlCode,CodeEx);
}

function MatrixCtrl(strAddress, nPort, strUser, strPassword, command)
{
	var i;
	var commArray = command.split("||");
	for(i = 0; i < commArray.length; i++)
	{
		if(!RemoteCtrl(strAddress, nPort, strUser, strPassword, commArray[i]))
		{
			return false;
		}
	}
	return true;
}

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 RegisterServer(strAddress,nPort,nRegisterChNum,strUser,strPassword,deviceType,serverType,nIndex, strProxyAddress, nProxyPort)
{
	if(!VP.RegisterConnectionType(strAddress, nPort, deviceType, strProxyAddress, nProxyPort))
	{
		return false;
	}
	if(!VP.RegisterServer(strAddress,nPort,nRegisterChNum,strUser,strPassword,deviceType,serverType,strProxyAddress,nProxyPort,nIndex))
	{
		return false;
	}
	return bRet;
}

function UnregisterServer(strAddress, nPort)
{
	return VP.UnregisterServer(strAddress,nPort);
}

function UnregisterAllServer()
{
	VP.StopServerLinkCheckRoutine();
	VP.UnregisterAllServer();
	VP.StartServerLinkCheckRoutine();
}

function HandleServerReport(ServerAddress, ServerMessagePort, ReportType, IsEnable)
{
	return VP.HandleServerReport(ServerAddress, ServerMessagePort, ReportType, IsEnable);
}

function GetServerStatusInfo(strAddress, nPort, strUser, strPassword)
{
	return VP.GetServerStatusInfo(strAddress, nPort, strUser, strPassword);
}

function GetRemoteServerHttpPort(strAddress,nPort,strUser,strPassword)
{
	return VP.GetRemoteServerHttpPort(strAddress,nPort,strUser,strPassword);
}

function GetServerStartedTime(ip, port, username, password)
{
	return VP.GetServerStartedTime(ip, port, username, password);
}

function MinimizeMainWindow()
{
	 VP.MinimizeMainWindow();
}

function CheckServerRight(address,port,username,password,rightType,channel)
{
	if(channel<0)
	{
		return VP.CheckUserRight(address, port, username, password, rightType);	
	}
	else
	{
		return VP.CheckChannelAccess(address, port, username, password, channel, rightType);
	}
	return false;
}

/**
 * @ 获取服务器录象信息
 */
function GetServerPBInfo(strAddress,nPort,strUser, strPassword, startDate,endDate, RecordType)
{
	return VP.GetServerPBInfo(strAddress,nPort,strUser, strPassword, startDate,endDate, RecordType);
}

function GetPBDateList(strAddress,nPort)
{
	return VP.GetPBDateList(strAddress,nPort);
}

function GetPBDetailArray(strAddress, nPort, strDate, nChannel, RecordType)
{
	var _array = new Array();
	var _nSize = VP.GetPBFileNum(strAddress,nPort,strDate,nChannel, RecordType);
	for(var i=0;i<_nSize;i++)
	{
		_array.push(VP.GetPBDetail(i))
	}
	return _array;
}

function FileDialog(nIsOpen, strTitle, strExtName)
{
	return VP.FileDialog(nIsOpen, strTitle, strExtName);
}

function FolderDialog()
{
	return VP.FolderDialog();
}

/**
 * @数据库操作部分 
 */
function QueryDB(strSql, nSyncID)
{
	var RetArray = null;
	if(!VP.QueryDB(strSql, nSyncID, 120000))
	{
		return RetArray;
	}
	if(nSyncID>0)
	{
		RetArray = new Array();
		RetArray.push({SYNC:"SUCCEED"});
		return RetArray;
	}
	return GetQueryData();
}

function GetQueryData()
{
	var i = 0;
	var _array = new Array();
	var colNum = VP.GetDBColumnMum();
	var bAddtion = false;
	if(colNum<=0)
	{
		thisMovie("AppLoader").OnDBQueryValue(_array, bAddtion);
		return;
	}
	var colNamsArray = new Array(colNum);
	for(i=0;i<colNum;i++)
	{
		colNamsArray[i] = VP.GetDBColumnName(i);
	}
	VP.MoveDBFirst();
	var strName = "";
	var _nSize = VP.GetDBRecordCount();
	for(i=0;i<_nSize;i++)
	{
		var _obj = new Object();
		for(var j=0;j<colNum;j++)
		{
			strName = colNamsArray[j];
			_obj[strName] = VP.GetDBCurrentValue(strName);
		}
		_array.push(_obj);
		if(((i+1)%100)==0)
		{
			thisMovie("AppLoader").OnDBQueryValue(_array, bAddtion);
			_array = new Array();
			bAddtion = true;
		}
		VP.MoveDBNext();
	}
	thisMovie("AppLoader").OnDBQueryValue(_array, bAddtion);
}

function QueryRunOnce()
{
	VP.QueryRunOnce();
}

function RemoteCtrlDB(command, nSyncID)
{
	return VP.RemoteCtrlDB(command, nSyncID, 120000);
}


//上传文件相关
function SetBinaryData(SQL, FileName)
{
	return VP.SetBinaryData(SQL, FileName);
}

function GetBinaryData(SQL)
{
	return VP.GetBinaryData(SQL);
}

function CommitHttpFile(FileName, FileType, FileLabel)
{
	return VP.CommitHttpFile(FileName, FileType, FileLabel);
}

var g_file = null;
function Browser()
{
	g_file = document.createElement("input");
	g_file.setAttribute("type","file");
	//alert(g_file.filters);
	
	document.appendChild(g_file);
	g_file.attachEvent('onchange',OnSelectFileName);
	g_file.click();
}

function OnSelectFileName()
{
	if(!g_file)
	{
		alert("null");
		return ;
	}
	var strFile = g_file.value;
	thisMovie("AppLoader").OnSelectFileName(strFile);
	g_file = null;
}

//配置文件相关
function GetConfigFile(ServerAddress, ServerMessagePort, nType, FileName)
{
	return VP.GetConfigFile(ServerAddress, ServerMessagePort, nType, FileName);
}

function SetConfigFile(ServerAddress, ServerMessagePort, nType, FileName, Flags)
{
	return VP.SetConfigFile(ServerAddress, ServerMessagePort, nType, FileName, Flags);
}

function RestoreDefaultConfig(ServerAddress, ServerMessagePort)
{
	return VP.RestoreDefaultConfig(ServerAddress, ServerMessagePort);
}
//磁盘格式化相关

function GetDiskInfo(ServerAddress, ServerMessagePort)
{
	var nCount = VP.GetDiskNumber(ServerAddress, ServerMessagePort);
	
	var InfoArray = new Array();
	var i = 0;
	
	for(i=0; i<nCount; i++)
	{
		var strInfo = VP.GetDiskInfo(ServerAddress, ServerMessagePort, i);
		
		if(strInfo=="")
		{
			continue;
		}
		InfoArray.push({Key: i, Info: strInfo});
	}
	return InfoArray;
}

function FormatDisk(ServerAddress, ServerMessagePort, DiskNo)
{
	return VP.FormatDisk(ServerAddress, ServerMessagePort, DiskNo);
}

function GetFormatDiskProgress(ServerAddress, ServerMessagePort, FormatID)
{
	return VP.GetFormatDiskProgress(ServerAddress, ServerMessagePort, FormatID);
}

function StartFLVServer()
{
	return VP.StartFLVServer();
}

function StopFLVServer()
{
	return VP.StopFLVServer();
}

function InitFLVServer()
{
	if(!VP.IsFLVServerInited())
	{
		VP.InitFLVServer();
	}
}

function DeInitFLVServer()
{
	if(VP.IsFLVServerInited())
	{
		VP.DeInitFLVServer();
	}
}

function ResetDisplayInfo(AIAddress, AIPort, ServerAddress, ServerPort, ServerChannel)
{
	VP.ResetDisplayInfo(AIAddress, AIPort, ServerAddress, ServerPort, ServerChannel);
}

function GetDDNSInfo(strAddress, nPort)
{
	var nSize = VP.GetDDNSInfo(strAddress, nPort);
	
	if(nSize<=0)
	{
		SetRetValue(null);
	}
	
	var RetArray = new Array();
	var TempObj = null;
	var i = 0;
	var strInfo = "";
	var strProperty = "";
	
	for(i=0; i<nSize; i++)
	{
		strInfo = VP.GetDDNSDetail(i);
		var TempArray = strInfo.split(";");
		if(TempArray.length<=0)
		{
			continue;
		}
		TempObj = new Object();
		for(j=0; j<TempArray.length; j++)
		{
			strProperty = TempArray[j];
			var TempPropery = strProperty.split("=");
			TempObj[TempPropery[0]] = TempPropery[1];
		}
		RetArray.push(TempObj);
	}
	SetRetValue(RetArray);
	RetArray = null;
}

function SetDNSServer(strAddress, nPort)
{
	VP.SetDNSServer(strAddress, nPort)
}
