var MultiLanguage = 0;
function IPFirstCheck ( I )
{
	if ( isNaN( I.value ))
	{
	//	alert("Invalid value for IP address !");
      	alert(mavis_str(Alert_Msg_30));
		I.focus();
		return false;
	}	

	d = parseInt ( I.value , 10 );

	if ( !(d<256 && d>0)) 
	{
	//	alert("IP is out of range in [0-255] !");
      	alert(mavis_str(Alert_Msg_31));
		I.focus();	
		return false;
	}
	return true;
}

function IPCheck ( I )
{
	if ( isNaN( I.value ))
	{
	//	alert("Invalid value for IP address !");
       	alert(mavis_str(Alert_Msg_30));
		I.focus();
		return false;
	}	

	//d = parseInt ( I.value , 10 );
	d = I.value;
	data = d.match(/[^0-9]/g);
	if (data || !d) {
		alert("Please input number!");
		I.focus();
		return false;
	}

	if ( !(d<256 && d>=0)) 
	{
	//	alert("IP is out of range in [0-255] !");
          alert(mavis_str(Alert_Msg_31));
		I.focus();	
		return false;
	}
	return true;
}

function IPCheck1 ( I )
{
	//d = parseInt ( I.value , 10 );
	d = I.value;
	if(I.value=="")
		return true;	
	else {
		data = d.match(/[^0-9]/g);
		if (data || !d) {
			alert("Please input number!");
			I.focus();
			return false;
		}
	
		if ( !(d<256 && d>=0)) 
		{
		//	alert("IP is out of range in [0-255] !");
	          alert(mavis_str(Alert_Msg_31));
			I.focus();	
			return false;
		}
		return true;
	}
}
function IPSCheck (passForm, I )
{
	for (var i=1; i<=4; i++)
	{
		var obj = eval("passForm." + I + "_" + i);
		d = parseInt ( obj.value, 10 );

		if ( !(d<256 && d>=0) || isNaN(d) ) 
		{
		//	alert("IP range is out of range in [0-255] !");
                  alert(mavis_str(Alert_Msg_32));
			obj.focus();
			return false;
		}
	}
	return true;
}
function ToUpperCase ( string )
{
	var	key = string;

	string = "";
	for ( iln = 0 ; iln < key.length ; iln++ ) {
      		ch = key.charAt(iln).toUpperCase();
		string = string + ch;
	}

	return string;
}
function SpaceCheck ( I )
{
	for ( iln = 0 ; iln < I.value.length ; iln++ ) 
	{
    ch = I.value.charAt(iln).toLowerCase();
		//alert("ch is:["+ ch +"]");
	  if (ch == ' ') 
		{
	    alert ("Domain name can't input with space!");
	    I.focus();
	    return false;
	  }
	}	
	return true;
}
function MACheck ( I )
{
	if ( I.length == 1 ) {
		I.value = '0' + I.value;
	}

	I.value = ToUpperCase ( I.value );
	
	for ( iln = 0 ; iln < I.value.length ; iln++ ) 
	{
    ch = I.value.charAt(iln).toLowerCase();
		//alert("ch is:["+ ch +"]");
	  if (ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f' || ch==':') 
		{}
	  	else 
		{
	    //	alert ("Invalid hex value " + ch + " found in MAC address " + I.value);
      alert (mavis_str(Alert_Msg_33) + " " + ch + " " + mavis_str(Alert_Msg_34) + I.value);
	    return false;
	  }
	}	

	d = parseInt ( I.value , 16 );

	if ( !(d<256 && d>=0) ) {
	//	alert('MAC is out of range [00 - FF]');
        alert(mavis_str(Alert_Msg_35));
		I.focus();		
		return false;
	} else {
		return true;
	}
}
function PortCheck(I)
{
	d =parseInt(I.value, 10);
	if ( !( d<65536 && d>=0)|| isNaN(d) )		
	{
	//	alert('Port is out of range [0 - 65535]');
        	alert(mavis_str(Alert_Msg_36));
		I.focus();
		I.value = I.defaultValue;
		return 0;
	}
	return 1;
}
function PortCheck1(I)
{	
	if(I.value=="")
		return 1;	
	else {
		d =parseInt(I.value, 10);
		if ( !( d<65536 && d>=0) )		
		{
		//	alert('Port is out of range [0 - 65535]');
	        	alert(mavis_str(Alert_Msg_36));
			I.focus();
			I.value = I.defaultValue;
			return 0;
		}
		return 1;
	}
}
function GetIPSegment ( IPString , SegmentNum )
{
	var	DMZ = IPString;
	var	Counter = 0;

	IPString = "";
	if (DMZ=="")
		return "0";
	for ( iln = 0 ; iln < DMZ.length ; iln++ ) {
      		ch = DMZ.charAt ( iln );
		if ( ch != '.' ) { IPString = IPString + ch; }
		else {
			Counter = Counter + 1;

			if ( Counter == SegmentNum ) { break; }
			else { IPString = ""; }
		}
	}

	return IPString;
}

function GetMACSegment ( MACString , SegmentNum )
{
	var	MAClone = MACString;
	var	Counter = 0;

	MACString = "";

	for ( iln = 0 ; iln < MAClone.length ; iln++ ) {
      		ch = MAClone.charAt ( iln );
		if ( ch != ':' ) { MACString = MACString + ch; }
		else {
			Counter = Counter + 1;

			if ( Counter == SegmentNum ) { break; }
			else { MACString = ""; }
		}
	}

	return MACString;
}

function CheckIPs(ipstr)
{
	var ips = ipstr.match(/(\d+).(\d+).(\d+).(\d+)/);
	for (i=1; i<ips.length; i++)
	{
		var num = parseInt(ips[i], 10);
		if (!(num>=0 && num<=255) || isNaN(num))
		{	
      //alert("Please enter IP address range in [0-255]!");
           alert(mavis_str(Alert_Msg_37));
			return 0;
		}
	}
	return 1;
}
function CheckConflictSubnetVLAN(passForm, ipstr1, maskstr1, ipstr2, maskstr2, errstr)
{
	var wanipnet = new Array(3);
	var lanipnet = new Array(3);
	
	wan_mask1 = parseInt(GetIPSegment(maskstr2, 1), 10).toString(2);
	wan_mask2 = parseInt(GetIPSegment(maskstr2, 2), 10).toString(2);
	wan_mask3 = parseInt(GetIPSegment(maskstr2, 3), 10).toString(2);
	wan_mask4 = parseInt(GetIPSegment(maskstr2, 4), 10).toString(2);
	wan_netmask = wan_mask1;
	wan_netmask = wan_netmask + wan_mask2;
	wan_netmask = wan_netmask + wan_mask3;
	wan_netmask = wan_netmask + wan_mask4;
	
	lan_mask1 = parseInt(GetIPSegment(passForm.lan_netmask.value, 1), 10).toString(2);
	lan_mask2 = parseInt(GetIPSegment(passForm.lan_netmask.value, 2), 10).toString(2);
	lan_mask3 = parseInt(GetIPSegment(passForm.lan_netmask.value, 3), 10).toString(2);
	lan_mask4 = parseInt(GetIPSegment(passForm.lan_netmask.value, 4), 10).toString(2);
	lan_netmask = lan_mask1;
	lan_netmask = lan_netmask + lan_mask2;
	lan_netmask = lan_netmask + lan_mask3;
	lan_netmask = lan_netmask + lan_mask4;
  
	if(wan_netmask > lan_netmask)
	{
		maskstr1 = maskstr2;
	}
	else
	{
		maskstr2 = maskstr1;
	}
	
	for (var i=1; i<=4; i++)
	{
		wanipnet[i-1] = GetIPSegment(eval("passForm." +ipstr1+ "_" + i).value, i) & GetIPSegment(eval("passForm." + maskstr1 + "_" + i).value, i);
		lanipnet[i-1] = GetIPSegment(ipstr2,i) & GetIPSegment(eval("passForm." + maskstr2 + "_" + i).value, i);
		
		if (wanipnet[i-1] != lanipnet[i-1])
		{
			return 1;
		}		
	}

	alert(errstr);
	eval("passForm."+ipstr1 + "_1").focus();
	return 0;
}

function checkPort(start, end)
{
	var port;
	if (start.value==0&&end.value==0)
		return true;
	port = end.value - start.value;

	if(port < 0 || isNaN(port))
	{
	//	alert('Invalid Port Range: Start port number must be less than or equal end port number.');
         alert(mavis_str(Alert_Msg_38));
		start.focus();
		return false;
	}

	return true;
}
function ignoreSpaces(string) {
  var temp = "";

  string = '' + string;
  splitstring = string.split(" ");
  for(i = 0; i < splitstring.length; i++)
    temp += splitstring[i];
  return temp;
}

function macsCheck(oldmac)
{
	var mac = ignoreSpaces(oldmac.value);
  	oldmac.value = mac;
  	
  	if (mac == null || mac == "" || mac == "00:00:00:00:00:00")
  		return 1;
  
	var m = new Array();
	if 	(mac.indexOf(":")==-1)
	{
		if (mac.length != 12)
  		{
    	//	alert("Invalid MAC address format");
         	alert(mavis_str(Alert_Msg_39));
    		return false;
    	}
    	for (var i=0; i<6; i++)
    		m[i] = mac.substring(i*2, (i+1)*2);
	}
	else
	{
  		m = mac.split(":");
  		if (mac.length != 17 || m.length != 6) 
  		{
    	//	alert("Invalid MAC address format");
              	alert(mavis_str(Alert_Msg_39));
    		return false;
    	}
  	}

//  	if ((m[0] & 1) ||
//	 ((m[0] & m[1] & m[2] & m[3] & m[4] & m[5]) == 0xff) ||
//	 ((m[0] | m[1] | m[2] | m[3] | m[4] | m[5]) == 0x00)) 
//	 {
//		alert("Not a MAC address!");
//		return;
//     }

    if (
                (parseInt(m[0],16) & 1) ||
                (
                        (parseInt(m[0],16) & parseInt(m[1],16) &
                         parseInt(m[2],16) & parseInt(m[3],16) &
                         parseInt(m[4],16) & parseInt(m[5],16)) == 0xff) ||
         ((parseInt(m[0],16) | parseInt(m[1],16) | parseInt(m[2],16) | parseInt(m[3],16) | parseInt(m[4],16) | parseInt(m[5],16)) == 0x00))
         {
           //     alert("Not a MAC address !");
        alert(mavis_str(Alert_Msg_59));
                return;
    }
    
  for (var i=0; i<m.length; i++) {
    nameVal = m[i];
	len = nameVal.length;
	if (len < 1 || len > 2) {
	  //alert ("The WAN MAC Address is not correct!!");
       alert(mavis_str(Alert_Msg_40));
	  return false;
    }
	for(iln = 0; iln < len; iln++) {
      ch = nameVal.charAt(iln).toLowerCase();
	  if (ch >= '0' && ch <= '9' || ch >= 'a' && ch <= 'f') {
	  }
	  else {
				//alert ("Invalid hex value " + nameVal + " found in MAC address " + oldmac.value);
       alert (mavis_str(Alert_Msg_33) + " " + nameVal + mavis_str(Alert_Msg_34) + oldmac.value);
	  return false;
	  }
	}	
   }
	//add :
	if 	(mac.indexOf(":")==-1)
	{
		oldmac.value = "";
	    for (var i=0; i<6; i++)
    	{
    		if (i!=5)
    			oldmac.value += (mac.substring(i*2, (i+1)*2) + ":");
    		else
    			oldmac.value += mac.substring(i*2, (i+1)*2);
    	}
	}
  return true;
}

function ShowSubnet(ipaddr, netmask, flag)
{
	var ip1 = GetIPSegment(ipaddr, 1);
	var ip2 = GetIPSegment(ipaddr, 2);
	var ip3 = GetIPSegment(ipaddr, 3);
	var ip4 = GetIPSegment(ipaddr, 4);
	
	var mask1 = GetIPSegment(netmask, 1);
	var mask2 = GetIPSegment(netmask, 2);
	var mask3 = GetIPSegment(netmask, 3);
	var mask4 = GetIPSegment(netmask, 4);
	
	var net1 = ip1 & mask1;
	var net2 = ip2 & mask2;
	var net3 = ip3 & mask3;
	var net4 = ip4 & mask4;
	
	if (flag=="head")
		document.write(net1 + " . " + net2 + " . " + net3 + " . ");
	else if (flag=="all")
		document.write(net1 + " . " + net2 + " . " + net3 + " . " + net4);
	else
		return (net1 + "." + net2 + "." + net3 + "." + net4);
	
}

function CheckEmpty(obj, str)
{
	if (obj.value == "")
	{
		if (str != "")
		{		
			alert(str);
			obj.focus();
		}
		return 0;	
	}
	return 1;
}
function SpiltIP(IPAddress,SegmentSeq)
{
	var	DotPos_1 = 0;
	var	DotPos_2 = 0;
	var	DotPos_3 = 0;
	var	StartPos = 0;
	var	EndPos = 0;
	var	SegmentIP = '';

	for ( iln = 0 ; iln < IPAddress.length ; iln++ ) {
      		ch = IPAddress.charAt(iln).toLowerCase();

      		if (( ch == '.' ) && ( DotPos_1 == 0 ) && ( DotPos_2 == 0 ) && ( DotPos_3 == 0 )) {
      			DotPos_1 = iln;
      		} else if (( ch == '.' ) && ( DotPos_1 != 0 ) && ( DotPos_2 == 0 ) && ( DotPos_3 == 0 )) {
      			DotPos_2 = iln;
      		} else if (( ch == '.' ) && ( DotPos_1 != 0 ) && ( DotPos_2 != 0 ) && ( DotPos_3 == 0 )) {
      			DotPos_3 = iln;
      			break;
      		}
	}

	if ( SegmentSeq == 1 ) {
		StartPos = 0;
		EndPos = DotPos_1;
	} else if ( SegmentSeq == 2 ) {
		StartPos = DotPos_1 + 1;
		EndPos = DotPos_2;
	} else if ( SegmentSeq == 3 ) {
		StartPos = DotPos_2 + 1;
		EndPos = DotPos_3;
	} else if ( SegmentSeq == 4 ) {
		StartPos = DotPos_3 + 1;
		EndPos = IPAddress.length;
	}

	for ( iln = StartPos ; iln < EndPos ; iln++ ) {
      		ch = IPAddress.charAt(iln).toLowerCase();
		SegmentIP = SegmentIP + ch;
	}

	return SegmentIP;
}
function SplitIPS(passForm, ipname, ipvalue, index)
{
	for (var i=1; i<=4; i++)
	{
		eval("passForm."+ipname + "_" + i).value = GetIPSegment(ipvalue.value, i);
	}
}

function CombineIPS(passForm, ipname, ipvalue)
{
	
}

function CheckConflictSubnet(passForm, ipstr1, maskstr1, ipstr2, maskstr2, errstr)
{
	var wanipnet = new Array(3);
	var lanipnet = new Array(3);

	wan_mask1 = parseInt(GetIPSegment(passForm.wan_netmask.value, 1), 10).toString(2);
	wan_mask2 = parseInt(GetIPSegment(passForm.wan_netmask.value, 2), 10).toString(2);
	wan_mask3 = parseInt(GetIPSegment(passForm.wan_netmask.value, 3), 10).toString(2);
	wan_mask4 = parseInt(GetIPSegment(passForm.wan_netmask.value, 4), 10).toString(2);
	wan_netmask = wan_mask1;
	wan_netmask = wan_netmask + wan_mask2;
	wan_netmask = wan_netmask + wan_mask3;
	wan_netmask = wan_netmask + wan_mask4;

	lan_mask1 = parseInt(GetIPSegment(passForm.lan_netmask.value, 1), 10).toString(2);
	lan_mask2 = parseInt(GetIPSegment(passForm.lan_netmask.value, 2), 10).toString(2);
	lan_mask3 = parseInt(GetIPSegment(passForm.lan_netmask.value, 3), 10).toString(2);
	lan_mask4 = parseInt(GetIPSegment(passForm.lan_netmask.value, 4), 10).toString(2);
	lan_netmask = lan_mask1;
	lan_netmask = lan_netmask + lan_mask2;
	lan_netmask = lan_netmask + lan_mask3;
	lan_netmask = lan_netmask + lan_mask4;

	if(wan_netmask > lan_netmask)
	{
		maskstr1 = maskstr2;
	}
	else
	{
		maskstr2 = maskstr1;
	}
	
	for (var i=1; i<=4; i++)
	{
		wanipnet[i-1] = GetIPSegment(eval("passForm."+ipstr1 + "_" + i).value, i) & GetIPSegment(eval("passForm." + maskstr1 + "_" + i).value, i);
		lanipnet[i-1] = GetIPSegment(eval("passForm."+ipstr2 + "_" + i).value, i) & GetIPSegment(eval("passForm." + maskstr2 + "_" + i).value, i);
		
		if (wanipnet[i-1] != lanipnet[i-1])
		{
			return 1;
		}		
	}

	alert(errstr);
	eval("passForm."+ipstr1 + "_1").focus();
	return 0;
}

function CheckQuote(obj)
{
	if (obj.value.match(/\'|\"/g))
	{
	//	alert("Invalid character ' or \"\"");
       	alert(mavis_str(Alert_Msg_42));
		obj.focus();
		return 0;
	}
	return 1;
}

function CheckSemicolon (obj)
{
	if (obj.value.match(/;/g))
	{
      //		alert("Invalid character ;");
         alert(mavis_str(Alert_Msg_43));
		obj.focus();
		return 0;
	}
	return 1;
}

function checkUPnPPort(start, end)
{
	if (start.value==0&&end.value==0)
		return true;

	if(start.value == 0)
	{
	//	alert('Invalid external port value.');
       alert(mavis_str(Alert_Msg_44));
		start.focus();
		return false;
	}

	if(end.value == 0)
	{
		//alert('Invalid internal port value.');
      		alert(mavis_str(Alert_Msg_45));	
		end.focus();
		return false;
	}	

	return true;
}

function SplitTrustHostIPAddress ( IPString )
{
	document.forms[0].trust_host_1.value = GetIPSegment ( IPString , 1 );
	document.forms[0].trust_host_2.value = GetIPSegment ( IPString , 2 );
	document.forms[0].trust_host_3.value = GetIPSegment ( IPString , 3 );
	document.forms[0].trust_host_4.value = GetIPSegment ( IPString , 4 );
	return true;
}

function AssembleTrustHostIPAddress ()
{

	if ( !(IPCheck(document.forms[0].trust_host_1)) ) {
    		document.forms[0].trust_host_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].trust_host_2)) ) {
    		document.forms[0].trust_host_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].trust_host_3)) ) {
    		document.forms[0].trust_host_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].trust_host_4)) ) {
    		document.forms[0].trust_host_4.value = 0;
    		return false;
  	}
	if ((document.forms[0].trust_host_1.value==255) &&
	(document.forms[0].trust_host_2.value==255) &&
	(document.forms[0].trust_host_3.value==255) &&
	(document.forms[0].trust_host_4.value==255)
	)
	{
		//alert("All 255 is invalid!");
               alert(mavis_str(Alert_Msg_46));
		document.forms[0].trust_host_1.focus();
		return 0;
	}  	
	if (document.forms[0].trust_host_4.value==255)
	{
		//alert("255 is invalid!");
                alert(mavis_str(Alert_Msg_47));
		document.forms[0].trust_host_4.focus();
		return 0;
	}
	d = document.forms[0].trust_host_1.value + '.';
  	d = d + document.forms[0].trust_host_2.value + '.';
  	d = d + document.forms[0].trust_host_3.value + '.';
  	d = d + document.forms[0].trust_host_4.value;

	document.forms[0].SNMPTrustedHost.value = d;
	return true;
}
function SplitPPTPstartIPAddress ( IPString )
{
	document.forms[0].PPTPstart_ipaddr_1.value = GetIPSegment ( IPString , 1 );
	document.forms[0].PPTPstart_ipaddr_2.value = GetIPSegment ( IPString , 2 );
	document.forms[0].PPTPstart_ipaddr_3.value = GetIPSegment ( IPString , 3 );
	document.forms[0].PPTPstart_ipaddr_4.value = GetIPSegment ( IPString , 4 );
	return true;
}

