<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
	<title><% getProName(); %></title>
	<link rel="stylesheet" type="text/css" href="webif.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Expires" content="-1" />
</head>

<SCRIPT language=JavaScript>
<!--


function doCheckDHCP()
{

   		if (document.ipForm.IP_type[0].checked) 
   		{
   			document.ipForm.f_IP_STATIC_IP.disabled = true;
			document.ipForm.f_IP_STATIC_IP_NETMASK.disabled = true;
			document.ipForm.f_IP_STATIC_IP_GATEWAY.disabled = true;			
   		}
   		else
   		{
   			document.ipForm.f_IP_STATIC_IP.disabled = false;
			document.ipForm.f_IP_STATIC_IP_NETMASK.disabled = false;
			document.ipForm.f_IP_STATIC_IP_GATEWAY.disabled = false;
   		}

}

function validateKey(str)
{
	for (var i=0; i<str.length; i++)
	{
		if ( (str.charAt(i) >= '0' && str.charAt(i) <= '9') ||(str.charAt(i) == '.' ) )
			continue;
		return 0;
	}
	return 1;
}

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<str.length; i++)
	{
		if ( str.charAt(i) == '.' )
		{
			str = str.substring(0, i);
			break;
		}
	}
	if ( str.length == 0)
		return -1;
	d = parseInt(str, 10);
	return d;
}

function checkDigitRange(str, num, min, max)
{
	d = getDigit(str,num);
	if ( d > max || d < min )
		return false;
	return true;
}

