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