function AssemblePPTPstartIPAddress ()
{

	if ( !(IPCheck(document.forms[0].PPTPstart_ipaddr_1)) ) {
    		document.forms[0].PPTPstart_ipaddr_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPstart_ipaddr_2)) ) {
    		document.forms[0].PPTPstart_ipaddr_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPstart_ipaddr_3)) ) {
    		document.forms[0].PPTPstart_ipaddr_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPstart_ipaddr_4)) ) {
    		document.forms[0].PPTPstart_ipaddr_4.value = 0;
    		return false;
  	}
	if ((document.forms[0].PPTPstart_ipaddr_1.value==255) &&
	(document.forms[0].PPTPstart_ipaddr_2.value==255) &&
	(document.forms[0].PPTPstart_ipaddr_3.value==255) &&
	(document.forms[0].PPTPstart_ipaddr_4.value==255)
	)
	{
		//alert("All 255 is invalid!");
           alert(mavis_str(Alert_Msg_46));
		document.forms[0].PPTPstart_ipaddr_1.focus();
		return 0;
	}  	
	if (document.forms[0].PPTPstart_ipaddr_4.value==255)
	{
		//alert("255 is invalid!");
             alert(mavis_str(Alert_Msg_46));
		document.forms[0].PPTPstart_ipaddr_4.focus();
		return 0;
	}
	d = document.forms[0].PPTPstart_ipaddr_1.value + '.';
  	d = d + document.forms[0].PPTPstart_ipaddr_2.value + '.';
  	d = d + document.forms[0].PPTPstart_ipaddr_3.value + '.';
  	d = d + document.forms[0].PPTPstart_ipaddr_4.value;

	document.forms[0].PPTPstart.value = d;
	return true;
}
function SplitPPTPendIPAddress ( IPString )
{
	document.forms[0].PPTPend_ipaddr_1.value = GetIPSegment ( IPString , 1 );
	document.forms[0].PPTPend_ipaddr_2.value = GetIPSegment ( IPString , 2 );
	document.forms[0].PPTPend_ipaddr_3.value = GetIPSegment ( IPString , 3 );
	document.forms[0].PPTPend_ipaddr_4.value = GetIPSegment ( IPString , 4 );
	return true;
}