function doCheckALL()
{
	if(document.ipForm.IP_type[1].checked)
	{
		if( document.ipForm.f_IP_STATIC_IP.value == "" )
		{
			alert("IP address cannot be empty! It should be filled with 4 digit numbers as xxx.xxx.xxx.xxx.");
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		if ( validateKey( document.ipForm.f_IP_STATIC_IP.value ) == 0 )
		{
			alert("Invalid IP address value. It should be the decimal number (0-9).");
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP.value, 1, 0, 255) )
		{
			alert('Invalid IP address range in 1st digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP.value, 2, 0, 255) )
		{
			alert('Invalid IP address range in 2nd digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP.value, 3, 0, 255) )
		{
			alert('Invalid IP address range in 3rd digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP.value, 4, 1, 254) )
		{
			alert('Invalid IP address range in 4th digit. It should be 1-254.');
			document.ipForm.f_IP_STATIC_IP.select();
			document.ipForm.f_IP_STATIC_IP.focus();
			return;
		}
		
		if( document.ipForm.f_IP_STATIC_IP_NETMASK.value == "" )
		{
			alert("Subnet mask cannot be empty! It should be filled with 4 digit numbers as xxx.xxx.xxx.xxx.");
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		if ( validateKey( document.ipForm.f_IP_STATIC_IP_NETMASK.value ) == 0 )
		{
			alert("Invalid subnet mask value. It should be the decimal number (0-9).");
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_NETMASK.value, 1, 0, 255) )
		{
			alert('Invalid subnet mask in 1st digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_NETMASK.value, 2, 0, 255) )
		{
			alert('Invalid subnet mask in 2nd digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_NETMASK.value, 3, 0, 255) )
		{
			alert('Invalid subnet mask in 3rd digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_NETMASK.value, 4, 0, 255) )
		{
			alert('Invalid subnet mask in 4th digit. It should be 0-255.');
			document.ipForm.f_IP_STATIC_IP_NETMASK.select();
			document.ipForm.f_IP_STATIC_IP_NETMASK.focus();
			return;
		}
		
		if( document.ipForm.f_IP_STATIC_IP_GATEWAY.value != "" )
		{
			if ( validateKey( document.ipForm.f_IP_STATIC_IP_GATEWAY.value ) == 0 )
			{
				alert("Invalid gateway IP address value. It should be the decimal number (0-9).");
				document.ipForm.f_IP_STATIC_IP_GATEWAY.select();
				document.ipForm.f_IP_STATIC_IP_GATEWAY.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_GATEWAY.value, 1, 0, 255) )
			{
				alert('Invalid gateway IP address range in 1st digit. It should be 0-255.');
				document.ipForm.f_IP_STATIC_IP_GATEWAY.select();
				document.ipForm.f_IP_STATIC_IP_GATEWAY.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_GATEWAY.value, 2, 0, 255) )
			{
				alert('Invalid gateway IP address range in 2nd digit. It should be 0-255.');
				document.ipForm.f_IP_STATIC_IP_GATEWAY.select();
				document.ipForm.f_IP_STATIC_IP_GATEWAY.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_GATEWAY.value, 3, 0, 255) )
			{
				alert('Invalid gateway IP address range in 3rd digit. It should be 0-255.');
				document.ipForm.f_IP_STATIC_IP_GATEWAY.select();
				document.ipForm.f_IP_STATIC_IP_GATEWAY.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_STATIC_IP_GATEWAY.value, 4, 1, 254) )
			{
				alert('Invalid gateway IP address range in 4th digit. It should be 1-254.');
				document.ipForm.f_IP_STATIC_IP_GATEWAY.select();
				document.ipForm.f_IP_STATIC_IP_GATEWAY.focus();
				return;
			}
		}
		
		if( document.ipForm.f_IP_IP_DNS1.value != "" )
		{
			if ( validateKey( document.ipForm.f_IP_IP_DNS1.value ) == 0 )
			{
				alert("Invalid DNS IP address value. It should be the decimal number (0-9).");
				document.ipForm.f_IP_IP_DNS1.select();
				document.ipForm.f_IP_IP_DNS1.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 1, 0, 255) )
			{
				alert('Invalid DNS IP address range in 1st digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS1.select();
				document.ipForm.f_IP_IP_DNS1.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 2, 0, 255) )
			{
				alert('Invalid DNS IP address range in 2nd digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS1.select();
				document.ipForm.f_IP_IP_DNS1.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 3, 0, 255) )
			{
				alert('Invalid DNS IP address range in 3rd digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS1.select();
				document.ipForm.f_IP_IP_DNS1.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 4, 1, 254) )
			{
				alert('Invalid DNS IP address range in 4th digit. It should be 1-254.');
				document.ipForm.f_IP_IP_DNS1.select();
				document.ipForm.f_IP_IP_DNS1.focus();
				return;
			}
		}

		if( document.ipForm.f_IP_IP_DNS2.value != "" )
		{
			if ( validateKey( document.ipForm.f_IP_IP_DNS2.value ) == 0 )
			{
				alert("Invalid DNS IP address value. It should be the decimal number (0-9).");
				document.ipForm.f_IP_IP_DNS2.select();
				document.ipForm.f_IP_IP_DNS2.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 1, 0, 255) )
			{
				alert('Invalid DNS IP address range in 1st digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS2.select();
				document.ipForm.f_IP_IP_DNS2.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 2, 0, 255) )
			{
				alert('Invalid DNS IP address range in 2nd digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS2.select();
				document.ipForm.f_IP_IP_DNS2.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 3, 0, 255) )
			{
				alert('Invalid DNS IP address range in 3rd digit. It should be 0-255.');
				document.ipForm.f_IP_IP_DNS2.select();
				document.ipForm.f_IP_IP_DNS2.focus();
				return;
			}
			if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 4, 1, 254) )
			{
				alert('Invalid DNS IP address range in 4th digit. It should be 1-254.');
				document.ipForm.f_IP_IP_DNS2.select();
				document.ipForm.f_IP_IP_DNS2.focus();
				return;
			}
		}		
	}


//check dns1 & dns2 format
	if( document.ipForm.f_IP_IP_DNS1.value != "" )
	{
		if ( validateKey( document.ipForm.f_IP_IP_DNS1.value ) == 0 )
		{
			alert("Invalid DNS IP address value. It should be the decimal number (0-9).");
			document.ipForm.f_IP_IP_DNS1.select();
			document.ipForm.f_IP_IP_DNS1.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 1, 0, 255) )
		{
			alert('Invalid DNS IP address range in 1st digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS1.select();
			document.ipForm.f_IP_IP_DNS1.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 2, 0, 255) )
		{
			alert('Invalid DNS IP address range in 2nd digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS1.select();
			document.ipForm.f_IP_IP_DNS1.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 3, 0, 255) )
		{
			alert('Invalid DNS IP address range in 3rd digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS1.select();
			document.ipForm.f_IP_IP_DNS1.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS1.value, 4, 1, 254) )
		{
			alert('Invalid DNS IP address range in 4th digit. It should be 1-254.');
			document.ipForm.f_IP_IP_DNS1.select();
			document.ipForm.f_IP_IP_DNS1.focus();
			return;
		}
	}

	if( document.ipForm.f_IP_IP_DNS2.value != "" )
	{
		if ( validateKey( document.ipForm.f_IP_IP_DNS2.value ) == 0 )
		{
			alert("Invalid DNS IP address value. It should be the decimal number (0-9).");
			document.ipForm.f_IP_IP_DNS2.select();
			document.ipForm.f_IP_IP_DNS2.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 1, 0, 255) )
		{
			alert('Invalid DNS IP address range in 1st digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS2.select();
			document.ipForm.f_IP_IP_DNS2.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 2, 0, 255) )
		{
			alert('Invalid DNS IP address range in 2nd digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS2.select();
			document.ipForm.f_IP_IP_DNS2.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 3, 0, 255) )
		{
			alert('Invalid DNS IP address range in 3rd digit. It should be 0-255.');
			document.ipForm.f_IP_IP_DNS2.select();
			document.ipForm.f_IP_IP_DNS2.focus();
			return;
		}
		if ( !checkDigitRange(document.ipForm.f_IP_IP_DNS2.value, 4, 1, 254) )
		{
			alert('Invalid DNS IP address range in 4th digit. It should be 1-254.');
			document.ipForm.f_IP_IP_DNS2.select();
			document.ipForm.f_IP_IP_DNS2.focus();
			return;
		}
	}

//	flag=confirm("If you failed to browse the web page after modifications.\nPlease check your PC and Samba Server network settings and make sure both domains are consistency.\nClick 'Yes' to modify or 'No' to reserve the currently settings.")
//	if (flag==true)
//	{
		if (document.ipForm.IP_type[0].checked)
		{
			document.ipForm.f_IP_DHCP_ENABLE.value=document.ipForm.IP_type[0].value
		}
		else
		{
			document.ipForm.f_IP_DHCP_ENABLE.value=document.ipForm.IP_type[1].value
		}
		
		document.ipForm.submit();
//	}
//	else
//	{
//		return;
//	}
	
}
// -->
</SCRIPT>

<SCRIPT language=JavaScript>
<!--

check_login('<% check_login(1); %>');

function check_login(status)
{
	if (status==0)
	{
		location.href="../login.asp";
	}
}

// --> 
</SCRIPT>

<body onload="doCheckDHCP();"><div id="container">

	<div id="header">
	        <div id="header-title">
			<div id="openwrt-title"><h1>DSM-G600 Admin Console</h1></div>
				<div id="short-status">
					<h3><strong>Status:</strong></h3>
					<ul>
						<li>&nbsp;</li>
						<li>&nbsp;</li>
						<li>&nbsp;</li>
						<li>&nbsp;</li>
					</ul>

				</div>
			</div>
			<div id="mainmenu"><h3><strong>Categories:</strong></h3><ul>
				<li class="selected-maincat"><a href="/goform/mainMenu">&raquo;Home&laquo;</a></li>
				<li><a href="/goform/adv_account">&nbsp;Advanced&nbsp;</a></li>
				<li><a href="/goform/mt_default">&nbsp;Tools&nbsp;</a></li>
				<li><a href="/goform/adv_status">&nbsp;Status&nbsp;</a></li>
				<li><a href="../help/help.asp">&nbsp;Help&nbsp;</a></li>
			</ul></div>
			<div id="submenu"><h3><strong>Subcategories:</strong></h3><ul>
				<li><a href="/goform/mainMenu">&nbsp;Wizard&nbsp;</a></li>
				<li class="selected-maincat"><a href="/goform/adv_lan">&raquo;LAN&laquo;</a></li>
				<li><a href="/goform/adv_wireless">&nbsp;Wireless&nbsp;</a></li>
				<li><a href="/goform/adv_samba">&nbsp;Device&nbsp;</a></li>
			</ul></div>
		</div>
		<form name="ipForm" action="/goform/CfgIP" method="post">
		<div id="content">
			<div class="settings-block">
				<div class="settings-block-title"><h2>LAN Settings</h2></div>
					<div class="settings">
						<div class="settings-title"><h3><strong>&nbsp;</strong></h3></div>
						<div class="settings-content">
							<table width="100%" summary="Settings">
								<tr><td width="50%">
									<label><input type="radio" value="1" name="IP_type" onclick="doCheckDHCP(this.form);" <% choice = checkInfo(2); if (choice == "1") write("checked"); %>>DHCP Client</label>
								</td></tr>
								<tr><td width="50%">
									<label><input type="radio" name="IP_type" value="0" onclick="doCheckDHCP(this.form);" <% choice = checkInfo(2); if (choice == "0") write("checked"); %>>Static IP</label>
								</td></tr>
								<tr><td width="50%">IP Address:</td><td width="50%">
									<input id="pw1" type="text" maxLength=15 name=f_IP_STATIC_IP size=22 value="<% getInfo(3); %>" />
								</td></tr>
								<tr><td width="50%">Subnet Mask:</td><td width="50%">
									<input id="pw1" type="text" maxLength=15 name=f_IP_STATIC_IP_NETMASK size=22 value="<% getInfo(4); %>" />
								</td></tr>
								<tr><td width="50%">Gateway IP Address:</td><td width="50%">
									<input id="pw1" type="text" maxLength=15 name=f_IP_STATIC_IP_GATEWAY size=22 value="<% getInfo(5); %>" />
								</td></tr>
								<tr><td width="50%">DNS1:</td><td width="50%">
									<input id="pw2" type="text" maxLength=15 name=f_IP_IP_DNS1 size=22 value="<% getInfo(6); %>" />
								</td></tr>
								<tr><td width="50%">DNS1:</td><td width="50%">
									<input id="pw2" type="text" maxLength=15 name=f_IP_IP_DNS1 size=22 value="<% getInfo(6); %>" />
								</td></tr>
								<tr><td width="50%">DNS2:</td><td width="50%">
									<input id="pw2" type="text" maxLength=15 name=f_IP_IP_DNS2 size=22 value="<% getInfo(7); %>" />
								</td></tr>
								<tr><td width="50%">&nbsp;</td><td width="50%">
									<input type="hidden" name="f_IP_DHCP_ENABLE" size="22">
								</td></tr>
							</table>
						</div>
						<div class="settings-help"><blockquote><h3><strong>Short help:</strong></h3></blockquote></div>
						<div style="clear: both">&nbsp;</div>
					</div>
				</div>
				<hr width="40%" />
			</div>
			<br />
			<div id="save">
				<div class="page-save">
					<div>
						<p><a href="/goform/formLogout">Logout&laquo;</a></p>
					</div>
				</div>
				<div class="apply">
					<div>
						<a href="javascript:doCheckALL();">Apply&laquo;</a><br />
						<a href="javascript:document.forms[0].reset()">Cancel&laquo;</a><br />
						<a target="_blank" href="../help/help_home.htm#02">Help&laquo;</a>
					</div>
				</div>
			</div>
		</div>
		</form>
	</div>
</body>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
</head>
</html>
