function helpSta() { var dateTbl = new Array("Date", "12/17/2001", "12/17/2001", "12/17/2001", "12/17/2001", "01/01/1970", "01/01/1970", "01/01/1970", "01/01/1970", "01/01/1970"); var timeTbl = new Array("Time", "10:01:21", "10:01:11", "10:01:09", "09:47:17", "00:01:13", "00:01:13", "00:01:13", "00:01:13", "00:00:25"); var logTbl = new Array("Log Message", "NTP Date/Time updated", "192.168.2.100 login success", "User from 192.168.2.100 timed out", "NTP Date/Time updated", "DHCP Client: Receive Ack from 192.168.1.3,Lease time=300", "DHCP Client: Send Request,Request IP=192.168.1.25", "DHCP Client: Receive Offer from 192.168.1.3", "DHCP Client: Send Discover", "192.168.2.100 login success"); for ( i=0 ; i<=9 ;i++) { document.write(""+ dateTbl[i] +""+ timeTbl[i] +""+ logTbl[i] +""); } } function helpSup() {} //****************************************************************************************** function strRule(name, str) { if(name.value=="") { alert(str + ' cannot be empty!'); setFocus(name); return false; } return true; } Schedule = [ ["Mon",0x1000000], ["Tue",0x0100000], ["Wed",0x0010000], ["Thu",0x0001000], ["Fri",0x0000100], ["Sat",0x0000010], ["Sun",0x0000001] ]; BCOLOR = [ ["Mon","#99CCFF",0x1000000], ["Tue","#FFCC99",0x0100000], ["Wed","#CCFF99",0x0010000], ["Thu","#FFFF99",0x0001000], ["Fri","#9999FF",0x0000100], ["Sat","#FFCC99",0x0000010], ["Sun","#CCCCCC",0x0000001] ]; function validateKey(str) { for (var i=0; i= '0' && str.charAt(i) <= '9') || (str.charAt(i) == '.' ) ) continue; return 0; } return 1; } function getDigit(str, num) { i=1; if ( num != 1 ) { while (i!=num && str.length!=0) { if ( str.charAt(0) == '.' ) { i++; } str = str.substring(1); } if ( i!=num ) return -1; } for (i=0; i max || d < min ) return false; return true; } function setFocus(field) { field.value = field.defaultValue; field.focus(); return; } function checkIpAddr(field, msg) { if ( validateKey(field.value) == 0) { alert(msg + ' value. It should be the decimal number (0-9).'); return false; } if ( !checkDigitRange(field.value,1,1,255) ) { alert(msg+' range in 1st digit. It should be 1-255.'); return false; } if ( !checkDigitRange(field.value,2,0,255) ) { alert(msg + ' range in 2nd digit. It should be 0-255.'); return false; } if ( !checkDigitRange(field.value,3,0,255) ) { alert(msg + ' range in 3rd digit. It should be 0-255.'); return false; } if ( !checkDigitRange(field.value,4,1,254) ) { alert(msg + ' range in 4th digit. It should be 1-254.'); return false; } return true; } function ipRule(ip, str, type, defVal) { if (type == "ip") { if (ip.value=="") { alert(str+" cannot be empty! It should be filled with 4 digit numbers as xxx.xxx.xxx.xxx."); if (defVal == 1) ip.value = ip.defaultValue; ip.focus(); return false; } } else { if (ip.value=="" || ip.value=="0.0.0.0") { ip.value = "0.0.0.0"; return true; } } if ( checkIpAddr(ip, 'Invalid '+str) == false ){ if (defVal == 1) ip.value = ip.defaultValue; ip.focus(); return false; } return true; } function portRule( fromPort, fromStr, toPort, toStr, min, max, defVal) { //********** from port ********** if (fromPort.value=="") { alert(fromStr+" cannot be empty! You should set a value between "+min+"-"+max+"."); if ( defVal == 1 ) fromPort.value = fromPort.defaultValue; fromPort.focus(); return false; } if ( validateKey( fromPort.value ) == 0 ) { alert("Invalid value of"+fromStr+"! It should be the decimal number (0-9)."); if ( defVal == 1 ) fromPort.value = fromPort.defaultValue; fromPort.focus(); return false; } d1 = getDigit(fromPort.value, 1); if (d1 > max || d1 < min) { alert("Invalid value of"+fromStr+"! You should set a value between "+min+"-"+max+"."); if ( defVal == 1 ) fromPort.value = fromPort.defaultValue; fromPort.focus(); return false; } //********** to port ********** if (toStr != "") { if (toPort.value!="") { if ( validateKey( toPort.value ) == 0 ) { alert("Invalid value of"+toStr+"! It should be the decimal number (0-9)."); if ( defVal == 1 ) toPort.value = toPort.defaultValue; toPort.focus(); return false; } d2 = getDigit(toPort.value, 1); if (d2 > max || d2 < min) { alert("Invalid value of"+toStr+"! You should set a value between "+min+"-"+max+"."); if ( defVal == 1 ) toPort.value = toPort.defaultValue; toPort.focus(); return false; } if (d1 > d2 ) { if(defVal==2) alert("Invalid time range! Start value should be less than end value."); else alert("Invalid port range! 1st port value should be less than 2nd value."); if ( defVal == 1 ) toPort.value = toPort.defaultValue; fromPort.focus(); return false; } } } return true; } function macRule( mac, name,defVal) { var str = mac.value; if ( str.length < 12) { alert("Input MAC address is not complete. It should be 12 digits in hex."); if ( defVal == 1 ) mac.value = mac.defaultValue; mac.focus(); return false; } for (var i=0; i= '0' && str.charAt(i) <= '9') || (str.charAt(i) >= 'a' && str.charAt(i) <= 'f') || (str.charAt(i) >= 'A' && str.charAt(i) <= 'F') ) continue; alert("Invalid MAC address. It should be in hex number (0-9 or a-f)."); if ( defVal == 1 ) mac.value = mac.defaultValue; mac.focus(); return false; } return true; } function MM_openBrWindow(theURL,winName,features){ window.open(theURL,winName,features); } function deleteClick() { if ( !confirm('Do you really want to delete the selected entry?') ) { return false; } else return true; } function deleteAllClick() { if ( !confirm('Do you really want to delete the all entries?') ) { return false; } else return true; } function qosTxt(text) { var buffer; if (text == "title") buffer = "QoS"; if (text == "enable") buffer = "  Enable QoS"; if (text == "wan1Tbl") buffer = "Current QoS Table:"; if (text == "wan2Tbl") buffer = "Current QoS of WAN2 Table:"; if (text == "wan3Tbl") buffer = "Current QoS of WAN3 Table:"; if (text == "wan4Tbl") buffer = "Current QoS of WAN4 Table:"; if (text == "priority") buffer = "Priority"; if (text == "name") buffer = "Rule Name"; if (text == "upload") buffer = "Upload Bandwidth"; if (text == "download") buffer = "Download Bandwidth"; if (text == "select") buffer = "Select"; if (text == "tdownload") buffer = "Total Download Bandwidth"; if (text == "tupload") buffer = "Total Upload Bandwidth"; document.write(buffer); } function qosBtnTxt(form) { form.addQos.value='Add'; form.showQos.value='Edit'; form.delSelQos.value='Delete Selected'; form.delAllQos.value='Delete All'; form.moveUpQos.value='Move Up'; form.moveDownQos.value='Move Down'; form.reset.value='Reset'; return true; } function qosAddTxt(text) { var buffer; if (text == "title") buffer = "QoS"; if (text == "descript") buffer = ""; if (text == "name") buffer = "Rule Name  "; if (text == "wanIf") buffer = "WAN Port  "; if (text == "strBw") buffer = "Bandwidth  "; if (text == "scAddr") buffer = "Local Address  "; if (text == "ip") buffer = "Local IP Address  "; if (text == "mac") buffer = "MAC Address  "; if (text == "dtIp") buffer = "Remote IP Address  "; if (text == "traf") buffer = "Traffic Type  "; if (text == "ptl") buffer = "Protocol  "; if (text == "scPort") buffer = "Local Port Range  "; if (text == "dtPort") buffer = "Remote Port Range  "; if (text == "btn") { document.formQos.apply.value='Save'; document.formQos.reset.value='Reset'; return true; } document.write(buffer); } var HOST_NAME_REGX =new RegExp("^[a-zA-Z0-9]\\w{0,30}$"); var HOST_NAME1_REGX =new RegExp("^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$"); var HOST_NAME3_REGX =new RegExp("^((http|https)\://)?([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,10}[a-zA-Z0-9])?[\\.]?){1,3}[a-zA-Z0-9]{2,6}$"); var IP_REGX=new RegExp("^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"); var IP_REGX1=new RegExp("^((http|https)\://)?(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$"); function printf(fmt) { var reg = /%s/; var result = new String(fmt); for (var i = 1; i < arguments.length; i++) { result = result.replace(reg, new String(arguments[i])); } document.write(result); } function select_option(name,var_js_array,st_value) { printf(""); } function getStateString(code) { var stateCode = parseInt(code,10); var mask; var codeString = []; for (var i = 0; i < BCOLOR.length ; i++) { mask = parseInt(BCOLOR[i][2],10); if ( (mask != 0) && ((stateCode & mask) == mask) ) { codeString.push(BCOLOR[i][0]); } } return codeString.join(", "); return "---"; } function dw(str) { document.write(str+'\n'); } var SUBMASK_REGX = new RegExp("^1*0*$"); function rvt(num) { var x=0, y=0; p = new Array; q = new Array; var bin_num=""; var tmp; x = num; for (i=0; i<10; i++) { y = Math.pow(2, i); p[i] = i; q[i] = (y&x)/y; if (y>x) { tmp = i; break; } } p.pop(); q.pop(); p.reverse(); q.reverse(); for(i=0;i255) return false; var length = (rvt(num)).length; if(length < 8) { for(var j=1;j<=(8-length);j++) zero = zero + '0'; } bin = bin + zero + rvt(num); } if(!SUBMASK_REGX.test(bin)) return false; return true; } function checkIsNMode(bandVal) { return (bandVal==6||bandVal==7||bandVal==8||bandVal==9||bandVal==11)?true:false; } function checksubnetIPwithNetAndBroadcast(ip, mask, client, str) { var networkIP=""; var broadcastIP=""; networkIP=getNetworkIP(ip.value,mask.value); useNetworkIP=prefixNetwork(networkIP)+(eval(getDigit(networkIP,4))+1); broadcastIP=getBroadcastIP(ip.value,mask.value); useBroadcastIP=prefixNetwork(broadcastIP)+(eval(getDigit(broadcastIP,4))-1); if(!checkSameSubnet(ip.value,client.value,mask.value) || client.value==networkIP || client.value==broadcastIP) { alert(showText(370) + str + '!\n' + showText(371) + '\nNow subnet is \"' +useNetworkIP+ '\" to \"'+useBroadcastIP+'\"'); client.value = client.defaultValue; client.focus(); return false; } return true; } function getNetworkIP(ip,mask) { var subnetIP=""; var ip_t=ip.split("."); var mask_t=mask.split("."); for(var i=0;i<4;i++){ subnetIP=subnetIP+(ip_t[i] & mask_t[i]); if(i!=3) subnetIP=subnetIP+'.'; } return subnetIP; } function prefixNetwork(ip) { var prefixIP=""; for(var i=1;i<=3;i++){ prefixIP=prefixIP+getDigit(ip,i)+'.'; } return prefixIP; } function getBroadcastIP(ip,mask) { var broadcastIP=""; var ip_t=ip.split("."); var mask_t=mask.split("."); for(var i=0;i<4;i++){ broadcastIP=broadcastIP+(ip_t[i] | (255-mask_t[i])); if(i!=3) broadcastIP=broadcastIP+'.'; } return broadcastIP; } function digitEncode(input) { var result='', code = ''; var j=0; for(j=0;j