function AssemblePPTPendIPAddress ()
{

	if ( !(IPCheck(document.forms[0].PPTPend_ipaddr_1)) ) {
    		document.forms[0].PPTPend_ipaddr_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPend_ipaddr_2)) ) {
    		document.forms[0].PPTPend_ipaddr_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPend_ipaddr_3)) ) {
    		document.forms[0].PPTPend_ipaddr_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].PPTPend_ipaddr_4)) ) {
    		document.forms[0].PPTPend_ipaddr_4.value = 0;
    		return false;
  	}
	if ((document.forms[0].PPTPend_ipaddr_1.value==255) &&
	(document.forms[0].PPTPend_ipaddr_2.value==255) &&
	(document.forms[0].PPTPend_ipaddr_3.value==255) &&
	(document.forms[0].PPTPend_ipaddr_4.value==255)
	)
	{
		//alert("All 255 is invalid!");
               alert(mavis_str(Alert_Msg_46));
		document.forms[0].PPTPend_ipaddr_1.focus();
		return 0;
	}  	
	if (document.forms[0].PPTPend_ipaddr_4.value==255)
	{
		//alert("255 is invalid!");
                 alert(mavis_str(Alert_Msg_47));
		document.forms[0].PPTPend_ipaddr_4.focus();
		return 0;
	}
	d = document.forms[0].PPTPend_ipaddr_1.value + '.';
  	d = d + document.forms[0].PPTPend_ipaddr_2.value + '.';
  	d = d + document.forms[0].PPTPend_ipaddr_3.value + '.';
  	d = d + document.forms[0].PPTPend_ipaddr_4.value;

	document.forms[0].PPTPend.value = d;
	return true;
}
function AssembleSrcStartIP ()
{

	if ( !(IPCheck(document.forms[0].dmz_src_1)) ) {
    		document.forms[0].dmz_src_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].dmz_src_2)) ) {
    		document.forms[0].dmz_src_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].dmz_src_3)) ) {
    		document.forms[0].dmz_src_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].dmz_src_4)) ) {
    		document.forms[0].dmz_src_4.value = 0;
    		return false;
  	}
	if ((document.forms[0].dmz_src_1.value==255) &&
	(document.forms[0].dmz_src_2.value==255) &&
	(document.forms[0].dmz_src_3.value==255) &&
	(document.forms[0].dmz_src_4.value==255)
	)
	{
		//alert("All 255 is invalid!");
               alert(mavis_str(Alert_Msg_46));
		document.forms[0].dmz_src_1.focus();
		return 0;
	}  	
	if (document.forms[0].dmz_src_4.value==255)
	{
		//alert("255 is invalid!");
                 alert(mavis_str(Alert_Msg_47));
		document.forms[0].dmz_src_4.focus();
		return 0;
	}
	d = document.forms[0].dmz_src_1.value + '.';
  	d = d + document.forms[0].dmz_src_2.value + '.';
  	d = d + document.forms[0].dmz_src_3.value + '.';
  	d = d + document.forms[0].dmz_src_4.value;

	document.forms[0].dmz_src_ipaddr_start.value = d;
	return true;
}
function AssembleSrcEndIP ()
{
	if ( !(IPCheck(document.forms[0].dmz_src_4_1)) ) {
    		document.forms[0].dmz_src_4_1.value = 0;
    		return false;
  	}
	if (document.forms[0].dmz_src_4_1.value==255)
	{
		//alert("255 is invalid!");
                 alert(mavis_str(Alert_Msg_47));
		document.forms[0].dmz_src_4_1.focus();
		return 0;
	}
	d = document.forms[0].dmz_src_1.value + '.';
  	d = d + document.forms[0].dmz_src_2.value + '.';
  	d = d + document.forms[0].dmz_src_3.value + '.';
  	d = d + document.forms[0].dmz_src_4_1.value;

	document.forms[0].dmz_src_ipaddr_end.value = d;
	return true;
}

