http://downloads.netgear.com/files/GPL/DM111PSP_v3.61d_GPL.tar.gz
[bcm963xx.git] / userapps / broadcom / cfm / html / ipoacfg.html
1 <html>
2    <head>
3       <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
4       <link rel="stylesheet" href='stylemain.css' type='text/css'>
5          <link rel="stylesheet" href='colors.css' type='text/css'>
6             <script language="javascript" src="util.js"></script>
7             <script language="javascript">
8 <!-- hide
9 var addr = '<%ejGet(wanIpAddress)%>';
10 var mask = '<%ejGet(wanSubnetMask)%>';
11 var enblAuto = '<%ejGet(enblAuto)%>';
12 var gtwyIfc = '<%ejGetOther(sysInfo, dfltGwIfc)%>';
13 if ( gtwyIfc == '&nbsp' ) gtwyIfc = '';
14 var gtwy = '<%ejGetOther(sysInfo, dfltGw)%>';
15 if ( gtwy == '&nbsp' ) gtwy = '';
16 var dnsAuto = '<%ejGetOther(sysInfo,dnsAuto)%>';
17 var dns1Mem = '<%ejGet(dnsPrimary)%>';
18 var dns1 = '<%ejGetOther(sysInfo, dns)%>';
19 if ( dns1 == '&nbsp' )
20    dns1 = '';
21 var dns2Mem = '<%ejGet(dnsSecondary)%>';
22 var dns2 = '<%ejGetOther(sysInfo, dns2)%>';
23 if ( dns2 == '&nbsp' )
24    dns2 = '';
25 var qs = '<%ejGet(quickSetup)%>';
26 var srvId = parseInt('<%ejGet(serviceId)%>');
27
28 function disableDnsInfo() {
29    with ( document.forms[0] ) {
30       dnsPrimary.disabled = 1;
31       dnsPrimary.value = '';
32       dnsSecondary.disabled = 1;
33       dnsSecondary.value = '';
34    }
35 }
36
37 function enableDnsInfo() {
38    with ( document.forms[0] ) {
39       dnsPrimary.disabled = 0;
40       dnsPrimary.value = dns1;
41       dnsSecondary.disabled = 0;
42       dnsSecondary.value = dns2;
43    }
44 }
45
46 function dnsClick(cb) {
47    if ( cb.checked == true )
48       enableDnsInfo();
49    else
50       disableDnsInfo();
51 }
52
53 function disableGwInfo() {
54    with ( document.forms[0] ) {
55       gwAddr.disabled = 1;
56       gwAddr.checked = false;
57       defaultGateway.disabled = 1;
58       defaultGateway.value = '';
59       gwIfc.disabled = 1;
60       gwIfc.checked = false;
61       wanIf.disabled = 1;
62    }
63 }
64
65 function enableGwInfo() {
66    with ( document.forms[0] ) {
67       gwAddr.disabled = 0;
68       if ( isValidIpAddress(gtwy) == true ) {
69          gwAddr.checked = true;
70          defaultGateway.value = gtwy;
71       } else {
72          gwAddr.checked = false;
73          defaultGateway.value = '';
74       }
75       defaultGateway.disabled = 0;
76       gwIfc.disabled = 0;
77       if ( gtwyIfc != '' )
78          gwIfc.checked = true;
79       else
80          gwIfc.checked = false;
81       wanIf.disabled = 0;
82    }
83 }
84
85 function gwClick(cb) {
86    if ( cb.checked == true )
87       enableGwInfo();
88    else
89       disableGwInfo();
90 }
91
92 function frmLoad() {
93    with ( document.forms[0] ) {
94       wanIpAddress.value = addr;
95       wanSubnetMask.value = mask;
96       if ( enblAuto == '1' ) {
97          gw.checked = false;
98          disableGwInfo();
99       } else {
100          gw.checked = true;
101          enableGwInfo();
102       }
103       if (dnsAuto == '1') {
104          dns.checked = false;
105          disableDnsInfo();
106       } else {
107          dns.checked = true;
108          enableDnsInfo();
109       }
110    }
111 }
112
113 function btnNext() {
114    var loc = 'natcfg2.cgi?';
115
116    with ( document.forms[0] ) {
117       dns1 = dnsPrimary.value;
118       dns2 = dnsSecondary.value;
119       // ipoa always uses static wan ip address
120       loc += 'enblDhcpClnt=0';
121       // wan IP address
122       if ( isValidIpAddress(wanIpAddress.value) == false ) {
123          alert('WAN IP address "' + wanIpAddress.value + '" is invalid IP address.');
124          return;
125       }
126       loc += '&wanIpAddress=' + wanIpAddress.value;
127       // wan subnet mask
128       if ( isValidIpAddress(wanSubnetMask.value) == false &&  wanSubnetMask.value != '255.255.255.255') {
129          alert('WAN subnet mask "' + wanSubnetMask.value + '" is invalid IP address.');
130          return;
131       }
132       loc += '&wanSubnetMask=' + wanSubnetMask.value;
133       // default gateway
134       if ( gw.checked == true ) {
135          if ( gwAddr.checked == false && gwIfc.checked == false ) {
136             alert('There is no selection for default gateway.');
137             return;
138          }
139          if ( gwAddr.checked == true ) {
140             if ( isValidIpAddress(defaultGateway.value) == false ) {
141                alert('Remote WAN IP address "' + defaultGateway.value + '" is invalid IP address.');
142                return;
143             }
144             loc += '&defaultGateway=' + defaultGateway.value;
145          } else
146             loc += '&defaultGateway=0.0.0.0';
147          if ( gwIfc.checked == true ) {
148             var idx = wanIf.selectedIndex;
149             var ifc = wanIf.options[idx].value;
150             // if chosen interface is MER but does not specify static IP address then display error
151             if ( ifc.indexOf('nas_') != -1 && gwAddr.checked == false ) {
152                alert('Default gateway IP address should be specified since MER interface is selected.');
153                return;
154             }
155             loc += '&wanIfName=' + ifc;
156          } else
157             loc += '&wanIfName=';
158          // use static default gateway
159          loc += '&enblAuto=0';
160       } else {
161          loc += '&defaultGateway=0.0.0.0';
162          loc += '&wanIfName=';
163          loc += '&enblAuto=1';
164       }
165       if ( dns.checked == true ) {
166          // primary DNS
167          if ( isValidIpAddress(dns1) == false ) {
168             alert('Primary DNS server "' + dnsPrimary.value + '" is invalid IP address.');
169             return;
170          }
171          loc += '&dnsPrimary=' + dns1;
172          // secondary DNS
173          if ( dns2 != '' && dns2 != '0.0.0.0' ) {
174             if ( isValidIpAddress(dns2) == false ) {
175                alert('Secondary DNS server "' + dns2 + '" is invalid IP address.');
176                return;
177             }
178          }
179          loc += '&dnsSecondary=' + dns2;
180          loc += '&dnsDynamic=0';
181       } else {
182          loc += '&dnsPrimary=0.0.0.0';
183          loc += '&dnsSecondary=0.0.0.0';
184          loc += '&dnsDynamic=1';
185       }
186    }
187
188    var code = 'location="' + loc + '"';
189    eval(code);
190 }
191
192 function btnBack() {
193    var loc = 'ntwkprtcl.html';
194
195    var code = 'location="' + loc + '"';
196    eval(code);
197 }
198
199 // done hiding -->
200 </script>
201    </head>
202    <body onLoad='frmLoad()'>
203       <blockquote>
204          <form>
205             <b>WAN IP Settings</b><br>
206             <br>
207             Enter information provided to you by your ISP to configure the WAN IP settings.<br><br>
208             Notice: DHCP is not supported in IPoA mode.
209             Changing the default gateway or the DNS effects the whole system.
210             Configuring them with static values will disable the automatic assignment
211             from other WAN connection.<br><br>
212             <table border="0" cellpadding="0" cellspacing="0">
213                <tr>
214                   <td width="160">WAN IP Address:</td>
215                   <td><input type='text' name='wanIpAddress'></td>
216                </tr>
217                <tr>
218                   <td>WAN Subnet Mask:</td>
219                   <td><input type='text' name='wanSubnetMask'></td>
220                </tr>
221             </table><br>
222             <table border="0" cellpadding="0" cellspacing="0">
223                <tr>
224                   <td colspan="3"><input type="checkbox" name="gw" onClick='gwClick(this)'>&nbsp;&nbsp;Use the following default gateway:</td>
225                </tr>
226                <tr>
227                   <td width="20">&nbsp;</td>
228                   <td><input type="checkbox" name='gwAddr'>&nbsp;Use IP Address:&nbsp;&nbsp;</td>
229                   <td><input type='text' name='defaultGateway'></td>
230                </tr>
231                <tr>
232                   <td width="20">&nbsp;</td>
233                   <td><input type="checkbox" name='gwIfc'>&nbsp;Use WAN Interface:&nbsp;&nbsp;</td>
234                   <td><select name='wanIf'>
235                         <script language="javascript">
236 <!-- hide
237 {
238    var i = 0;
239    var defaultInterface = '<%ejGetOther(wanInterfaceInfo, default)%>';
240    var interfaceInfo = '<%ejGetOther(wanInterfaceInfo, route)%>';
241    var interfaces = interfaceInfo.split('|');
242
243    if ( srvId == 0 || qs == '1' ) {
244       var defaultNames = defaultInterface.split('/');
245       document.write("  <option value='" + defaultNames[1] + "' selected>");
246       document.writeln(defaultInterface);
247       for ( i = 0; i < interfaces.length; i++ ) {
248          var names = interfaces[i].split('/');
249          document.write("  <option value='" + names[1] + "'>");
250          document.writeln(interfaces[i]);
251       }
252    } else {
253       for ( i = 0; i < interfaces.length; i++ ) {
254          var names = interfaces[i].split('/');
255          if ( names[1] == gtwyIfc )
256             document.write("  <option value='" + names[1] + "' selected>");
257          else
258             document.write("  <option value='" + names[1] + "'>");
259          document.writeln(interfaces[i]);
260          }
261       }
262 }
263 // done hiding -->
264 </script>
265                      </select></td>
266                </tr>
267             </table><br>
268             <table border="0" cellpadding="0" cellspacing="0">
269                <tr>
270                   <td colspan="3"><input type="checkbox" name="dns" onClick='dnsClick(this)'>&nbsp;&nbsp;Use the following DNS server addresses:</td>
271                </tr>
272                <tr>
273                   <td width="20">&nbsp;</td>
274                   <td width="140">Primary DNS server:&nbsp;&nbsp;</td>
275                   <td><input type='text' name='dnsPrimary'></td>
276                </tr>
277                <tr>
278                   <td>&nbsp;</td>
279                   <td>Secondary DNS server:&nbsp;&nbsp;</td>
280                   <td><input type='text' name='dnsSecondary'></td>
281                </tr>
282             </table><br>
283             <center>
284                <input type='button' onClick='btnBack()' value='Back'> <input type='button' onClick='btnNext()' value='Next'>
285             </center>
286          </form>
287       </blockquote>
288    </body>
289 </html>