www.usr.com/support/gpl/USR9107_release.1.4.tar.gz
[bcm963xx.git] / userapps / broadcom / cfm / html / wlcfgadv.html
index 5635ffa..156e0e5 100755 (executable)
@@ -7,7 +7,7 @@
        <title>Wireless &raquo; Advanced Settings</title>
 
        <link href="usr_main.css" rel="stylesheet" type="text/css">
-       <script src="usr_menus.js" type="text/javascript"></script>
+       <link href="usr_menus.css" rel="stylesheet" type="text/css"><script src="usr_menus.js" type="text/javascript"></script><script src="usr_menus_build.js" type="text/javascript"></script>
        <script src="usr_common.js" type="text/javascript"></script>
 
        <meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
        <script type="text/javascript" src="util.js"></script>
        <script type="text/javascript">
 <!-- hide
-setPageTitle("<%ejGetWl(wlInterface)%>");
-
-var enbl = '<%ejGetWl(wlEnbl)%>';
-var country = '<%ejGetWl(wlCountry)%>';
-var channel = '<%ejGetWl(wlChannel)%>';
-var rate = '<%ejGetWl(wlRate)%>';
-var frg = '<%ejGetWl(wlFrgThrshld)%>';
-var rts = '<%ejGetWl(wlRtsThrshld)%>';
-var dtm = '<%ejGetWl(wlDtmIntvl)%>';
-var bcn = '<%ejGetWl(wlBcnIntvl)%>';
-var phy = '<%ejGetWl(wlPhyType)%>';
-var brate = '<%ejGetWl(wlBasicRate)%>';
-var fburst = '<%ejGetWl(wlFrameBurst)%>';
-var gmode = '<%ejGetWl(wlgMode)%>';
-var pro = '<%ejGetWl(wlProtection)%>';
-var pre = '<%ejGetWl(wlPreambleType)%>';
-var apisolation= '<%ejGetWl(wlAPIsolation)%>';
-var band= '<%ejGetWl(wlBand)%>';
-var mcastrate = '<%ejGetWl(wlMCastRate)%>';
-var hasafterburner = '<%ejGetWl(wlHasAfterburner)%>';
-var afterburneren = '<%ejGetWl(wlAfterBurnerEn)%>';
-var bands = '<%ejGetWl(wlBands)%>';
-var haswme = '<%ejGetWl(wlHasWme)%>';
-var wme='<%ejGetWl(wlWme)%>';
-var wmeNoAck='<%ejGetWl(wlWmeNoAck)%>';
-var mode='<%ejGetWl(wlMode)%>';
-var lazywds='<%ejGetWl(wlLazyWds)%>';
-var wds0='<%ejGetWl(wlWds0)%>';
-var wds1='<%ejGetWl(wlWds1)%>';
-var wds2='<%ejGetWl(wlWds2)%>';
-var wds3='<%ejGetWl(wlWds3)%>';
-var wlRefresh = '<%ejGetWl(wlRefresh)%>';
+setPageTitle("<%ejGetWlJS(wlInterface)%>");
+
+var enbl = '<%ejGetWlJS(wlEnbl)%>';
+var country = '<%ejGetWlJS(wlCountry)%>';
+var channel = '<%ejGetWlJS(wlChannel)%>';
+var rate = '<%ejGetWlJS(wlRate)%>';
+var frg = '<%ejGetWlJS(wlFrgThrshld)%>';
+var rts = '<%ejGetWlJS(wlRtsThrshld)%>';
+var dtm = '<%ejGetWlJS(wlDtmIntvl)%>';
+var bcn = '<%ejGetWlJS(wlBcnIntvl)%>';
+var phy = '<%ejGetWlJS(wlPhyType)%>';
+var brate = '<%ejGetWlJS(wlBasicRate)%>';
+var fburst = '<%ejGetWlJS(wlFrameBurst)%>';
+var gmode = '<%ejGetWlJS(wlgMode)%>';
+var pro = '<%ejGetWlJS(wlProtection)%>';
+var pre = '<%ejGetWlJS(wlPreambleType)%>';
+var apisolation= '<%ejGetWlJS(wlAPIsolation)%>';
+var band= '<%ejGetWlJS(wlBand)%>';
+var mcastrate = '<%ejGetWlJS(wlMCastRate)%>';
+var hasafterburner = '<%ejGetWlJS(wlHasAfterburner)%>';
+var afterburneren = '<%ejGetWlJS(wlAfterBurnerEn)%>';
+var bands = '<%ejGetWlJS(wlBands)%>';
+var mode = '<%ejGetWlJS(wlMode)%>';
+var wlRefresh = '<%ejGetWlJS(wlRefresh)%>';
+var TxPwrPcnt = '<%ejGetWlJS(wlTxPwrPcnt)%>';
+var reg_mode = '<%ejGetWlJS(wlRegMode)%>';
+var dfs_preism = '<%ejGetWlJS(wlDfsPreIsm)%>';
+var dfs_postism = '<%ejGetWlJS(wlDfsPostIsm)%>';
+var tpcDb = '<%ejGetWlJS(wlTpcDb)%>';
+var haswme = '<%ejGetWlJS(wlHasWme)%>';
+var wme = '<%ejGetWlJS(wlWme)%>';
+var wmeNoAck = '<%ejGetWlJS(wlWmeNoAck)%>';
+var wlCurrentChannel = '<%ejGetWlJS(wlCurrentChannel)%>';
 
 if ( wlRefresh == '1' ) {
-   var code = 'location.assign("wlcfgadvrefresh.wl?wlRefresh=0")';
-   eval(code);   
-}
-
-function hidePreambleType(hide) {
-   var status = 'visible';
-   if ( hide == 1 )
-      status = 'hidden';
-   if (document.getElementById)  // DOM3 = IE5, NS6
-      document.getElementById('preambleType').style.visibility = status;
-   else {
-      if (document.layers) { // Netscape 4
-         document.forms[0].wlPreambleType.selectedIndex = parseInt(pre);
-      } else  // IE 4
-         document.all.preambleType.style.visibility = status;
-   }
+   var code = 'location = "wlcfgadvrefresh.wl?wlRefresh=0"';
+   eval(code);
 }
 
 function getGmodeIndex(mode) {
@@ -86,45 +73,23 @@ function getGmodeIndex(mode) {
    return ret;
 }
 
-function hideGMode(hide) {
-   var status = 'visible';
-   if ( hide == 1 )
-      status = 'hidden';
-   if (document.getElementById)  // DOM3 = IE5, NS6
-      document.getElementById('div_gMode').style.visibility = status;
-   else {
-      if (document.layers) { // Netscape 4
-         document.forms[0].wlgMode.selectedIndex = getGmodeIndex(gmode);
-      } else  // IE 4
-      document.all.div_gMode.style.visibility = status;
-   }
-}
-
-function gModeChange() {
+function gModeChange()
+{
    with ( document.forms[0] ) {
-      if (band == "2") {
-         if (wlgMode.selectedIndex == 3) {
-            hidePreambleType(0);
-         } else {
-            hidePreambleType(1);
-         }
-      }
-      else {
-         hidePreambleType(1);
-      }
+      setVisibility("preambleType", (band == "2") && (wlgMode.selectedIndex == 3));
    }
 }
 
 function loadChannelList()
 {
    if (band == "2") {
-      <%ejGetWl(wlChannelList_b)%>
+      <%ejGetWlStr(wlChannelList_b)%>
    }
    else  if (band == "1") {
-      <%ejGetWl(wlChannelList_a)%>
+      <%ejGetWlStr(wlChannelList_a)%>
    }
    else {
-      document.forms[0].wlChannel[0] = new Option("Auto", "0")
+      document.forms[0].wlChannel[0] = new Option("Automatic", "0")
    }
 
    var found = false;
@@ -135,7 +100,7 @@ function loadChannelList()
          break;
       }
    }
-   
+
    if (!found) {
       document.forms[0].wlChannel.options[0].selected = true;
    }
@@ -144,14 +109,14 @@ function loadChannelList()
 function loadRateList() {
    if (band == "2") { // 2.4G
       if (phy == "b") {
-document.forms[0].wlRate[0] = new Option("Auto", "0");
+document.forms[0].wlRate[0] = new Option("Automatic", "0");
 document.forms[0].wlRate[1] = new Option("1 Mbps", "1000000");
 document.forms[0].wlRate[2] = new Option("2 Mbps", "2000000");
 document.forms[0].wlRate[3] = new Option("5.5 Mbps", "5500000");
 document.forms[0].wlRate[4] = new Option("11 Mbps", "11000000");
       }
       else {
-document.forms[0].wlRate[0] = new Option("Auto", "0");
+document.forms[0].wlRate[0] = new Option("Automatic", "0");
 document.forms[0].wlRate[1] = new Option("1 Mbps", "1000000");
 document.forms[0].wlRate[2] = new Option("2 Mbps", "2000000");
 document.forms[0].wlRate[3] = new Option("5.5 Mbps", "5500000");
@@ -167,7 +132,7 @@ document.forms[0].wlRate[12] = new Option("54 Mbps", "54000000");
      }
    }
    else if (band == "1") { // 5G
-document.forms[0].wlRate[0] = new Option("Auto", "0");
+document.forms[0].wlRate[0] = new Option("Automatic", "0");
 document.forms[0].wlRate[1] = new Option("6 Mbps", "6000000");
 document.forms[0].wlRate[2] = new Option("9 Mbps", "9000000");
 document.forms[0].wlRate[3] = new Option("12 Mbps", "12000000");
@@ -178,7 +143,7 @@ document.forms[0].wlRate[7] = new Option("48 Mbps", "48000000");
 document.forms[0].wlRate[8] = new Option("54 Mbps", "54000000");
    }
    else {
-document.forms[0].wlRate[0] = new Option("Auto", "0");
+document.forms[0].wlRate[0] = new Option("Automatic", "0");
    }
 }
 
@@ -186,14 +151,14 @@ document.forms[0].wlRate[0] = new Option("Auto", "0");
 function loadMCastRateList() {
    if (band == "2") { // 2.4G
       if (phy == "b") {
-document.forms[0].wlMCastRate[0] = new Option("Auto", "0");
+document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
 document.forms[0].wlMCastRate[1] = new Option("1 Mbps", "1000000");
 document.forms[0].wlMCastRate[2] = new Option("2 Mbps", "2000000");
 document.forms[0].wlMCastRate[3] = new Option("5.5 Mbps", "5500000");
 document.forms[0].wlMCastRate[4] = new Option("11 Mbps", "11000000");
       }
       else {
-document.forms[0].wlMCastRate[0] = new Option("Auto", "0");
+document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
 document.forms[0].wlMCastRate[1] = new Option("1 Mbps", "1000000");
 document.forms[0].wlMCastRate[2] = new Option("2 Mbps", "2000000");
 document.forms[0].wlMCastRate[3] = new Option("5.5 Mbps", "5500000");
@@ -209,7 +174,7 @@ document.forms[0].wlMCastRate[12] = new Option("54 Mbps", "54000000");
      }
    }
    else if (band == "1") { // 5G
-document.forms[0].wlMCastRate[0] = new Option("Auto", "0");
+document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
 document.forms[0].wlMCastRate[1] = new Option("6 Mbps", "6000000");
 document.forms[0].wlMCastRate[2] = new Option("9 Mbps", "9000000");
 document.forms[0].wlMCastRate[3] = new Option("12 Mbps", "12000000");
@@ -220,7 +185,7 @@ document.forms[0].wlMCastRate[7] = new Option("48 Mbps", "48000000");
 document.forms[0].wlMCastRate[8] = new Option("54 Mbps", "54000000");
    }
    else {
-document.forms[0].wlMCastRate[0] = new Option("Auto", "0");
+document.forms[0].wlMCastRate[0] = new Option("Automatic", "0");
    }
 }
 
@@ -230,9 +195,9 @@ document.forms[0].wlBasicRate[0] = new Option("Default", "default");
 document.forms[0].wlBasicRate[1] = new Option("All", "all");
 document.forms[0].wlBasicRate[2] = new Option("1 & 2 Mbps", "12");
       if (phy == "g") {
-         document.forms[0].wlBasicRate[3] = new Option("1 & 5.5 & 6 & 11 & 12 & 24 Mbps", "wifi2");
+         document.forms[0].wlBasicRate[3] = new Option("1 & 2 & 5.5 & 6 & 11 & 12 & 24 Mbps", "wifi2");
       }
-      
+
    }
    else if (band == "1") { // 5G
 document.forms[0].wlBasicRate[0] = new Option("Default", "default");
@@ -255,17 +220,17 @@ function onBandChange() {
   loadMCastRateList();
   document.forms[0].wlBasicRate.length = 0;
   loadBasicRateList();
-  
+
   if (band == "2") {
     if (phy == "b") { //11b
-      hideGMode(1);
+      setVisibility("div_gMode", false);
     }
     else {
-      hideGMode(0);
+      setVisibility("div_gMode", true);
     }
   }
   else {
-    hideGMode(1);
+    setVisibility("div_gMode", false);
   }
   gModeChange();
 }
@@ -388,118 +353,93 @@ function getRateIndex(r) {
    return ret;
 }
 
-function getGModeProtection(pro) {
+function getFrameBurstIndex(frameburst) {
    var ret;
-   
-   if ( pro == "auto" )
+
+   if ( frameburst == "off" )
+      ret = 0;
+   else
+      ret = 1;
+   return ret;
+}
+
+function getAfterBurnerIndex(afterburner) {
+   var ret;
+
+   if ( afterburner == "auto" )
       ret = 1;
    else
       ret = 0;
    return ret;
 }
 
-function getBandIndex(b) {
+function getGModeProtection(pro) {
    var ret;
-   
-   if ( b == '1' )
+
+   if ( pro == "auto" )
       ret = 1;
    else
       ret = 0;
    return ret;
 }
 
-function hideWME(hide) {
-   var status = 'visible';
-   if ( hide == 1 )
-      status = 'hidden';
-   if (document.getElementById)  // DOM3 = IE5, NS6
-      document.getElementById('WME').style.visibility = status;
-   else {
-      if (document.layers) { // Netscape 4
-         document.forms[0].wlWme.value="0";
-      } else  // IE 4
-         document.all.WME.style.visibility = status;
-   }
+function getTpcDbIndex(val) {
+   var ret;
+
+   if ( val == "0" )
+      ret = 0;
+   else if ( val == "2" )
+      ret = 1;
+   else if ( val == "3" )
+      ret = 2;
+   else if ( val == "4" )
+      ret = 3;
+   else ret = 0;
+   return ret;
 }
 
-function hideWME_NOACK(hide) {
-   var status = 'visible';
-   if ( hide == 1 )
-      status = 'hidden';
-   if (document.getElementById)  // DOM3 = IE5, NS6
-      document.getElementById('WME_NOACK').style.visibility = status;
-   else {
-      if (document.layers) { // Netscape 4
-         document.forms[0].wlWmeNoAck.value="0";
-      } else  // IE 4
-         document.all.WME_NOACK.style.visibility = status;
-   }
+function RegModeChange() {
+   with ( document.forms[0] )
+      if( wlRegMode.selectedIndex != 1 )
+         wlDfsPreIsm.disabled=wlDfsPostIsm.disabled=wlTpcDb.disabled=true;
+      else
+         wlDfsPreIsm.disabled=wlDfsPostIsm.disabled=wlTpcDb.disabled=false;
+}
+
+
+function getBandIndex(b) {
+   var ret;
+
+   if ( b == '1' )
+      ret = 1;
+   else
+      ret = 0;
+   return ret;
 }
 
 function wl_afterburner_options(OnPageLoad)
 {
-       var retval = true;
-       
        with (document.forms[0])
        {
                // MAXg and WMM cannot both be enabled at the same time. MAXg requires Fragmentation to be set to 2346.
-               if (/*(hasafterburner != 1) ||*/ (wme == 1) || (wlWme.value == "1") || parseInt(wlFrgThrshld.value) != 2346)
+               // But no need to check these because the MAXg option is deleted if they're true.
+               setVisibility("idFragNoMAXg", (parseInt(wlFrgThrshld.value) != 2346));
+               if (parseInt(wlFrgThrshld.value) != 2346)
                {
-                       document.forms[0].cbAcceleration.value = "xpress";
-               }
-               else
-               {
-                       if (OnPageLoad == 0 && cbAcceleration.value == "maxg")
-                       {
-                               if (mode != "ap")
-                               {
-                                       alert("MAXg requires AP Mode to be set to \"Access Point\" on the Wireless AP Mode page.");
-                                       retval = false;
-                               }
-                               if (wds0 + wds1 + wds2 + wds3 != "")
-                               {
-                                       alert("MAXg requires Remote Bridges to be empty on the Wireless AP Mode page.");
-                                       retval = false;
-                               }
-                       }
+                       cbAcceleration.value = "xpress";
                }
-
-               if (retval == false)
-                       cbAcceleration.value ="none";
        }
-       return retval;
+       return true;
 }
 
-function wl_wme_options(OnPageLoad)
+function wl_recalc(OnPageLoad)
 {
-   with ( document.forms[0] ) { 
-       if (haswme == 0 || (afterburneren == "auto" || cbAcceleration.value == "maxg" ))
-       {
-               hideWME(1);
-               hideWME_NOACK(1);
-       }
-       else
+       var retval=true;
+       with ( document.forms[0] )
        {
-           hideWME(0);
-           if (wlWme.value == "0")
-                       hideWME_NOACK(1);
-           else
-                       hideWME_NOACK(0);
+               retval = wl_afterburner_options(OnPageLoad);
        }
-   }
-}
-
-function wl_recalc(OnPageLoad) {
-    var retval=true;
-    with ( document.forms[0] ) { 
-        //alert('wl_recalc:haswme= "' + haswme+ '" (EOM).');
-        //alert('wl_recalc:hasafterburner= "' + hasafterburner+ '" (EOM).');
-        //alert('wl_recalc:wlAfterBurnerEn.value= "' + wlAfterBurnerEn.value+ '" (EOM).');
-        //alert('wl_recalc:afterburneren= "' + afterburneren+ '" (EOM).');                
-       retval=wl_afterburner_options(OnPageLoad);
-       wl_wme_options(OnPageLoad);
-    }
-    return retval;
+       return retval;
 }
 
 function frmLoad() {
@@ -522,9 +462,23 @@ function frmLoad() {
       wlRtsThrshld.value = rts;
       wlDtmIntvl.value = dtm;
       wlBcnIntvl.value = bcn;
-      wlWme.selectedIndex=wme;
-      wlWmeNoAck.selectedIndex=wmeNoAck;
-      
+               /*
+                       If WMM is enabled or the AP mode isn't set, cannot set acceleration to MAXg.
+               */
+               if (wme == "1")
+               {
+                       // find the index of the MAXg option and delete it
+                       for (var ix = 0; ix < cbAcceleration.options.length; ++ix)
+                       {
+                               if (cbAcceleration.options[ix].value == "maxg")
+                               {
+                                       cbAcceleration.options[ix] = null;
+                                       break;
+                               }
+                       }
+               }
+               setVisibility("idWMMnoMAXg", (wme == "1"));
+
       if ( pre == 'short' )
          wlPreambleType.selectedIndex = 1;
       else
@@ -548,8 +502,16 @@ function frmLoad() {
          wlProtection.selectedIndex = getGModeProtection(pro);
          gModeChange();
       }
+
+      wlTxPower.selectedIndex = ((TxPwrPcnt/20) -1);
+      wlRegMode.selectedIndex = reg_mode;
+      wlDfsPreIsm.value = dfs_preism;
+      wlDfsPostIsm.value = dfs_postism;
+      wlTpcDb.selectedIndex = getTpcDbIndex(tpcDb);
+      RegModeChange();
+
    }
-   wl_recalc(1); 
+   wl_recalc(1);
 }
 
 function btnApply() {
@@ -560,10 +522,9 @@ function btnApply() {
       alert('Cannot apply the change since wireless is currently disabled.');
       return;
    }
-   
-   if(wl_recalc(0) == false){
+
+   if (!wl_recalc(0))
       return;
-   }
 
    with ( document.forms[0] ) {
       frgNum = parseInt(wlFrgThrshld.value);
@@ -589,7 +550,7 @@ function btnApply() {
          alert('Beacon interval "' + wlBcnIntvl.value + '" should be between 1 and 65535.');
          return;
       }
-     
+
       idx = wlChannel.selectedIndex;
       loc += 'wlChannel=' + wlChannel.options[idx].value;
       idx = wlRate.selectedIndex;
@@ -617,8 +578,6 @@ function btnApply() {
                        loc += "&wlFrameBurst=off";
                }
 
-      loc += '&wlWme=' + parseInt(wlWme.value);
-      loc += '&wlWmeNoAck=' + parseInt(wlWmeNoAck.value);      
       loc += '&wlAPIsolation=' + wlAPIsolation.value;
       loc += '&wlBand=' + wlBand.value;
       idx = wlMCastRate.selectedIndex;
@@ -639,18 +598,43 @@ function btnApply() {
             loc += '&wlPreambleType=' + wlPreambleType.options[idx].value;
          }
       }
+
+     idx = wlTxPower.selectedIndex;
+     loc += '&wlTxPwrPcnt=' + wlTxPower.options[idx].value;
+
+     idx = wlRegMode.selectedIndex;
+     loc += '&wlRegMode=' + wlRegMode.options[idx].value;
+     if(wlRegMode.selectedIndex == 1) {
+        DfsPreIsmNum = parseInt(wlDfsPreIsm.value);
+        if ( isNaN(DfsPreIsmNum) == true || DfsPreIsmNum < 0 || DfsPreIsmNum > 99 ) {
+           alert('Pre-Network Radar Check "' + wlDfsPreIsm.value + '" should be between 0 and 99.');
+           return;
+        }
+
+        DfsPostNum = parseInt(wlDfsPostIsm.value);
+        if ( isNaN(DfsPostNum) == true || DfsPostNum < 10 || DfsPostNum > 99 ) {
+           alert('In-Network Radar Check: "' + wlDfsPostIsm.value + '" should be between 10 and 99.');
+           return;
+        }
+
+        loc += '&wlDfsPreIsm=' + wlDfsPreIsm.value;
+        loc += '&wlDfsPostIsm=' + wlDfsPostIsm.value;
+        idx = wlTpcDb.selectedIndex;
+        loc += '&wlTpcDb=' + wlTpcDb.options[idx].value;
+     }
    }
 
-   var code = 'location.assign("' + loc + '")';
+   var code = 'location = "' + loc + '"';
    eval(code);
 }
+
 // done hiding -->
-            </script>
+       </script>
 </head>
-<body onload="initMenu('idMenu'); frmLoad();">
+<body onload="initMenu(); frmLoad();">
 
 <script type="text/javascript">
-    writeHeader("Wireless", "<%ejGet(curUserName)%>", "<%ejGetOther(sysInfo, adslStd)%>", "<%ejGetOther(sysInfo, noBrPrtcl)%>", <%ejGetOther(sysInfo, pppIpExtension)%>, <%ejGetOther(sysInfo, enblFirewall)%>, <%ejGetOther(sysInfo, enblNat)%>, "<%ejGetWl(wlInterface)%>", <%ejGet(enblQos)%>);
+    writeHeader("Wireless", "<%ejGetJS(curUserName)%>", "<%ejGetOther(sysInfo, adslStd)%>", "<%ejGetOther(sysInfo, noBrPrtcl)%>", <%ejGetOther(sysInfo, pppIpExtension)%>, <%ejGetOther(sysInfo, enblFirewall)%>, <%ejGetOther(sysInfo, enblNat)%>, "<%ejGetWlJS(wlInterface)%>", <%ejGetJS(enblQos)%>);
 </script>
 
 <h3>Advanced Settings</h3>
@@ -659,10 +643,10 @@ function btnApply() {
 interface. You can select a particular channel on which to operate, force the
 transmission rate to a particular speed, set the fragmentation threshold, set
 the RTS threshold, set the wakeup interval for clients in power-save mode, set
-the beacon interval for the access point, set 54g+ (XPress) mode and set whether
+the beacon interval for the access point, set the acceleration mode and set whether
 short or long preambles are used.</p>
 
-<p>Press <b>Apply</b> to configure the advanced wireless options.</p>
+<p>Press <b>Apply</b> when you&rsquo;re finished making changes.</p>
 
 <form>
    <table border="0" cellpadding="2" cellspacing="0">
@@ -679,18 +663,18 @@ short or long preambles are used.</p>
 <script type="text/javascript">
 <!-- hide
 if ( bands == '3' ) { // dual band
-         document.writeln('      <option value=2>2.4GHz - 802.11g');
-         document.writeln('      <option value=1>5GHz - 802.11a');         
+         document.writeln('      <option value=2>2.4GHz - 802.11g</option>');
+         document.writeln('      <option value=1>5GHz - 802.11a</option>');
 }
 else if (bands == '1') {
-         document.writeln('      <option value=1>5GHz - 802.11a');         
+         document.writeln('      <option value=1>5GHz - 802.11a</option>');
 }
 else {
     if (phy == "g") {
-         document.writeln('      <option value=2>2.4GHz - 802.11g');
+         document.writeln('      <option value=2>2.4GHz - 802.11g</option>');
     }
     else {
-         document.writeln('      <option value=2>2.4GHz - 802.11b');
+         document.writeln('      <option value=2>2.4GHz - 802.11b</option>');
     }
 }
 // done hiding -->
@@ -719,7 +703,8 @@ else {
       </tr>
       <tr>
           <td><label for="wlFrgThrshld">Fragmentation threshold:</label></td>
-          <td><input type='text' name='wlFrgThrshld' id='wlFrgThrshld' size='10'></td>
+          <td><input type='text' name='wlFrgThrshld' id='wlFrgThrshld' size='10' onchange="wl_recalc(0);">
+          <span class="clsNote">(Note: <b>MAXg</b> acceleration requires a value of 2346.)</span></td>
       </tr>
       <tr>
           <td><label for="wlRtsThrshld">RTS threshold:</label></td>
@@ -744,11 +729,26 @@ else {
                                </select>
                        </td>
                </tr>
+               <tr id="idWMMnoMAXg">
+                       <td></td>
+                       <td>
+                               WMM is enabled so <b>Acceleration</b> cannot be set to <b>MAXg</b>.
+                               In order to set <b>Acceleration</b> to <b>MAXg</b>, please disable
+                               <b>WMM</b> on the <a href="wlqos.html">Wireless Quality of Service</a> page.
+                       </td>
+               </tr>
+               <tr id="idFragNoMAXg">
+                       <td></td>
+                       <td>
+                               In order to set <b>Acceleration</b> to <b>MAXg</b>,
+                               the <b>Fragmentation threshold</b> must be set to <b>2346</b>.
+                       </td>
+               </tr>
 
       <tr id="div_gMode">
           <td><label for="">54g&trade; mode:</label></td>
           <td><select name="wlgMode" id="wlgMode" onChange="gModeChange()">
-                  <option value="1">54g Auto</option>
+                  <option value="1">Automatic</option>
                   <option value="4">54g Performance</option>
                   <option value="5">54g LRS</option>
                   <option value="0">802.11b Only</option>
@@ -758,25 +758,46 @@ else {
           <td><label for="">54g protection:</label></td>
           <td><select name="wlProtection" id="wlProtection">
                   <option value="off">Disabled</option>
-                  <option value="auto">Auto</option>
+                  <option value="auto">Automatic</option>
               </select></td>
       </tr>
-      <tr id="WME">
-          <td><label for="">WMM (Wi-Fi multimedia):</label></td>
-          <td><select name='wlWme' id='wlWme' onChange='wl_recalc(0)'>
-                  <option value="0">Disabled</option>
-                  <option value="1">Enabled</option>
-              </select></td>
+      <tr id="div_regMode">
+         <td><label for="">Regulatory mode:</label></td>
+         <td><select name="wlRegMode" id="wlRegMode" onChange='RegModeChange()'>
+               <option value="0">Disabled</option>
+               <option value="1">802.11h</option>
+               <option value="2">802.11d</option>
+             </select></td>
+      </tr>
+      <tr id="div_regMode1">
+         <td><label for="">Pre-network radar check:</label></td>
+         <td><input type='text' name='wlDfsPreIsm' id='wlDfsPreIsm'></td>
+      </tr>
+      <tr id="div_regMode2">
+         <td><label for="">In-network radar check:</label></td>
+         <td><input type='text' name='wlDfsPostIsm' id='wlDfsPostIsm'></td>
+      </tr>
+      <tr>
+         <td label for=""="180">TPC mitigation:</td>
+         <td><select name="wlTpcDb" id="wlTpcDb">
+               <option value="0">0 dB (off)</option>
+               <option value="2">2 dB</option>
+               <option value="3">3 dB</option>
+               <option value="4">4 dB</option>
+            </select></td>
+      </tr>
+      <tr id="WLTXPOWER">
+         <td><label for="">Transmit power:</label></td>
+         <td><select name="wlTxPower" id="wlTxPower">
+               <option value="20">20%</option>
+               <option value="40">40%</option>
+               <option value="60">60%</option>
+               <option value="80">80%</option>
+               <option value="100">100%</option>
+             </select></td>
       </tr>
-      <tr id="WME_NOACK">
-          <td><label for="">WMM no-acknowledgement:</label></td>
-          <td><select name='wlWmeNoAck' id='wlWmeNoAck' onChange='wl_recalc(0)'>
-                  <option value="0">Disabled</option>
-                  <option value="1">Enabled</option>
-              </select></td>
-       </tr>
        <tr id="preambleType">
-           <td><label for="">Preamble Type:</label></td>
+           <td><label for="">Preamble type:</label></td>
            <td><select name="wlPreambleType" id="wlPreambleType" size='1'>
                   <option value="long">long</option>
                   <option value="short">short</option>
@@ -787,6 +808,7 @@ else {
    <p><input type='button' onClick='btnApply()' value='Apply'></p>
 </form>
 
+
 <script type="text/javascript">
     writeFooter();
 </script>