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= '0' && str.charAt(i) <= '9') || (str.charAt(i) == '.' ) ) continue; return 0; } return 1; } function maskRule (mask,defname,defVal) { if (mask.value == "") { alert(showText(362) + ' ' + showText(363)); if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } if ( validateKey( mask.value ) == 0 ) { alert(showText(364) + ' ' + showText(365)); if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } if ( !checkMask(mask.value,1, showText(366))) { if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } if ( !checkMask(mask.value,2, showText(367)) ) { if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } if ( !checkMask(mask.value,3, showText(368)) ) { if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } if ( !checkMask(mask.value,4, showText(369)) ) { if (defVal == 1) mask.value = mask.defaultValue; mask.focus(); return false; } return true; } function subnetRule(ip, mask, client, str) { if (client.value!="" && client.value!="0.0.0.0") { if ( !checkSubnet(ip.value, mask.value, client.value)) { alert(showText(370) + str + '!\n' + showText(371)); client.value = client.defaultValue; client.focus(); return false; } } return true; } function checkSubnet(ip, mask, client) { ip_d = getDigit(ip, 1); mask_d = getDigit(mask, 1); client_d = getDigit(client, 1); if ( (ip_d & mask_d) != (client_d & mask_d ) ) return false; ip_d = getDigit(ip, 2); mask_d = getDigit(mask, 2); client_d = getDigit(client, 2); if ( (ip_d & mask_d) != (client_d & mask_d ) ) return false; ip_d = getDigit(ip, 3); mask_d = getDigit(mask, 3); client_d = getDigit(client, 3); if ( (ip_d & mask_d) != (client_d & mask_d ) ) return false; ip_d = getDigit(ip, 4); mask_d = getDigit(mask, 4); client_d = getDigit(client, 4); if ( (ip_d & mask_d) != (client_d & mask_d ) ) return false; return true; }