function VerifyDmzIP (passForm)
{
	var dmz_destination_ip=passForm.cur_ipaddr.value;
	if ( !IPCheck( passForm.dmz_ipaddr_4 ) )
    	return 0;		
	d = GetIPSegment ( dmz_destination_ip , 1 )+"."
	   +GetIPSegment ( dmz_destination_ip , 2 )+"."
	   +GetIPSegment ( dmz_destination_ip , 3 )+"."  
	   +passForm.dmz_ipaddr_4.value;
    passForm.dmz_dest_ip.value = d;
	return true;
}
function mavis_write(string_name)
{
	document.write(eval("string_name[" + MultiLanguage + "]"));
}
function mavis_str(string_name)
{
	return eval("string_name[" + MultiLanguage + "]");
}
function AssembleRemoteIPAddressStart ()
{
	if ((document.forms[0].rm_ipaddr_1.value == "") && (document.forms[0].rm_ipaddr_2.value == "") &&(document.forms[0].rm_ipaddr_3.value == "") &&(document.forms[0].rm_ipaddr_4.value == ""))
	{
   alert(mavis_str(Alert_Msg_87));
		return 0;		
	}	
	
	if ((document.forms[0].rm_ipaddr_1.value == 0) &&
	    (document.forms[0].rm_ipaddr_2.value == 0) &&
		(document.forms[0].rm_ipaddr_3.value == 0) &&
	    (document.forms[0].rm_ipaddr_4.value == 0)	    
	    )
	{
		 alert(mavis_str(Alert_Msg_88));		
		return 0;		
	}		    
	
	if ( !(IPCheck(document.forms[0].rm_ipaddr_1)) ) 
	{
    		document.forms[0].rm_ipaddr_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_2)) ) 
	{
    		document.forms[0].rm_ipaddr_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_3)) ) 
	{
    		document.forms[0].rm_ipaddr_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_4)) ) 
	{
    		document.forms[0].rm_ipaddr_4.value = 0;
    		return false;
  	}

	d = document.forms[0].rm_ipaddr_1.value + '.';
  	d = d + document.forms[0].rm_ipaddr_2.value + '.';
  	d = d + document.forms[0].rm_ipaddr_3.value + '.';
  	d = d + document.forms[0].rm_ipaddr_4.value;

	document.forms[0].remote_mgmt_ip_start.value = d;
	return true;
}
function AssembleRemoteIPAddressEnd ()
{
	if ((document.forms[0].rm_ipaddr_1.value == "") && (document.forms[0].rm_ipaddr_2.value == "") &&(document.forms[0].rm_ipaddr_3.value == "") &&(document.forms[0].rm_ipaddr_4_1.value == ""))
	{
   alert(mavis_str(Alert_Msg_87));
		return 0;		
	}	
	
	if ((document.forms[0].rm_ipaddr_1.value == 0) &&
	    (document.forms[0].rm_ipaddr_2.value == 0) &&
		(document.forms[0].rm_ipaddr_3.value == 0) &&
	    (document.forms[0].rm_ipaddr_4_1.value == 0)	    
	    )
	{
		 alert(mavis_str(Alert_Msg_88));		
		return 0;		
	}		    
	
	if ( !(IPCheck(document.forms[0].rm_ipaddr_1)) ) 
	{
    		document.forms[0].rm_ipaddr_1.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_2)) ) 
	{
    		document.forms[0].rm_ipaddr_2.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_3)) ) 
	{
    		document.forms[0].rm_ipaddr_3.value = 0;
    		return false;
  	}

	if ( !(IPCheck(document.forms[0].rm_ipaddr_4_1)) ) 
	{
    		document.forms[0].rm_ipaddr_4_1.value = 0;
    		return false;
  	}

	d = document.forms[0].rm_ipaddr_1.value + '.';
  	d = d + document.forms[0].rm_ipaddr_2.value + '.';
  	d = d + document.forms[0].rm_ipaddr_3.value + '.';
  	d = d + document.forms[0].rm_ipaddr_4_1.value;

	document.forms[0].remote_mgmt_ip_end.value = d;
	return true;
}
function AssembleRemoteSubnetMask ()
{
	if ((document.forms[0].rm_netmask_1.value == "") && (document.forms[0].rm_netmask_2.value == "") &&(document.forms[0].rm_netmask_3.value == "") &&(document.forms[0].rm_netmask_4.value == ""))
	{
		document.forms[0].rm_netmask.value = "0.0.0.0";						
		return 1;
	}	
  	d = document.forms[0].rm_netmask_1.value;
  	if ( d>255 || d<0 || ( document.forms[0].rm_netmask_1.value == "" ) || !(IPCheck(document.forms[0].rm_netmask_1)) ) {
    		document.forms[0].rm_netmask_1.value = 0;
    		return false;
  	}
  	
	d = document.forms[0].rm_netmask_2.value;
  	if ( d>255 || d<0 || ( document.forms[0].rm_netmask_2.value == "" ) || !(IPCheck(document.forms[0].rm_netmask_2)) ) {
    		document.forms[0].rm_netmask_2.value = 0;
			return false;
  	}

	d = document.forms[0].rm_netmask_3.value;
  	if ( d>255 || d<0 || ( document.forms[0].rm_netmask_3.value == "" ) || !(IPCheck(document.forms[0].rm_netmask_3)) ) {
    		document.forms[0].rm_netmask_3.value = 0;
    		return false;
  	}

	d = document.forms[0].rm_netmask_4.value;
  	if ( d>255 || d<0 || ( document.forms[0].rm_netmask_4.value == "" ) || !(IPCheck(document.forms[0].rm_netmask_4)) ) {
    		document.forms[0].rm_netmask_4.value = 0;
    		return false;
  	}

  	d = document.forms[0].rm_netmask_1.value + '.';
  	d = d + document.forms[0].rm_netmask_2.value + '.';
  	d = d + document.forms[0].rm_netmask_3.value + '.';
  	d = d + document.forms[0].rm_netmask_4.value;

  	document.forms[0].remote_mgmt_nm.value = d;
  	return true;
}
function SplitRMIPAddress ( IPString )
{
	document.forms[0].rm_ipaddr_1.value = GetIPSegment ( IPString , 1 );
	document.forms[0].rm_ipaddr_2.value = GetIPSegment ( IPString , 2 );
	document.forms[0].rm_ipaddr_3.value = GetIPSegment ( IPString , 3 );
	document.forms[0].rm_ipaddr_4.value = GetIPSegment ( IPString , 4 );
}
function SplitRMSubnetMask ( IPString )
{
	document.forms[0].rm_netmask_1.value = GetIPSegment ( IPString , 1 );
	document.forms[0].rm_netmask_2.value = GetIPSegment ( IPString , 2 );
	document.forms[0].rm_netmask_3.value = GetIPSegment ( IPString , 3 );
	document.forms[0].rm_netmask_4.value = GetIPSegment ( IPString , 4 );
}
function getLayerParent(layerID) 
{
	if (self.parent.document.getElementById)
		return self.parent.document.getElementById(layerID);
	else if (self.parent.document.all)
		return self.parent.document.all[layerID];
	else 
		return null;
}
function checkNum(I)
{
	txt = I.value;
	for(i=0;i<txt.length;i++)
	{
		c=txt.charAt(i);
		if("0123456789".indexOf(c,0)<0)
		{
			alert("Please input with integer value!");
			I.focus;
			return 0;
		}
	}
	return 1;
}