

function checkIPFormat(address) {
		var IP = address.value;
		if (IP == "N/A")
			return;
		IP = IP.replace(/ /g, "");
		address.value = IP;
		IPsplit = IP.split(".");

		if(IPsplit.length != 4 ) {
				alert("IP format error !");
				address.focus();
				address.value="0.0.0.0";
				return (false);
		}

		for(i = 0; i < 4; i++) {
			if((isNaN(IPsplit[i])) || (IPsplit[i] == 'undefined') || (IPsplit[i] == "")) {
				alert("IP format error !");
				address.focus();
				address.value="0.0.0.0";
				return(false);
			} else {
				if((parseInt(IPsplit[i], 10) > 255) || (parseInt(IPsplit[i], 10) < 0)) {
					alert("IP format error !");
					address.focus();
					address.value="0.0.0.0";
					return(false);
				}
			}
		}	
	}

function SubnetCheck(mask)
	{	
		if ( !((mask.value == "128.0.0.0")||
	     	(mask.value == "192.0.0.0")||
	     	(mask.value == "224.0.0.0")||
	     	(mask.value == "240.0.0.0")||
	     	(mask.value == "248.0.0.0")||
	     	(mask.value == "252.0.0.0")||
	     	(mask.value == "254.0.0.0")||
	     	(mask.value == "255.0.0.0")||
	     	(mask.value == "255.128.0.0")||
	     	(mask.value == "255.192.0.0")||
	     	(mask.value == "255.224.0.0")||
	     	(mask.value == "255.240.0.0")||
	     	(mask.value == "255.248.0.0")||
	     	(mask.value == "255.252.0.0")||
	     	(mask.value == "255.254.0.0")||
	     	(mask.value == "255.255.0.0")||
	     	(mask.value == "255.255.128.0")||
	     	(mask.value == "255.255.192.0")||
	     	(mask.value == "255.255.224.0")||
	     	(mask.value == "255.255.240.0")||
	     	(mask.value == "255.255.248.0")||
	     	(mask.value == "255.255.252.0")||
	     	(mask.value == "255.255.254.0")||
	     	(mask.value == "255.255.255.0")||
	     	(mask.value == "255.255.255.128")||
	     	(mask.value == "255.255.255.192")||
	     	(mask.value == "255.255.255.224")||
	     	(mask.value == "255.255.255.240")||
	     	(mask.value == "255.255.255.248")||
	     	(mask.value == "255.255.255.252")||
	     	(mask.value == "255.255.255.254")) )
		{	alert('Subnet Mask error');
	    	 	mask.value = "0.0.0.0";
	    	 	return(false);
		}    
	}



function chk_num(Event){
	if (event.keyCode < 48 || event.keyCode > 57 ) /* 0-9 */
		event.returnValue = false;
}

function chk_chtNum(event){
	if(event.keyCode == 95)/* _  */
		event.returnValue = true;
	else if (event.keyCode > 96 && event.keyCode < 123 ) /* a-z */
		event.returnValue = true;
	else if (event.keyCode > 64 && event.keyCode < 91 ) /* A-Z */
		event.returnValue = true;
	else if (event.keyCode < 48 || event.keyCode > 57 ) /* 0-9 */
		event.returnValue = false;
	return;
} 

function checkIPRange(address) {
		var IP = address.value;
		if (IP == "N/A")
			return;
		if(IP == "0.0.0.0"){
			alert("0.0.0.0 is not a valid IP address !");
			return(false);
		}			
		IP = IP.replace(/ /g, "");
		address.value = IP;
		IPsplit = IP.split(".");

		if(IPsplit.length != 4 ) {
				alert("IP format error !");
				address.value="0.0.0.0";
				return (false);
		}

		for(i = 0; i < 4; i++) {
			if((isNaN(IPsplit[i])) || (IPsplit[i] == 'undefined') || (IPsplit[i] == "")) {
				alert("IP format error !");
				address.value="0.0.0.0";
				return(false);
			} else {
				if((parseInt(IPsplit[i], 10) > 255) || (parseInt(IPsplit[i], 10) < 0)) {
					alert("IP format error !");
					address.value="0.0.0.0";
					return(false);
				}
			}
		}
		
		if(parseInt(IPsplit[0], 10) > 223){
			alert("IP format error !");
			return(false);
		}		

	}

function HourCheck(I)
{	d =parseInt(I.value, 10);
	if ( !(d<24 && d>=0) )
	{		alert('Hour value is out of range [0 - 23]');			I.value = I.defaultValue;
	}
}

function MinCheck(I)
{	d =parseInt(I.value, 10);
	if ( !(d<60 && d>=0) )
	{		alert('Minute value is out of range [0 - 59]');			I.value = I.defaultValue;
	}
}
function myescape(text) 
{
	var tmp_i=0;
	var tmp_1=0;
	var tmp_2=0;
	var rez="";
	for( i=0; i<text.length; i++ ) {
		tmp_i=text.charCodeAt(i);		
		tmp_1=Math.floor(tmp_i/16);		
		//tmp_2=tmp_i-Math.floor(tmp_i/16)*16;
		tmp_2=tmp_i % 16;		
		if ( tmp_1<10 ) tmp_1=tmp_1+48;
		else		tmp_1=tmp_1+55;
		if ( tmp_2<10 ) tmp_2=tmp_2+48;
		else		tmp_2=tmp_2+55;
		//rez=rez+tmp_1+tmp_2;
		rez=rez+String.fromCharCode(tmp_1)+String.fromCharCode(tmp_2);
	}
	return rez;
}

function encodesimple(text) {
	delta=5;
	var tmp_i=0;
	var passwd="ZyXEL"
	if ( passwd.length==0 ) { outdata=myescape(text); }
	else {
		outdata="";
		for( i=0, j=0; i<text.length; i++, j++ ) {
			if ( j==passwd.length ) j=0;
			tmp_i = text.charCodeAt(i);
			tmp_i+= passwd.charCodeAt(j);
			if ( tmp_i > 255 ) tmp_i=tmp_i-256;
			if ( tmp_i < delta ) {
				outdata = outdata + String.fromCharCode(delta);
				tmp_i+= delta; }
			outdata = outdata + String.fromCharCode(tmp_i);
			}
		outdata=myescape(outdata); }
		return outdata;
}
