// Global definition var tcp_proto = 6; var udp_proto = 17; var both_proto = 0; var icmp_proto = 1; // Alert message Area var msg_alert_0001 = "The MAC address is assigned incorrect."; var msg_alert_0002 = "The MAC address is duplication."; var msg_alert_0003 = "The IP number must be assigned between 1 and 254."; var msg_alert_0004 = "The IP is duplication."; var msg_alert_0005 = "The IP Range is assigned incorrect."; var msg_alert_0006 = "The IP Range is duplication."; var msg_alert_0007 = "The DNS number is assigned incorrect.\n\nThe first number must be assigned between 1-224.\nThe 2nd and 3rd numbers must be assigned between 0-255.\nAnd the last number must be assigned between 1-254."; var msg_alert_0010 = "The URL Address is assigned incorrect."; var msg_alert_0012 = "The Policy Name must be assigned alphabet, number and [-_]."; var msg_alert_0014 = "The time is entered incorrect!"; var msg_alert_0020 = "You must input a Service Name!"; var msg_alert_0022 = "The Service Name is assigned incorrect.\n There are must be alphabet."; var msg_alert_0024 = "The Service Port is assigned incorrect.\n It can be between 1 and 65535."; var msg_alert_0026 = "The Service Name have exist!"; var msg_alert_0028 = "The Port Service is full."; var msg_alert_0030 = "The Service Name is assigned incorrect.\n There are must be alphabet and number."; var msg_alert_0032 = "The IP address can't equal to LAN IP address."; var msg_alert_0034 = "The port number must be assigned between 1 and 65535."; var msg_alert_0036 = "The Applicaion name is duplication!"; var msg_alert_0038 = "The Port Number is duplication."; var msg_alert_0040 = "The application name must be assigned."; var msg_alert_0042 = "The port number must be assigned."; var msg_alert_0044 = "The IP address must be assigned."; var msg_alert_0046 = "The IP address is assigned incorrect."; var msg_alert_0050 = "The Subnet Mask is assigned incorrect."; var msg_alert_0060 = "It must be assigned alphabet, number and [-_.]."; var msg_alert_0062 = "It must be assigned Domain Name or IP."; var msg_alert_0064 = "It must be assigned alphabet, number"; var msg_alert_0066 = "It can not be entered space character."; var msg_alert_0068 = "It must be assigned number."; // function area function isAlpha (s) { var letters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; var i; for (i = 0; i < letters.length; i ++) { if (s == letters.charAt (i)) return true; } return false; } function isNValidPort(s) { if((isBlank(s))||(isNaN(s))||(isNValidInt(s))||(isNegInt(s))||(s<1||s>65535)) return true; else return false; } function isNValidFirstIP(s) { if((isBlank(s))||(isNaN(s))||(isNValidInt(s))||(isNegInt(s))||(s<1||s>224)) return true; else return false; } function isNValidLastIP(s) { if((isBlank(s))||(isNaN(s))||(isNValidInt(s))||(isNegInt(s))||(s<1||s>254)) return true; else return false; } function isBlank (s) { for(i=0;i 57)) return true; } return false; } function isNegInt(s) { if (s<0) return true; else return false; } function is_NumberRange (str, s, e) { var i, c; if (str.length == 0) return 0; for (i = 0; i < str.length; i++) { c = str.charAt (i); if (isBlank (c)) return false; if (isNaN (c)) return false; } if (parseInt (str) < s) return false; if (parseInt (str) > e) return false; return true; } function DynamicGetField (F, num, f1, f2, f3, f4, IPField) { var i; for (i = 0; i < F.elements.length; i++) { switch (num) { case 4: if (F.elements[i].name == f4) IPField[3] = F.elements[i]; case 3: if (F.elements[i].name == f3) IPField[2] = F.elements[i]; case 2: if (F.elements[i].name == f2) IPField[1] = F.elements[i]; case 1: if (F.elements[i].name == f1) IPField[0] = F.elements[i]; } } i = 0; switch (num) { case 4: if (IPField[3]) i++; case 3: if (IPField[2]) i++; case 2: if (IPField[1]) i++; case 1: if (IPField[0]) i++; } return (i == num) ? true: false; } function check_IPAddress (ip1, ip2, ip3, ip4, bIgnore) { var rs = false; if (is_NumberRange (ip1.value, 0, 255) == false) { ip1.focus (); } else if (is_NumberRange (ip2.value, 0, 255) == false) { ip2.focus (); } else if (is_NumberRange (ip3.value, 0, 255) == false) { ip3.focus (); } else if (is_NumberRange (ip4.value, 0, 255) == false) { ip4.focus (); } else { var addr = ip1.value + "." + ip2.value + "." + ip3.value + "." + ip4.value; rs = (bIgnore == true) ? isValid_Zero_IP (addr): isValidIP (addr); if (rs == false) ip1.focus (); } return rs; } function check_URLKeyword (s) { var i; for (i = 0; i < s.length; i ++) { switch (s.charAt (i)) { case '-': case '_': case '.': case '/': case '&': case '#': case '@': case ':': case '%': continue; break; } if (!isNaN (s.charAt (i))) continue; if (isAlpha (s.charAt (i))) continue; return false; } return true; } function check_PolicyName (s, pattern) { if (s.length == 0) return false; return check_AlphabetNumber (s, pattern); } function check_AlphabetNumber (s, pattern) { var i, j, rs; if (s.length == 0) return true; for (i = 0; i < s.length; i ++) { rs = false; for (j = 0; j < pattern.length; j++) { if (s.charAt (i) == pattern.charAt (j)) { rs = true; break; } } if (rs) continue; if (isBlank (s.charAt (i)) == false) { if (!isNaN (s.charAt (i))) continue; if (isAlpha (s.charAt (i))) continue; } return false; } return true; } function check_HaveSpaceIn (s) { var i; for (i = 0; i < s.length; i++) { if (s.charAt (i) == ' ') if (i <= (s.length - 1)) return true; } return false; } // the parameters are text box object. function check_SubnetMask (ip1, ip2, ip3, ip4) { var addr = ip1.value + "." + ip2.value + "." + ip3.value + "." + ip4.value; var rs = false; if (is_NumberRange (ip1.value, 0, 255) == false) { ip1.focus (); } else if (is_NumberRange (ip2.value, 0, 255) == false) { ip2.focus (); } else if (is_NumberRange (ip3.value, 0, 255) == false) { ip3.focus (); } else if (is_NumberRange (ip4.value, 0, 255) == false) { ip4.focus (); } else { rs = is_SubnetMask (ip1, ip2, ip3, ip4, true); } return rs; } function is_SubnetMask (ip1, ip2, ip3, ip4, bFocus) { var iMask = new Array (2); var i, j, mask, bFlag; rs = true; bFlag = 0xFF; iMask[0] = (parseInt (ip1.value) << 8) | (parseInt (ip2.value)); iMask[1] = (parseInt (ip3.value) << 8) | (parseInt (ip4.value)); j = 0; for (i = 0; i < 2; i ++) { for (mask = 0x8000; mask > 0; mask >>= 1) { if ((iMask[i] & mask) == 0) { bFlag = 0; } else { if (bFlag == 0) { if (bFocus == true) { if (j < 8) ip1.focus (); else if (j < 16) ip2.focus (); else if (j < 24) ip3.focus (); else ip4.focus (); } rs = false; break; } } j ++; } } return rs; } /* Modified By VergilWei. 10-03-2005 */ function isMacAddress (addr) { var sub_addr; addr = addr.toUpperCase (); if (addr.search(/^[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}$/) == -1) return 1; /* MAC error */ sub_addr = addr.split (/:/); if (sub_addr.length < 6) return 1; /* MAC error */ if (addr == "FF:FF:FF:FF:FF:FF") return 2; /* broadcast */ if (addr == "00:00:00:00:00:00") return 3; /* zero MAC */ if (addr == "01:00:5E:01:01:01") return 4; /* Multicast */ if ((parseInt(sub_addr[0], 16) & 0x01) != 0) return 5; /* other error */ return 0; } function isMAC_NULL (mac) { var i, c; switch (mac.length) { case 12: for (i = 0; i < mac.length; i ++) { if (mac.charAt (i) != '0') return false; } break; case 17: for (i = 0; i < mac.length; i ++) { c = mac.charAt (i); if (c != '0' && c != '-' && c != ':') return false; } break; } return true; } function isMAC_Broadcast (mac) { var i, c; switch (mac.length) { case 12: for (i = 0; i < mac.length; i ++) { c = mac.charAt (i); if (c != 'F' && c != 'f') return false; } break; case 17: for (i = 0; i < mac.length; i ++) { c = mac.charAt (i); if (c != 'f' && c != 'F' && c != '-' && c != ':') return false; } break; } return true; } function switchFieldValue (s1, s2) { var tmp; tmp = s1.value; s1.value = s2.value; s2.value = tmp; } // VergilWei. 01/19/2005 function format_MAC (s, split) { var tmp, i, j; if (split.length == 0) split = ":"; tmp = ""; j = 2; i = 0; if (s.length == 12) { while (i < s.length) { if (i == j) { tmp += split; j += 2; } tmp += s.charAt (i++); } } else if (s.length == 17) { while (i < s.length) { if (i == j) { tmp += split; j += 3; i ++; } tmp += s.charAt (i++); } } else { return s; } return tmp.toUpperCase(); } function strTrim (s) { var iR, iL; iR = s.length - 1; iL = 0; while (iL <= iR) { if (s.charAt (iL) != ' ') break; iL++; } while (iR >= iL) { if (s.charAt (iR) != ' ') break; iR--; } if (iL == 0 && (iR == (s.length - 1))) return s; return s.substring (iL, iR + 1); } // VergilWei. 01/20/2005 function checkDuplication_Content (F, f, fNameHead) { // f is Text box. F is Form object. fNameHead is prefix name of field's name. if (fNameHead.length == 0) return false; if (f.value.length == 0) return false; var i; var fname; for (i = 0; i < F.elements.length; i++) { fname = F.elements[i].name.substring (0, fNameHead.length); if (fname != fNameHead) continue; if (f.name == F.elements[i].name) continue; if (F.elements[i].value == f.value) return true; } return false; } // VergilWei. 01/20/2005 function checkDuplication_PortRange1 (F, f, fNameHead, fNameTail, startCount, maxItem) { if (fNameHead.length == 0) return false; if (fNameTail.length == 0) return false; if (f.value.length == 0) return false; var fPort1 = new Array (null, null, null, null); var tmpName1, tmpName2; var a1, a2, b1, b2, rs; a1 = a2 = parseInt (f.value); tmpName1 = ""; if (f.name.substring (0, fNameHead.length) == fNameHead) tmpName1 = fNameTail + f.name.substring (fNameHead.length, fNameHead.length + 2); if (f.name.substring (0, fNameTail.length) == fNameTail) tmpName1 = fNameHead + f.name.substring (fNameTail.length, fNameTail.length + 2); if (tmpName1.length > 0) { rs = DynamicGetField (F, 1, tmpName1, "", "", "", fPort1); if (rs == true) { if (fPort1[0].value.length > 0) { a2 = parseInt (fPort1[0].value); } } } if (a1 > a2) { rs = a1; a1 = a2; a2 = rs; } for (i = startCount; i < maxItem; i++) { tmpName1 = fNameHead + i; tmpName2 = fNameTail + i; if (f.name == tmpName1 || f.name == tmpName2) continue; rs = DynamicGetField (F, 2, tmpName1, tmpName2, "", "", fPort1); if (rs == false) continue; b1 = (fPort1[0].value.length == 0) ? 0: parseInt (fPort1[0].value); b2 = (fPort1[1].value.length == 0) ? 0: parseInt (fPort1[1].value); if (b1 > b2) { rs = b1; b1 = b2; b2 = rs; } if (a1 > 0 && a2 > 0) { if (b1 > 0 && b2 > 0) { if (b1 >= a1 && b1 <= a2) return true; if (b2 >= a1 && b2 <= a2) return true; if (a1 >= b1 && a1 <= b2) return true; if (a2 >= b1 && a2 <= b2) return true; } else if (b1 > 0) { if (b1 >= a1 && b1 <= a2) return true; } else if (b2 > 0) { if (b2 >= a1 && b2 <= a2) return true; } } else if (a1 > 0) { if (b1 > 0 && b2 > 0) { if (a1 >= b1 && a2 <= b2) return true; } else if (b1 > 0) { if (a1 == b1) return true; } else if (b2 > 0) { if (a1 == b2) return true; } } else if (a2 > 0) { if (b1 > 0 && b2 > 0) { if (a2 >= b1 && a2 <= b2) return true; } else if (b1 > 0) { if (a2 == b1) return true; } else if (b2 > 0) { if (a2 == b2) return true; } } } return false; } function checkDuplication_PortRange4 (F, f, fNameHead, fNameTail, startCount, maxItem) { // if (fNameHead.length == 0) return false; if (fNameTail.length == 0) return false; if (f.value.length == 0) return false; if (isBlank (f.value)) return false; var i, j, rs, a1, a2, b1, b2; var fPort1 = new Array (null, null, null, null); var fPort2 = new Array (null, null, null, null); var tmpName1, tmpName2; for (i = startCount; i < maxItem; i++) { tmpName1 = fNameHead + i; tmpName2 = fNameTail + i; rs = DynamicGetField (F, 2, tmpName1, tmpName2, "", "", fPort1); if (rs == false) continue; a1 = (fPort1[0].value.length == 0) ? 0: parseInt (fPort1[0].value); a2 = (fPort1[1].value.length == 0) ? 0: parseInt (fPort1[1].value); if (a1 <= 0 && a2 <= 0) continue; for (j = i; j < maxItem; j ++) { tmpName1 = fNameHead + j; tmpName2 = fNameTail + j; rs = DynamicGetField (F, 2, tmpName1, tmpName2, "", "", fPort2); if (rs == false) continue; b1 = (fPort1[0].value.length == 0) ? 0: parseInt (fPort1[0].value); b2 = (fPort1[1].value.length == 0) ? 0: parseInt (fPort1[1].value); if (b1 <= 0 && b2 <= 0) continue; if (a1 >0 || a2 > 0) { if (a1 > a2) { if (b1 > 0 && b1 >= a2 && b1 <= a1) return true; if (b2 > 0 && b2 >= a2 && b2 <= a1) return true; } else { if (b1 > 0 && b1 >= a1 && b1 <= a2) return true; if (b2 > 0 && b2 >= a1 && b2 <= a2) return true; } } else if (a1 > 0) { if (b1 == a1) return true; if (b2 == a1) return true; } else if (a2 > 0) { if (b1 == a2) return true; if (b2 == a2) return true; } } } return false; } // validate area function validate_DomainName (f, bSetFocus) { var pattern = "-_."; f.value = strTrim (f.value); if (f.value.length == 0) return false; if (check_AlphabetNumber (f.value, pattern) == false) { alert (msg_alert_0060); f.value = f.defaultValue; f.focus(); // if (bSetFocus) f.focus (); // else f.value = f.defaultValue; return false; } return true; } function validate_nat_kle (f) { f.value = strTrim (f.value); if (f.value.length == 0) return true; if (f.value.indexOf("$") == 0) { var str = f.value.substring(1, f.value.length); if (check_HaveSpaceIn(str) == false) { if (isValid_Zero_IP(str) == true) return true; if (check_AlphabetNumber(str, pattern) == true) return true; } } else { return validate_ip_port(f); } alert (msg_alert_0062); f.value = f.defaultValue; f.focus(); return false; } function validate_ip_port (f) { var rs; var pattern = "-_."; f.value = strTrim (f.value); if (f.value.length == 0) return true; var idx = f.value.indexOf(":"); if (idx != -1) { var domain = f.value.substring(0, idx-1); var port = f.value.substring(idx+1, f.value.length);; if (check_HaveSpaceIn (domain) == false && check_HaveSpaceIn (port) == false) { if (isValid_Zero_IP (domain) == true && is_NumberRange (port, 0, 65535) == true) return true; if (check_AlphabetNumber (domain, pattern) == true && is_NumberRange (port, 0, 65535) == true) return true; } } else { if (check_HaveSpaceIn (f.value) == false) { if (isValid_Zero_IP (f.value) == true) return true; if (check_AlphabetNumber (f.value, pattern) == true) return true; } } alert (msg_alert_0062); f.value = f.defaultValue; f.focus(); return false; } function validate_proxy (f) { var rs; var pattern = "-_."; f.value = strTrim (f.value); if (f.value.length == 0) return true; if (check_HaveSpaceIn (f.value) == false) { if (isValid_Zero_IP (f.value) == true) return true; if (check_AlphabetNumber (f.value, pattern) == true) return true; } alert (msg_alert_0062); f.value = f.defaultValue; f.focus(); return false; } function validate_IP1 (f) { f.value = strTrim (f.value); if (f.value.length == 0) return true; if (isValidIP1 (f.value)) { return true; } alert (msg_alert_0046); f.value = f.defaultValue; f.focus(); return false; } function validate_IP0 (f) { f.value = strTrim (f.value); if (f.value.length == 0) return true; if (isValid_Zero_IP (f.value)) { return true; } alert (msg_alert_0046); f.value = f.defaultValue; f.focus(); return false; } function validate_URLKeyword (f, bSetFocus) { var pattern = "-_./&#@:%"; f.value = strTrim (f.value); if (f.value.length > 0) { if (check_AlphabetNumber (f.value, pattern) == false) { alert (msg_alert_0010); f.value = f.defaultValue; f.focus(); // f.value = f.defaultValue; // if (bSetFocus) f.focus (); return false; } } return true; } function validate_string (f, pattern) { f.value = strTrim (f.value); if (f.value.length > 0) { if (check_AlphabetNumber (f.value, pattern) == false) { alert (msg_alert_0064 + " and [" + pattern + "]."); f.value = f.defaultValue; f.focus(); return false; } } return true; } function validate_PolicyName (f, bSetFocus) { var pattern = "-_"; if (check_PolicyName (f.value, pattern) == false) { alert (msg_alert_0012); f.value = f.defaultValue; f.focus(); // if (bSetFocus) f.focus(); // else f.value = f.defaultValue; return false; } return true; } function validate_ID (f) { f.value = strTrim (f.value); if (f.value.length > 0) { if (check_HaveSpaceIn (f.value) == true) { alert (msg_alert_0066); f.value = f.defaultValue; f.focus(); return false; } } return true; } function validate_FirstIP (f, bSetFocus) { if (f.value == 0) return true; if (isNValidFirstIP (f.value) || isBlank (f.value)) { alert (msg_alert_0007); f.value = f.defaultValue; f.focus(); // if (bSetFocus) f.focus (); // else f.value = f.defaultValue; return false; } return true; } function validate_LastIP (f, bSetFocus, msg_id) { if (f.value == 0) return true; if (isNValidLastIP (f.value) || isBlank (f.value)) { alert (msg_id); f.value = f.defaultValue; f.focus(); // if (bSetFocus) f.focus (); // else f.value = f.defaultValue; return false; } return true; } function validate_IP (f, bSetFocus, msg_id) { if (f.value == 0) return true; if (isNValidIP (f.value) || isBlank (f.value)) { alert (msg_id); f.value = f.defaultValue; f.focus(); // if (bSetFocus) f.focus (); // else f.value = f.defaultValue; return false; } return true; } function validate_IPAddress4F (F, f, startCount) { if (f == null) return true; var aFields = new Array (null, null, null, null); var fName = new Array (4); var rs, i, addr; for (i = 0; i < 4; i ++) { fName[i] = f.name.substring (0, f.name.length - 1) + Number (startCount++).toString (); } rs = DynamicGetField (F, 4, fName[0], fName[1], fName[2], fName[3], aFields); if (rs == true) { for (i = 0; i < 4; i++) { rs = false; if (aFields[i].value.length == 0) rs = true; if (isBlank (aFields[i].value)) rs = true; if (is_NumberRange (aFields[i].value, 0, 255) == false) rs = true; if (rs == true) { alert (msg_alert_0046); aFields[i].focus (); return false; } } /* addr = aFields[0].value + "." + aFields[1].value + "." + aFields[2].value + "." + aFields[3].value; rs = isValid_Zero_IP (addr); if (rs == false) { alert (msg_alert_0046); aFields[0].focus (); return false; } */ } return true; } function validate_SubnetMask (F, f, startCount) { if (f == null) return true; var aFields = new Array (null, null, null, null); var fName = new Array ("", "", "", ""); var rs, i, addr; for (i = 0; i < 4; i ++) { fName[i] = f.name.substring (0, f.name.length - 1) + Number (startCount++).toString (); } rs = DynamicGetField (F, 4, fName[0], fName[1], fName[2], fName[3], aFields); if (rs == true) { for (i = 0; i < 4; i++) { rs = false; if (aFields[i].value.length == 0) rs = true; if (isBlank (aFields[i].value)) rs = true; if (is_NumberRange (aFields[i].value, 0, 255) == false) rs = true; if (rs == true) { alert (msg_alert_0050); f.value = f.defaultValue; f.focus(); return false; } } rs = is_SubnetMask (aFields[0], aFields[1], aFields[2], aFields[3], false); if (rs == false) { alert (msg_alert_0050); f.value = f.defaultValue; f.focus(); return false; } } return true; } function validate_Port (f) { return validate_Number (f, 0, 65535); } function validate_Number (f, startCount, endCount) { var msg; if (is_NumberRange (f.value, startCount, endCount) == false) { msg = "It must be assigned between " + startCount + " and " + endCount + "."; alert (msg); f.value = f.defaultValue; f.focus(); return false; } return true; } function valNumber (f, Len) { var i, endCount = ""; for (i = 0; i < Len; i++) endCount += "9"; if (is_NumberRange (f.value, 0, parseInt (endCount)) == false) { var msg = "It must be assigned between 0 and " + endCount + "."; alert (msg); f.value = f.defaultValue; f.focus(); return false; } return true; } function valPhoneNumber(f) { var i; for (i = 0; i < f.value.length; i ++) { if (isNaN (f.value.charAt (i)) == true) { alert (msg_alert_0068); f.value = f.defaultValue; f.focus(); return false; } } return true; } function valid_range(I,start,end,M) { //if(I.value == ""){ // if(M == "IP" || M == "Port") // I.value = "0"; //} M1 = unescape(M); isdigit(I,M1); d = parseInt(I.value, 10); if ( !(d<=end && d>=start) ) { alert(M1 +' value is out of range ['+ start + ' - ' + end +']'); I.value = I.defaultValue; I.focus(); } else I.value = d; // strip 0 } function isdigit(I,M) { for(i=0 ; i '9'){ alert(M +' have illegal characters, must be [ 0 - 9 ]'); I.value = I.defaultValue; return false; } } return true; } function isNValidInt(s) { var i, c; for (i=0; i 57)) return true; } return false; } function isNegInt(s) { if (s<0) return true; else return false; } function is_NumberRange (str, s, e) { var i, c; if (str.length == 0) return 0; for (i = 0; i < str.length; i++) { c = str.charAt (i); if (isBlank (c)) return false; if (isNaN (c)) return false; } if (parseInt (str) < s) return false; if (parseInt (str) > e) return false; return true; } function IPCheck(I) { if (is_NumberRange (I.value, 0, 255) == false) { alert('IP value is out of range [0 - 255]'); //I.value = I.defaultValue; I.focus (); return false; } } function IP1to254(I) { if (is_NumberRange (I.value, 1, 254) == false) { alert('IP value is out of range [1 - 254]'); I.focus (); return false; //I.value = I.defaultValue; } } function netMaskdigitCheck(I, F) { if (is_NumberRange (I.value, 0, 255) == true) { d = parseInt(I.value, 10); switch (parseInt (I.value)) { case 0: case 128: case 192: case 224: case 240: case 248: case 252: case 254: case 255: break; default: alert('Incorrect NetMask value!'); I.value = I.defaultValue; I.focus(); } } else { alert('Incorrect NetMask value!'); I.value = I.defaultValue; I.focus(); } } function netMaskdigitCheck3(I, F) { netMaskdigitCheck (I, F); } function ValidIP(I1, I2, I3, I4) { var msg = "Illegal IP value !"; var A1 = parseInt(I1.value, 10); var A2 = parseInt(I2.value, 10); var A3 = parseInt(I3.value, 10); var A4 = parseInt(I4.value, 10); if (!is_NumberRange (I1.value, 1, 224) || !is_NumberRange (I2.value, 0, 255) || !is_NumberRange (I3.value, 0, 255) || !is_NumberRange (I4.value, 1, 254)) { alert (msg); return false; } if (((A1 | A2 | A3 | A4) && (!(A1 < 224 && A1 > 0 && A1 != 127) || !(A2 < 256 && A2 >= 0) || !(A3 < 256 && A3 >= 0) || !(A4 < 255 && A4 > 0))) || isNaN(I1.value) || isNaN(I2.value) || isNaN(I3.value) || isNaN(I4.value) ) { alert(msg); return false; } return true; } function FirstIP(I) { if (is_NumberRange (I.value, 1, 223) == false) { alert('Illegal IP value !!!'); I.focus (); return false; } if (parseInt (I.value, 10) == 127) { alert('Illegal IP value !!!'); I.value = I.defaultValue; return false; } return true; } function sel_func(obj, value) { for (i = 0; i < obj.options.length; i++) { if (obj.options[i].value == value) { obj.selectedIndex = i; break; } } } function rad_func(obj, value) { for (i = 0; i < obj.length; i++) if (obj[i].value == value) { obj[i].checked = 1; break; } } function chk_func(obj, value) { if (obj.value == value) obj.checked = 1; } function resetValue(F) { /* for (i = 0; i < F.elements.length; i++) F.elements[i].value = F.elements[i].defaultValue; init(F); */ history.go(0); } function openWin() { window.open('help.htm', 'Help', 'alwaysRaised,resizable,scrollbars,width=400,height=600'); } function choose_enable(obj) { obj.disabled = false; obj.style.backgroundColor = ''; } function choose_disable(obj) { obj.disabled = true; obj.style.backgroundColor = '#e0e0e0'; } function objDisable(F, I, begName, endName) { var num = F.elements.length; for (j = 3; j < num - 3; j++) { if (F.elements[j].name == begName) break; } for (i = j; i < num; i++) { if (I.checked == 1) { choose_disable(F.elements[i]); } else { choose_enable(F.elements[i]); } if (F.elements[i].name == endName) break; } } function show_UI_06() { len = document.UI_06.length; for (i = 0; i < len; i++) document.UI_06[i].src = "/images/UI_06.gif"; } function reload_image(I) { if (I == 0) setTimeout('document.UI_Linksys.src="/images/UI_Linksys.gif"', 300); else if (I == 1) setTimeout('document.UI_Cisco.src = "/images/UI_Cisco.gif"', 300); else if (I == 10) setTimeout('document.UI_10.src = "/images/UI_10.gif"', 250); else if (I == 7) setTimeout('document.UI_07.src = "/images/UI_07.gif"', 250); else if (I == 2) setTimeout('document.UI_03.src = "/images/UI_03.gif"', 250); else if (I == 3) setTimeout('document.UI_02.src = "/images/UI_02.gif"', 250); else if (I == 6) setTimeout('document.UI_06.src = "/images/UI_06.gif"', 250); } function replaceString(fullS, oldS, newS) { // Replaces oldS with newS in the string fullS for (var i=0; i 0xff || sub_addr[1] > 0xff || sub_addr[2] > 0xff || sub_addr[3] > 0xff) return false; if(sub_addr[0] < 128) /* A class */ { if(sub_addr[0] == 0 || sub_addr[0] == 127) return false; host_id = sub_addr[1] * 0x10000 + sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffffff) return false; } else if(sub_addr[0] < 192) /* B class */ { host_id = sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffff) return false; } else if(sub_addr[0] < 224) /* C class */ { host_id = sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xff) return false; } else /* Limit broadcast, Multicast net */ { return false; } return true; } function isValidIP1 (addr) { var sub_addr; var net_id; var host_id; if (addr.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\./) == -1) return false; sub_addr = addr.split(/\./); if(sub_addr.length < 4) return false; if(sub_addr[3] == "*") sub_addr[3] = "1"; else if(sub_addr[3] == "0") sub_addr[3] = "1"; else { if(isNaN(sub_addr[3]) == true) return false; } if (sub_addr[0] > 0xff || sub_addr[1] > 0xff || sub_addr[2] > 0xff || sub_addr[3] > 0xff) return false; if(sub_addr[0] < 128) /* A class */ { if(sub_addr[0] == 0 || sub_addr[0] == 127) return false; host_id = sub_addr[1] * 0x10000 + sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffffff) return false; } else if(sub_addr[0] < 192) /* B class */ { host_id = sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffff) return false; } else if(sub_addr[0] < 224) /* C class */ { host_id = sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xff) return false; } else /* Limit broadcast, Multicast net */ { return false; } return true; } // allow 0.0.0.0 function isValid_Zero_IP (addr) { var sub_addr; var net_id; var host_id; if (addr.search(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) == -1) return false; sub_addr = addr.split(/\./); if (sub_addr[0] > 0xff || sub_addr[1] > 0xff || sub_addr[2] > 0xff || sub_addr[3] > 0xff) return false; if(sub_addr[0] == 0 && sub_addr[1] == 0 && sub_addr[2] == 0 && sub_addr[3] == 0) return true; if(sub_addr[0] < 128) /* A class */ { if(sub_addr[0] == 0 || sub_addr[0] == 127) return false; host_id = sub_addr[1] * 0x10000 + sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffffff) return false; } else if(sub_addr[0] < 192) /* B class */ { host_id = sub_addr[2] * 0x100 + sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xffff) return false; } else if(sub_addr[0] < 224) /* C class */ { host_id = sub_addr[3] * 0x1; if(host_id == 0 || host_id == 0xff) return false; } else /* Limit broadcast, Multicast net */ { return false; } return true; } // parse port range string function parseValueRange(value) { var sub_value, range, sub_range; var i; var value1, value2; // check '*' if(value == null || value.length == 0) return null; if(value.length == 1) { if(value == '*') { range = new Array(1); range[0] = new PORT_RANGE(); range[0].b_port = 1; range[0].e_port = 65535; return range; } } sub_value = value.split(/\,/); range = new Array(sub_value.length); for(i=0; i < sub_value.length; i++) { range[i] = new PORT_RANGE(); sub_range = sub_value[i].split(/\-/); if(sub_range.length == 1) { if(isNaN(sub_range[0]) == true) return null; range[i].b_port = range[i].e_port = sub_range[0]; } else if(sub_range.length == 2) { if(isNaN(sub_range[0]) == false && sub_range[1] == '*') { value1 = new Number(sub_range[0]); range[i].b_port = sub_range[0]; range[i].e_port = 65535; } else { if(isNaN(sub_range[0]) == true || isNaN(sub_range[1]) == true) return null; value1 = new Number(sub_range[0]); value2 = new Number(sub_range[1]); if(value1.valueOf() > value2.valueOf()) { range[i].b_port = sub_range[1]; range[i].e_port = sub_range[0]; } else { range[i].b_port = sub_range[0]; range[i].e_port = sub_range[1]; } } } else return null; } return range; } function parseIPValueRange(value) { var sub_value, range, sub_range; var i; var value1, value2; var sub_addr; // check '*' if(value == null || value.length == 0) return null; if(value.length == 1) { if(value == '*') { range = new Array(1); range[0] = new IP_RANGE(); range[0].ip = "0.0.0.0"; range[0].count = 1; return range; } return null; } sub_value = value.split(/\,/); range = new Array(sub_value.length); for(i=0; i < sub_value.length; i++) { range[i] = new IP_RANGE(); sub_range = sub_value[i].split(/\-/); if(sub_range.length == 1) { if(isValidIP(sub_range[0]) == false) return null; sub_addr = sub_range[0].split(/\./); if(sub_addr[3] == "*") { sub_addr[3] = "1"; range[i].ip = sub_addr[0] + "." + sub_addr[1] + "." + sub_addr[2] + "." + sub_addr[3]; range[i].ip = parseIP(range[i].ip); range[i].count = 254; } else { range[i].ip = sub_addr[0] + "." + sub_addr[1] + "." + sub_addr[2] + "." + sub_addr[3]; range[i].ip = parseIP(range[i].ip); range[i].count = 1; } } else if(sub_range.length == 2) { if(isValidIP(sub_range[0]) == false || isNaN(sub_range[1]) == true ) return null; sub_addr = sub_range[0].split(/\./); value1 = new Number(sub_addr[3]); value2 = new Number(sub_range[1]); if(value1.valueOf() > value2.valueOf()) { range[i].ip = sub_addr[0] + "." + sub_addr[1] + "." + sub_addr[2] + "." + value2.valueOf(); range[i].count = value1.valueOf() - value2.valueOf() + 1; } else { range[i].ip = sub_addr[0] + "." + sub_addr[1] + "." + sub_addr[2] + "." + value1.valueOf(); range[i].count = value2.valueOf() - value1.valueOf() + 1; } } else return null; } return range; } function trueValueToInt(inValue) { //alert("inValue:" + inValue); if (inValue) return 1; else return 0; } function intValueToBool(inValue) { //alert("inValue:" + inValue); if (inValue == 0) return false; else return true; } function isBlank(s) { for(i=0;i255)) return true; else return false; } else { return false; } } function isNValidPort(s) { if((isBlank(s))||(isNaN(s)) || (s>65535) || (s<1)) return true; else return false; } function isValidDomainName (f) { var patt = "abcdefghijklmnopqrstuvwxyz0123456789-_."; var s = f.value.toLowerCase (); var i, j, isOK, numMatch; numMatch = 0; for (i = 0; i < s.length; i++) { isOK = false; for (j = 0; j < patt.length; j ++) { if (s.charAt (i) == patt.charAt (j)) { isOK = true; numMatch++; break; } } } if (s.length > 0) { if (s.length != numMatch) { var msg = "The field must be [0-9], [A-Z], [a-z] and [_-.]."; alert (msg); f.focus (); return false; } } return true; } function getQueryString(key) { var s = document.URL.split("?"); if (s.length == 2) { var ss = s[1].split("&"); for (i=0; i