var BLANK_VALID = true; var BLANK_INVALID = false; var SPACE_VALID = true; var SPACE_INVALID = false var IS_MAC_FLT = true; var IS_NOT_MAC_FLT = false; var ERROR_ENCODE_URL = "(E)(R)(R)(O)(R)!!(R)(O)(R)(R)(E)"; var TYPE_NETWORK_ADDRESS = "NETWORK"; var TYPE_IP_ADDRESS = "IP"; var TYPE_BRCAST_ADDRESS = "BROADCAST"; DISABLED = true; ENABLED = false; function OT_CheckRouteIP(tempelems, descript) { var i, flag = true; var str_array = tempelems.value.split("."); if (tempelems.value.length == 0) return true; for (i=0; i 255) { flag = false; break; } } } else flag = false; } if (flag == false) { alert(descript + " '" + tempelems.value + "' is invalid"); tempelems.focus(); return false; } return true; } function OT_CheckRouteSubnetMask(tempelems, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if (tempelems.type == 'password' || tempelems.type == 'text') { if (tempelems.disabled == false && tempelems.style.display != 'none' && tempelems.value.length !=0 && tempelems.value != '255.255.255.255') { if (isValidSubnetMask(tempelems.value) == false) { alert(descript + " '" + tempelems.value + "' is invalid"); tempelems.focus(); return false; } } } return true; } } function StringToMac(str) { if (str.length != 12) return ""; var s1, s2, s3, s4, s5, s6; s1 = str.substr(0, 2); s2 = str.substr(2, 2); s3 = str.substr(4, 2); s4 = str.substr(6, 2); s5 = str.substr(8, 2); s6 = str.substr(10, 2); return s1 + ":" + s2 + ":" + s3 + ":" + s4 + ":" + s5 + ":" + s6; } function MacToString(str) { var s = ""; var s1 = str.split(":"); if (s1.length != 6) return ""; for(var c=0; c='0'&&c<='9')||(c=='.')) continue; else { if (hasfield) alertInvalid(fieldname,address); return false; } } if ( address == '0.0.0.0' || address == '255.255.255.255' ) { if (hasfield) alertInvalid(fieldname,address); return false; } addrParts = address.split('.'); for (i=0; i < addrParts.length; i++){ addrParts[i] = parseInt(addrParts[i],10); addrParts[i] += ""; } if ( addrParts.length != 4 ) { if (hasfield) alertInvalid(fieldname,address); return false; } for (i = 0; i < 4; i++) { if (isNaN(addrParts[i]) || addrParts[i] =="") { if (hasfield) alertInvalid(fieldname,address); return false; } num = parseInt(addrParts[i],10); if ( num < 0 || num > 255 ) { if (hasfield) alertInvalid(fieldname,address); return false; } if (addrParts[i].length > 3) { if (hasfield) alertInvalid(fieldname,address); return false; } } if ((type == undefined) || (type==TYPE_IP_ADDRESS)) if (parseInt(addrParts[0],10)==0||parseInt(addrParts[3],10)==0) { if (hasfield) alertInvalid(fieldname,address); return false; } else if (type == TYPE_NETWORK_ADDRESS) if (parseInt(addrParts[0],10)==0) { if (hasfield) alertInvalid(fieldname,address); return false; } return true; } function getLeftMostZeroBitPos(num) { var i = 0; var numArr = [128, 64, 32, 16, 8, 4, 2, 1]; for ( i = 0; i < numArr.length; i++ ) if ( (num & numArr[i]) == 0 ) return i; return numArr.length; } function getRightMostOneBitPos(num) { var i = 0; var numArr = [1, 2, 4, 8, 16, 32, 64, 128]; for ( i = 0; i < numArr.length; i++ ) if ( ((num & numArr[i]) >> i) == 1 ) return (numArr.length - i - 1); return -1; } function isValidSubnetMask(mask,fieldname) { var i = 0, num = 0; var zeroBitPos = 0, oneBitPos = 0; var zeroBitExisted = false; var c = ''; var hasField = false; if (fieldname != undefined) hasField = true; for (i = 0; i < mask.length; i++) { c = mask.charAt(i); if((c>='0'&&c<='9')||(c=='.')) continue; else { if (hasField) alertInvalid(fieldname,mask); return false; } } if ( mask == '0.0.0.0' ) { if (hasField) alertInvalid(fieldname,mask); return false; } maskParts = mask.split('.'); if ( maskParts.length != 4 ) { if (hasField) alertInvalid(fieldname,mask); return false; } for (i=0; i 255 ) { if (hasField) alertInvalid(fieldname,mask); return false; } if ( zeroBitExisted == true && num != 0 ) { if (hasField) alertInvalid(fieldname,mask); return false; } zeroBitPos = getLeftMostZeroBitPos(num); oneBitPos = getRightMostOneBitPos(num); if ( zeroBitPos < oneBitPos ) { if (hasField) alertInvalid(fieldname,mask); return false; } if ( zeroBitPos < 8 ) zeroBitExisted = true; } if (parseInt(maskParts[0])==0) { if (hasField) alertInvalid(fieldname,mask); return false; } if (parseInt(maskParts[3])>=255) { if (hasField) alertInvalid(fieldname,mask); return false; } return true; } function isValidPort(port,fieldname) { var fromport = 0; var toport = 100; var hasField = false; if (fieldname != undefined) hasField = true; portrange = port.split(':'); if ( portrange.length < 1 || portrange.length > 2 ) { { if (hasField) alertInvalid(fieldname,port); return false; } } if ( isNaN(portrange[0]) ) { if (hasField) alertInvalid(fieldname,port); return false; } fromport = (portrange[0] * 1); if ( portrange.length > 1 ) { if ( isNaN(portrange[1]) ) { if (hasField) alertInvalid(fieldname,port); return false; } toport = (portrange[1] * 1); if ( toport <= fromport ) { if (hasField) alertInvalid(fieldname,port); return false; } } if ( fromport < 1 || fromport > 65535 || toport < 1 || toport > 65535 ) { if (hasField) alertInvalid(fieldname,port); return false; } return true; } function isValidNatPort(port) { var fromport = 0; var toport = 100; portrange = port.split('-'); if ( portrange.length < 1 || portrange.length > 2 ) { return false; } if ( isNaN(portrange[0]) ) return false; fromport = (portrange[0] * 1); if ( portrange.length > 1 ) { if ( isNaN(portrange[1]) ) return false; toport = (portrange[1] * 1); if ( toport <= fromport ) return false; } if ( fromport < 1 || fromport > 65535 || toport < 1 || toport > 65535 ) return false; return true; } function isValidMacAddress(address,ismacflt,fieldname) { var c = ''; var i = 0, j = 0; var hasField; var additionalComment = " Eg. 11:22:33:AA:BB:CC"; if (fieldname != undefined) hasField = true; if ((ismacflt == undefined) || (ismacflt == false)){ if (( address.toLowerCase() == 'ff:ff:ff:ff:ff:ff' ) || ( address.toLowerCase() == '00:00:00:00:00:00' )){ if (hasField) alertInvalid(fieldname,address,additionalComment); return false; } } addrParts = address.split(':'); if ( addrParts.length != 6 ) { if (hasField) alertInvalid(fieldname,address,additionalComment); return false; } for (i = 0; i < 6; i++) { if ( addrParts[i] == '' ){ if (hasField) alertInvalid(fieldname,address,additionalComment); return false; } if (addrParts[i].length != 2){ if (hasField) alertInvalid(fieldname,address,additionalComment); 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 { if (hasField) alertInvalid(fieldname,address,additionalComment); return false; } } } return true; } function isValidMacAddress1(address) { var c = ''; var i = 0, j = 0; if (address.length != 12) return false; for ( j = 0; j < address.length; j++ ) { c = address.toLowerCase().charAt(j); if ( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') ) continue; else return false; } return true; } function isVaildHexDigits(str) { var j = 0; for ( j = 0; j < str.length; j++ ) { c = str.toLowerCase().charAt(j); if ( (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') ) continue; else return false; } return true; } function isValidIPOrDomainName(str) { var i; var str_array = str.split("."); for (i=0; i=1) browser = "fire"; } else if (!do_checkstr('compatible')) { browser = "nets" } else browser = "unknown"; if (browser != "unknown") if (!OS) { if (do_checkstr('linux')) OS = "lin"; else if (do_checkstr('x11')) OS = "uni"; else if (do_checkstr('mac')) OS = "mac" else if (do_checkstr('win')) OS = "win" else OS = "unknown"; } browseVer = browser + OS; return browseVer; } function do_checkstr(string) { var detect = navigator.userAgent.toLowerCase(); place = detect.indexOf(string) + 1; thestring = string; return place; } function alertInvalid(fieldname, fieldvalue, additional) { if (additional == undefined) alert (fieldname + " " + fieldvalue + " is invalid"); else alert (fieldname + " " + fieldvalue + " is invalid " + additional); } function OT_ChangeBlockState(idname, status) { var i,currentcolor; var OS = GetBrowserOS(); var tempelems = document.getElementById(idname).getElementsByTagName("*"); status = !status; if (status == false) currentcolor = "black"; else currentcolor = "#aca899"; for (i = 0; i < tempelems.length;i++){ if (tempelems[i].type != undefined && tempelems[i].type) { if (tempelems[i].disabled != undefined) tempelems[i].disabled = status; if (OS.indexOf("msie")!= -1){ if (tempelems[i].style.color) tempelems[i].style.color = currentcolor; } else{ if (tempelems[i].style.color != undefined) tempelems[i].style.color = currentcolor; } } } var tempelems = document.getElementById(idname); if (tempelems.disabled != undefined) tempelems.disabled = status; if (OS.indexOf("msie")!= -1){ if (tempelems.style.color) tempelems.style.color = currentcolor; } else{ if (tempelems.style.color != undefined) tempelems.style.color = currentcolor; } } function OT_ChangeBlockDisplay(idname, status) { var i,currentcolor; var OS = GetBrowserOS(); var tempelems = document.getElementById(idname).getElementsByTagName("*"); OT_ChangeBlockState(idname, status); if (status) document.getElementById(idname).style.display = "block"; else document.getElementById(idname).style.display = "none"; } function OT_ClearAllItem(idname) { with ( document.forms[0] ) { var tempelems = idname.getElementsByTagName("*"); for (i = 0; i < tempelems.length;i++){ var re1 = /^ot_add_+[a-zA-Z0-9_]+$/; if (re1.test(tempelems[i].name) ) { if (tempelems[i].type == 'text') tempelems[i].value = ""; else if (tempelems[i].type == 'select-one') { if (tempelems[i].options.length > 0) tempelems[i].options[0].selected = true; } else if (tempelems[i].type == 'checkbox' || tempelems[i].type == 'radio') tempelems[i].checked = false; } } } } function OT_GetKeyNameElements(item_name, no) { with ( document.forms[0] ) { if (no <= 0) return elements[item_name]; return elements[item_name + "_" + no]; } } function OT_GetKeyName(item_name, no) { with ( document.forms[0] ) { if (no <= 0) return String(item_name); return String(item_name + "_" + no); } } function OT_HtmlToBoolean(value) { if (value.length != 0) { if (value.toLowerCase() == 'true' || value == '1') return true; } return false; } function OT_HtmlToNumber(value) { if (value.length != 0) { var re1 = /^[0-9-]+$/; if (re1.test(value) ) return Number(value); } return 0; } function OT_HtmlToString(value) { return value != ' ' ? value : ''; } function OT_InsertCell(row, index, value) { var cell = row.insertCell(index); cell.className = 'content'; cell.colSpan = 1; cell.align = "center"; cell.innerHTML = value; cell.innerHTML = cell.innerHTML.length ? cell.innerHTML : " "; return cell; } function OT_CheckBlockDisplay(tempelems) { for (i = 0; i < tempelems.length;i++){ if (tempelems[i].style.display == "none") OT_ChangeBlockDisplay(tempelems[i].id, false); } } function OT_ErrorFix(table) { var error_fix = 0; OT_InsertCell(table.rows[0], table.rows[0].cells.length, '0').style.display = "none";; OT_InsertCell(table.rows[0], table.rows[0].cells.length, '1').style.display = "none";; if (table.rows[0].cells[table.rows[0].cells.length - 1].innerHTML != '1' || table.rows[0].cells[table.rows[0].cells.length].innerHTML != '0') error_fix = 1; return error_fix; } function OT_DoCheck(tempelems) { with ( document.forms[0] ) { if (tempelems.type == 'password' || tempelems.type == 'text') { if (tempelems.disabled == false && tempelems.style.display != 'none') { return true; } } return false; } } function OT_DoCheck1(tempelems) { with ( document.forms[0] ) { if (tempelems.type == 'password' || tempelems.type == 'text') { if (tempelems.disabled == false && tempelems.style.display != 'none' && tempelems.value.length != 0) { return true; } } return false; } } function OT_CheckStringMustBeFilledOut(tempelems, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( tempelems.length == undefined) { if (OT_DoCheck(tempelems) == true) { if (tempelems.value.length == 0) { alert(descript + " must be filled out"); tempelems.focus(); return false; } } } else { for(var z=0; z= 0) { alert(descript + " '" + tempelems.value + "' can not inter-spaces"); tempelems.focus(); return false; } } } else { for(var z=0; z= 0) { alert(descript + " '" + tempelems[z].value + "' can not inter-spaces"); tempelems[z].focus(); return false; } } } } return true; } } function OT_CheckConfirmPassword(tempelems, tempelems1, descript) { with ( document.forms[0] ) { if ( !tempelems || !tempelems1) { return false; } if (OT_DoCheck(tempelems) == true && OT_DoCheck(tempelems1) == true) { if (tempelems.value != tempelems1.value) { alert(descript + " is not confirmed"); tempelems.focus(); return false; } } return true; } } function OT_CheckPasswordUnchanged(tempelems, tempelems1, pass) { with ( document.forms[0] ) { if ( !tempelems || !tempelems1) { return false; } if (tempelems.value == pass) { tempelems.disabled = true; tempelems1.disabled = true; } return true; } } function OT_CheckIP(tempelems, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( tempelems.length == undefined) { if (OT_DoCheck1(tempelems) == true) { if (isValidIpAddress(tempelems.value) == false) { alert(descript + " '" + tempelems.value + "' is invalid"); tempelems.focus(); return false; } } } else { for(var z=0; z Number(max_value) || Number(tempelems.value) < Number(min_value)) { alert(descript + " '" + tempelems.value + "' should be between " + min_value + " and " + max_value); tempelems.focus(); return false; } } } else { for(var z=0; z Number(max_value) || Number(tempelems[z].value) < Number(min_value)) { alert(descript + " '" + tempelems[z].value + "' should be between " + min_value + " and " + max_value); tempelems[z].focus(); return false; } } } } if (hidden_tempelems) hidden_tempelems.disable = tempelems.checked; return true; } } function OT_CheckRangeWithZero(tempelems, descript, max_value, min_value) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } var hidden_tempelems = elements["ot_hidden_" + tempelems.name]; var re1 = /^[0-9-]+$/; if ( tempelems.length == undefined) { if (OT_DoCheck1(tempelems) == true) { if (tempelems.value.length <= 0 || ( (!re1.test(tempelems.value) || Number(tempelems.value) > Number(max_value) || Number(tempelems.value) < Number(min_value)) && Number(tempelems.value) != 0 )) { alert(descript + " '" + tempelems.value + "' should be between " + min_value + " and " + max_value + ", or zero"); tempelems.focus(); return false; } } } else { for(var z=0; z Number(max_value) || Number(tempelems[z].value) < Number(min_value)) && Number(tempelems[z].value) != 0 )) { alert(descript + " '" + tempelems[z].value + "' should be between " + min_value + " and " + max_value + ", or zero"); tempelems[z].focus(); return false; } } } } if (hidden_tempelems) hidden_tempelems.disable = tempelems.checked; return true; } } function OT_CheckDigits(tempelems, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } var hidden_tempelems = elements["ot_hidden_" + tempelems.name]; var re1 = /^[0-9-]+$/; if ( tempelems.length == undefined) { if (OT_DoCheck1(tempelems) == true) { if (!re1.test(tempelems.value)) { alert(descript + " '" + tempelems.value + "' must contains only digits"); tempelems.focus(); return false; } } } else { for(var z=0; z Number(tempelems1.value)) { alert(descript + " '" + tempelems.value + "' should be smaller than " + descript1 + " '" + tempelems1.value + "'"); tempelems.focus(); return false; } } return true; } } function OT_CheckIPLessThan(tempelems, descript, tempelems1, descript1) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( !tempelems1 ) { return false; } if (isValidIpAddress(tempelems.value) == false) { return false; } if (isValidIpAddress(tempelems1.value) == false) { return false; } if (OT_DoCheck1(tempelems) == true && OT_DoCheck1(tempelems1) == true) { var value1 = Number(tempelems.value.split(".")[3]); var value2 = Number(tempelems1.value.split(".")[3]); if (Number(value1) > Number(value2)) { alert(descript + " '" + tempelems.value + "' should be smaller than " + descript1 + " '" + tempelems1.value + "'"); tempelems.focus(); return false; } } return true; } } function OT_CheckMoreThan(tempelems, descript, tempelems1, descript1) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( !tempelems1 ) { return false; } if (OT_CheckDigits(tempelems) == false) { return false; } if (OT_CheckDigits(tempelems1) == false) { return false; } if (OT_DoCheck1(tempelems) == true && OT_DoCheck1(tempelems1) == true) { if (Number(tempelems.value) < Number(tempelems1.value)) { alert(descript + " '" + tempelems.value + "' should be greater than " + descript1 + " '" + tempelems1.value + "' Hz"); tempelems.focus(); return false; } } return true; } } function OT_CheckIPMoreThan(tempelems, descript, tempelems1, descript1) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( !tempelems1 ) { return false; } if (isValidIpAddress(tempelems.value) == false) { return false; } if (isValidIpAddress(tempelems1.value) == false) { return false; } if (OT_DoCheck1(tempelems) == true && OT_DoCheck1(tempelems1) == true) { var value1 = Number(tempelems.value.split(".")[3]); var value2 = Number(tempelems1.value.split(".")[3]); if (Number(value1) < Number(value2)) { alert(descript + " '" + tempelems.value + "' should be greater than " + descript1 + " '" + tempelems1.value + "'"); tempelems.focus(); return false; } } return true; } } function OT_CheckWepKey64(tempelems, tempelems1, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( tempelems.length == undefined) { if (OT_DoCheck1(tempelems) == true) { if (tempelems.name.length <= 4) { if (tempelems1.selectedIndex == 0) { if (tempelems.value.length != 5) { alert(descript+" must be 5 characters"); tempelems.focus(); return false; } } else if (tempelems1.selectedIndex == 1) { if (tempelems.value.length != 10 || isVaildHexDigits(tempelems.value) == false) { alert(descript+" must be 10 hex digits"); tempelems.focus(); return false; } } } else if (tempelems.value.length != 0) { if (tempelems1.selectedIndex == 0) { if (tempelems.value.length != 5) { alert(descript+" must be 5 characters"); tempelems.focus(); return false; } } else if (tempelems1.selectedIndex == 1) { if (tempelems.value.length != 10 || isVaildHexDigits(tempelems.value) == false) { alert(descript+" must be 10 hex digits"); tempelems.focus(); return false; } } } } } else { for(var z=0; z Number(max_value)) { alert(descript); tempelems.focus(); return false; } } else { if (tempelems.value.length != Number(max_value) || isVaildHexDigits(tempelems.value) == false) { alert(descript); tempelems.focus(); return false; } } } return true; } } function OT_CheckPptpIP(tempelems, descript) { with ( document.forms[0] ) { if ( !tempelems ) { return false; } if ( tempelems.length == undefined) { if (OT_DoCheck1(tempelems) == true) { if (tempelems.value != '0.0.0.0') { if (isValidIpAddress(tempelems.value) == false) { alert(descript + " '" + tempelems.value + "' is invalid"); tempelems.focus(); return false; } } } } else { for(var z=0; z= Number(from_1.value) && voip_listen_port <= Number(to_1.value))) { alert("Port Range [" + Number(from_1.value) + " - " + Number(to_1.value) + "] Overlaps [" + voip_listen_port + "]"); from_1.focus(); return false; } if ((voip_udp_port_base >= Number(from_1.value) && voip_udp_port_base <= Number(to_1.value)) || (voip_udp_port_max >= Number(from_1.value) && voip_udp_port_max <= Number(to_1.value)) || (Number(from_1.value) >= voip_udp_port_base && Number(from_1.value) <= voip_udp_port_max) || (Number(to_1.value) >= voip_udp_port_base && Number(to_1.value) <= voip_udp_port_max)) { alert("Port Range [" + Number(from_1.value) + " - " + Number(to_1.value) + "] Overlaps [" + voip_udp_port_base + " - " + voip_udp_port_max + "]"); from_1.focus(); return false; } return true; } }