var request = null; var response="undefined"; var devCfg="undefined"; var sensorCfg="undefined"; var error="Error"; var g_szCompressType = "mpeg4"; var g_szRotate = "None"; var requestTimeout=30000; var updateJPG=1; var alertRequest = 1; function CreateRequest(){ request = null; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); return request; } function hex2rgb(hex) { var r = (0xFF0000 & hex) >> 16; var g = (0x00FF00 & hex) >> 8; var b = (0x0000FF & hex); return "rgb(" + r + "," + g + "," + b + ")"; } function requestAbort(){ alert(loadLangString("L_ServerNoResponse",false)); request.abort(); } function HttpRequest(method, cgistr, cb, async, timeout){ var tempstring = eval("'"+cgistr+"'"); var timer; //alert( method+' '+tempstring ); request=CreateRequest(); if ( request === null) { // Sorry, no Ajax alert("Ajax not available"); return null; } request.open(method, tempstring, async); //synchronous //request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); if(timeout > 0) {//alert(timeout); timer = setTimeout("requestAbort()",timeout); } if(async) { request.onreadystatechange = function(){ if (request.readyState == 4) { if(timeout > 0) clearTimeout(timer); if (request.status == 200){ response = request.responseText; if(cb) cb(); } else if (request.status == 404){ if(alertRequest) { alert("Request URL does not exist"); } alertRequest = 1; }else if(request.status == 0){ //alert("Request abort"); } else { //alert("Error: status code is " + request.status); } } } } if(method=="POST") { //request.setRequestHeader("Content-Type", "multipart/form-data"); request.send(cgistr); } else { request.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); request.send(null); } if(async) return; if (request.status != 200) { if(timeout > 0){ //alert("clear timeout error"); clearTimeout(timer);} return error; }else{ if(timeout > 0){ //alert("clear timeout"); clearTimeout(timer);} return request.responseText; } } function SendCGICMD(){ if(arguments[0]!=null) { setLastCGICMD(arguments[0]); } return HttpRequest("GET", arguments[0], arguments[1]?arguments[1]:null, arguments[2]?arguments[2]:false, arguments[3]?arguments[3]:requestTimeout); } /* * GetDeviceInfo(catalog, level, cb) * catalog(must): cgi command * level(optional): admin/operator/view * cb(optional): call back function */ function GetDeviceInfo(){ var level = "admin"; if(arguments[1]) { level = arguments[1]; } var cgi = eval("'/cgi-bin/"+level+"/param?action=list&group="+arguments[0]+"'"); devCfg=HttpRequest("GET", cgi, null, false, requestTimeout); if(arguments[2]) { arguments[2](); } } function GetSensorInfo(){ var level = "admin"; if(arguments[1]) { level = arguments[1]; } var cgi = eval("'/cgi-bin/"+level+"/param_option?ImageSource="+arguments[0]+"'"); sensorCfg=HttpRequest("GET", cgi, null, false, requestTimeout); if(arguments[2]) { arguments[2](); } } function GetQueryVariable(variable){ if(devCfg==undefined) { vars=""; return vars } var vars = devCfg.split(variable+"="); if(vars[1]==undefined) { vars=""; return vars } var pair = vars[1].split("\n"); return pair[0]; } function GetQueryVariableEx2(variable,cfg){ //alert(devCfg); //alert(variable); if(cfg==undefined) { vars=""; return vars } var vars = cfg.split(variable+"="); if(vars[1]==undefined) { //alert("Error: Undefined!"); vars=""; return vars } var pair = vars[1].split("\n"); //alert(pair[0]); return pair[0]; } function doCheckEmpty(strTxt) { if(get_Length(strTxt) <= 0){ return false; } if(chk_Empty(strTxt)){ return false; } return true; } function GetFWUpgradeStatus(){ var rsp=HttpRequest("GET", "/cgi-bin/admin/firmwareupgrade?action=progress", null, false, requestTimeout); var progress = rsp.split("Progress="); var vars = progress[1].split("%"); //alert(vars[0]); return (vars[0]); } function replaceEscapes(strTxt){ return(escape(strTxt)); } function saveData(strPath, strData) { if(strData=="") strData="None"; var cgi=eval("'/cgi-bin/operator/filewrite?SAVE.filePath="+strPath+"'"); cgi+=eval("'&SAVE.fileData="+strData+"'"); SendCGICMD(cgi); } function readData(strPath){ var cgi=eval("'/cgi-bin/operator/fileread?READ.filePath="+strPath+"'"); var data=HttpRequest("GET", cgi, null, false, requestTimeout); if(data=="None") data=""; return (data); } function Clear_Seq(strType, strValue) { var cgi=eval("'/cgi-bin/operator/seqclear?Clear."+strType+"="+strValue+"'"); UpdateParam(cgi); } function setCookies(name,value) { var Days = 30; //此 cookie ?被保存 30 天 var exp = new Date(); //new Date("December 31, 9998"); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString(); } function getCookies(name) { var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null) return unescape(arr[2]); return null; } function delCookies(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString(); } function getVideoFmt() { fmt=getCookies("VideoIdx"); if(fmt==null) { setCookies("VideoIdx","0"); return "0"; } if(fmt!="0" && fmt!="1" && fmt!="2" && fmt!="3") { setCookies("VideoIdx","0"); return "0"; } if(GetQueryVariable("Image.VideoOut.Enabled")=="on" && GetQueryVariable("Image.VideoOut.Index")==fmt) { if(fmt=="0") fmt="1"; else if(fmt=="1" || fmt=="2") fmt="0"; setCookies("VideoIdx",fmt); } return fmt; } function setVideoFmt(fmt) { if(fmt!="0" && fmt!="1" && fmt!="2" && fmt!="3") return; setCookies("VideoIdx",fmt); g_szCompressType=fmt; } function getProfileFmt() { fmt=getCookies("ProfileIdx"); if(fmt==null) { setCookies("ProfileIdx","0"); return "0"; } if(GetQueryVariable("Image.VideoOut.Enabled")=="on" && GetQueryVariable("Image.VideoOut.Index")==fmt) { if(fmt<3) { fmt++; }else if(fmt==3){ fmt=0; } setCookies("ProfileIdx",fmt); } return fmt; } function setProfileFmt(stream) { if(parseInt(stream,10)<0) { return; } setCookies("ProfileIdx",stream); } function getImageRotate() { rotate=getCookies(g_szRotate); if(rotate==null) { setCookies(g_szRotate,"None"); return "None"; } if(rotate!="None" && rotate!="Mirror" && rotate!="Flip" && rotate!="MirrorFlip") { setCookies(g_szRotate,"None"); return "None"; } return rotate; } function setImageRotate(rotate) { if(rotate!="None" && rotate!="Mirror" && rotate!="Flip" && rotate!="MirrorFlip") return; setCookies(g_szRotate,rotate); g_szRotate=rotate; } function setProtocol(protocol) { setCookies("ProtocolType",protocol); g_szProtocolType=protocol; } function getProtocol() { var protocol=getCookies("ProtocolType"); if(protocol != "1" && protocol != "2" && protocol!= "3" && protocol!= "4"){ protocol="3"; //set as HTTP } return protocol; } function setBufferEn(En) { setCookies("Buffering",En); Buffer_Enable=En; } function getBufferEn() { var buff=getCookies("Buffering"); if(buff==null) buff="0"; //set as disable return buff; } function setViewSize(size) { setCookies("ViewSize",size); VIEW_SIZE=size; } function getViewSize() { var size=getCookies("ViewSize"); if(size==null) size="1X"; //set as 1X return size; } var CGICMD=""; function setLastCGICMD(str) { CGICMD += (str + "\n \n"); if(CGICMD.length > 1000) { return; } setCookies("LastCGICMD",CGICMD); } function getLastCGICMD() { var cgi = getCookies("LastCGICMD"); if(cgi!=null) { return cgi; }else{ return "empty"; } } function ExtractString(str, start, end) { var re1,re2; re1 = str.split(start); if(re1[1]==undefined) return re1; re2 = re1[1].split(end); return re2[0]; } function ReplaceAll(strSource, strFind, strRepl) { var str5 = new String(strSource); while (str5.indexOf(strFind) != -1) { str5=str5.replace(strFind, strRepl); } return str5; } var portCfg=""; function checkPortAssignment(type, curPort) { var i = 0; var vport; var pArray = new Array( "General.System.HTTPPort", "Syslog.ServerPort", "General.Network.RTSP.Port", "General.Network.UPnP.NATTraversal.HTTPPort", "General.Network.UPnP.NATTraversal.HTTPSPort", "General.Network.UPnP.NATTraversal.RTSPPort", "General.Network.RTP.R0.AudioPort", "General.Network.RTP.R1.AudioPort", "General.Network.RTP.R2.AudioPort", "General.Network.RTP.R3.AudioPort", "General.Network.RTP.R4.AudioPort", "General.Network.RTP.R5.AudioPort", "General.Network.RTP.R6.AudioPort", "General.Network.RTP.R7.AudioPort", "General.Network.RTP.R8.AudioPort", "General.Network.RTP.R9.AudioPort", "General.Network.RTP.R0.VideoPort", "General.Network.RTP.R1.VideoPort", "General.Network.RTP.R2.VideoPort", "General.Network.RTP.R3.VideoPort", "General.Network.RTP.R4.VideoPort", "General.Network.RTP.R5.VideoPort", "General.Network.RTP.R6.VideoPort", "General.Network.RTP.R7.VideoPort", "General.Network.RTP.R8.VideoPort", "General.Network.RTP.R9.VideoPort" ); var langAry = new Array( "Please check HTTP Port", "Please check System Log Port", "Please check RTSP Port", "Please check HTTP Port", "Please check HTTPS Port", "Please check RTSP Port", "Please check Profile 1 RTSP Multicast Audio Port", "Please check Profile 2 RTSP Multicast Audio Port", "Please check Profile 3 RTSP Multicast Audio Port", "Please check Profile 4 RTSP Multicast Audio Port", "Please check Profile 5 RTSP Multicast Audio Port", "Please check Profile 6 RTSP Multicast Audio Port", "Please check Profile 7 RTSP Multicast Audio Port", "Please check Profile 8 RTSP Multicast Audio Port", "Please check Profile 9 RTSP Multicast Audio Port", "Please check Profile 10 RTSP Multicast Audio Port", "Please check Profile 1 RTSP Multicast video Port", "Please check Profile 2 RTSP Multicast video Port", "Please check Profile 3 RTSP Multicast video Port", "Please check Profile 4 RTSP Multicast video Port", "Please check Profile 5 RTSP Multicast video Port", "Please check Profile 6 RTSP Multicast video Port", "Please check Profile 7 RTSP Multicast video Port", "Please check Profile 8 RTSP Multicast video Port", "Please check Profile 9 RTSP Multicast video Port", "Please check Profile 10 RTSP Multicast video Port" ); if(portCfg=="") { portCfg = SendCGICMD("/cgi-bin/operator/param?action=list&group=General.Network.RTSP&group=General.Network.RTP&group=General.Network.UPnP&group=General.System&group=Syslog.ServerPort") } for(i=0;i < pArray.length; i++) { if( type.indexOf("AudioPort") > 0 && pArray[i].indexOf("AudioPort") > 0 ) { continue; } if( type.indexOf("VideoPort") > 0 && pArray[i].indexOf("VideoPort") > 0 ) { continue; } if(type!=pArray[i]) { vport=GetQueryVariableEx2(pArray[i], portCfg); if(vport==curPort) { alert(langAry[i]); return false; } if(pArray[i].indexOf("VideoPort") > 0 || pArray[i].indexOf("AudioPort") > 0) { if(parseInt(vport)+1 == curPort) { alert(langAry[i]); return false; } } } } return "OK"; } function StyleCustomize(curframe) { } function UpdateParam(){ if(arguments[0]!=null) { setLastCGICMD(arguments[0]); } var re = HttpRequest("GET", arguments[0], null, false, requestTimeout); if((re.search(/OK/g) >= 0)||arguments[1]==false) { alert(loadLangString("L_ApplySuccess",false)); return true; }else{ alert(re); return false; } } function StrExtend(element, length) { var txtidx; if(element.length >= length) { element=element.substr(0,length-4); element+='...'; } for(txtidx=element.length;txtidx0) { popW = popAry[i]; break; } } popW = "help/help_"+popW; window.open(popW,'sb_mt','width=790,height=580,resizable=1,scrollbars=1,status=1'); } function checkValidChar(str) { var reg = /[+]/g; if(str != "") { var val = reg.test(str); if(val) { alert("The character \"+\" is not allowed."); } return val; }else{ return false; } } function checkValidPath(str) { var reg = /[+\\\/\:\*\?\"\<\>\|]/g; if(str != "") { var val = reg.test(str); if(val) { alert("The character + , \\ , / , : , * , ? , \" , \< , \> , or | is not allowed."); } return val; }else{ return false; } } function getWinFeature(winWidth,winHeight) { var PosX = (screen.width-winWidth)/2; var PosY = (screen.height-winHeight)/2; var resize = arguments[2]==undefined?0:arguments[2]; var scrollbar = arguments[3]==undefined?0:arguments[3]; var status = arguments[4]==undefined?0:arguments[4]; var feature = eval("'width="+winWidth+"px,height="+winHeight+"px,top="+PosY+",left="+PosX+ ",resizable=1"+//for https recommand ",scrollbars="+scrollbar+ ",status="+status+"'"); return feature; }