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