var CurrentLanguage = parseInt("2"); var SipPort = parseInt("5060"); var RtpBasePort = parseInt("8000"); var RtpMaxPort = parseInt("8064"); var TelnetPort = parseInt("23"); var WebPort = parseInt("80"); var WebsPort = parseInt("443"); var SshPort = parseInt("22"); var Tr69Port = parseInt("7547"); var SnmpPort = parseInt("161"); var SyslogPort = parseInt("514"); var CloudPort = parseInt("2023"); var DrpPort = parseInt("64999"); var RecordPort = parseInt("2999"); var RadiusPort = parseInt("1645"); /**��ĸ�����ֺͰ���ַ�(��`\��˫�������������ַ���)*/ function string_valid_check(str) { return str.match(/^[!\u0023-\u005B\u005D-\u005F\u0061-\u007E]+$/); } //ÿ���ֽ���0-127֮�� function passwd_valid_check(str) { return str.match(/^[\x00-\x7F]+$/); } function ipverify(ip_string){ var c; var n = 0; var ch = ".0123456789"; if (ip_string.length < 7 || ip_string.length > 15) return false; for (var i = 0; i < ip_string.length; i++){ c = ip_string.charAt(i); if (ch.indexOf(c) == -1) return false; else{ if (c == '.'){ if(ip_string.charAt(i+1) != '.') n++; else return false; } } } if (n != 3) return false; if (ip_string.indexOf('.') == 0 || ip_string.lastIndexOf('.') == (ip_string.length - 1)) return false; szarray = [0,0,0,0]; var remain; var i; for(i = 0; i < 3; i++){ var n = ip_string.indexOf('.'); szarray[i] = ip_string.substring(0,n); remain = ip_string.substring(n+1); ip_string = remain; } szarray[3] = remain; for(i = 0; i < 4; i++){ if (szarray[i] < 0 || szarray[i] > 255){ return false; } } return true; } function convert2CompleteIpV6(ip) { var ipV6=ip; var index=ip.indexOf("::"); if(index>0) { var size=8-(ip.split(":").length-1); var tmp=""; for(var i=0;i= port)) { alert($.i18n.prop("RtpAlreadyUsed")); return true; } return false; } function isIP_endGTstart(endIP, startIP) { var vEnd = endIP.split('.'); var vSta = startIP.split('.'); var nSta = (parseInt(vSta[0])<<24) + (parseInt(vSta[1])<<16) + (parseInt(vSta[2])<<8) + (parseInt(vSta[3])<<0); var nEnd = (parseInt(vEnd[0])<<24) + (parseInt(vEnd[1])<<16) + (parseInt(vEnd[2])<<8) + (parseInt(vEnd[3])<<0); if (nEnd < nSta) { return false; } return true; } function isValidMacAddress(MacAddress) { var c = ''; var num = 0; var i = 0, j = 0; var zeros = 0; var cnt_ff=0; addrParts = MacAddress.split('-'); if (addrParts.length != 6) { return false; } for (i = 0; i < 6; i++) { if (addrParts[i] == '') { return false; } for (j = 0; j < addrParts[i].length; j++) { c = addrParts[i].toLowerCase().charAt(j); if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f')) continue; else return false; } num = parseInt(addrParts[i], 16); if ((num == NaN) || (num < 0) || (num > 255)) return false; if (num == 255) cnt_ff++; if (num == 0) zeros++; } if ((zeros == 6) || (cnt_ff == 6)) return false; return true; } function is_maskaddr(mask_string){ var i,j; var substr = mask_string; var val, cnt = 0, num = 128, pos = 0; a = new Array(32); if(mask_string.length == 0){ return false; } if (!ipverify(mask_string)){ return false; } /** ��������ʱ��ȫΪ255��������������Ч��*/ if(mask_string == "255.255.255.255") { return false; } if(mask_string == "0.0.0.0") { return true; } for(i = 0; i < 4; i++) { pos = substr.indexOf('.',0); if(pos == -1) { val = parseInt(substr); } else { val = parseInt(substr.substring(0, pos+1)); substr = substr.substring(pos + 1, substr.length + 1); } for (j = 0; j < 8; j++) { a[8*i + j] = (val&(num>>j))>>(7-j); } } for(j = 0; j < 31; j++) { if(a[j] != a[j+1]) { cnt++; } } if(cnt > 1 || (a[30] == 0 && a[31] == 1)) { return false; } return true; } function is_gatewayaddr(gateway_string){ if(gateway_string.length == 0){ return false; } if (!ipverify(gateway_string)){ return false; } return true; } function is_dnsaddr(dns_string){ if(dns_string.length == 0){ return false; } if (!ipverify(dns_string)){ return false; } return true; } function is_subnet(ip,mask,subip,submask){ var i = 0,j = 0, pos = 0, cnt = 0; var str_ip_a = ip, str_mask_a = mask, str_ip_b = subip, str_mask_b = submask; ip_a = new Array(4); mask_a = new Array(4); ip_b = new Array(4); mask_b = new Array(4); for(i = 0; i < 4; i++) { pos = str_ip_a.indexOf('.',0); if(pos == -1) { ip_a[i] = parseInt(str_ip_a); } else { ip_a[i] = parseInt(str_ip_a.substring(0, pos+1)); str_ip_a = str_ip_a.substring(pos + 1, str_ip_a.length + 1); } } for(i = 0; i < 4; i++) { pos = str_mask_a.indexOf('.',0); if(pos == -1) { mask_a[i] = parseInt(str_mask_a); } else { mask_a[i] = parseInt(str_mask_a.substring(0, pos+1)); str_mask_a = str_mask_a.substring(pos + 1, str_mask_a.length + 1); } } for(i = 0; i < 4; i++) { pos = str_ip_b.indexOf('.',0); if(pos == -1) { ip_b[i] = parseInt(str_ip_b); } else { ip_b[i] = parseInt(str_ip_b.substring(0, pos+1)); str_ip_b = str_ip_b.substring(pos + 1, str_ip_b.length + 1); } } for(i = 0; i < 4; i++) { pos = str_mask_b.indexOf('.',0); if(pos == -1) { mask_b[i] = parseInt(str_mask_b); } else { mask_b[i] = parseInt(str_mask_b.substring(0, pos+1)); str_mask_b = str_mask_b.substring(pos + 1, str_mask_b.length + 1); } } for(i = 0; i < 4; i++) { if((ip_a[i]&mask_a[i]) == (ip_b[i]&mask_a[i]) && mask_a[i] <= mask_b[i]) { cnt++; } } if(cnt != 4) { return false; } return true; } function gateway_check(ip, mask, gateway){ var i = 0, pos = 0; var str_ip = ip, str_mask = mask, str_gateway = gateway; ip = new Array(4); mask = new Array(4); gateway = new Array(4); for(i = 0; i < 4; i++) { pos = str_ip.indexOf('.',0); if(pos == -1) { ip[i] = parseInt(str_ip); } else { ip[i] = parseInt(str_ip.substring(0, pos+1)); str_ip = str_ip.substring(pos + 1, str_ip.length + 1); } } for(i = 0; i < 4; i++) { pos = str_mask.indexOf('.',0); if(pos == -1) { mask[i] = parseInt(str_mask); } else { mask[i] = parseInt(str_mask.substring(0, pos+1)); str_mask = str_mask.substring(pos + 1, str_mask.length + 1); } } for(i = 0; i < 4; i++) { pos = str_gateway.indexOf('.',0); if(pos == -1) { gateway[i] = parseInt(str_gateway); } else { gateway[i] = parseInt(str_gateway.substring(0, pos+1)); str_gateway = str_gateway.substring(pos + 1, str_gateway.length + 1); } } for(i = 0; i < 4; i++) { if ((ip[i] & mask[i]) != (mask[i] & gateway[i])) { return false; } } return true; } function macverify(mac_string){ var c; var n = 0; var ch = "-0123456789ABCDEFabcdef"; if (mac_string.length != 17) return false; for (var i = 0; i < mac_string.length; i++){ c = mac_string.charAt(i); if (ch.indexOf(c) == -1) return false; else{ if (c == '-') n++; } } if (n != 5) return false; for(var i = 2; i < 17; i += 3){ if (mac_string.charAt(i) != '-') return false; } return true; } function is_macaddr(mac_string){ if(mac_string.length == 0){ return false; } if (!macverify(mac_string)){ return false; } return true; } function is_number(num_string,nMin,nMax){ var c; var ch = "-0123456789"; if(num_string.length == 0){ return false; } for (var i = 0; i < num_string.length; i++){ c = num_string.charAt(i); if (ch.indexOf(c) == -1) return false; } if(parseInt(num_string) < nMin || parseInt(num_string) > nMax) return false; return true; } function is_number_range_ok(num_string,nMin,nMax){ var c; var num1; var num2; c = num_string.indexOf('-',0); if(c == 0) { return false; } if(c == -1) { return is_number(num_string,nMin,nMax); } else { num1 = num_string.substring(0,c); num2 = num_string.substring(c+1,num_string.length+1); if(is_number(num1,nMin,nMax) && is_number(num2,nMin,nMax) && parseInt(num1) < parseInt(num2)) return true; return false; } } function is_first_xin(num_string,minlength,maxlength) { var c; var nums="0123456789*#"; if(num_string.length < minlength || num_string.length > maxlength) { return false; } c = num_string.charAt(0); if (c == '*') { return false; } for (var i = 0; i < num_string.length; i++) { c = num_string.charAt(i); if (nums.indexOf(c) == -1) { return false; } } return true; } function is_number_string(num_string,minlength,maxlength){ var c; var nums="0123456789" if(num_string.length < minlength || num_string.length > maxlength) { return false; } for (var i = 0; i < num_string.length; i++) { c = num_string.charAt(i); if (nums.indexOf(c) == -1) { return false; } } return true; } function charCompare(szname,en_limit,cn_limit){ var c; var ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.<>,[]{}?/+=|\\'\":;~!#$%()` & "; if(szname.length > en_limit) return false; for (var i = 0; i < szname.length; i++){ c = szname.charAt(i); if (ch.indexOf(c) == -1){ if(szname.length > cn_limit) return false; } } return true; } function is_string(name_string){ var EN_LIMIT = 64; var CN_LIMIT = 32; if(name_string.length == 0){ return false; } if(!charCompare(name_string,EN_LIMIT,CN_LIMIT)){ return false; } else return true; } function check_dtmf_cadence(DTMFCadence) { var i; var array = new Array(); var v1, v2; for (i = 0; i < DTMFCadence.length; i++) { if ((DTMFCadence.charAt(i) < '0' || DTMFCadence.charAt(i) > '9') && DTMFCadence.charAt(i) != ',') { return false; } } array = DTMFCadence.split(','); if (array.length != 2) { return false; } v1 = parseInt(array[0]); v2 = parseInt(array[1]); if ((v1 < 50 || v1 > 200) || (v2 < 50 || v2 > 200)) { return false; } return true; } function check_call_process_tone_str(CallProcToneStr) { var i; var array = new Array(); var f1, a1, f2, a2; for (i=0; i '9') && CallProcToneStr.charAt(i) != ',') { return false; } } array = CallProcToneStr.split(','); if (array.length != 6 && array.length != 8) { return false; } f1 = parseInt(array[0]); a1 = parseInt(array[1]); f2 = parseInt(array[2]); a2 = parseInt(array[3]); if ((f1 < 300 || f1 > 4000) || (a1 < 62 || a1 > 692)) { return false; } if ((f2 < 300 || f2 > 4000) || (a2 < 62 || a2 > 692)) { return false; } return true; } function check_busy_tone_str(CallProcToneStr) { var i; var array = new Array(); var value; for (i=0; i '9') && CallProcToneStr.charAt(i) != ',') { return false; } } array = CallProcToneStr.split(','); if (array.length != 8) { return false; } for (i = 0; i < 8; i++) { value = parseInt(array[i]); //����Ƿ�����Чֵ if (0 != value && (value < 70 || value > 3000)) { return false; } //���ҵ�һ��Ϊ0��timeֵ if (0 == value) { //��һ��Ϊ0��ֵ������offtime if (1 == i%2) { return false; } else { //����ı���ȫΪ0����Ч i++ for (; i < 8; i++) { value = parseInt(array[i]); if (0 != value) { return false; } } break; } } } return true; } function check_ringing_tone_str(RingCadenceStr) { var i; var array = new Array(); var value; for (i=0; i '9') && RingCadenceStr.charAt(i) != ',') { return false; } } array = RingCadenceStr.split(','); if (array.length != 6) { return false; } for (i = 0; i < 6; i++) { value = parseInt(array[i]); //����Ƿ�����Чֵ if (0 != value && (value < 100 || value > 10000)) { return false; } //���ҵ�һ��Ϊ0��timeֵ if (0 == value) { //��һ��Ϊ0��ֵ������offtime if (1 == i%2) { return false; } else { //����ı���ȫΪ0����Ч i++ for (; i < 6; i++) { value = parseInt(array[i]); if (0 != value) { return false; } } break; } } } return true; } function esc_transform(esc_string) { while(esc_string.indexOf("<") != -1) { esc_string = esc_string.replace("<", "<"); } while (esc_string.indexOf(">") != -1) { esc_string = esc_string.replace(">", ">"); } return esc_string; } function createxmlHttpRequest() { if (window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest(); } else { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } function doRequestUsingGet(url,para,fn) { createxmlHttpRequest(); url += "?" + para + "×tamp=" + new Date().getTime(); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange = fn; xmlHttp.send(null); } function doRequestUsingPost(url,para,fn) { createxmlHttpRequest(); xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange = fn; xmlHttp.send(para); } function getElementPos(elementId) { var ua = navigator.userAgent.toLowerCase(); var isOpera = (ua.indexOf('opera') != -1); var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof var el = document.getElementById(elementId); if (el.parentNode === null || el.style.display == 'none') { return false; } var parent = null; var pos = []; var box; if (el.getBoundingClientRect) //IE { box = el.getBoundingClientRect(); var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); return { x: box.left + scrollLeft, y: box.top + scrollTop }; } else if (document.getBoxObjectFor) // gecko { box = document.getBoxObjectFor(el); var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0; var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0; pos = [box.x - borderLeft, box.y - borderTop]; } else // safari & opera { pos = [el.offsetLeft, el.offsetTop]; parent = el.offsetParent; if (parent != el) { while (parent) { pos[0] += parent.offsetLeft; pos[1] += parent.offsetTop; parent = parent.offsetParent; } } if (ua.indexOf('opera') != -1 || (ua.indexOf('safari') != -1 && el.style.position == 'absolute')) { pos[0] -= document.body.offsetLeft; pos[1] -= document.body.offsetTop; } } if (el.parentNode) { parent = el.parentNode; } else { parent = null; } while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors pos[0] -= parent.scrollLeft; pos[1] -= parent.scrollTop; if (parent.parentNode) { parent = parent.parentNode; } else { parent = null; } } return {x: pos[0],y: pos[1]}; } function DisableButton() { for(var f=0;f= 0) { return false; } return true; } function LastStrIsDigital(string, count) { var c; var LastCh; var Digital = "0123456789"; if (string.length == 0) { return false; } if (string.length >= count) { LastCh = string.substr(string.length - count).toLowerCase(); } else { LastCh = string; } for (var i = 0; i < LastCh.length; i++) { c = LastCh.charAt(i); if (Digital.indexOf(c) == -1) { return false; } } return true; } function StringRange(stringlen, minlength, maxlength) { if (stringlen <= 0 || minlength > maxlength) { return false; } if(stringlen < minlength || stringlen > maxlength) { return false; } return true; } /* * xhr.js - XMLHttpRequest helper class * (c) 2008-2010 Jo-Philipp Wich */ XHR = function() { this.reinit = function() { if (window.XMLHttpRequest) { this._xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { this._xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert("xhr.js: XMLHttpRequest is not supported by this browser!"); } } this.busy = function() { if (!this._xmlHttp) return false; switch (this._xmlHttp.readyState) { case 1: case 2: case 3: return true; default: return false; } } this.abort = function() { if (this.busy()) this._xmlHttp.abort(); } this.get = function(url,data,callback) { this.reinit(); var xhr = this._xmlHttp; var code = this._encode(data); url = location.protocol + '//' + location.host + url; if (code) if (url.substr(url.length-1,1) == '&') url += code; else url += '?' + code; xhr.open('GET', url, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { var json = null; if (xhr.getResponseHeader("Content-Type") == "application/json") { try { json = eval('(' + xhr.responseText + ')'); } catch(e) { json = null; } } callback(xhr, json); } } xhr.send(null); } this.post = function(url,data,callback) { this.reinit(); var xhr = this._xmlHttp; var code = this._encode(data); xhr.onreadystatechange = function() { if (xhr.readyState == 4) callback(xhr); } xhr.open('POST', url, true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.setRequestHeader('Content-length', code.length); xhr.setRequestHeader('Connection', 'close'); xhr.send(code); } this.cancel = function() { this._xmlHttp.onreadystatechange = function(){}; this._xmlHttp.abort(); } this.send_form = function(form,callback,extra_values) { var code = ''; for (var i = 0; i < form.elements.length; i++) { var e = form.elements[i]; if (e.options) { code += (code ? '&' : '') + form.elements[i].name + '=' + encodeURIComponent( e.options[e.selectedIndex].value ); } else if (e.length) { for (var j = 0; j < e.length; j++) if (e[j].name) { code += (code ? '&' : '') + e[j].name + '=' + encodeURIComponent(e[j].value); } } else { code += (code ? '&' : '') + e.name + '=' + encodeURIComponent(e.value); } } if (typeof extra_values == 'object') for (var key in extra_values) code += (code ? '&' : '') + key + '=' + encodeURIComponent(extra_values[key]); return( (form.method == 'get') ? this.get(form.getAttribute('action'), code, callback) : this.post(form.getAttribute('action'), code, callback) ); } this._encode = function(obj) { obj = obj ? obj : { }; obj['_'] = Math.random(); if (typeof obj == 'object') { var code = ''; var self = this; for (var k in obj) code += (code ? '&' : '') + k + '=' + encodeURIComponent(obj[k]); return code; } return obj; } } XHR.get = function(url, data, callback) { (new XHR()).get(url, data, callback); } XHR.poll = function(interval, url, data, callback) { if (isNaN(interval) || interval < 1) interval = 5; if (!XHR._q) { XHR._t = 0; XHR._q = [ ]; XHR._r = function() { for (var i = 0, e = XHR._q[0]; i < XHR._q.length; e = XHR._q[++i]) { if (!(XHR._t % e.interval) && !e.xhr.busy()) e.xhr.get(e.url, e.data, e.callback); } XHR._t++; }; } XHR._q.push({ interval: interval, callback: callback, url: url, data: data, xhr: new XHR() }); XHR.run(); } XHR.halt = function() { if (XHR._i) { /* show & set poll indicator */ try { document.getElementById('xhr_poll_status').style.display = ''; document.getElementById('xhr_poll_status_on').style.display = 'none'; document.getElementById('xhr_poll_status_off').style.display = ''; } catch(e) { } window.clearInterval(XHR._i); XHR._i = null; } } XHR.run = function() { if (XHR._r && !XHR._i) { /* show & set poll indicator */ try { document.getElementById('xhr_poll_status').style.display = ''; document.getElementById('xhr_poll_status_on').style.display = ''; document.getElementById('xhr_poll_status_off').style.display = 'none'; } catch(e) { } /* kick first round manually to prevent one second lag when setting up * the poll interval */ XHR._r(); XHR._i = window.setInterval(XHR._r, 1000); } } XHR.running = function() { return !!(XHR._r && XHR._i); }