// English, German, French, Spanish, Chinese, Italian, Simple Chinese
var languageMap = new Array("english","german","french","spanish","chinese","italian","simplechinese");
var languageIndex = 0;
var sysOPMode=0;
var apMode=0;
var sysOPMode_AR = 0;
var sysOPMode_AP = 2;
includeModelInformation();
function includeModelInformation()
{
dw('');
includeLanguage();
}
function setWebTitle()
{
dw('
.:: Welcome to ZyXEL ' + ModelName + ' (' + systemName + ') ::.');
}
function includeLanguage()
{
var src = "language_" + languageMap[languageIndex] + ".js";
dw('');
}
var IP_REGX = new RegExp("^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-2][0-3])\\.(\\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-4])$");
var MULTICAST_IP_REGX = new RegExp("^(22[4-9]|2[3-4][0-9]|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 SUBMASK_REGX = new RegExp("^1*0*$");
var HOST_NAME_REGX = new RegExp("^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}$");
function dw(str)
{
document.write(str+'\n');
}
function setFocus(field)
{
field.value = field.defaultValue;
field.focus();
return;
}
function checkDigitRange(value, minValue, maxValue)
{
if(value <= maxValue && value >= minValue)
return true;
return false;
}
function checkMACAddress(str)
{
if(str.length < 12)
return false;
if(str.charAt(0) != '0' || str.charAt(1) != '0')
return false;
if(str.length == 12)
{
for(var i=2;i= '0' && str.charAt(i) <= '9') ||
(str.charAt(i) >= 'a' && str.charAt(i) <= 'f') ||
(str.charAt(i) >= 'A' && str.charAt(i) <= 'F') )
continue;
else
return false;
}
}
else if(str.length == 17)
{
for(var i=2;i= '0' && str.charAt(i) <= '9') ||
(str.charAt(i) >= 'a' && str.charAt(i) <= 'f') ||
(str.charAt(i) >= 'A' && str.charAt(i) <= 'F') )
{
continue;
}
else if(i!=2 && i!= 5 && i != 8 && i != 11 && i != 14)
{
return false;
}
}
}
else
return false;
return true;
}
function checkIPAddr(ip)
{
if(!IP_REGX.test(ip.value))
return false;
/*
if(MULTICAST_IP_REGX.test(ip.value))
return false;
if(validateKey(field.value) == 0)
return false;
if(!checkDigitRange(field.value,1,1,255))
return false;
if(!checkDigitRange(field.value,2,0,255))
return false;
if(!checkDigitRange(field.value,3,0,255))
return false;
if(!checkDigitRange(field.value,4,1,254))
return false;
*/
return true;
}
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;i= '0' && str.charAt(i) <= '9') ||
(str.charAt(i) == '.' ) )
continue;
return 0;
}
return 1;
}
function checkDigitRange(str, num, min, max) {
d = getDigit(str,num);
if ( d > max || d < min )
return false;
return true;
}
/*
function checkIPAddr(field)
{
if ( validateKey(field.value) == 0)
return false;
if ( !checkDigitRange(field.value,1,1,255))
return false;
if ( !checkDigitRange(field.value,2,0,255))
return false;
if ( !checkDigitRange(field.value,3,0,255))
return false;
if ( !checkDigitRange(field.value,4,1,254))
return false;
return true;
}
*/
function checkStaRoutingIPAddr(field)
{
if ( validateKey(field.value) == 0)
return false;
if ( !checkDigitRange(field.value,1,1,254))
return false;
if ( !checkDigitRange(field.value,2,0,254))
return false;
if ( !checkDigitRange(field.value,3,0,254))
return false;
if ( !checkDigitRange(field.value,4,0,254))
return false;
return true;
}
function checkMaskAddr(field)
{
if ( validateKey(field.value) == 0)
return false;
if ( !checkDigitRange(field.value,1,1,255))
return false;
if ( !checkDigitRange(field.value,2,0,255))
return false;
if ( !checkDigitRange(field.value,3,0,255))
return false;
if ( !checkDigitRange(field.value,4,0,255))
return false;
return true;
}
/*
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 isRange(value, minValue, maxValue)
{
if(value <= maxValue && value >= minValue)
return true;
else
return false;
}
//----------------------------------------------------------------
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 showSpacedText(str)
{
str=str.replace(/ /g," ");
return str;
}
function showRevSpacedText(str)
{
str=str.replace(/ /g," ");
return str;
}