1function wl_chanspec_list_change(){ 2 var phytype = "n"; 3 var band = document.form.wl_unit.value; 4 var bw_cap = document.form.wl_bw.value; 5 var bw_cap_ori = '<% nvram_get("wl_bw"); %>'; 6 var chanspecs = new Array(0); 7 var chanspecs_string = new Array(0); 8 var cur = 0; 9 var sel = 0; 10 var cur_control_channel = 0; 11 var extend_channel = new Array(); 12 var cur_extend_channel = 0; //current extension channel 13 var channel_ori = '<% nvram_get("wl_chanspec"); %>'; 14 15 if(country == ""){ 16 country = prompt("The Country Code is not exist! Please enter Country Code.", ""); 17 } 18 19 /* Save current chanspec */ 20 cur = '<% nvram_get("wl_chanspec"); %>'; 21 if (phytype == "a") { // a mode 22 chanspecs = new Array(0); 23 } 24 else if (phytype == "n") { // n mode 25 if (band == "1") { // ---- 5 GHz 26 if(wl_channel_list_5g instanceof Array && wl_channel_list_5g != ["0"]){ //With wireless channel 5g hook or return not ["0"] 27 if(based_modelid == "RT-AC3200"){ 28 wl_channel_list_5g = new Array("36","40","44","48"); 29 }else if(based_modelid == "RT-AC87U"){ 30 if(document.form.wl_bw.value==1){ 31 wl_channel_list_5g = eval('<% channel_list_5g_20m(); %>'); 32 }else if(document.form.wl_bw.value==2){ 33 wl_channel_list_5g = eval('<% channel_list_5g_40m(); %>'); 34 }else if(document.form.wl_bw.value==3){ 35 wl_channel_list_5g = eval('<% channel_list_5g_80m(); %>'); 36 }else{ 37 wl_channel_list_5g = eval('<% channel_list_5g(); %>'); 38 } 39 }else 40 wl_channel_list_5g = eval('<% channel_list_5g(); %>'); 41 42 extend_channel = ["<#Auto#>"]; // for 5GHz, extension channel always displays Auto 43 extend_channel_value = [""]; 44 if (bw_cap != "0" && bw_cap != "1" && wl_channel_list_5g.getIndexByValue("165") >= 0 ) // rm 165, If not [20 MHz] or not [Auto] 45 wl_channel_list_5g.splice(wl_channel_list_5g.getIndexByValue("165"),1); 46 47 if(bw_cap == "0"){ // [20/40/80 MHz] (auto) 48 document.getElementById('wl_nctrlsb_field').style.display = ""; 49 for(var i=0;i<wl_channel_list_5g.length;i++){ 50 if(wl_channel_list_5g[i] == "165" || wl_channel_list_5g[i] == "140") //140, 165 belong to 20MHz 51 wl_channel_list_5g[i] = wl_channel_list_5g[i]; 52 else if((wl_channel_list_5g[i] == "56") && country == "TW") //56 belong 20MHz only for TW 53 wl_channel_list_5g[i] = wl_channel_list_5g[i]; 54 else if(band5g_11ac_support){ 55 if(country == "EU" && parseInt(wl_channel_list_5g[i]) == 116){ // belong to 20MHz 56 wl_channel_list_5g[i] = wl_channel_list_5g[i]; 57 } 58 else if(country == "EU" && parseInt(wl_channel_list_5g[i]) > 116 && parseInt(wl_channel_list_5g[i]) < 140){ // belong to 40MHz 59 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 60 }else if(country == "TW" && parseInt(wl_channel_list_5g[i]) >= 56 && parseInt(wl_channel_list_5g[i]) <= 64){ // belong to 40MHz 61 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 62 } 63 else if(country == "JP" && ( parseInt(wl_channel_list_5g[i]) == 132 || parseInt(wl_channel_list_5g[i]) == 136)){ // belong to 40MHz 64 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 65 } 66 else if(document.form.wl_nmode_x.value ==1){ 67 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 68 } 69 else{ 70 wl_channel_list_5g[i] = wl_channel_list_5g[i]+"/80"; 71 } 72 } 73 else{ // for 802.11n, RT-N66U 74 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 75 } 76 } 77 } 78 else if(bw_cap == "3"){ // [80 MHz] 79 document.getElementById('wl_nctrlsb_field').style.display = ""; 80 for(var i=wl_channel_list_5g.length-1;i>=0;i--){ 81 82 if(country == "EU" && parseInt(wl_channel_list_5g[i]) >= 116 && parseInt(wl_channel_list_5g[i]) <= 140){ // rm 80MHz invalid channel 83 wl_channel_list_5g.splice(wl_channel_list_5g.getIndexByValue(wl_channel_list_5g[i]),1); 84 } 85 else if(country == "TW" && parseInt(wl_channel_list_5g[i]) >= 56 && parseInt(wl_channel_list_5g[i]) <= 64){ // rm 80MHz invalid channel 86 wl_channel_list_5g.splice(wl_channel_list_5g.getIndexByValue(wl_channel_list_5g[i]),1); 87 } 88 else if(country == "JP" && parseInt(wl_channel_list_5g[i]) >= 132 && parseInt(wl_channel_list_5g[i]) <= 140 ){ 89 wl_channel_list_5g.splice(wl_channel_list_5g.getIndexByValue(wl_channel_list_5g[i]),1); 90 } 91 else{ 92 wl_channel_list_5g[i] = wl_channel_list_5g[i]+"/80"; 93 } 94 } 95 } 96 else if(bw_cap == "2"){ // 40MHz 97 document.getElementById('wl_nctrlsb_field').style.display = ""; 98 if(country == "TW" && wl_channel_list_5g.indexOf("56") != -1){ //remove channel 56, only for country code TW 99 var index = wl_channel_list_5g.indexOf("56"); 100 wl_channel_list_5g.splice(index, 1); 101 } 102 103 if(country == "EU" && wl_channel_list_5g.indexOf("116") != -1){ // remove channel 116, 104 var index = wl_channel_list_5g.indexOf("116"); 105 wl_channel_list_5g.splice(index, 1); 106 } 107 108 if((country == "EU" || country == "JP") && wl_channel_list_5g.indexOf("140") != -1){ // remove channel 140 109 index = wl_channel_list_5g.indexOf("140"); 110 wl_channel_list_5g.splice(index, 1); 111 } 112 113 for(var i=0;i<wl_channel_list_5g.length;i++){ 114 wl_channel_list_5g[i] = wlextchannel_fourty(wl_channel_list_5g[i]); 115 } 116 } 117 else{ //20MHz 118 document.getElementById('wl_nctrlsb_field').style.display = "none"; 119 if(based_modelid == "RT-AC87U" && country == "EU"){ // remove channel between 52 ~ 140 DFS channel of RT-AC87U for EU 120 for(i=wl_channel_list_5g.length - 1;i >= 0 ; i--){ 121 if(parseInt(wl_channel_list_5g[i]) >= 52){ 122 wl_channel_list_5g.splice(wl_channel_list_5g.getIndexByValue(wl_channel_list_5g[i]),1); 123 } 124 } 125 } 126 } 127 128 if(based_modelid == "RT-AC87U" && country == "EU"){ //for 5GHz DFS channel of RT-AC87U 129 if(bw_cap == "1"){ 130 document.getElementById('dfs_checkbox').style.display = "none"; 131 document.form.acs_band1.disabled = true; 132 } 133 else{ 134 if(bw_cap != bw_cap_ori){ //switch to Auto 135 document.getElementById('dfs_checkbox').style.display = ""; 136 document.form.acs_band1.disabled = false; 137 } 138 else{ 139 if(channel_ori == "0"){ 140 document.getElementById('dfs_checkbox').style.display = ""; 141 document.form.acs_band1.disabled = false; 142 } 143 else{ 144 document.getElementById('dfs_checkbox').style.display = "none"; 145 document.form.acs_band1.disabled = true; 146 } 147 } 148 } 149 } 150 151 if(wl_channel_list_5g[0] != "0") 152 wl_channel_list_5g.splice(0,0,"0"); 153 154 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, 1); //construct extension channel 155 chanspecs = wl_channel_list_5g; 156 } 157 else{ // hook failure to set chennel by static channels array 158 if (bw_cap == "1") { // -- 20 MHz 159 if (country == "Q2") 160 chanspecs = new Array(0, "36", "40", "44", "48", "149", "153", "157", "161", "165"); 161 else if (country == "EU") 162 chanspecs = new Array(0, "36", "40", "44", "48", "52", "56", "60", "64", "100", "104", "108", "112", "116", "132", "136", "140"); 163 else if (country == "TW") 164 chanspecs = new Array(0, "56", "60", "64", "149", "153", "157", "161", "165"); 165 else if (country == "CN") 166 chanspecs = new Array(0, "149", "153", "157", "161", "165"); 167 else if (country == "XX") 168 chanspecs = new Array(0, "36", "40", "44", "48", "52", "56", "60", "64", "100", "104", "108", "112", "116", "120", "124", "128", "132", "136", "140", "144", "149", "153", "157", "161", "165"); 169 else // US 170 chanspecs = new Array(0, "36", "40", "44", "48", "149", "153", "157", "161", "165"); 171 } 172 else if (bw_cap == "2" || (bw_cap == "0" && document.form.preferred_lang.value == "UK")) { // -- [40 MHz] || [20/40 MHz](auto) for UK 173 if (country == "Q2") 174 chanspecs = new Array(0, "36l", "40u", "44l", "48u", "149l", "153u", "157l", "161u", "165"); 175 else if (country == "EU") 176 chanspecs = new Array(0, "36l", "40u", "44l", "48u", "52l", "56u", "60l", "64u", "100l", "104u", "108l", "112u", "116l", "132l", "136u", "140l"); 177 else if (country == "TW") 178 chanspecs = new Array(0, "60l", "64u", "149l", "153u", "157l", "161u", "165"); 179 else if (country == "CN") 180 chanspecs = new Array(0, "149l", "153u", "157l", "161u", "165"); 181 else if (country == "XX") 182 chanspecs = new Array(0, "36l", "40u", "44l", "48u", "52l", "56u", "60l", "64u", "100l", "104u", "108l", "112u", "116l", "120u", "124l", "128u", "132l", "136u", "140l", "144u", "149l", "153u", "157l", "161u", "165"); 183 else // US 184 chanspecs = new Array(0, "36l", "40u", "44l", "48u", "149l", "153u", "157l", "161u", "165"); 185 } 186 else if (bw_cap == "3") { // -- 80 MHz 187 if (country == "Q2") 188 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "149/80", "153/80", "157/80", "161/80"); 189 else if (country == "EU") 190 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "52/80", "56/80", "60/80", "64/80", "100/80", "104/80", "108/80", "112/80"); 191 else if (country == "TW") 192 chanspecs = new Array(0, "149/80", "153/80", "157/80", "161/80"); 193 else if (country == "CN") 194 chanspecs = new Array(0, "149/80", "153/80", "157/80", "161/80"); 195 else if (country == "XX") 196 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "52/80", "56/80", "60/80", "64/80", "100/80", "104/80", "108/80", "112/80", "116/80", "120/80", "124/80", "128/80", "132/80", "136/80", "140/80", "144/80", "149/80", "153/80", "157/80", "161/80"); 197 else // US 198 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "149/80", "153/80", "157/80", "161/80"); 199 } 200 else if (bw_cap == "0" && document.form.preferred_lang.value != "UK") { // -- [20/40/80 MHz] (Auto) for not UK 201 if (country == "Q2") 202 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "149/80", "153/80", "157/80", "161/80", "165"); 203 else if (country == "EU") 204 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "52/80", "56/80", "60/80", "64/80", "100/80", "104/80", "108/80", "112/80", "116l", "132l", "136u", "140l"); 205 else if (country == "TW") 206 chanspecs = new Array(0, "149/80", "153/80", "157/80", "161/80", "165"); 207 else if (country == "CN") 208 chanspecs = new Array(0, "149/80", "153/80", "157/80", "161/80", "165"); 209 else if (country == "XX") 210 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "52/80", "56/80", "60/80", "64/80", "100/80", "104/80", "108/80", "112/80", "116/80", "120/80", "124/80", "128/80", "132/80", "136/80", "140/80", "144/80", "149/80", "153/80", "157/80", "161/80", "165"); 211 else // US 212 chanspecs = new Array(0, "36/80", "40/80", "44/80", "48/80", "149/80", "153/80", "157/80", "161/80", "165"); 213 } 214 else { // ... 215 chanspecs = [0]; 216 } 217 } 218 } 219 else if (band == "0") { // - 2.4 GHz 220 if(wl_channel_list_2g instanceof Array && wl_channel_list_2g != ["0"]){ //With wireless channel 2.4g hook or return ["0"] 221 wl_channel_list_2g = eval('<% channel_list_2g(); %>'); 222 if(wl_channel_list_2g[0] != "0") 223 wl_channel_list_2g.splice(0,0,"0"); 224 225 if(cur.search('[ul]') != -1){ 226 cur_extend_channel = cur.slice(-1); //current control channel 227 cur_control_channel = cur.split(cur_extend_channel)[0]; //current extension channel direction 228 } 229 else{ 230 cur_control_channel = cur; 231 } 232 233 if(bw_cap == "2" || bw_cap == "0") { // -- [40 MHz] | [20/40 MHz] 234 document.getElementById('wl_nctrlsb_field').style.display = ""; 235 if(cur_control_channel == 0){ 236 extend_channel = ["<#Auto#>"]; 237 extend_channel_value = ["1"]; 238 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, 1); 239 } 240 else if(cur_control_channel >= 1 && cur_control_channel <= 4){ 241 extend_channel = ["Above"]; 242 add_options_x2(document.form.wl_nctrlsb, extend_channel, "l"); 243 } 244 else if(wl_channel_list_2g.length == 12){ // 1 ~ 11 245 if(cur_control_channel >= 5 && cur_control_channel <= 7){ 246 extend_channel = ["Above", "Below"]; 247 extend_channel_value = ["l", "u"]; 248 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, cur_extend_channel); 249 } 250 else if(cur_control_channel >= 8 && cur_control_channel <= 11){ 251 extend_channel = ["Below"]; 252 extend_channel_value = ["u"]; 253 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, cur_extend_channel); 254 } 255 } 256 else{ // 1 ~ 13 257 if(cur_control_channel >= 5 && cur_control_channel <= 9){ 258 extend_channel = ["Above", "Below"]; 259 extend_channel_value = ["l", "u"]; 260 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, cur_extend_channel); 261 } 262 else if(cur_control_channel >= 10 && cur_control_channel <= 13){ 263 extend_channel = ["Below"]; 264 extend_channel_value = ["u"]; 265 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, cur_extend_channel); 266 } 267 } 268 }else{ // -- [20 MHz] 269 cur_control_channel = cur; 270 document.getElementById('wl_nctrlsb_field').style.display = "none"; 271 } 272 273 chanspecs = wl_channel_list_2g; 274 }else{ 275 if (bw_cap == "1") { // -- 20 MHz 276 if (country == "Q2") 277 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"); 278 else if (country == "EU") 279 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"); 280 else if (country == "TW") 281 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"); 282 else if (country == "CN") 283 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"); 284 else if (country == "XX") 285 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14"); 286 else // US 287 chanspecs = new Array(0, "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"); 288 } 289 else if (bw_cap == "2" || bw_cap == "0") { // -- 40 MHz 290 if (country == "Q2") 291 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8u", "9u", "10u", "11u"); 292 else if (country == "EU") 293 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8l", "8u", "9l", "9u", "10u", "11u", "12u", "13u"); 294 else if (country == "TW") 295 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8u", "9u", "10u", "11u"); 296 else if (country == "CN") 297 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8l", "8u", "9l", "9u", "10u", "11u", "12u", "13u"); 298 else if (country == "XX") 299 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8l", "8u", "9l", "9u", "10u", "11u", "12u", "13u", "14u"); 300 else // US 301 chanspecs = new Array(0, "1l", "2l", "3l", "4l", "5l", "5u", "6l", "6u", "7l", "7u", "8u", "9u", "10u", "11u"); 302 } 303 else { // ... 304 chanspecs = [0]; 305 } 306 } 307 } 308 else if(band == "2"){ // 5GHz - high band 309 if(based_modelid == "RT-AC3200"){ 310 if(country == "E0") 311 wl_channel_list_5g_2 = new Array("100","104","108","112","116","132","136","140"); 312 else if(country == "JP") 313 wl_channel_list_5g_2 = new Array("100","104","108","112","116","120","124","128","132","136","140"); 314 else //US 315 wl_channel_list_5g_2 = new Array("149","153","157","161","165"); 316 } 317 else 318 wl_channel_list_5g_2 = eval('<% channel_list_5g_2(); %>'); 319 320 extend_channel = ["<#Auto#>"]; // for 5GHz, extension channel always displays Auto 321 extend_channel_value = [""]; 322 if (bw_cap != "0" && bw_cap != "1" && wl_channel_list_5g_2.getIndexByValue("165") >= 0 ) // rm 165, If not [20 MHz] or not [Auto] 323 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue("165"),1); 324 325 if(country == "E0"){ //weather radar channels 326 if(wl_channel_list_5g_2.getIndexByValue("120") >= 0) 327 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue("120"),1); 328 if(wl_channel_list_5g_2.getIndexByValue("124") >= 0) 329 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue("124"),1); 330 if(wl_channel_list_5g_2.getIndexByValue("128") >= 0) 331 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue("128"),1); 332 } 333 334 if(bw_cap == "0"){ // [20/40/80 MHz] (auto) 335 document.getElementById('wl_nctrlsb_field').style.display = ""; 336 for(var i=0;i<wl_channel_list_5g_2.length;i++){ 337 if(wl_channel_list_5g_2[i] == "165" || wl_channel_list_5g_2[i] == "140") //165 belong to 20MHz 338 wl_channel_list_5g_2[i] = wl_channel_list_5g_2[i]; 339 else if((wl_channel_list_5g_2[i] == "56") && country == "TW") //56 belong 20MHz only for TW 340 wl_channel_list_5g_2[i] = wl_channel_list_5g_2[i]; 341 else if(band5g_11ac_support){ 342 if(country == "EU" && parseInt(wl_channel_list_5g_2[i]) == 116){ // belong to 20MHz 343 wl_channel_list_5g_2[i] = wl_channel_list_5g_2[i]; 344 }else if((country == "EU" || country == "E0")&& parseInt(wl_channel_list_5g_2[i]) > 116 && parseInt(wl_channel_list_5g_2[i]) < 140){ // belong to 40MHz 345 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 346 }else if(country == "TW" && parseInt(wl_channel_list_5g_2[i]) >= 56 && parseInt(wl_channel_list_5g_2[i]) <= 64){ // belong to 40MHz 347 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 348 }else if(country == "JP" && ( parseInt(wl_channel_list_5g_2[i]) == 132 || parseInt(wl_channel_list_5g_2[i]) == 136)){ // belong to 40MHz 349 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 350 }else if(document.form.wl_nmode_x.value ==1){ 351 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 352 }else{ 353 wl_channel_list_5g_2[i] = wl_channel_list_5g_2[i]+"/80"; 354 } 355 } 356 else{ // for 802.11n, RT-N66U 357 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 358 } 359 } 360 } 361 else if(bw_cap == "3"){ // [80 MHz] 362 document.getElementById('wl_nctrlsb_field').style.display = ""; 363 for(var i=wl_channel_list_5g_2.length-1;i>=0;i--){ 364 365 if((country == "EU" || country == "E0") && parseInt(wl_channel_list_5g_2[i]) >= 116 && parseInt(wl_channel_list_5g_2[i]) <= 140){ // rm 80MHz invalid channel 366 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue(wl_channel_list_5g_2[i]),1); 367 }else if(country == "TW" && parseInt(wl_channel_list_5g_2[i]) >= 56 && parseInt(wl_channel_list_5g_2[i]) <= 64){ // rm 80MHz invalid channel 368 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue(wl_channel_list_5g_2[i]),1); 369 }else if(based_modelid == "RT-AC3200" && country == "JP" && parseInt(wl_channel_list_5g_2[i]) >= 132 && parseInt(wl_channel_list_5g_2[i]) <= 140){ // rm 80MHz invalid channel 370 wl_channel_list_5g_2.splice(wl_channel_list_5g_2.getIndexByValue(wl_channel_list_5g_2[i]),1); 371 }else{ 372 wl_channel_list_5g_2[i] = wl_channel_list_5g_2[i]+"/80"; 373 } 374 } 375 } 376 else if(bw_cap == "2"){ // 40MHz 377 document.getElementById('wl_nctrlsb_field').style.display = ""; 378 if(country == "TW" && wl_channel_list_5g_2.indexOf("56") != -1){ //remove channel 56, only for country code TW 379 var index = wl_channel_list_5g_2.indexOf("56"); 380 wl_channel_list_5g_2.splice(index, 1); 381 } 382 383 if(wl_channel_list_5g_2.indexOf("116") != -1 && !(based_modelid == "RT-AC3200" && country == "JP")){ // remove channel 116, 384 var index = wl_channel_list_5g_2.indexOf("116"); 385 wl_channel_list_5g_2.splice(index, 1); 386 } 387 388 if(wl_channel_list_5g_2.indexOf("140") != -1){ // remove channel 140 389 index = wl_channel_list_5g_2.indexOf("140"); 390 wl_channel_list_5g_2.splice(index, 1); 391 } 392 393 for(var i=0;i<wl_channel_list_5g_2.length;i++){ 394 wl_channel_list_5g_2[i] = wlextchannel_fourty(wl_channel_list_5g_2[i]); 395 } 396 } 397 else{ //20MHz 398 document.getElementById('wl_nctrlsb_field').style.display = "none"; 399 } 400 401 if(wl_channel_list_5g_2[0] != "0") 402 wl_channel_list_5g_2.splice(0,0,"0"); 403 404 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value, 1); //construct extension channel 405 chanspecs = wl_channel_list_5g_2; 406 } //end 5GHz - high band 407 } 408 else { // b/g mode 409 chanspecs = new Array(0); 410 } 411 412 /* Reconstruct channel array from new chanspecs */ 413 document.form.wl_channel.length = chanspecs.length; 414 if(band == 1 || band == 2){ 415 for (var i in chanspecs){ 416 if (chanspecs[i] == 0) 417 document.form.wl_channel[i] = new Option("<#Auto#>", chanspecs[i]); 418 else 419 document.form.wl_channel[i] = new Option(chanspecs[i].toString().replace("/80", "").replace("u", "").replace("l", ""), chanspecs[i]); 420 document.form.wl_channel[i].value = chanspecs[i]; 421 if (chanspecs[i] == cur && bw_cap == '<% nvram_get("wl_bw"); %>'){ 422 document.form.wl_channel[i].selected = true; 423 sel = 1; 424 } 425 } 426 if (sel == 0 && document.form.wl_channel.length > 0) 427 document.form.wl_channel[0].selected = true; 428 } 429 else{ 430 for(i=0;i< chanspecs.length;i++){ 431 if(i == 0) 432 chanspecs_string[i] = "<#Auto#>"; 433 else 434 chanspecs_string[i] = chanspecs[i]; 435 436 } 437 438 add_options_x2(document.form.wl_channel, chanspecs_string, chanspecs, cur_control_channel); 439 } 440} 441 442function wlextchannel_fourty(v){ 443 var tmp_wl_channel_5g = ""; 444 if(v > 144){ 445 tmp_wl_channel_5g = v - 1; 446 if(tmp_wl_channel_5g%8 == 0) 447 v = v + "u"; 448 else 449 v = v + "l"; 450 }else{ 451 if(v%8 == 0) 452 v = v + "u"; 453 else 454 v = v + "l"; 455 } 456 457 return v; 458} 459 460var wl1_dfs = '<% nvram_get("wl1_dfs"); %>'; 461function change_channel(obj){ 462 var extend_channel = new Array(); 463 var extend_channel_value = new Array(); 464 var selected_channel = obj.value; 465 var channel_length =obj.length; 466 var band = document.form.wl_unit.value; 467 if(document.form.wl_bw.value != 1){ // 20/40 MHz or 40MHz 468 if(channel_length == 12){ // 1 ~ 11 469 if(selected_channel >= 1 && selected_channel <= 4){ 470 extend_channel = ["Above"]; 471 extend_channel_value = ["l"]; 472 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 473 } 474 else if(selected_channel >= 5 && selected_channel <= 7){ 475 extend_channel = ["Above", "Below"]; 476 extend_channel_value = ["l", "u"]; 477 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 478 } 479 else if(selected_channel >= 8 && selected_channel <= 11){ 480 extend_channel = ["Below"]; 481 extend_channel_value = ["u"]; 482 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 483 } 484 else{ //for 0: Auto 485 extend_channel = ["<#Auto#>"]; 486 extend_channel_value = [""]; 487 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 488 } 489 } 490 else{ // 1 ~ 13 491 if(selected_channel >= 1 && selected_channel <= 4){ 492 extend_channel = ["Above"]; 493 extend_channel_value = ["l"]; 494 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 495 } 496 else if(selected_channel >= 5 && selected_channel <= 9){ 497 extend_channel = ["Above", "Below"]; 498 extend_channel_value = ["l", "u"]; 499 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 500 } 501 else if(selected_channel >= 10 && selected_channel <= 13){ 502 extend_channel = ["Below"]; 503 extend_channel_value = ["u"]; 504 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 505 } 506 else{ //for 0: Auto 507 extend_channel = ["<#Auto#>"]; 508 extend_channel_value = [""]; 509 add_options_x2(document.form.wl_nctrlsb, extend_channel, extend_channel_value); 510 } 511 } 512 } 513 514 if(band == 1){ 515 if(country == "EU"){ // for DFS channel 516 if(based_modelid == "RT-AC68U" || based_modelid == "RT-AC68U_V2" || based_modelid == "RT-AC69U" || based_modelid == "DSL-AC68U" 517 || (based_modelid == "RT-AC66U" && wl1_dfs == "1") 518 || based_modelid == "RT-N66U"){ 519 if(document.form.wl_channel.value == 0){ 520 document.getElementById('dfs_checkbox').style.display = ""; 521 document.form.acs_dfs.disabled = false; 522 } 523 else{ 524 document.getElementById('dfs_checkbox').style.display = "none"; 525 document.form.acs_dfs.disabled = true; 526 } 527 } 528 else if(based_modelid == "RT-AC87U"){ 529 if(document.form.wl_channel.value == "0"){ 530 if(document.form.wl_bw.value == "1"){ 531 document.getElementById('dfs_checkbox').style.display = "none"; 532 document.form.acs_dfs.disabled = true; 533 } 534 else{ 535 document.getElementById('dfs_checkbox').style.display = ""; 536 document.form.acs_dfs.disabled = false; 537 } 538 } 539 else{ 540 document.getElementById('dfs_checkbox').style.display = "none"; 541 document.form.acs_dfs.disabled = true; 542 } 543 } 544 } 545 else if(country == "US" || country == "SG"){ //for acs band1 channel 546 if(based_modelid == "RT-AC68U" || based_modelid == "RT-AC68U_V2" || based_modelid == "RT-AC69U" || based_modelid == "DSL-AC68U" 547 || based_modelid == "RT-AC56U" || based_modelid == "RT-AC56S" 548 || based_modelid == "RT-AC66U" 549 || based_modelid == "RT-N66U" 550 || based_modelid == "RT-AC53U"){ 551 if(document.form.wl_channel.value == 0){ 552 document.getElementById('acs_band1_checkbox').style.display = ""; 553 document.form.acs_band1.disabled = false; 554 } 555 else{ 556 document.getElementById('acs_band1_checkbox').style.display = "none"; 557 document.form.acs_band1.disabled = true; 558 } 559 } 560 } 561 } 562} 563