ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiDmzSet.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiDmzSet.js
new file mode 100644
index 0000000..eeaf1be
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiDmzSet.js
@@ -0,0 +1,172 @@
+

+(function($) {

+    $.fn.objWifiDmzSet = function() {

+        var gDMZHostIpAdrrCtrl;

+        var dmzMode;

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wifiDmzSet.html");

+

+                $("#selDmzSwitch").change(function() {

+                    if("1"==$(this).val()) {

+                        $("#divDmzIpAddr").hide();

+                    } else {

+                        $("#divDmzIpAddr").show();

+                    }

+                });

+

+                $("#lt_dmz_btnAddDmzIpAddr").click(function() {

+                    AddDmzIpAddr();

+                });

+

+                $("#lt_dmz_btnDeleteDmzIpAddr").click(function() {

+                    DeleteDmzIpAddr();

+                });

+

+                $("#lt_dmz_btnEditDmzIpAddr").click(function() {

+                    ModifyDmzIpAddr();

+                });

+

+                gDMZHostIpAdrrCtrl = $("#divhostIpAddrctrl").ip_address("divhostIpAddrctrl");

+

+            } //end flag

+

+            GetFWDmzInfo();

+        }

+

+        function DeleteDmzIpAddr() {

+            //enable DMZ

+            if(dmzMode != $("#selDmzSwitch").val()) {

+                var configMap = new Map();

+                configMap.put("RGW/firewall/dmz_disable",$("#selDmzSwitch").val());

+                var retXml = PostXml("firewall","fw_set_disable_info",configMap);

+            }

+

+            var retXml = PostXml("firewall","delete_dmz");

+            if("OK" != $(retXml).find("setting_response").text()) {

+				alert("delete dmz ip failed.");                

+            }

+			GetFWDmzInfo();

+        }

+

+

+        function AddDmzIpAddr() {

+

+            ShowDlg("divDmzSetDlg",300,100);

+            var dmzdlgipctl = $("#divdmzdlgipControl").ip_address("divdmzdlgipControl");

+

+            $("#lt_btnSave").click(function() {

+                var ipAddr = dmzdlgipctl.getIP();

+                if(!IsIPv4(ipAddr)) {

+                    $("#lt_dmz_ipAddrError").show().text(jQuery.i18n.prop("lt_ipAddrFormatError"));

+                    return;

+                }

+

+

+                //enable DMZ

+                if(dmzMode != $("#selDmzSwitch").val()) {

+                    var configMap = new Map();

+                    configMap.put("RGW/firewall/dmz_disable",$("#selDmzSwitch").val());

+                    var retXml = PostXml("firewall","fw_set_disable_info",configMap);

+                }

+

+

+                var entryMap = new Map();

+                entryMap.put("RGW/firewall/dmz_dest_ip",ipAddr);

+                CloseDlg();

+                var retXml = PostXml("firewall","fw_add_dmz_entry",entryMap);

+                if("OK" != $(retXml).find("setting_response").text()) {

+					alert("add dmz ip addr failed.");                    

+                } 

+				GetFWDmzInfo();

+            });

+        }

+

+        function GetFWDmzInfo() {

+            var retXml = PostXml("firewall","fw_get_disable_info");

+            dmzMode = $(retXml).find("dmz_disable").text();

+            $("#selDmzSwitch").val(dmzMode);

+            if(1 == dmzMode) {

+                $("#divDmzIpAddr").hide();

+            } else {

+                $("#divDmzIpAddr").show();

+                GetDmzIpAddr();

+            }

+

+        }

+

+        function GetDmzIpAddr() {

+            var retXml = PostXml("firewall","fw_get_dmz_info");

+            var hostIpAddr = $(retXml).find("dmz_dest_ip").text();

+            if(""==hostIpAddr) {

+                $("#divIpAddr").hide();

+                $("#lt_dmz_btnAddDmzIpAddr").show();

+                $("#lt_dmz_btnDeleteDmzIpAddr").hide();

+                $("#lt_dmz_btnEditDmzIpAddr").hide();

+            } else {

+                $("#divIpAddr").show();

+                $("#lt_dmz_btnAddDmzIpAddr").hide();

+                $("#lt_dmz_btnDeleteDmzIpAddr").show();

+                $("#lt_dmz_btnEditDmzIpAddr").show();

+

+                gDMZHostIpAdrrCtrl.setIP(hostIpAddr);

+            }

+        }

+

+        function ModifyDmzIpAddr() {

+            ShowDlg("divDmzSetDlg",100,100);

+            var dmzdlgipctl = $("#divdmzdlgipControl").ip_address("divdmzdlgipControl");

+            var curIpAddr = gDMZHostIpAdrrCtrl.getIP();

+            dmzdlgipctl.setIP(curIpAddr);

+

+            $("#lt_btnSave").click(function() {

+                var newIpAddr = dmzdlgipctl.getIP();

+                CloseDlg();

+                if(newIpAddr == curIpAddr) {

+                    return;

+                }

+

+                //enable DMZ

+                if(dmzMode != $("#selDmzSwitch").val()) {

+                    var configMap = new Map();

+                    configMap.put("RGW/firewall/dmz_disable",$("#selDmzSwitch").val());

+                    var retXml = PostXml("firewall","fw_set_disable_info",configMap);

+                }

+

+                var entryMap = new Map();

+                entryMap.put("RGW/firewall/dmz_dest_ip", newIpAddr);

+

+

+                var retXml = PostXml("firewall","fw_edit_dmz_entry",entryMap);

+                if("OK" != $(retXml).find("setting_response").text()) {

+					alert("edit ip filter entry failed.");                    

+                } 

+				GetFWDmzInfo();

+            });

+        }

+

+        this.SaveData = function() {

+            if(dmzMode == $("#selDmzSwitch").val()) {

+                return;

+            }

+

+            var configMap = new Map();

+            configMap.put("RGW/firewall/dmz_disable",$("#selDmzSwitch").val());

+            var retXml = PostXml("firewall","fw_set_disable_info",configMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWDmzInfo();

+            } else {

+                alert("dsm set failed.");

+            }

+        }

+

+

+

+        return this;

+    }

+})(jQuery);

+

+

+

+

+

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiDnfilter.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiDnfilter.js
new file mode 100644
index 0000000..6226017
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiDnfilter.js
@@ -0,0 +1,248 @@
+

+(function($) {

+

+    $.fn.objWifiDnfilter = function() {

+

+

+        var gDisbaledDnFilter;

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wifiDnfilter.html");

+

+                $("#lt_dnfilter_btnAddDnfilter").click(function() {

+                    AddDnfilterEntry();

+                });

+

+                $("#lt_dnfilter_btnDeleteDnfilter").click(function() {

+                    DelDnFilterEntry();

+                });

+

+

+

+                $("#selOpenDnFilterSwitch").change(function() {

+                    if(1 == $(this).val()) {

+                        

+                        $("#divDnFilterList").hide();

+                    } else {

+                        

+                        $("#divDnFilterList").show();

+                    }

+                });

+            } //end flag

+

+            GetFWDnfilterInfo();

+        }

+

+        function DelDnFilterEntry() {

+            var entryIdxList = "";

+            $("tbody tr td :checked").each(function() {

+                var entryIdx = $(this).parents("tr").prevAll("tr").length + 1;

+                entryIdxList = entryIdxList + entryIdx + ",";

+            });

+

+            if(""==entryIdxList) {

+                return;

+            }

+

+            var entryMap = new Map();

+            entryMap.put("RGW/firewall/del_dn_filter_index",entryIdxList);

+            var retXml = PostXml("firewall","delete_dn_filter_entry",entryMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWDnfilterInfolist();

+            } else {

+                alert("delete dn filter entry failed.");

+            }

+        }

+

+

+        function AddDnfilterEntry() {           

+			ShowDnfilterConfigDlg();

+			

+            $("#lt_btnSave").click(function() {

+								

+                var validateMsg = ValidateDnfilterEntry();

+				if("ok" != validateMsg){

+					$("#lDnFilterSetError").show().text(validateMsg);	

+					return;

+				}

+								

+                var entryId = $("tbody tr").size() + 1;

+                var preTag = "RGW/firewall/dn_filter/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElementEx("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElementEx("txtStopTime"));       

+                entryMap.put(preTag+"/domain_name",$("#txtDomainName").val() );

+                entryMap.put(preTag+"/enabled", $("#selDnfilterStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","add_dn_filter_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWDnfilterInfolist();

+                } else {

+                    alert("add port map entry failed.");

+                }

+            });

+        }

+

+

+        function GetFWDnfilterInfo() {

+

+            

+            var retXml = PostXml("firewall","fw_get_disable_info");

+            gDisbaledDnFilter = $(retXml).find("dn_filter_disable").text();

+            $("#selOpenDnFilterSwitch").val(gDisbaledDnFilter);

+            if(1 == gDisbaledDnFilter) {

+                $("#divDnFilterList").hide();

+				return;

+               

+            } else {

+                $("#divDnFilterList").show();

+                 GetFWDnfilterInfolist();

+            }

+        }

+       

+

+         function GetFWDnfilterInfolist() {

+

+			$("#tbodydnfilter").empty();

+            $("#DeleteAlldnfilterEntry").attr("checked",false);

+			$("#lt_dnfilter_btnDeleteDnfilter").hide();					

+

+            var retXml = PostXml("firewall","fw_get_dn_filter_info");

+

+            var bFoundEntry = true;

+            var idx = 1;

+            while(bFoundEntry) {

+                var entryIdx = "entry_" + idx;

+                bFoundEntry = false;

+                $(retXml).find(entryIdx).each(function() {

+                    bFoundEntry = true;

+                    var startTime = $(this).find("start_time").text();

+                    var StopTime = $(this).find("stop_time").text();

+                    var domainName = $(this).find("domain_name").text();

+                    var enabled = $(this).find("enabled").text();

+                    var dnfilterEntryInfo = startTime + ";" + StopTime + ";" + domainName + ";" + enabled;

+					 if(0 == enabled) {

+                        statusString = jQuery.i18n.prop("lt_optDisabledSwitch");

+                    } else {

+                        statusString = jQuery.i18n.prop("lt_optEnableSwitch");

+                    }

+

+                    var htmlTxt = "<tr style='cursor: pointer;'name='" + dnfilterEntryInfo + "'><td>" + startTime + "</td><td>"+ StopTime+ "</td><td>"

+                                  + domainName + "</td><td>"+ statusString + "</td> <td><input type='checkbox'></td></tr>";

+                    $("#tbodydnfilter").append(htmlTxt);

+                });

+                ++idx;

+                $("tbody tr:last td:lt(4)").click(function() {

+                    var entryIdx = $(this).parents("tr").prevAll("tr").length;

+                    ModifyDnfilterEntry(entryIdx);

+                });

+            }

+

+            $("#DeleteAlldnfilterEntry").click(function() { 

+                if($(this).attr("checked")) {

+                    $("tbody :checkbox").attr("checked",true);

+                } else {

+                    $("tbody :checkbox").attr("checked",false);

+                }

+				if($("tbody :checked").length>0){

+					$("#lt_dnfilter_btnDeleteDnfilter").show();					

+				}else{

+					$("#lt_dnfilter_btnDeleteDnfilter").hide();	

+				}

+            });

+

+            $("tbody :checkbox").click(function() {

+                if($("tbody :checked").length == $("tbody tr").length) {

+                    $("#DeleteAlldnfilterEntry").attr("checked",true);

+                } else {

+                    $("#DeleteAlldnfilterEntry").attr("checked",false);

+                }

+				if($("tbody :checked").length>0){

+					$("#lt_dnfilter_btnDeleteDnfilter").show();					

+				}else{

+					$("#lt_dnfilter_btnDeleteDnfilter").hide();	

+				}

+            });

+        }

+

+        function ModifyDnfilterEntry(entryIdx) {

+            ShowDnfilterConfigDlg();

+			var entryId = entryIdx + 1;

+			var selector = "tbody tr:eq(" + entryIdx+ ")";

+            var dnfilterEntryInfo = $(selector).attr("name").split(";");

+

+            SetTimeToElementEx("txtStartTime",dnfilterEntryInfo[0]);

+            SetTimeToElementEx("txtStopTime",dnfilterEntryInfo[1]);

+            $("#txtDomainName").val(dnfilterEntryInfo[2]);

+            $("#selDnfilterStatus").val(dnfilterEntryInfo[3]);

+

+            $("#lt_btnSave").click(function() {

+				var validateMsg = ValidateDnfilterEntry();

+				if("ok" != validateMsg){

+					$("#lDnFilterSetError").show().text(validateMsg);	

+					return;

+				}

+				

+                if(dnfilterEntryInfo[0] == GetTimeFromElementEx("txtStartTime") && dnfilterEntryInfo[1] == GetTimeFromElementEx("txtStopTime")

+                    &&dnfilterEntryInfo[0] == $("#txtDomainName").val()&& dnfilterEntryInfo[3] ==  $("#selDnfilterStatus").val()) {

+                    CloseDlg();

+                    return;

+                }

+

+                var preTag = "RGW/firewall/dn_filter/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElementEx("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElementEx("txtStopTime"));

+                entryMap.put(preTag+"/domain_name",$("#txtDomainName").val());

+                entryMap.put(preTag+"/enabled", $("#selDnfilterStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","edit_dn_filter_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWDnfilterInfolist();

+                } else {

+                    alert("edit dn filter entry failed.");

+                }

+            });//$("#lt_btnSave").click(function(){

+        }

+

+		function ShowDnfilterConfigDlg(){

+			 ShowDlg("divDnfilterSetDlg",300,100);

+            $("[name='time']").keyup(function() {

+				$("#lDnFilterSetError").hide();

+                if($(this).val().length == 2) {

+                    $(this).nextAll(":eq(1)").focus();

+                }

+            });

+

+		}

+

+

+		  this.SaveData = function() {

+            if(gDisbaledDnFilter == $("#selOpenDnFilterSwitch").val()) {

+                return;

+            }

+

+            var configMap = new Map();

+            configMap.put("RGW/firewall/dn_filter_disable",$("#selOpenDnFilterSwitch").val());

+            var retXml = PostXml("firewall","fw_set_disable_info",configMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWDnfilterInfo();

+            } else {

+                alert("Dnfilter set failed.");

+            }

+        }

+		  

+

+		function ValidateDnfilterEntry(){

+			if(!IsTimeEx(GetTimeFromElementEx("txtStartTime")) || !IsTimeEx(GetTimeFromElementEx("txtStopTime"))){

+				return jQuery.i18n.prop("lt_TimeFormatError");

+			}				

+			return "ok";

+		}

+

+    

+        return this;

+    }

+})(jQuery);

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiIpFilter.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiIpFilter.js
new file mode 100644
index 0000000..401a30a
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiIpFilter.js
@@ -0,0 +1,458 @@
+

+(function($) {

+

+    $.fn.objWifiIpFilter = function() {

+        var gDisbaledipFilter;

+        var gIpFilterPolicy;

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wifiIpFilter.html");

+

+

+                $("#selOpenIpFilterSwitch").change(function() {

+                    if(1 == $(this).val()) {

+                        $("#divIpFilterPolicySwitch").hide();

+                        $("#divIpFilterList").hide();

+                    } else {

+                        $("#divIpFilterPolicySwitch").show();

+                        $("#divIpFilterList").show();

+                    }

+                });

+

+                $("#selIpFilterPolicySwitch").change(function() {

+                    $("#divIpFilterList").show();

+                   

+                    if("ACCEPT"==$(this).val()) {

+                        $("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_AcceptHelper'));

+                    } else {

+                        $("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_rejectHelper'));

+                    }

+                    

+                     //$("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_ruleHelper'));

+                });

+

+                $("#lt_ipFilter_btnAddIpFilter").click(function() {

+                    AddIpFilterEntry();

+                });

+

+                $("#lt_ipFilter_btnDeleteIpFilter").click(function() {

+                    DelIpFilterEntry();

+                });

+            } //end flag

+

+            GetFWIpFilterInfo();

+        }

+

+        function DelIpFilterEntry() {

+            var entryIdxList = "";

+            $("tbody tr td :checked").each(function() {

+                var entryIdx = $(this).parents("tr").prevAll("tr").length + 1;

+                entryIdxList = entryIdxList + entryIdx + ",";

+            });

+

+            if(""==entryIdxList) {

+                return;

+            }

+

+            var entryMap = new Map();

+            entryMap.put("RGW/firewall/delete_ipfilter_index",entryIdxList);

+            var retXml = PostXml("firewall","delete_ip_filter_entry",entryMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWIpFilterInfo();

+            } else {

+                alert("delete ip filter entry failed.");

+            }

+        }

+

+        function AddIpFilterEntry() {

+		ShowDlg("divIpFilterSetDlg",300,100);

+		var ipControl_source = 0;

+		var ipControl_dest = 0;

+		

+		$("#selIpFilterSrc").change(function() {

+			if(1 == $(this).val()) {

+				$("#divIpFilterSrcCustom").show();

+			 	getID("divipControl_source").innerHTML = "";

+				ipControl_source = $("#divipControl_source").ip_address("divipControl_source");

+			}

+			else {

+				$("#divIpFilterSrcCustom").hide();

+			}

+		});

+

+		$("#selIpFilterDst").change(function() {

+			if(1 == $(this).val()) { 

+				$("#divIpFilterDstCustom").show();

+			 	getID("divipControl_dest").innerHTML = "";

+				ipControl_dest = $("#divipControl_dest").ip_address("divipControl_dest");

+			}

+			else {

+				$("#divIpFilterDstCustom").hide();

+			}

+		});

+

+		$("[name='time']").keyup(function() {

+			if($(this).val().length == 2) {

+				$(this).nextAll(":eq(1)").focus();

+			}

+		});

+            

+              $("#lt_btnSave").click(function() {

+              	var srcIpSel = $("#selIpFilterSrc").val();

+		var dstIpSel = $("#selIpFilterDst").val();

+		

+		if (0 == srcIpSel) {

+			ipControl_source = 0;

+		} 

+

+		if (0 == dstIpSel) {

+			ipControl_dest = 0; 

+		}

+		var validateMsg = ValidateIPFilterEntry(ipControl_source,ipControl_dest);

+		if("ok" != validateMsg){

+			$("#lIpFilterSetError").show().text(validateMsg);	

+			return;

+		}

+                

+                var entryId = $("tbody tr").size() + 1;

+                var preTag = "RGW/firewall/ip_filter/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElement("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElement("txtEndTime"));

+

+		if (0 == srcIpSel) 

+			entryMap.put(preTag+"/src_ip", "0");

+		else 

+			entryMap.put(preTag+"/src_ip", ipControl_source.getIP());

+        

+                if (0 == dstIpSel)

+                	entryMap.put(preTag+"/dest_ip", "0");

+	        else 

+	        	entryMap.put(preTag+"/dest_ip", ipControl_dest.getIP());

+    

+                entryMap.put(preTag+"/src_port", GetPortFromElement("txtSrcPort"));

+                entryMap.put(preTag+"/dest_port", GetPortFromElement("txtDestPort"));

+                entryMap.put(preTag+"/proto", $("#selIpFilterProtocol").val());

+                //entryMap.put(preTag+"/target", $("#selIpFilterAction").val());

+                if ($("#selIpFilterPolicySwitch").val() == "ACCEPT")

+			entryMap.put(preTag+"/target", "REJECT");

+                else

+                	entryMap.put(preTag+"/target", "ACCEPT");

+                

+                entryMap.put(preTag+"/enabled", $("#selIpFilterStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","add_ip_filter_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWIpFilterInfo();

+                } else {

+                    alert("add ip filter entry failed.");

+                }

+

+            });

+        }

+

+        function GetFWIpFilterInfo() {

+            var retXml = PostXml("firewall","fw_get_disable_info");

+            gDisbaledipFilter = $(retXml).find("ip_filter_disable").text();

+            $("#selOpenIpFilterSwitch").val(gDisbaledipFilter);

+            if(1 == gDisbaledipFilter) {

+                $("#divIpFilterList").hide();

+                $("#divIpFilterPolicySwitch").hide();

+            } else {

+                $("#divIpFilterList").show();

+                $("#divIpFilterPolicySwitch").show();

+                GetIpFilterDefaultPolicyInfo();

+            }

+

+        }

+

+        function GetIpFilterDefaultPolicyInfo() {

+

+            var retXml = PostXml("firewall","fw_get_ip_filter_info");

+            gIpFilterPolicy = $(retXml).find("default_policy").text();

+

+	    

+            $("#selIpFilterPolicySwitch").val(gIpFilterPolicy);

+            if("ACCEPT"==$("#selIpFilterPolicySwitch").val()) {

+                $("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_AcceptHelper'));

+            } else {

+                $("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_rejectHelper'));

+            }

+            

+            //$("#lIpFilterListLabel").text(jQuery.i18n.prop('lt_ipFilter_ruleHelper'));

+            $("#tbodyIpFilter").empty();

+            $("#DeleteAllIpEntry").attr("checked",false);

+			$("#lt_ipFilter_btnDeleteIpFilter").hide();					

+

+            var bFoundEntry = true;

+            var idx = 1;

+            while(bFoundEntry) {

+                var entryIdx = "entry_" + idx;

+                bFoundEntry = false;

+                $(retXml).find(entryIdx).each(function() {

+                    bFoundEntry = true;

+                    var startTime = $(this).find("start_time").text();

+                    var stopTime = $(this).find("stop_time").text();

+                    var srcIp = $(this).find("src_ip").text();

+                    var srcPort = $(this).find("src_port").text();

+                    var destIp = $(this).find("dest_ip").text();

+                    var destPort = $(this).find("dest_port").text();

+                    var proto = $(this).find("proto").text();

+                    var target = $(this).find("target").text();

+                    var enabled = $(this).find("enabled").text();

+                    var ipFilterEntryInfo = startTime + ";" + stopTime + ";" +  srcIp + ";" + srcPort + ";"

+                                            + destIp + ";" + destPort + ";" + proto + ";" + target  + ";" + enabled;

+

+                    var timeRange = startTime + "-" + stopTime;

+                    var strStatus;

+                    if(1==enabled) {

+                        strStatus = jQuery.i18n.prop("lt_optEnableSwitch");

+                    } else {

+                        strStatus = jQuery.i18n.prop("lt_optDisabledSwitch");

+                    }

+

+		   if (srcIp == "0")

+		   	srcIp = jQuery.i18n.prop("ltIpFilterLanAll");

+		  

+		   if (destIp == "0")

+		   	destIp = jQuery.i18n.prop("ltIpFilterWanAll");

+

+                    var htmlTxt = "<tr style='cursor: pointer;'name='" + ipFilterEntryInfo + "'><td>" + timeRange + "</td><td>" + srcIp + "</td><td>"

+                                  + destIp + "</td><td>" + srcPort + "</td><td>" + destPort + "</td><td>" + proto + "</td><td>" + strStatus + "</td> <td><input type='checkbox'></td></tr>";

+                    $("#tbodyIpFilter").append(htmlTxt);

+                });

+                ++idx;

+

+                $("tbody tr:last td:lt(8)").click(function() {

+                    var entryIdx = $(this).parents("tr").prevAll("tr").length;

+                    ModifyIpFilterEntry(entryIdx);

+                });

+

+            }

+

+            $("#DeleteAllIpEntry").click(function() {

+				var ii = $(this).attr("checked");

+                if($(this).attr("checked")) {

+                    $("tbody :checkbox").attr("checked",true);

+                } else {

+                    $("tbody :checkbox").attr("checked",false);

+                }

+

+				if($("tbody :checked").length>0){

+					$("#lt_ipFilter_btnDeleteIpFilter").show();					

+				}else{

+					$("#lt_ipFilter_btnDeleteIpFilter").hide();	

+				}

+            });

+

+            $("tbody :checkbox").click(function() {				

+                if($("tbody :checked").length == $("tbody tr").length) {

+                    $("#DeleteAllIpEntry").attr("checked",true);

+                }else{

+					$("#DeleteAllIpEntry").attr("checked",false);

+				}

+

+				if($("tbody :checked").length>0){

+					$("#lt_ipFilter_btnDeleteIpFilter").show();					

+				}else{

+					$("#lt_ipFilter_btnDeleteIpFilter").hide();	

+				}

+            });

+

+

+        }//function GetIpFilterDefaultPolicyInfo()

+

+        function ModifyIpFilterEntry(entryIdx) {

+            ShowDlg("divIpFilterSetDlg",400,200);

+            var entryId = entryIdx + 1;

+            var selector = "tbody tr:eq(" + entryIdx+ ")";

+            var ipFilterEntryInfo = $(selector).attr("name").split(";");

+	    var ipControl_source = 0;

+	    var ipControl_dest = 0;

+

+	     $("#selIpFilterSrc").change(function() {

+			 if(1 == $(this).val()) {

+			 	$("#divIpFilterSrcCustom").show();

+			 	getID("divipControl_source").innerHTML = "";

+			 	ipControl_source = $("#divipControl_source").ip_address("divipControl_source");

+			 }

+			 else {

+			 	$("#divIpFilterSrcCustom").hide();

+			 }

+	     });

+            

+            $("#selIpFilterDst").change(function() {

+			 if(1 == $(this).val()) { 

+			 	$("#divIpFilterDstCustom").show();

+			 	getID("divipControl_dest").innerHTML = "";

+			 	ipControl_dest = $("#divipControl_dest").ip_address("divipControl_dest"); 

+			 }

+			 else {

+			 	$("#divIpFilterDstCustom").hide();

+			 }

+	     });

+            

+            SetTimeToElement("txtStartTime",ipFilterEntryInfo[0]);

+            SetTimeToElement("txtEndTime",ipFilterEntryInfo[1]);

+            $("#ltIpFilterLanAll").text(jQuery.i18n.prop('ltIpFilterLanAll'));

+            $("#ltIpFilterLanCustom").text(jQuery.i18n.prop('ltIpFilterLanCustom'));

+

+            $("#ltIpFilterWanAll").text(jQuery.i18n.prop('ltIpFilterWanAll'));

+            $("#ltIpFilterWanCustom").text(jQuery.i18n.prop('ltIpFilterWanCustom'));

+            

+            if (ipFilterEntryInfo[2]  != "0") {

+            	$("#selIpFilterSrc").val("1");

+            	$("#divIpFilterSrcCustom").show();

+            	if ( 0 == ipControl_source)

+            		ipControl_source = $("#divipControl_source").ip_address("divipControl_source");

+           	 ipControl_source.setIP(ipFilterEntryInfo[2]);

+            }

+            else {

+            	 $("#selIpFilterSrc").val("0");

+            	 $("#divIpFilterSrcCustom").hide();

+            }

+            	

+            SetPortToElement("txtSrcPort",ipFilterEntryInfo[3]);

+            

+            if (ipFilterEntryInfo[4]  != "0") {

+            	  $("#selIpFilterDst").val("1");

+            	  $("#divIpFilterDstCustom").show();

+            	  if ( 0 == ipControl_dest)

+            		ipControl_dest = $("#divipControl_dest").ip_address("divipControl_dest"); 

+          	  ipControl_dest.setIP(ipFilterEntryInfo[4]);

+            }

+            else {

+            	 $("#selIpFilterDst").val("0");

+            	 $("#divIpFilterDstCustom").hide();

+            }

+            

+            SetPortToElement("txtDestPort",ipFilterEntryInfo[5]);

+

+

+            $("#selIpFilterProtocol").val(ipFilterEntryInfo[6]);

+            //$("#selIpFilterAction").val(ipFilterEntryInfo[7]);

+            $("#selIpFilterStatus").val(ipFilterEntryInfo[8]);

+

+            $("#lt_btnSave").click(function() {

+            	var srcIpSel = $("#selIpFilterSrc").val();

+            	var dstIpSel = $("#selIpFilterDst").val();

+

+            	if (0 == srcIpSel)

+            		ipControl_source = 0;

+

+            	if (0 == dstIpSel)

+            		ipControl_dest = 0;

+            	

+                if(ipFilterEntryInfo[0] == GetTimeFromElement("txtStartTime") && ipFilterEntryInfo[1] == GetTimeFromElement("txtEndTime")

+                   &&((ipFilterEntryInfo[2] == "0" && ipControl_source == "0") ||(ipControl_source != 0 && ipFilterEntryInfo[2] == ipControl_source.getIP()))

+                   &&ipFilterEntryInfo[3] == GetPortFromElement("txtSrcPort")

+                   &&((ipFilterEntryInfo[4] == "0" && ipControl_dest == "0") || (ipControl_dest != 0 && ipFilterEntryInfo[4] == ipControl_dest.getIP()))

+                   &&ipFilterEntryInfo[5] == GetPortFromElement("txtDestPort")

+                   && ipFilterEntryInfo[6] ==  $("#selIpFilterProtocol").val() 

+                   //&& ipFilterEntryInfo[7] ==  $("#selIpFilterAction").val()

+                   && ipFilterEntryInfo[8] ==  $("#selIpFilterStatus").val()) {

+                    CloseDlg();

+                    return;

+                }

+

+		var validateMsg = ValidateIPFilterEntry(ipControl_source, ipControl_dest);

+		if("ok" != validateMsg){

+			$("#lIpFilterSetError").show().text(validateMsg);	

+			return;

+		}

+                var preTag = "RGW/firewall/ip_filter/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElement("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElement("txtEndTime"));

+                

+                if (0 == srcIpSel)

+                	entryMap.put(preTag+"/src_ip", "0");

+                else

+                	entryMap.put(preTag+"/src_ip", ipControl_source.getIP());

+

+                if (0 == dstIpSel)

+                	entryMap.put(preTag+"/dest_ip", "0");

+                else

+	                entryMap.put(preTag+"/dest_ip", ipControl_dest.getIP());

+                

+                entryMap.put(preTag+"/src_port", $("#txtSrcPort1").val()+":"+$("#txtSrcPort2").val());

+                entryMap.put(preTag+"/dest_port", $("#txtDestPort1").val()+":"+$("#txtDestPort2").val());

+                entryMap.put(preTag+"/proto", $("#selIpFilterProtocol").val());

+                //entryMap.put(preTag+"/target", $("#selIpFilterAction").val());

+                if ($("#selIpFilterPolicySwitch").val() == "ACCEPT")

+			entryMap.put(preTag+"/target", "REJECT");

+                else

+                	entryMap.put(preTag+"/target", "ACCEPT");

+                

+                entryMap.put(preTag+"/enabled", $("#selIpFilterStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","edit_ip_filter_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWIpFilterInfo();

+                } else {

+                    alert("edit ip filter entry failed.");

+                }

+            });//$("#lt_btnSave").click(function(){

+        }

+

+        this.SaveData = function() {

+            if(gDisbaledipFilter != $("#selOpenIpFilterSwitch").val()) {

+            	var ipFilterConfigMap = new Map();

+                ipFilterConfigMap.put("RGW/firewall/ip_filter_disable", $("#selOpenIpFilterSwitch").val());

+                var retXml = PostXml("firewall","fw_set_disable_info",ipFilterConfigMap);

+                if("OK" == $(retXml).find("setting_response").text() ) {

+                    if (1 == $("#selOpenIpFilterSwitch").val()) {

+                    	$("#divIpFilterList").hide();

+               		$("#divIpFilterPolicySwitch").hide();

+                    }

+                   // GetFWIpFilterInfo();

+                } else {

+                    alert("disabled ip filter failed.");

+                }

+            }

+

+            if(0 == $("#selOpenIpFilterSwitch").val()) {

+              // && gIpFilterPolicy != $("#selIpFilterPolicySwitch").val()) {

+               var ipFilterConfigMap = new Map();

+                ipFilterConfigMap.put("RGW/firewall/ip_filter/default_policy",$("#selIpFilterPolicySwitch").val());

+                var retXml = PostXml("firewall","set_ip_filter_default_pol",ipFilterConfigMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+			$("#divIpFilterList").show();

+			$("#divIpFilterPolicySwitch").show();

+			GetIpFilterDefaultPolicyInfo();

+                } else {

+                    alert("disabled ip filter failed.");

+                }

+            }

+        }

+

+

+		function ValidateIPFilterEntry(IPControlsrc,IPControldst){

+			if(!IsTime(GetTimeFromElement("txtStartTime")) || !IsTime(GetTimeFromElement("txtEndTime"))){

+				return jQuery.i18n.prop("lt_TimeFormatError");

+			}

+

+			if (IPControlsrc != 0  && !IPControlsrc.validIPV4()) {

+				return jQuery.i18n.prop("lt_ipAddrFormatError");

+			}

+			if (IPControldst!=0 && !IPControldst.validIPV4()){

+				return jQuery.i18n.prop("lt_ipAddrFormatError");

+			}

+			if(!IsPort(GetPortFromElement("txtSrcPort")))

+				return jQuery.i18n.prop("lt_PortFormatError");

+            		if(!IsPort(GetPortFromElement("txtDestPort")))

+				return jQuery.i18n.prop("lt_PortFormatError");

+			

+			return "ok";

+		}

+

+        return this;

+    }

+})(jQuery);

+

+

+

+

+

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiMacFilter.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiMacFilter.js
new file mode 100644
index 0000000..a402283
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiMacFilter.js
@@ -0,0 +1,250 @@
+

+(function($) {

+

+    $.fn.objWifiMACFilter = function() {

+

+        var gMacDenyListStr = "";

+        var gMacAllowListStr = "";

+        var gMacFilterMode = "";

+        var gMacDenyListStr1 = "";

+        var gMacAllowListStr1 = "";

+        var gMacFilterMode1 = "";

+

+

+        this.onLoad = function(flag) {

+            if (flag) {

+                LoadWebPage("html/wifi/wifiMacFilter.html");

+

+                $("#selMacFilterSwitch").change(function() {

+                if (0 == $("#SelWifiModule").val()) {

+                    gMacFilterMode = $(this).val();

+                } else {

+                    gMacFilterMode1 = $(this).val();

+                };

+                    RefreshData($("#SelWifiModule").val());

+                });

+

+                $("#SelWifiModule").change(function() {                  

+                    RefreshData($(this).val());

+                });

+

+                $("#lt_macFilter_btnAddMacFilter").click(function() {

+                    AddMacFilterAddr();

+                });

+

+                $("#lt_macFilter_btnDeleteMacFilter").click(function() {

+                    DeleteMacFilterAddr();

+                });

+            } //end flag

+

+            GetMacFilterConfig();

+        }

+

+        function AddMacFilterAddr() {

+            ShowDlg("divMACFilterDlg", 400, 100);

+

+            $("[name='txtmac']").keyup(function() {

+                if ($(this).val().length == 2) {

+                    $(this).nextAll(":eq(1)").focus();

+                }

+            });

+

+            $("#lt_btnSave").click(function() {

+                var macAddr = $("#txtMac1").val() + ":" + $("#txtMac2").val() + ":" + $("#txtMac3").val() + ":"

+                              + $("#txtMac4").val() + ":" + $("#txtMac5").val() + ":" + $("#txtMac6").val();

+

+                if (!IsMACAddr(macAddr)) {

+                    $("#lt_macFilter_MacError").show();

+                    return;

+                }

+

+

+                var macFilterConfigMap = new Map();

+                macFilterConfigMap.put("RGW/wireless/wifi_device", $("#SelWifiModule").val());

+                if ("allow" == $("#selMacFilterSwitch").val()) {

+                    if ("" == GetAllMacAddr()) {

+                        macFilterConfigMap.put("RGW/wireless/maclist_allow", macAddr);

+

+                    } else {

+                        macFilterConfigMap.put("RGW/wireless/maclist_allow", GetAllMacAddr() + " " + macAddr);

+                    }

+                } else {

+                    if ("" == GetAllMacAddr()) {

+                        macFilterConfigMap.put("RGW/wireless/maclist_deny", macAddr);

+

+                    } else {

+                        macFilterConfigMap.put("RGW/wireless/maclist_deny", GetAllMacAddr() + " " + macAddr);

+                    }

+                }

+

+                CloseDlg();

+                var retXml = PostXml("wireless", "wifi_set_mac_filter", macFilterConfigMap);

+                if ("OK" == $(retXml).find("setting_response").text()) {

+                    GetMacFilterConfig();

+                } else {

+                    alert("config mac filter error.");

+                }

+            });

+        }

+

+        function DeleteMacFilterAddr() {

+            var macFilterConfigMap = new Map();

+            macFilterConfigMap.put("RGW/wireless/wifi_device", $("#SelWifiModule").val());

+            if ("allow" == $("#selMacFilterSwitch").val()) {

+                macFilterConfigMap.put("RGW/wireless/maclist_allow", GetUnCheckedMacAddr());

+            } else {

+                macFilterConfigMap.put("RGW/wireless/maclist_deny", GetUnCheckedMacAddr());

+            }

+

+            var retXml = PostXml("wireless", "wifi_set_mac_filter", macFilterConfigMap);

+            if ("OK" == $(retXml).find("setting_response").text()) {

+                GetMacFilterConfig();

+            } else {

+                alert("config mac filter error.");

+            }

+        }

+

+

+        function GetMacFilterConfig() {

+            var retXml = PostXml("wireless", "wifi_get_mac_filter");

+            var wirelessAPNum = $(retXml).find("wireless_num").text();            

+	     if (wirelessAPNum == 0) {

+		$("#divWifiMacFilter").hide();

+		$("#lt_NoWifi").show().text(jQuery.i18n.prop('lNoWiFiCardError'));

+		return;

+            }

+	     

+            $(retXml).find("AP0").each(function() {

+                gMacFilterMode = $(this).find("macfilter").text();

+                gMacDenyListStr = $(this).find("maclist_deny").text();

+                gMacAllowListStr = $(this).find("maclist_allow").text();

+            }

+            );

+

+            if (2 == $(retXml).find("wireless_num").text()) {

+                $("#lt_macFilter_wifiModule1").show();

+                $(retXml).find("AP1").each(function() {

+                    gMacFilterMode1 = $(this).find("macfilter").text();

+                    gMacDenyListStr1 = $(this).find("maclist_deny").text();

+                    gMacAllowListStr1 = $(this).find("maclist_allow").text();

+                });

+            } else {

+                $("#lt_macFilter_wifiModule1").hide();

+            }

+

+            RefreshData($("#SelWifiModule").val());

+        }

+

+        function RefreshData(wifiModuleIdx) {

+            var macFilterMode = wifiModuleIdx == 0 ? gMacFilterMode : gMacFilterMode1;

+            var macAllowListStr = wifiModuleIdx == 0 ? gMacAllowListStr : gMacAllowListStr1;

+            var macDenyListStr = wifiModuleIdx == 0 ? gMacDenyListStr : gMacDenyListStr1;

+

+            //$("#SelWifiModule").val(wifiModuleIdx);

+            $("#selMacFilterSwitch").val(macFilterMode);

+            $("#tbodyMacAddrList").empty();

+            $("#DeleteAllIpEntry").attr("checked", false);

+            $("#lt_macFilter_btnDeleteMacFilter").hide();

+

+

+            var macListStr = "";

+            if ("disable" == macFilterMode) {

+                $("#divMacFilterList").hide();

+            } else if ("allow" == macFilterMode) {

+                $("#divMacFilterList").show();

+                $("#lMacFilterListLabel").text(jQuery.i18n.prop('lt_macFilter_AllowMacAddrList'));

+                macListStr = macAllowListStr;

+            } else {

+                $("#divMacFilterList").show();

+                $("#lMacFilterListLabel").text(jQuery.i18n.prop('lt_macFilter_DenyMacAddrList'));

+                macListStr = macDenyListStr;

+            }

+

+            if ("" == macListStr) {

+                return;

+            }

+

+            var macAddrArr = macListStr.split(" ");

+            for (var idx = 0; idx < macAddrArr.length; ++idx) {

+                if ("" == macAddrArr[idx]) continue;

+                $("#tbodyMacAddrList").append("<tr><td>" + macAddrArr[idx] + "</td> <td><input type='checkbox'></td></tr>");

+            }

+

+            $("#DeleteAllIpEntry").click(function() {

+                var ii = $(this).attr("checked");

+                if ($(this).attr("checked")) {

+                    $("tbody :checkbox").attr("checked", true);

+                }

+                else {

+               		$("tbody :checkbox").attr("checked",false);

+                }

+                if ($("tbody :checked").length > 0) {

+                    $("#lt_macFilter_btnDeleteMacFilter").show();

+                } else {

+                    $("#lt_macFilter_btnDeleteMacFilter").hide();

+                }

+            });

+

+            $("tbody :checkbox").click(function() {

+                if ($("tbody :checked").length == $("tbody tr").length) {

+                    $("#DeleteAllIpEntry").attr("checked", true);

+                } else {

+                    $("#DeleteAllIpEntry").attr("checked", false);

+                }

+

+                if ($("tbody :checked").length > 0) {

+                    $("#lt_macFilter_btnDeleteMacFilter").show();

+                } else {

+                    $("#lt_macFilter_btnDeleteMacFilter").hide();

+                }

+            });

+        }

+

+        this.SaveData = function() {

+            var macFilterConfigMap = new Map();

+            macFilterConfigMap.put("RGW/wireless/wifi_device", $("#SelWifiModule").val());

+

+//            var macFilterMode = $("#SelWifiModule").val() == 0 ? gMacFilterMode : gMacFilterMode1;

+

+//            if (macFilterMode == $("#selMacFilterSwitch").val()) {

+//                return;

+//            }

+

+            macFilterConfigMap.put("RGW/wireless/macfilter", $("#selMacFilterSwitch").val());

+

+            var retXml = PostXml("wireless", "wifi_set_mac_filter", macFilterConfigMap);

+            if ("OK" == $(retXml).find("setting_response").text()) {

+                this.onLoad(false);

+            } else {

+                alert("config mac filter error.");

+            }

+        }

+

+        function GetAllMacAddr() {

+            var strMacList = "";

+            $("tbody tr").each(function() {

+                strMacList = strMacList + $(this).children("td:first").text() + " ";

+            });

+            return strMacList.substr(0, strMacList.length - 1);

+        }

+

+        function GetUnCheckedMacAddr() {

+            var strMacList = "";

+            $("tbody tr td :not(:checked)").each(function() {

+                strMacList = strMacList + $(this).parent().prev().text() + " ";

+            });

+            if ("" == strMacList) {

+

+                strMacList = "    ";

+            }

+            return strMacList.substr(0, strMacList.length - 1);

+        }

+

+        return this;

+    }

+})(jQuery);

+

+

+

+

+

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortMap.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortMap.js
new file mode 100644
index 0000000..5b313b4
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortMap.js
@@ -0,0 +1,227 @@
+

+(function($) {

+

+    $.fn.objWifiPortMap = function() {

+

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wifiPortMap.html");

+

+                $("#lt_portMap_btnAddPortMap").click(function() {

+                    AddPortMapEntry();

+                });

+

+                $("#lt_portMap_btnDeletePortMap").click(function() {

+                    DelPortMapEntry();

+                });

+

+            } //end flag

+

+            GetFWPortMapInfo();

+        }

+

+        function DelPortMapEntry() {

+            var entryIdxList = "";

+            $("tbody tr td :checked").each(function() {

+                var entryIdx = $(this).parents("tr").prevAll("tr").length + 1;

+                entryIdxList = entryIdxList + entryIdx + ",";

+            });

+

+            if(""==entryIdxList) {

+                return;

+            }

+

+            var entryMap = new Map();

+            entryMap.put("RGW/firewall/del_port_mapping_index",entryIdxList);

+            var retXml = PostXml("firewall","delete_port_mapping_entry",entryMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWPortMapInfo();

+            } else {

+                alert("delete port map entry failed.");

+            }

+        }

+

+

+        function AddPortMapEntry() {

+            ShowPortMapConfigDlg();

+            var ipportMapIP_dest = $("#divportMapIP_dest").ip_address("divportMapIP_dest");

+            $("#lt_btnSave").click(function() {

+                var validateMsg = ValidatePortMapEntry(ipportMapIP_dest);

+                if("ok" != validateMsg) {

+                    $("#lIpFilterSetError").show().text(validateMsg);

+                    return;

+                }

+

+                var entryId = $("tbody tr").size() + 1;

+                var preTag = "RGW/firewall/port_mapping/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElement("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElement("txtEndTime"));

+                entryMap.put(preTag+"/dest_ip", ipportMapIP_dest.getIP());

+                entryMap.put(preTag+"/src_dport", GetPortFromElement("txtDestPort"));

+                entryMap.put(preTag+"/proto", $("#selPortMapProtocol").val());

+                entryMap.put(preTag+"/enabled", $("#selPortMapStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","add_port_mapping_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWPortMapInfo();

+                } else {

+                    alert("add port map entry failed.");

+                }

+            });

+        }

+

+

+        function GetFWPortMapInfo() {

+            $("#tbodyPortMap").empty();

+            $("#DeleteAllIpEntry").attr("checked",false);

+            $("#lt_portMap_btnDeletePortMap").hide();

+

+            var retXml = PostXml("firewall","fw_get_port_mapping_info");

+

+            var bFoundEntry = true;

+            var idx = 1;

+            while(bFoundEntry) {

+                var entryIdx = "entry_" + idx;

+                bFoundEntry = false;

+                $(retXml).find(entryIdx).each(function() {

+                    bFoundEntry = true;

+                    var startTime = $(this).find("start_time").text();

+                    var stopTime = $(this).find("stop_time").text();

+                    var destPort = $(this).find("src_dport").text();

+                    var destIp = $(this).find("dest_ip").text();

+                    var proto = $(this).find("proto").text();

+                    var enabled = $(this).find("enabled").text();

+                    var portMapEntryInfo = startTime + ";" + stopTime + ";" + destIp + ";" + destPort + ";" + proto + ";" + enabled;

+

+                    var timeRange = startTime + "-" + stopTime;

+                    var statusString;

+                    if(0 == enabled) {

+                        statusString = jQuery.i18n.prop("lt_optDisabledSwitch");

+                    } else {

+                        statusString = jQuery.i18n.prop("lt_optEnableSwitch");

+                    }

+

+                    var htmlTxt = "<tr style='cursor: pointer;'name='" + portMapEntryInfo + "'><td>" + timeRange + "</td><td>"

+                                  + destIp + "</td><td>" + destPort + "</td><td>" + proto + "</td><td>"

+                                  + statusString + "</td> <td><input type='checkbox'></td></tr>";

+                    $("#tbodyPortMap").append(htmlTxt);

+                });

+                ++idx;

+                $("tbody tr:last td:lt(5)").click(function() {

+                    var entryIdx = $(this).parents("tr").prevAll("tr").length;

+                    ModifyPortMapEntry(entryIdx);

+                });

+            }

+

+            $("#DeleteAllIpEntry").click(function() {

+                if($(this).attr("checked")) {

+                    $("tbody :checkbox").attr("checked",true);

+                } else {

+                    $("tbody :checkbox").attr("checked",false);

+                }

+                if($("tbody :checked").length>0) {

+                    $("#lt_portMap_btnDeletePortMap").show();

+                } else {

+                    $("#lt_portMap_btnDeletePortMap").hide();

+                }

+            });

+

+            $("tbody :checkbox").click(function() {

+                if($("tbody :checked").length == $("tbody tr").length) {

+                    $("#DeleteAllIpEntry").attr("checked",true);

+                } else {

+                    $("#DeleteAllIpEntry").attr("checked",false);

+                }

+                if($("tbody :checked").length>0) {

+                    $("#lt_portMap_btnDeletePortMap").show();

+                } else {

+                    $("#lt_portMap_btnDeletePortMap").hide();

+                }

+            });

+        }

+

+        function ModifyPortMapEntry(entryIdx) {

+            ShowPortMapConfigDlg();

+            var ipportMapIP_dest = $("#divportMapIP_dest").ip_address("divportMapIP_dest");

+            var entryId = entryIdx + 1;

+            var selector = "tbody tr:eq(" + entryIdx+ ")";

+            var portMapEntryInfo = $(selector).attr("name").split(";");

+

+            SetTimeToElement("txtStartTime",portMapEntryInfo[0]);

+            SetTimeToElement("txtEndTime",portMapEntryInfo[1]);

+

+            ipportMapIP_dest.setIP(portMapEntryInfo[2]);

+            SetPortToElement("txtDestPort",portMapEntryInfo[3]);

+

+            $("#selPortMapProtocol").val(portMapEntryInfo[4]);

+            $("#selPortMapStatus").val(portMapEntryInfo[5]);

+

+            $("#lt_btnSave").click(function() {

+                var validateMsg = ValidatePortMapEntry(ipportMapIP_dest);

+                if("ok" != validateMsg) {

+                    $("#lIpFilterSetError").show().text(validateMsg);

+                    return;

+                }

+

+                if(portMapEntryInfo[0] == GetTimeFromElement("txtStartTime") && portMapEntryInfo[1] == GetTimeFromElement("txtEndTime")

+                   && portMapEntryInfo[2] == ipportMapIP_dest.getIP()&& portMapEntryInfo[3] == GetPortFromElement("txtDestPort")

+                   && portMapEntryInfo[4] ==  $("#selPortMapProtocol").val() && portMapEntryInfo[5] ==  $("#selPortMapStatus").val()) {

+                    CloseDlg();

+                    return;

+                }

+

+                var preTag = "RGW/firewall/port_mapping/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/start_time",GetTimeFromElement("txtStartTime"));

+                entryMap.put(preTag+"/stop_time",GetTimeFromElement("txtEndTime"));

+                entryMap.put(preTag+"/dest_ip",ipportMapIP_dest.getIP());

+                entryMap.put(preTag+"/src_dport", GetPortFromElement("txtDestPort"));

+

+                entryMap.put(preTag+"/proto", $("#selPortMapProtocol").val());

+                entryMap.put(preTag+"/enabled", $("#selPortMapStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","edit_port_mapping_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWPortMapInfo();

+                } else {

+                    alert("edit port mapping entry failed.");

+                }

+            });//$("#lt_btnSave").click(function(){

+        }

+

+        function ShowPortMapConfigDlg() {

+            ShowDlg("divPortMapSetDlg",300,100);

+            $("[name='time']").keyup(function() {

+                $("#lIpFilterSetError").hide();

+                if($(this).val().length == 2) {

+                    $(this).nextAll(":eq(1)").focus();

+                }

+            });

+

+        }

+

+        function ValidatePortMapEntry(IPControl) {

+            if(!IsTime(GetTimeFromElement("txtStartTime")) || !IsTime(GetTimeFromElement("txtEndTime"))) {

+                return jQuery.i18n.prop("lt_TimeFormatError");

+            }

+            if(!IPControl.validIPV4()) {

+                return jQuery.i18n.prop("lt_ipAddrFormatError");

+            }

+            if(!IsPort(GetPortFromElement("txtDestPort")))

+                return jQuery.i18n.prop("lt_PortFormatError");

+

+            return "ok";

+        }

+

+

+        return this;

+    }

+})(jQuery);

+

+

+

+

+

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortTrigger.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortTrigger.js
new file mode 100644
index 0000000..d4013b0
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiPortTrigger.js
@@ -0,0 +1,216 @@
+

+(function($) {

+

+    $.fn.objWifiPortTrigger = function() {

+

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wifiPortTrigger.html");

+

+                $("#lt_portTrigger_btnAdd").click(function() {

+                    AddPortTriggerEntry();

+                });

+

+                $("#lt_portTrigger_btnDelete").click(function() {

+                    DelPortTriggerEntry();

+                });

+

+            } //end flag

+

+            GetFWPortTriggerInfo();

+        }

+

+        function DelPortTriggerEntry() {

+            var entryIdxList = "";

+            $("tbody tr td :checked").each(function() {

+                var entryIdx = $(this).parents("tr").prevAll("tr").length + 1;

+                entryIdxList = entryIdxList + entryIdx + ",";

+            });

+

+            if(""==entryIdxList) {

+                return;

+            }

+

+            var entryMap = new Map();

+            entryMap.put("RGW/firewall/del_port_trigger_index",entryIdxList);

+            var retXml = PostXml("firewall","delete_port_trigger_entry",entryMap);

+            if("OK" == $(retXml).find("setting_response").text()) {

+                GetFWPortTriggerInfo();

+            } else {

+                alert("delete port map entry failed.");

+            }

+        }

+

+

+        function AddPortTriggerEntry() {

+            ShowDlg("divPortTriggerSetDlg",300,100);

+

+            $("#lt_btnSave").click(function() {

+

+                if(!IsPort(GetPortFromElement("txtOutPort")) || !IsPort(GetPortFromElement("txtInPort"))) {

+                    $("#lPortTriggerSetError").show();

+                    $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_PortFormatError"));

+                    return;

+                }

+

+                if(!IsRuleName( $("#txtPortTriggerRule").val())) {

+                    $("#lPortTriggerSetError").show();

+                    $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_RuleNameError"));

+                    return;

+                }

+

+

+                var entryId = $("tbody tr").size() + 1;

+                var preTag = "RGW/firewall/port_trigger/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/rule_name", $("#txtPortTriggerRule").val());

+                entryMap.put(preTag+"/out_port",GetPortFromElement("txtOutPort"));

+                entryMap.put(preTag+"/in_port",GetPortFromElement("txtInPort"));

+                entryMap.put(preTag+"/out_proto", $("#selPortTriggerOutProtocol").val());

+                entryMap.put(preTag+"/in_proto", $("#selPortTriggerInProtocol").val());

+                entryMap.put(preTag+"/enabled", $("#selPortTriggerStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","add_port_trigger_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWPortTriggerInfo();

+                } else {

+                    alert("edit port mapping entry failed.");

+                }

+

+            });

+        }

+

+

+        function GetFWPortTriggerInfo() {

+            $("#tbodyPortTrigger").empty();

+            $("#DeleteAllIpEntry").attr("checked",false);

+            $("#lt_portTrigger_btnDelete").hide();

+

+            var retXml = PostXml("firewall","fw_get_port_trigger_info");

+

+            var bFoundEntry = true;

+            var idx = 1;

+            while(bFoundEntry) {

+                var entryIdx = "entry_" + idx;

+                bFoundEntry = false;

+                $(retXml).find(entryIdx).each(function() {

+                    bFoundEntry = true;

+                    var rule = $(this).find("rule_name").text();

+                    var outPort = $(this).find("out_port").text();

+                    var inPort = $(this).find("in_port").text();

+                    var outProto = $(this).find("out_proto").text();

+                    var inProto = $(this).find("in_proto").text();

+                    var enabled = $(this).find("enabled").text();

+                    var portEntryInfo = rule + ";" + outPort + ";" + inPort + ";" + outProto + ";"

+                                        + inProto + ";" + enabled;

+

+                    var strStatus="";

+                    if(1 == enabled) {

+                        strStatus = jQuery.i18n.prop("lt_optEnableSwitch");

+                    } else {

+                        strStatus = jQuery.i18n.prop("lt_optDisabledSwitch");

+                    }

+

+                    var htmlTxt = "<tr style='cursor: pointer;'name='" + portEntryInfo + "'><td>" + rule + "</td><td>"

+                                  + outPort + "</td><td>" + inPort + "</td><td>" + outProto + "</td><td>" + inProto + "</td><td>"

+                                  + strStatus + "</td> <td><input type='checkbox'></td></tr>";

+                    $("#tbodyPortTrigger").append(htmlTxt);

+                });

+                ++idx;

+                $("tbody tr:last td:lt(6)").click(function() {

+                    var entryIdx = $(this).parents("tr").prevAll("tr").length;

+                    ModifyPortTriggerEntry(entryIdx);

+                });

+            }

+

+            $("#DeleteAllIpEntry").click(function() {

+                if($(this).attr("checked")) {

+                    $("tbody :checkbox").attr("checked",true);

+                } else {

+                    $("tbody :checkbox").attr("checked",false);

+                }

+                if($("tbody :checked").length>0) {

+                    $("#lt_portTrigger_btnDelete").show();

+                } else {

+                    $("#lt_portTrigger_btnDelete").hide();

+                }

+            });

+

+            $("tbody :checkbox").click(function() {

+                if($("tbody :checked").length == $("tbody tr").length) {

+                    $("#DeleteAllIpEntry").attr("checked",true);

+                } else {

+                    $("#DeleteAllIpEntry").attr("checked",false);

+                }

+                if($("tbody :checked").length>0) {

+                    $("#lt_portTrigger_btnDelete").show();

+                } else {

+                    $("#lt_portTrigger_btnDelete").hide();

+                }

+            });

+        }

+

+        function ModifyPortTriggerEntry(entryIdx) {

+            ShowDlg("divPortTriggerSetDlg",300,100);

+            var entryId = entryIdx + 1;

+            var selector = "tbody tr:eq(" + entryIdx+ ")";

+            var portTriggerEntryInfo = $(selector).attr("name").split(";");

+

+            $("#txtPortTriggerRule").val(portTriggerEntryInfo[0]);

+            SetPortToElement("txtOutPort",portTriggerEntryInfo[1]);

+            SetPortToElement("txtInPort",portTriggerEntryInfo[2]);

+            $("#selPortTriggerOutProtocol").val(portTriggerEntryInfo[3]);

+            $("#selPortTriggerInProtocol").val(portTriggerEntryInfo[4]);

+            $("#selPortTriggerStatus").val(portTriggerEntryInfo[5]);

+

+

+            $("#lt_btnSave").click(function() {

+

+                if(!IsPort(GetPortFromElement("txtOutPort")) || !IsPort(GetPortFromElement("txtInPort"))) {

+                    $("#lPortTriggerSetError").show();

+                    $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_PortFormatError"));

+                    return;

+                }

+

+                if(!IsRuleName( $("#txtPortTriggerRule").val())) {

+                    $("#lPortTriggerSetError").show();

+                    $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_RuleNameError"));

+                    return;

+                }

+

+

+                if(portTriggerEntryInfo[0] == $("#txtPortTriggerRule").val() && portTriggerEntryInfo[1] == GetPortFromElement("txtOutPort")

+                   && portTriggerEntryInfo[2] == GetPortFromElement("txtInPort")&& portTriggerEntryInfo[3] == $("#selPortTriggerOutProtocol").val()

+                   && portTriggerEntryInfo[4] == $("#selPortTriggerInProtocol").val() && portTriggerEntryInfo[5] ==  $("#selPortTriggerStatus").val()) {

+                    CloseDlg();

+                    return;

+                }

+

+                var preTag = "RGW/firewall/port_trigger/entry_list/entry_" + entryId;

+                var entryMap = new Map();

+                entryMap.put(preTag+"/rule_name", $("#txtPortTriggerRule").val());

+                entryMap.put(preTag+"/out_port",GetPortFromElement("txtOutPort"));

+                entryMap.put(preTag+"/in_port",GetPortFromElement("txtInPort"));

+                entryMap.put(preTag+"/out_proto", $("#selPortTriggerOutProtocol").val());

+                entryMap.put(preTag+"/in_proto", $("#selPortTriggerInProtocol").val());

+                entryMap.put(preTag+"/enabled", $("#selPortTriggerStatus").val());

+

+                CloseDlg();

+                var retXml = PostXml("firewall","edit_port_trigger_entry",entryMap);

+                if("OK" == $(retXml).find("setting_response").text()) {

+                    GetFWPortTriggerInfo();

+                } else {

+                    alert("edit port mapping entry failed.");

+                }

+            });//$("#lt_btnSave").click(function(){

+        }

+

+        return this;

+    }

+})(jQuery);

+

+

+

+

+

diff --git a/marvell/webui/wwwLegacy/js/panel/wifi/wifiSetting.js b/marvell/webui/wwwLegacy/js/panel/wifi/wifiSetting.js
new file mode 100644
index 0000000..e5890bc
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/panel/wifi/wifiSetting.js
@@ -0,0 +1,1536 @@
+var gCurrentssidItem =0;

+var IsWpsMatch = false;

+var gCurrentAPItem = 0;

+var callCount = 0;

+var g24gAuthType;

+var g24gEncryAlg;

+var g24gPassword;

+var gWifiBSEnable = 0;

+

+(function($) {

+

+    $.fn.objWifiSet = function() {

+        var gAutoOffEnable;

+        var gAutoOffTimeout;

+        var wifiDetailedInfoMap = new Map();

+		var gMultiplessidenable;

+		//var gCurrentssidItem =0;

+		var gWirelessAPNum = 0;

+		var gWirelessSSIDNum = 0;

+		var gChangeSSID = false;

+		var gWirelessType = 0;

+		var gWifi6Support = 0;

+		var gWifiBSSupport = 0;

+		

+        this.onLoad = function(flag) {

+            if(flag) {

+                LoadWebPage("html/wifi/wireless_settings.html");

+

+		$("#selWifiBandSteering").change(function() {

+			 if(1==$(this).val()) {

+			 	RefreshssidInfo();

+			 } else {

+				RefreshssidInfo();

+			 }

+		});

+		

+                $("#selWifiEnabledSwitch").change(function() {

+                    if(1==$(this).val()) {

+                        $("#divDisabledWifi").show();

+                        RefreshWifiRFSwitch(1);

+                        RefreshFreqBandData();

+                        GetWifiAutoOffSetting();

+                    } else {

+                        $("#divDisabledWifi").hide();

+                    }

+                });

+

+		$("#selWifiAPList").change(function() {

+                    gCurrentAPItem =$(this).val(); 

+                    RefreshWifiRFSwitch(0);

+                    RefreshFreqBandData();

+                    GetWifiAutoOffSetting();

+                });

+

+

+		 $("#lt_wifiSet_EditSSID").click(function() {

+/*

+                    if(gChangeSSID){

+					     $("#divSSIDchange").show();

+					     gChangeSSID = true;

+                    	}else{

+                    	 $("#divSSIDchange").hide();

+					     gChangeSSID = false;

+                    }

+*/

+			$("#divSSIDchange").show();		

+			$("#selMultiSSID").change(function() {

+				gCurrentssidItem =$(this).val(); 

+				RefreshssidInfo();

+			});

+                });

+

+                //根据认证类型,生成加密方式下拉列表

+                $("#selWifiAuthType").change(function() {

+                    UpdateWifiEncryAlg($(this).val());

+		    if ($("#selRfBand").val() == 1)

+		    	g24gAuthType = $(this).val();

+		    

+                    if("none" == $(this).val()) {

+                        $("#divEncryAlg").hide();

+                        $("#divPassWd").hide();

+                        $("#divwepKeyFormat").hide();

+                    } else if("WEP" == $(this).val()) {

+                        $("#divEncryAlg").show();

+                        $("#divPassWd").show();

+                        $("#divwepKeyFormat").show();

+                    } else if ("WAPI-PSK" == $(this).val()) {

+                        $("#divEncryAlg").hide();

+                        $("#divPassWd").show();

+                        $("#divwepKeyFormat").hide();

+                    } else {

+                        $("#divEncryAlg").show();

+                        $("#divPassWd").show();

+                        $("#divwepKeyFormat").hide();

+                    }

+

+                    if ("WPA-PSK" == $(this).val() || "WEP" == $(this).val() || "WPA3-SAE" == $(this).val() || "none" == $(this).val())

+                        $("#divWpsCfgDlg").hide();

+                    else

+                        $("#divWpsCfgDlg").show();

+                    

+

+			/*

+                    if("Mixed" == $(this).val() || "WPA-PSK" == $(this).val()) {

+                        $("#divWpaGroupKey").show();

+                    } else {

+                        $("#divWpaGroupKey").hide();

+                    }

+                    */

+                });

+                $("#selEncryAlg").change(function() {

+                    if ($("#selRfBand").val() == 1)

+		    	g24gEncryAlg = $(this).val();

+                    

+                    if ("TKIP" == $(this).val()) {

+                        if ($("#selWifiAuthType").val() == "WPA-PSK")

+                            $("#divWpsCfgDlg").hide();

+                        else

+                            $("#divWpsCfgDlg").show();

+                    } else {

+                        if ($("#selWifiAuthType").val() == "WPA-PSK" || $("#selWifiAuthType").val() == "WEP")

+                            $("#divWpsCfgDlg").hide();

+                        else

+                            $("#divWpsCfgDlg").show();

+                    }

+                });

+

+                $("#selRfBand").change(function() {

+                    if(1 == $(this).val()) {

+                        $("#div5G80211Protocol").hide();

+                        $("#div2_4G80211Protocol").show();

+                        $("#selWifi24GChannel").show();

+                        $("#selWifi5GChannel").hide();

+                    } else {

+                        $("#div5G80211Protocol").show();

+                        $("#div2_4G80211Protocol").hide();

+                        $("#selWifi24GChannel").hide();

+                        $("#selWifi5GChannel").show();

+                    }

+                    RefreshFreqBandData();

+                });

+

+                $("#sel2_4G80211Protocol").change(function() {

+                    if("11ng" == $(this).val()) {

+                        $("#div80211nBandWidth").show();

+                        if (gWifi6Support == 1) {

+                            //$("#div80211nBW40Extend").show();

+                            if ($("#sel80211nBandWidth option").length < 3) {

+			    		$("#sel80211nBandWidth").append("<option value='HT40-'>HT40-</option>");

+			    		$("#sel80211nBandWidth").append("<option value='HT40+'>HT40+</option>");

+                            	}

+                        }

+                        else {

+                            // $("#div80211nBW40Extend").hide();

+                             $("#sel80211nBandWidth option[value='HT40-']").remove();

+                             $("#sel80211nBandWidth option[value='HT40+']").remove();

+                        }

+                        $("#div80211acBandWidth").hide();

+                        $("#div80211axBandWidth").hide();

+                    } else if("11ax" == $(this).val() || "11bgnax" == $(this).val())  {

+                    	$("#div80211axBandWidth").show();

+                    	$("#sel80211axBandWidth option[value='HE80']").remove();

+                        $("#div80211nBandWidth").hide();

+                        $("#div80211acBandWidth").hide();

+                    } else {

+                    	$("#div80211axBandWidth").hide();

+                        $("#div80211nBandWidth").hide();

+                        $("#div80211acBandWidth").hide();

+                    }

+                    

+                });

+

+                $("#sel5G80211Protocol").change(function() {

+                    if("11na" == $(this).val()) {

+                    	$("#div80211acBandWidth").hide();

+                    	$("#div80211axBandWidth").hide();

+                        $("#div80211nBandWidth").show();

+                        if (gWifi6Support == 1) {

+                            //$("#div80211nBW40Extend").show();

+                            if ($("#sel80211nBandWidth option").length < 3) {

+			    		$("#sel80211nBandWidth").append("<option value='HT40-'>HT40-</option>");

+			    		$("#sel80211nBandWidth").append("<option value='HT40+'>HT40+</option>");

+                            	}

+                        }

+                        else {

+                            // $("#div80211nBW40Extend").hide();

+                             $("#sel80211nBandWidth option[value='HT40-']").remove();

+                             $("#sel80211nBandWidth option[value='HT40+']").remove();

+                        }

+                    } else if("11ac" == $(this).val()) {

+                        $("#div80211nBandWidth").hide();

+                        $("#div80211axBandWidth").hide();

+                        $("#div80211acBandWidth").show();

+                    } else if ("11ax" == $(this).val() || "11anacax" == $(this).val()) {

+                        $("#div80211nBandWidth").hide();

+                        $("#div80211acBandWidth").hide();

+                        $("#div80211axBandWidth").show();

+                        if ($("#sel80211axBandWidth option").length < 3)

+                            $("#sel80211axBandWidth").append("<option value='HE80'>HE80</option>");

+                    }

+                    else {

+                    	$("#div80211acBandWidth").hide();

+                    	$("#div80211nBandWidth").hide();

+                    	$("#div80211axBandWidth").hide();

+                    }

+                });

+

+                $("#sel24GSSIDList").change(function() {

+			gCurrentssidItem =$(this).val(); 

+			RefreshssidInfo();

+ 			if("none" == $("#selWifiAuthType").val()) {

+ 			    $("#divEncryAlg").hide();

+ 			    $("#divPassWd").hide();

+ 			    $("#divwepKeyFormat").hide();

+ 			} else if("WEP" == $("#selWifiAuthType").val()) {

+ 			    $("#divEncryAlg").show();

+ 			    $("#divPassWd").show();

+ 			    $("#divwepKeyFormat").show();

+ 			} else {

+ 			    $("#divEncryAlg").show();

+ 			    $("#divPassWd").show();

+ 			    $("#divwepKeyFormat").hide();

+ 			}

+                });

+

+		  /*

+                $("#txtPasswd,#txtAutoOffWifiTimeout,#txtWifiSSID,#txtWpaGroupKeyUpdateInterval").click(function() {

+                    $("#wifiSetErrorLogs").hide().text("");

+                });

+                */

+

+                $("#selAutoOffWifiSwitch").click(function() {

+                    if(1 == $(this).val()) {

+                        $("#divWifiAutoOffTimeout").show();

+                    } else {

+                        $("#divWifiAutoOffTimeout").hide();

+                    }

+                });

+            } //end flag

+

+            if (GetWifiDetailedInfo() == true) {

+	            RefreshWifiRFSwitch(0);

+	            RefreshFreqBandData();

+	            GetWifiAutoOffSetting();

+            }

+        }

+

+

+

+	this.SaveData = function() {

+		var retCode;

+		entryIdx = "AP" + gCurrentAPItem;

+

+		var entry24GSwitch = "RGW/wireless/"+entryIdx+"/wifi_if_24G/switch";

+		var entry5GSwitch = "RGW/wireless/"+entryIdx+"/wifi_if_5G/switch";

+		if(0 == $("#selWifiEnabledSwitch").val()) {

+			if("on" == wifiDetailedInfoMap.get(entry24GSwitch)

+			|| "on" == wifiDetailedInfoMap.get(entry5GSwitch) ) {

+				CloseWifi();

+			} else {

+				return;

+			}

+		} else {

+			if(!ValidateData()) {

+				return;

+			}

+			ModifyWifiConfig();

+			SetWifiAutoOffSetting();

+		}

+	}

+

+        function GetWifiAutoOffSetting() {

+            var retXml = PostXml("wireless","wifi_get_auto_off_setting");

+						

+			var entryIdx;

+		

+			entryIdx = "AP" + gCurrentAPItem;;

+			

+			$(retXml).find(entryIdx).each(function() {

+					gAutoOffEnable = $(this).find("auto_off_enable").text();

+                    gAutoOffTimeout = $(this).find("auto_off_timeout").text();

+             });

+			

+            

+            $("#selAutoOffWifiSwitch").val(gAutoOffEnable);

+            if(1 == gAutoOffEnable) {

+                $("#divWifiAutoOffTimeout").show();

+                $("#txtAutoOffWifiTimeout").val(gAutoOffTimeout);

+            } else {

+                $("#divWifiAutoOffTimeout").hide();

+            }

+        }

+

+        function SetWifiAutoOffSetting() {

+            var configMap = new Map();

+            var curAutoOffEnable = $("#selAutoOffWifiSwitch").val();

+            var curTimeout = $("#txtAutoOffWifiTimeout").val();

+            if(1 == curAutoOffEnable && ("" == curTimeout || !IsNumber(curTimeout) || curTimeout <= 0 || curTimeout > 2147483647)) {

+                $("#wifiSetErrorLogs").show().text(jQuery.i18n.prop('lAutoOffTimeoutError'));

+                return;

+            } else {

+                $("#wifiSetErrorLogs").hide().text("");

+            }

+

+            if(curAutoOffEnable != gAutoOffEnable) {

+            	configMap.put("RGW/wireless/wifi_device", gCurrentAPItem);

+                configMap.put("RGW/wireless/auto_off_enable",curAutoOffEnable);

+                if(1 == curAutoOffEnable) {

+                    configMap.put("RGW/wireless/auto_off_timeout",curTimeout);

+                }

+            } else if (1 == curAutoOffEnable && curTimeout != gAutoOffTimeout) {

+                configMap.put("RGW/wireless/wifi_device", gCurrentAPItem);

+                configMap.put("RGW/wireless/auto_off_enable",1);

+                configMap.put("RGW/wireless/auto_off_timeout",curTimeout);

+            }

+

+            if(configMap.isEmpty()) {

+                return;

+            }

+            var retXml = PostXml("wireless","wifi_set_auto_off_setting",configMap);

+

+            if("OK" != $(retXml).find("setting_response").text()) {

+                alert("wifi_set_auto_off_setting failed.");

+            }

+            GetWifiAutoOffSetting();

+        }

+

+

+        function ValidateData() {

+            //验证Wep模式下密码长度

+            var strPasswd = $("#txtPasswd").val();

+            var authType = $("#selWifiAuthType").val();

+            var ret = true;

+            var strErrMsg;

+

+            var regex = /\s/;

+            if (regex.test(strPasswd)) {

+                strErrMsg = jQuery.i18n.prop('lt_wifiset_PasswdSpaceError');

+                ret = false;

+            }

+

+            if("WEP" == authType) {

+                switch($("#selWepKeyFormat").val()) {

+                    case "5":

+                        if(!IsASCIIStr(strPasswd) || 5 != strPasswd.length) {

+                            strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd5AsciiError');

+                            ret = false;

+                        }

+                        break;

+                    case "13":

+                        if(!IsASCIIStr(strPasswd) || 13 != strPasswd.length) {

+                            strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd13AsciiError');

+                            ret = false;

+                        }

+                        break;

+                    case "10":

+                        if(!IsHexStr(strPasswd) || 10 != strPasswd.length) {

+                            strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd10HexError');

+                            ret = false;

+                        }

+                        break;

+                    case "26":

+                        if(!IsHexStr(strPasswd) || 26 != strPasswd.length) {

+                            strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd26HexError');

+                            ret = false;

+                        }

+                        break;

+                }

+            } else if("WPA2-PSK" == authType || "Mixed" == authType || "WPA3-SAE" == authType || "WPA2-WPA3" == authType || "WPA-PSK" == authType) {

+                if(IsChineseChar(strPasswd) || strPasswd.length > 64 || strPasswd.length < 8) {

+                    strErrMsg = jQuery.i18n.prop('lt_wifiset_WPA2PSKPasswdError');

+                    ret = false;

+                }

+            }

+

+	    /*

+            if("WPA-PSK" == authType || "Mixed" == authType) {

+                var WpaGroupKeyUpdateInterval = $("#txtWpaGroupKeyUpdateInterval").val();

+                if("" == WpaGroupKeyUpdateInterval || !IsNumber(WpaGroupKeyUpdateInterval ||

+                        parseInt(WpaGroupKeyUpdateInterval)>100 || parseInt(WpaGroupKeyUpdateInterval)<1)) {

+                    strErrMsg = jQuery.i18n.prop('lt_wifiset_WPAGroupRekeyError');

+                    ret = false;

+                }

+            }

+            */

+

+            if($("#txtWifiSSID").val()== "") {

+                strErrMsg = jQuery.i18n.prop('lt_wifiSet_SsidIsEmpty');

+                ret = false;

+            } else if (checkSsidLength(32) == false) {

+            	ret = false;

+            }

+      

+            if(!ret) {

+                $("#wifiSetErrorLogs").show().text(strErrMsg);

+                return false;

+            }

+

+            return true;

+        }

+

+

+

+        function CloseWifi() {

+		var configMap = new Map();

+		var retXml;

+

+		var i=gCurrentAPItem;

+		//for(;i<gWirelessAPNum;i++){

+			if("on" == wifiDetailedInfoMap.get("RGW/wireless/AP"+ i +"/wifi_if_24G/switch")) {

+				configMap.put("RGW/wireless/wifi_if_24G/switch","off");

+				configMap.put("RGW/wireless/wifi_device",i);

+				retXml = PostXml("wireless","wifi_set_2.4g",configMap);

+			}

+

+			if("on" == wifiDetailedInfoMap.get("RGW/wireless/AP"+ i +"/wifi_if_5G/switch")) {

+				configMap.put("RGW/wireless/wifi_if_5G/switch","off");

+				configMap.put("RGW/wireless/wifi_device",i);

+				retXml = PostXml("wireless","wifi_set_5g",configMap);

+			}

+

+			if("OK" != $(retXml).find("setting_response").text()) {

+				alert("Close Wifi failed.");

+			}

+		//}

+

+		GetWifiDetailedInfo();

+		RefreshWifiRFSwitch(0);

+		RefreshFreqBandData();

+        }

+

+        function ModifyWifiConfig() {

+		var retXml;

+		var curWifiConfigMap = new Map();

+		var post_type = 0;

+		var ssid_5g;

+

+		if (gWifiBSSupport == 1) {

+			if (gWifiBSEnable != $("#selWifiBandSteering").val() ||1 == $("#selWifiBandSteering").val()) {

+				curWifiConfigMap.put("RGW/wireless/bs_enable", $("#selWifiBandSteering").val());

+				if ($("#selWifiBandSteering").val() == 1)

+					post_type = 1;

+				else 

+					post_type = 2;

+			}

+		}

+		curWifiConfigMap.put("RGW/wireless/wifi_device", gCurrentAPItem);

+		if(1 == $("#selRfBand").val()) { //24G

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/switch", "on");

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/net_mode", $("#sel2_4G80211Protocol").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/channel",$("#selWifi24GChannel").val());

+

+			if("11ng" ==  $("#sel2_4G80211Protocol").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_24G/bandwidth",$("#sel80211nBandWidth").val());

+			} else if ("11ax" ==  $("#sel2_4G80211Protocol").val() || "11bgnax" ==  $("#sel2_4G80211Protocol").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_24G/bandwidth",$("#sel80211axBandWidth").val());

+			}

+

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/hidden",$("#selHideSSID").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/isolate",$("#selApIsolateSwitch").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/ssid",$("#txtWifiSSID").val());

+			//  curWifiConfigMap.put("RGW/wireless/wifi_if_24G/wpa_group_rekey",$("#txtWpaGroupKeyUpdateInterval").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/encryption",GetEncryptionTag( $("#selWifiAuthType").val(),$("#selEncryAlg").val()));

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/multi_ssid", $("#selMultiSSIDSwitch").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_24G/ssid_index", $("#sel24GSSIDList").val());

+			//if(gChangeSSID){

+

+			//	curWifiConfigMap.put("RGW/wireless/wifi_if_24G/ssid",$("#txtWifiSSID").val());

+

+			//}

+

+			if("WEP" == $("#selWifiAuthType").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_24G/key",1);

+				curWifiConfigMap.put("RGW/wireless/wifi_if_24G/key1",$("#txtPasswd").val());

+			} else {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_24G/key",$("#txtPasswd").val());

+			}

+

+			if (post_type == 0) {

+				var configMap = curWifiConfigMap.getChange(wifiDetailedInfoMap);

+				if(0 == configMap.size()) {

+					return true;

+				}

+				//ShowDlg("PleaseWait", 120, 100);

+				retXml = PostXml("wireless","wifi_set_2.4g",configMap);

+				//CloseDlg();

+			}

+		} 

+		if (2 == $("#selRfBand").val() || post_type != 0) {         

+	                curWifiConfigMap.put("RGW/wireless/wifi_if_5G/switch", "on");

+	                curWifiConfigMap.put("RGW/wireless/wifi_if_5G/net_mode", $("#sel5G80211Protocol").val());

+	                curWifiConfigMap.put("RGW/wireless/wifi_if_5G/channel",$("#selWifi5GChannel").val());

+

+			if("11na" ==  $("#sel5G80211Protocol").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/bandwidth",$("#sel80211nBandWidth").val());

+			} else if("11ac" ==  $("#sel5G80211Protocol").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/bandwidth",$("#sel80211acBandWidth").val());

+			} else if ("11ax" ==  $("#sel5G80211Protocol").val() || "11anacax" ==  $("#sel5G80211Protocol").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/bandwidth",$("#sel80211axBandWidth").val());

+			}

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/hidden",$("#selHideSSID").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/isolate",$("#selApIsolateSwitch").val());

+

+			ssid_5g = $("#txtWifiSSID").val();

+			if (post_type == 2) 

+				ssid_5g += "_5g";

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/ssid", ssid_5g);

+			//curWifiConfigMap.put("RGW/wireless/wifi_if_5G/wpa_group_rekey",$("#txtWpaGroupKeyUpdateInterval").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/encryption",GetEncryptionTag( $("#selWifiAuthType").val(),$("#selEncryAlg").val()));

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/multi_ssid", $("#selMultiSSIDSwitch").val());

+			curWifiConfigMap.put("RGW/wireless/wifi_if_5G/ssid_index", $("#sel5GSSIDList").val());

+			//if(gChangeSSID){

+

+			//curWifiConfigMap.put("RGW/wireless/wifi_if_5G/ssid",$("#txtWifiSSID").val());

+

+			//}

+			if("WEP" == $("#selWifiAuthType").val()) {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/key",1);

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/key1",$("#txtPasswd").val());

+			} else {

+				curWifiConfigMap.put("RGW/wireless/wifi_if_5G/key",$("#txtPasswd").val());

+			}

+			if (post_type == 0) {

+				var configMap = curWifiConfigMap.getChange(wifiDetailedInfoMap);

+				if(0 == configMap.size()) {

+					return true;

+				}

+				retXml = PostXml("wireless","wifi_set_5g",configMap);

+			}

+		}//end wifi_set_5g

+

+		if (post_type != 0) {

+			var configMap = curWifiConfigMap.getChange(wifiDetailedInfoMap);

+			if(0 == configMap.size()) {

+				return true;

+			}

+			retXml = PostXml("wireless","wifi_set_all",configMap);

+		}

+		

+		if("OK" != $(retXml).find("setting_response").text()) {

+			alert("config wifi failed.");

+		}

+		if(gChangeSSID){

+			gChangeSSID = false;

+		}

+

+		GetWifiDetailedInfo();

+		RefreshWifiRFSwitch(0);

+		RefreshFreqBandData();

+        }

+

+        function UpdateWifiEncryAlg(strAuthType) {

+            $("#selEncryAlg").empty();

+            switch(strAuthType) {

+                case "WPA-PSK":

+                    $("#selEncryAlg").append("<option value='AES-CCMP'>AES-CCMP</option>");

+                    $("#selEncryAlg").append("<option value='TKIP'>TKIP</option>");

+                    $("#selEncryAlg").append("<option value='TKIP/AES-CCMP'>TKIP/AES-CCMP</option>");

+

+                    break;

+                case "WPA2-PSK":

+                    $("#selEncryAlg").append("<option value='AES-CCMP'>AES-CCMP</option>");

+                    $("#selEncryAlg").append("<option value='TKIP/AES-CCMP'>TKIP/AES-CCMP</option>");

+                    break;

+                case "Mixed":

+                    $("#selEncryAlg").append("<option value='AES-CCMP'>AES-CCMP</option>");

+                    $("#selEncryAlg").append("<option value='AES-CCMP/TKIP'>AES-CCMP/TKIP</option>");

+

+                    break;

+                case "WEP":

+                    $("#selEncryAlg").append("<option value='Open'>Open</option>");

+                    $("#selEncryAlg").append("<option value='Shared-key'>Shared-key</option>");

+                    break;

+                case "WPA3-SAE":

+                case "WPA2-WPA3":

+                    $("#selEncryAlg").append("<option value='AES-CCMP'>AES-CCMP</option>");

+                    break;

+            }

+        }

+

+        function Updatehwmode(bandType, wifi6) {

+		$("#sel2_4G80211Protocol").empty();

+		$("#sel5G80211Protocol").empty();

+		switch(bandType) {

+		case 1:

+			$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211n' value='11ng'>802.11b/g/n</option>");

+			$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211gb' value='11bg'>802.11b/g</option>");

+			$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211b_only' value='11b'>802.11b</option>");

+			$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211g_only' value='11g'>802.11g</option>");

+			

+			if (wifi6 == "1") {

+				$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211bgnax' value='11bgnax'>802.11b/g/n/ax</option>");

+				$("#sel2_4G80211Protocol").append("<option id='lt_wifiSet_opt80211ax' value='11ax'>802.11ax</option>");

+			}

+			break;

+                case 2:

+			$("#sel5G80211Protocol").append("<option value='11a'>802.11a</option>");

+			$("#sel5G80211Protocol").append("<option value='11na'>802.11n</option>");

+			$("#sel5G80211Protocol").append("<option value='11ac'>802.11ac</option>");

+			if (wifi6 == "1") {

+				$("#sel5G80211Protocol").append("<option value='11anacax'>802.11a/n/ac/ax</option>");

+				$("#sel5G80211Protocol").append("<option value='11ax'>802.11ax</option>");

+			}

+			break;

+		}

+        }

+

+        function GetWifiBasicInfo() {

+            wifiDetailedInfoMap.clear();

+            var retXml = PostXml("wireless","wifi_get_basic_info");

+            var wifi24GStatus,wifi5GStatus;

+            $(retXml).find("wifi_if_24G").each(function() {

+                wifi24GStatus = $(this).find("switch").text();

+            });

+            $(retXml).find("wifi_if_5G").each(function() {

+                wifi5GStatus = $(this).find("switch").text();

+            });

+

+            if("off" == wifi24GStatus && "off" == wifi5GStatus) {

+                $("#selWifiEnabledSwitch").val(0);

+                $("#divDisabledWifi").hide();

+                return;

+            } else {

+                $("#selWifiEnabledSwitch").val(1);

+                $("#divDisabledWifi").show();

+                if("on" == wifi24GStatus) {

+                    $("#selRfBand").val(1);

+                } else {

+                    $("#selRfBand").val(2);

+                }

+            }

+

+            GetWifiDetailedInfo();

+            //RefreshFreqBandData();

+        }

+

+	function BandSteeringSupport() {

+		var ret = 0;

+		

+		if ("1" == wifiDetailedInfoMap.get("RGW/wireless/bs_support"))

+		{

+			if ("on" == wifiDetailedInfoMap.get("RGW/wireless/AP0/wifi_if_24G/switch")

+		               && "on" == wifiDetailedInfoMap.get("RGW/wireless/AP1/wifi_if_5G/switch") )

+		               ret = 1;

+			else if ("on" == wifiDetailedInfoMap.get("RGW/wireless/AP0/wifi_if_5G/switch")

+		               && "on" == wifiDetailedInfoMap.get("RGW/wireless/AP1/wifi_if_24G/switch") )

+		               ret = 2;

+		}

+

+		return ret;

+	}

+	

+        function RefreshWifiRFSwitch(onlyBandType) {

+

+	   var band24GSupport = 0;

+	   var band5GSupport = 0;

+            if (null  != wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_24G/switch"))

+            	   band24GSupport = 1;

+            

+             if (null  != wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_5G/switch"))

+             	    band5GSupport = 1;

+

+	     if (onlyBandType == 1)

+	     {

+	     	   if (band24GSupport && band5GSupport) {

+	     	   	$("#optRfBand24G").show();

+	     	   	$("#optRfBand5G").show();

+	     	   } else if (band24GSupport) {

+	     	   	$("#selRfBand").val(1);

+	     	   	$("#optRfBand5G").hide();

+	     	   } else if (band5GSupport) {

+	     	   	$("#selRfBand").val(2);

+	     	   	$("#optRfBand24G").hide();

+	     	   }

+

+	     	   return;

+	     }

+	     

+             if (band24GSupport && band5GSupport) {          

+	            if("off" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_24G/switch")

+	               && "off" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_5G/switch") ) {

+	                $("#selWifiEnabledSwitch").val(0);

+	                $("#divDisabledWifi").hide();

+	            } else {

+	                $("#selWifiEnabledSwitch").val(1);

+	                $("#divDisabledWifi").show();

+	                if("on" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_24G/switch")) {

+	                    $("#selRfBand").val(1);

+	                } else {

+	                    $("#selRfBand").val(2);

+	                }

+	            }

+               } else if (band24GSupport) {

+			if("off" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_24G/switch")) {

+				$("#selWifiEnabledSwitch").val(0);

+	              	        $("#divDisabledWifi").hide();

+			} else {

+				$("#selWifiEnabledSwitch").val(1);

+	               	 	$("#divDisabledWifi").show();

+	               	 	$("#selRfBand").val(1);

+	               	 	$("#optRfBand5G").hide();

+			}

+               	

+               } else if (band5GSupport) {

+             		 if("off" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_5G/switch")) {

+				$("#selWifiEnabledSwitch").val(0);

+	              	        $("#divDisabledWifi").hide();

+			} else {

+				$("#selWifiEnabledSwitch").val(1);

+	               	 	$("#divDisabledWifi").show();

+	               	 	$("#selRfBand").val(2);

+	               	 	$("#optRfBand24G").hide();

+			}

+               } else {

+               		$("#selWifiEnabledSwitch").val(0);

+	                $("#divDisabledWifi").hide();

+               }

+        }

+

+	function RefreshssidInfo(){

+		var bs_enable = $("#selWifiBandSteering").val();

+		if(1 == $("#selRfBand").val()) { //24G

+

+			if ("1"  == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_24G/unsupport_multi_ssid"))

+				$("#divMultiSSID").hide();

+			else

+				$("#divMultiSSID").show();

+

+			$("#selHideSSID").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/hidden"));

+			$("#selApIsolateSwitch").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/isolate"));

+			if(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/n_ssid")>1)

+				$("#selMultiSSIDSwitch").val("1");

+			else

+				$("#selMultiSSIDSwitch").val("0");

+			

+			$("#txtWifiSSID").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/ssid"));

+			//$("#txtWpaGroupKeyUpdateInterval").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/wpa_group_rekey"));

+			$("#txtPasswd").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/key"));

+

+			var encryptionMap = ParseEncryption(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/encryption"));

+			UpdateWifiEncryAlg(encryptionMap.get("authType"));

+			$("#selWifiAuthType").val(encryptionMap.get("authType"));

+			$("#selEncryAlg").val(encryptionMap.get("ciphers"));

+			if("WEP" == encryptionMap.get("authType")) {

+				$("#divwepKeyFormat").show();

+				$("#selWepKeyFormat").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/ssid"+gCurrentssidItem+"/key").length);

+			}

+

+			$("#lt_wifiSet_EditSSID").show();

+			$("#txtWifiSSID").attr("disabled", false);

+			$("#txtPasswd").attr("disabled", false);

+			$("#selWifiAuthType").attr("disabled", false);

+			$("#selEncryAlg").attr("disabled", false);

+			$("#selWepKeyFormat").attr("disabled", false);

+

+			if (bs_enable) {

+				$("#divSSIDSetting").show();

+				$("#divAuthTypeSetting").show();

+			}

+		} else {

+			var bs_support = BandSteeringSupport();

+			var APIndex;

+			var wifi_if_ssid;

+			var add_suffix = 0;

+			var ssid_str;

+			var ssid_unify = 0;

+			var ssid_num = 0;

+

+	     		if ("1" == wifiDetailedInfoMap.get("RGW/wireless/AP" + gCurrentAPItem+"/wifi_if_5G/unsupport_multi_ssid"))

+				$("#divMultiSSID").hide();

+			else

+				$("#divMultiSSID").show();

+

+			if (bs_enable == 1) {

+		      		if (bs_support == 1) {

+		      			APIndex = 0;

+		      			wifi_if_ssid = "/wifi_if_24G/ssid";

+		      			ssid_unify = 1;

+		      		}

+		      		else if (bs_support == 2) {

+		      			APIndex = 1;

+		      			wifi_if_ssid = "/wifi_if_24G/ssid";

+		      			ssid_unify = 1;

+		      		}

+		      		else {

+		      			APIndex = gCurrentAPItem;

+		      			wifi_if_ssid = "wifi_if_5G/ssid";

+		      		}

+			}

+			else  {

+	      			APIndex = gCurrentAPItem;

+	      			wifi_if_ssid = "/wifi_if_5G/ssid";

+	      			if (bs_support == 1) {

+					if (wifiDetailedInfoMap.get("RGW/wireless/AP0/wifi_if_24G/ssid"+gCurrentssidItem+"/ssid") == 

+						wifiDetailedInfoMap.get("RGW/wireless/AP1/wifi_if_5G/ssid"+gCurrentssidItem+"/ssid"))

+						add_suffix = 1;

+	      			} else if (bs_support == 2) {

+	      				if (wifiDetailedInfoMap.get("RGW/wireless/AP1/wifi_if_24G/ssid"+gCurrentssidItem+"/ssid") == 

+						wifiDetailedInfoMap.get("RGW/wireless/AP0/wifi_if_5G/ssid"+gCurrentssidItem+"/ssid"))

+						add_suffix = 1;

+	      			}

+	      		}

+	      			

+			$("#selHideSSID").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/hidden"));

+			$("#selApIsolateSwitch").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/isolate"));

+

+			/* should use current AP 5G config */

+			ssid_num = wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/n_ssid");

+			if(ssid_num > 1)

+				$("#selMultiSSIDSwitch").val("1");

+			else

+				$("#selMultiSSIDSwitch").val("0");

+

+			ssid_str = wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/ssid");

+			

+			if (add_suffix == 1)

+				ssid_str += "_5g";

+			

+			if (bs_support > 0) {

+				$("#sel5GSSIDList").empty();

+				if($("#sel5GSSIDList option").size() != ssid_num) {

+					var idx =0;

+					for ( ; idx < ssid_num; idx++ ) {

+						var opt_ap = document.createElement("option");

+						document.getElementById("sel5GSSIDList").options.add(opt_ap);

+						opt_ap.id = "opt5GSSID"+idx;

+						opt_ap.text = ssid_str;

+						opt_ap.value = idx;

+					}

+					$("#sel5GSSIDList").val(gCurrentssidItem);

+				}

+			}

+			//$("#txtWifiSSID").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/ssid"));

+			$("#txtWifiSSID").val(ssid_str);

+			//$("#txtWpaGroupKeyUpdateInterval").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/ssid"+gCurrentssidItem+"/wpa_group_rekey"));

+			$("#txtPasswd").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/key"));

+

+			var encryptionMap = ParseEncryption(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/encryption"));

+			UpdateWifiEncryAlg(encryptionMap.get("authType"));

+			$("#selWifiAuthType").val(encryptionMap.get("authType"));

+			$("#selEncryAlg").val(encryptionMap.get("ciphers"));

+			if("WEP" == encryptionMap.get("authType")) {

+				$("#divwepKeyFormat").show();

+				$("#selWepKeyFormat").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+APIndex+wifi_if_ssid+gCurrentssidItem+"/key").length);

+			}

+

+			if (ssid_unify == 1) {

+				$("#divSSIDSetting").hide();

+				$("#divAuthTypeSetting").hide();

+				$("#divEncryAlg").hide();

+				$("#divwepKeyFormat").hide();

+				$("#divPassWd").hide();

+				$("#divWpsCfgDlg").hide();

+				

+				$("#lt_wifiSet_EditSSID").hide();

+				$("#sel5GSSIDList").attr("disabled", true);

+				$("#txtWifiSSID").attr("disabled", true);

+				$("#txtPasswd").attr("disabled", true);

+				$("#selWifiAuthType").attr("disabled", true);

+				$("#selEncryAlg").attr("disabled", true);

+				$("#selWepKeyFormat").attr("disabled", true);

+			}

+			else {

+				$("#divSSIDSetting").show();

+				$("#divAuthTypeSetting").show();

+				$("#divEncryAlg").show();

+				$("#divwepKeyFormat").show();

+				$("#divPassWd").show();

+				

+				$("#lt_wifiSet_EditSSID").show();

+				$("#sel5GSSIDList").attr("disabled", false);

+				$("#txtWifiSSID").attr("disabled", false);

+				$("#txtPasswd").attr("disabled", false);

+				$("#selWifiAuthType").attr("disabled", false);

+				$("#selEncryAlg").attr("disabled", false);

+				$("#selWepKeyFormat").attr("disabled", false);

+			}

+

+			if (gWirelessType == 1)

+				$("#lt_wifiSet_WAPI").hide();

+

+			if (1 == $("#selRfBand").val()  || 0 == $("#selWifiBandSteering").val()) {

+				if("none" == $("#selWifiAuthType").val()) {

+					$("#divEncryAlg").hide();

+					$("#divPassWd").hide();

+					$("#divwepKeyFormat").hide();

+				} else if("WEP" == $("#selWifiAuthType").val()) {

+					$("#divEncryAlg").show();

+					$("#divPassWd").show();

+					$("#divwepKeyFormat").show();

+				} else {

+					$("#divEncryAlg").show();

+					$("#divPassWd").show();

+					$("#divwepKeyFormat").hide();

+				}

+

+				if("WPA-PSK" == $("#selWifiAuthType").val() || "WEP" == $("#selWifiAuthType").val()) {

+					$("#divWpsCfgDlg").hide();

+				} else {

+					$("#divWpsCfgDlg").show();

+				}

+			}

+		}

+	}

+

+        function RefreshFreqBandData() {

+            var net_mode;

+             

+            $("#div80211nBandWidth").hide();

+            $("#div80211acBandWidth").hide();

+            $("#div80211axBandWidth").hide();

+            $("#div5G80211Protocol").hide();

+            $("#div2_4G80211Protocol").hide();

+            $("#divwepKeyFormat").hide();

+

+            if(1 == $("#selRfBand").val()) { //24G

+                Updatehwmode(1, gWifi6Support);

+                $("#div2_4G80211Protocol").show();

+                $("#sel2_4G80211Protocol").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/net_mode"));

+                $("#selWifi24GChannel").show();

+                $("#selWifi5GChannel").hide();

+                

+                var first_channel = parseInt(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/first_channel"));

+                var last_channel = parseInt(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/last_channel"));

+

+		 /*hide below than first channel*/

+		  for (var channelIdx = 1; channelIdx < first_channel; channelIdx++) {

+			var optionId = "#lt_wifiSet_optCH" + channelIdx;

+			$(optionId).hide();

+		  }

+

+		  /*hide higer than last channel*/

+		  for (var channelIdx = last_channel + 1; channelIdx <= 14; channelIdx++) {

+			var optionId = "#lt_wifiSet_optCH" + channelIdx;

+			$(optionId).hide();

+		  }

+

+		   /*allowed rangel*/

+		  for (var channelIdx = first_channel; channelIdx < last_channel; channelIdx++) {

+			var optionId = "#lt_wifiSet_optCH" + channelIdx;

+			$(optionId).show();

+		  }

+                

+                $("#selWifi24GChannel").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/channel"));

+                net_mode = wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/net_mode");

+                if("11ng" == net_mode) {

+                    $("#div80211nBandWidth").show();

+                    if (gWifi6Support == 1) {

+                            //$("#div80211nBW40Extend").show();

+                            if ($("#sel80211nBandWidth option").length < 3) {

+			    		$("#sel80211nBandWidth").append("<option value='HT40-'>HT40-</option>");

+			    		$("#sel80211nBandWidth").append("<option value='HT40+'>HT40+</option>");

+                            	}

+                        }

+                        else {

+                            // $("#div80211nBW40Extend").hide();

+                             $("#sel80211nBandWidth option[value='HT40-']").remove();

+                             $("#sel80211nBandWidth option[value='HT40+']").remove();

+                        }

+                    $("#sel80211nBandWidth").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/bandwidth"));

+                } else if("11ax" == net_mode ||"11bgnax" == net_mode)  {

+		    $("#div80211axBandWidth").show();

+		    $("#sel80211axBandWidth option[value='HE80']").remove();

+		    $("#sel80211axBandWidth").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_24G/bandwidth"));

+                }

+                $("#sel24GSSIDList").show();

+                $("#sel5GSSIDList").hide();

+

+            } else {

+                Updatehwmode(2, gWifi6Support);

+                $("#div5G80211Protocol").show();

+                $("#sel5G80211Protocol").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/net_mode"));

+

+                $("#selWifi24GChannel").hide();

+                $("#selWifi5GChannel").show();

+                $("#selWifi5GChannel").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/channel"));

+                net_mode = wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/net_mode");

+                if("11na" == net_mode) {

+                    $("#div80211nBandWidth").show();

+                    if (gWifi6Support == 1) {

+                        //$("#div80211nBW40Extend").show();

+                        if ($("#sel80211nBandWidth option").length < 3) {

+		    		$("#sel80211nBandWidth").append("<option value='HT40-'>HT40-</option>");

+		    		$("#sel80211nBandWidth").append("<option value='HT40+'>HT40+</option>");

+                        	}

+                    }

+                    else {

+                        // $("#div80211nBW40Extend").hide();

+                         $("#sel80211nBandWidth option[value='HT40-']").remove();

+                         $("#sel80211nBandWidth option[value='HT40+']").remove();

+                    }

+                    $("#sel80211nBandWidth").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"wifi_if_5G/bandwidth"));

+                } else if("11ac" == net_mode) {

+                    $("#div80211acBandWidth").show();

+                    $("#sel80211acBandWidth").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/bandwidth"));

+                } else if("11ax" == net_mode || "11anacax" == net_mode) {

+		    $("#div80211axBandWidth").show();

+		    if ($("#sel80211axBandWidth option").length < 3)

+		    	$("#sel80211axBandWidth").append("<option value='HE80'>HE80</option>");

+                    $("#sel80211axBandWidth").val(wifiDetailedInfoMap.get("RGW/wireless/AP"+gCurrentAPItem+"/wifi_if_5G/bandwidth"));

+                }

+                $("#sel5GSSIDList").show();

+                $("#sel24GSSIDList").hide();

+                

+            }

+

+            RefreshssidInfo();

+

+	    if (gWirelessType == 1)

+	    	$("#lt_wifiSet_WAPI").hide();

+

+	    if (1 == $("#selRfBand").val()  || 0 == $("#selWifiBandSteering").val()) {

+	            if("none" == $("#selWifiAuthType").val()) {

+	                $("#divEncryAlg").hide();

+	                $("#divPassWd").hide();

+	                $("#divwepKeyFormat").hide();

+	            } else if("WEP" == $("#selWifiAuthType").val()) {

+	                $("#divEncryAlg").show();

+	                $("#divPassWd").show();

+	                $("#divwepKeyFormat").show();

+	            } else {

+	                $("#divEncryAlg").show();

+	                $("#divPassWd").show();

+	                $("#divwepKeyFormat").hide();

+	            }

+

+		     /*

+	            if("Mixed" == $("#selWifiAuthType").val() || "WPA-PSK" == $("#selWifiAuthType").val()) {

+	                $("#divWpaGroupKey").show();

+	            } else {

+	                $("#divWpaGroupKey").hide();

+	            }

+	            */

+		    if ("WPA-PSK" == $("#selWifiAuthType").val() || "WEP" == $("#selWifiAuthType").val() || "WPA3-SAE" == $("#selWifiAuthType").val() || "none" == $("#selWifiAuthType").val() || "1" == $("#selHideSSID").val())

+		        $("#divWpsCfgDlg").hide();

+		    else

+		        $("#divWpsCfgDlg").show();

+	       }

+	}

+       

+

+        function GetWifiDetailedInfo() {

+			wifiDetailedInfoMap.clear();

+			$("#selWifiAPList").empty();

+			var idx =0;

+			var retXml = PostXml("wireless","wifi_get_detail");

+			var wirelessAPNum = $(retXml).find("wireless_num").text();

+			gWirelessAPNum = wirelessAPNum;

+			gWirelessType =  $(retXml).find("wireless_type").text();

+			gWifi6Support =  $(retXml).find("wifi6_support").text();

+			gCurrentAPItem =  $(retXml).find("current_ap").text();

+			gWifiBSSupport = $(retXml).find("bs_support").text();

+			gWifiBSEnable = $(retXml).find("bs_enable").text();

+			var ssidNum;

+			if (wirelessAPNum == 0) {

+				$("#divWireless").hide();

+				$("#wifiSetErrorLogs").show().text(jQuery.i18n.prop('lNoWiFiCardError'));

+				return false;

+			}

+

+			if (gWifiBSSupport == 1) {

+				$("#divWifiBandSteering").show();

+				$("#selWifiBandSteering").val(gWifiBSEnable);

+			}

+			else {

+				$("#divWifiBandSteering").hide();

+			}

+				

+			if (gWirelessType == 1) {

+				$("#dropdownBW40").hide();

+				// $("#div80211nBW40Extend").hide();

+				$("#sel80211nBandWidth option[value='HT40-']").remove();

+				$("#sel80211nBandWidth option[value='HT40+']").remove();

+				$("#lt_wifiSet_WAPI").hide();

+			}

+          	       

+			if($("#selWifiAPList option").size()!=wirelessAPNum){

+				for ( ; idx < wirelessAPNum; idx++ ){

+					var opt_ap = document.createElement("option");

+					document.getElementById("selWifiAPList").options.add(opt_ap);

+					opt_ap.id = "optWifiAP"+idx;

+					opt_ap.text = "AP"+idx;

+					opt_ap.value = idx;

+				}

+				if (gCurrentAPItem == 0)

+					$("#selWifiAPList").val("0");

+				else

+					$("#selWifiAPList").val("1");

+			}

+

+			wifiDetailedInfoMap.put("RGW/wireless/wireless_num", $(retXml).find("wireless_num").text());

+			wifiDetailedInfoMap.put("RGW/wireless/bs_support", $(retXml).find("bs_support").text());

+            		var i=0;

+			for(;i<wirelessAPNum;i++){

+				$(retXml).find("AP"+i).each(function() {

+				/*24G info start*/

+				$(this).find("wifi_if_24G").each(function(){

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/switch",$(this).find("switch").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/net_mode",$(this).find("net_mode").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/channel",$(this).find("channel").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/first_channel",$(this).find("first_channel").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/last_channel",$(this).find("last_channel").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/bandwidth",$(this).find("bandwidth").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/unsupport_multi_ssid",$(this).find("unsupport_multi_ssid").text());

+

+				var j=0;

+				ssidNum = $(this).find("n_ssid").text();

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_24G/n_ssid",ssidNum);

+				for(;j<ssidNum;j++){

+					$(this).find("ssid"+j).each(function(){

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/hidden",$(this).find("hidden").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/isolate",$(this).find("isolate").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/ssid",$(this).find("ssid").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/encryption",$(this).find("encryption").text());

+					if (j == 0) {

+						var encryptionMap = ParseEncryption($(this).find("encryption").text());

+						g24gAuthType = encryptionMap.get("authType");

+						g24gEncryAlg = encryptionMap.get("ciphers");

+					}

+					

+					if ("none" != $(this).find("encryption").text()) {

+						if ($(this).find("encryption").text().indexOf("psk") >= 0){

+							wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/wpa_group_rekey",$(this).find("wpa_group_rekey").text());

+							if (j == 0)

+								g24gRekey = $(this).find("wpa_group_rekey").text();

+						}

+						//In WEP mode, this can be an integer specifying which key index to use (key1, key2, key3, or key4.)

+						if("wep+shared" == $(this).find("encryption").text()

+						|| "wep" == $(this).find("encryption").text()) {

+							var WepKeyTag = "key" + $(this).find("key").text();

+							wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/key",$(this).find(WepKeyTag).text());

+							if (j == 0)

+								g24gPassword =  $(this).find(WepKeyTag).text();

+						} else {

+							wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ j +"/key",$(this).find("key").text());

+							if (j == 0) 

+								g24gPassword = $(this).find("key").text();

+						}

+					}

+					});

+				}

+				$("#sel24GSSIDList").empty();

+				if($("#sel24GSSIDList option").size()!=ssidNum){

+					idx = 0;

+					for ( ; idx < ssidNum; idx++ ){

+						var opt_ap = document.createElement("option");

+						document.getElementById("sel24GSSIDList").options.add(opt_ap);

+						opt_ap.id = "opt24GSSID"+idx;

+						opt_ap.text = wifiDetailedInfoMap.get("RGW/wireless/AP"+ i +"/wifi_if_24G/ssid"+ idx +"/ssid") ;

+						opt_ap.value = idx;

+					}

+

+					$("#sel24GSSIDList").val("0");

+					gCurrentssidItem = 0;

+				}

+				}); 

+				/*24G info end*/

+

+				/*5G info start*/

+				$(this).find("wifi_if_5G").each(function(){

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/switch",$(this).find("switch").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/net_mode",$(this).find("net_mode").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/channel",$(this).find("channel").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/bandwidth",$(this).find("bandwidth").text());

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/unsupport_multi_ssid",$(this).find("unsupport_multi_ssid").text());	  

+

+				var j=0;

+				ssidNum = $(this).find("n_ssid").text();

+				wifiDetailedInfoMap.put("RGW/wireless/AP"+i+"/wifi_if_5G/n_ssid",ssidNum);

+				for(;j<ssidNum;j++){

+					$(this).find("ssid"+j).each(function(){

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/hidden",$(this).find("hidden").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/isolate",$(this).find("isolate").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/ssid",$(this).find("ssid").text());

+					wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/encryption",$(this).find("encryption").text());

+					if ("none" != $(this).find("encryption").text()) {

+						if ($(this).find("encryption").text().indexOf("psk") >= 0) {

+						wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/wpa_group_rekey",$(this).find("wpa_group_rekey").text());

+					}

+					//In WEP mode, this can be an integer specifying which key index to use (key1, key2, key3, or key4.)

+					if("wep+shared" == $(this).find("encryption").text()

+					|| "wep" == $(this).find("encryption").text()) {

+						var WepKeyTag = "key" + $(this).find("key").text();

+						wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/key",$(this).find(WepKeyTag).text());

+					} else {

+						wifiDetailedInfoMap.put("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ j +"/key",$(this).find("key").text());

+					}

+					}					

+				});

+				}

+

+				$("#sel5GSSIDList").empty();

+				if($("#sel5GSSIDList option").size()!=ssidNum){

+					idx =0;

+					for ( ; idx < ssidNum; idx++ ){

+						var opt_ap = document.createElement("option");

+						document.getElementById("sel5GSSIDList").options.add(opt_ap);

+						opt_ap.id = "opt5GSSID"+idx;

+						opt_ap.text = wifiDetailedInfoMap.get("RGW/wireless/AP"+ i +"/wifi_if_5G/ssid"+ idx +"/ssid") ;

+						opt_ap.value = idx;

+					}

+					$("#sel5GSSIDList").val("0");

+					gCurrentssidItem = 0;

+					}

+				}); 

+				/*5G info end*/

+			});

+		}

+		return true;

+        }

+

+        //由认证类型和加密方式获取 encryption tag

+        function GetEncryptionTag(authType,ciphers) {

+            switch(authType) {

+                case "WPA-PSK":

+                    if("AES-CCMP" == ciphers) return "psk+ccmp";

+                    else if("TKIP" == ciphers) return "psk";

+                    else if("TKIP/AES-CCMP" == ciphers) return "psk+tkip+ccmp";

+                    break;

+                case "WPA2-PSK":

+                    if("AES-CCMP" == ciphers) return "psk2";

+                    else if("TKIP/AES-CCMP" == ciphers) return "psk2+tkip+ccmp";

+                    break;

+                case "Mixed":

+                    if("AES-CCMP/TKIP" == ciphers) return "psk-mixed";

+                    else if("AES-CCMP" == ciphers) return "psk-mixed+aes";

+                    break;

+                case "WEP":

+                    if("Open" == ciphers) return "wep";

+                    else if("Shared-key" == ciphers) return "wep+shared";

+                    break;

+                case "none":

+                    return "none";

+                    break;

+                case "WPA3-SAE":

+                    return "sae";

+                case "WPA2-WPA3":

+                   return "sae-mixed";

+                default:

+                    return "";

+            }

+        }

+

+        //解析 encryption tag 得到认证类型和加密方式

+        function ParseEncryption(encryptInfo) {

+            var encryptInfoMap = new Map();

+            switch(encryptInfo) {

+                    //WPA-PSK

+                case "psk+ccmp":

+                case "psk+aes":

+                    encryptInfoMap.put("authType","WPA-PSK");

+                    encryptInfoMap.put("ciphers","AES-CCMP");

+                    break;

+                case "psk":

+                case "psk+tkip":

+                    encryptInfoMap.put("authType","WPA-PSK");

+                    encryptInfoMap.put("ciphers","TKIP");

+                    break;

+                case "psk+tkip+ccmp":

+                case "psk+tkip+aes":

+                    encryptInfoMap.put("authType","WPA-PSK");

+                    encryptInfoMap.put("ciphers","TKIP/AES-CCMP");

+                    break;

+                    //WPA2-PSK

+                case "psk2":

+                case "psk2+ccmp":

+                case "psk2+aes":

+                    encryptInfoMap.put("authType","WPA2-PSK");

+                    encryptInfoMap.put("ciphers","AES-CCMP");

+                    break;

+                case "psk2+tkip+ccmp":

+                case "psk2+tkip+aes":

+                    encryptInfoMap.put("authType","WPA2-PSK");

+                    encryptInfoMap.put("ciphers","TKIP/AES-CCMP");

+                    break;

+                    //WPA/WPA2-MIXED

+                case "psk-mixed":

+                case "psk-mixed+tkip+aes":

+                case "psk-mixed+tkip+ccmp":

+                    encryptInfoMap.put("authType","Mixed");

+                    encryptInfoMap.put("ciphers","AES-CCMP/TKIP");

+                    break;

+                case "psk-mixed+aes":

+                case "psk-mixed+ccmp":

+                    encryptInfoMap.put("authType","Mixed");

+                    encryptInfoMap.put("ciphers","AES-CCMP");

+                    break;

+                    //MEP

+                case "wep":

+                    encryptInfoMap.put("authType","WEP");

+                    encryptInfoMap.put("ciphers","Open");

+                    break;

+                case "wep+shared":

+                    encryptInfoMap.put("authType","WEP");

+                    encryptInfoMap.put("ciphers","Shared-key");

+                    break;

+                case "none":

+                    encryptInfoMap.put("authType","none");

+                    encryptInfoMap.put("ciphers","");

+                    break;

+                    //WPA3

+                case "sae":

+                   encryptInfoMap.put("authType","WPA3-SAE");

+                   encryptInfoMap.put("ciphers","AES-CCMP");

+                   break;

+                   //WPA2/WPA3-MIXED

+                case "sae-mixed":

+                   encryptInfoMap.put("authType","WPA2-WPA3");

+                   encryptInfoMap.put("ciphers","AES-CCMP");

+                   break;

+                default:

+                    encryptInfoMap.put("authType","");

+                    encryptInfoMap.put("ciphers","");

+                    break;

+            }

+            return encryptInfoMap;

+

+        }

+

+        return this;

+    }

+})(jQuery);

+

+function ShowWPSCfgDlg() {

+	ShowDlg("MBAddWPSClient", 300, 200);

+	localizeWPSDialog();

+	$("#lWPSStatus").text("");

+	if(IsWpsMatch) {

+		DisabledWPSBtn();

+	}

+}

+

+function DisabledWPSBtn() {

+	$("#btnRegister").attr("disabled", true);

+	$("#btnPush").attr("disabled", true);

+	$("#txtRouterPinMB").attr("disabled", true);

+	$("#divcancel_session").show();

+

+}

+

+function EnabledWPSBtn() {

+	$("#btnRegister").attr("disabled", false);

+	$("#btnPush").attr("disabled", false);

+	$("#txtRouterPinMB").attr("disabled", false);

+	$("#divcancel_session").hide();

+

+}

+

+function localizeWPSDialog() {

+	$("#h1AddWPSClient").text(jQuery.i18n.prop("h1AddWPSClient"));

+	$("#lWPStext").text(jQuery.i18n.prop("lWPStext"));

+	$("#lCancelWpsSession").text(jQuery.i18n.prop("lCancelWpsSession"));

+	$("#spanWPSPushButton").text(jQuery.i18n.prop("spanWPSPushButton"));

+	$("#spanEnterPin").text(jQuery.i18n.prop("spanEnterPin"));

+	$("#btnPush").text(jQuery.i18n.prop("btnPush"));

+	$("#btnRegister").text(jQuery.i18n.prop("btnRegister"));

+	$("#btnClose").text(jQuery.i18n.prop("btnClose"));

+}

+function WPSClientClose() {

+	hm();

+}

+

+function QueryWpsStatus() {

+	var retXml = PostXml("wireless","wifi_call_wps_status");

+	var WPSStatus;

+

+	WPSStatus =  $(retXml).find("wps_status").text();

+	

+	if (WPSStatus == 0) {

+		callCount++;

+		if ((callCount < 10) && IsWpsMatch) {

+			$("#lWPSStatus").text(jQuery.i18n.prop("lWpsMatchWait"));

+			showAlert("lWpsMatchWait");

+			setTimeout(QueryWpsStatus, 3000);

+		} else {

+			$("#lWPSStatus").text(jQuery.i18n.prop("lWpsMatchFailed"));

+			showAlert("lWpsMatchFailed");

+			callCount = 0;

+			EnabledWPSBtn();

+			IsWpsMatch = false;

+		}

+	} else if ((WPSStatus == 1 ||"" == WPSStatus)  && IsWpsMatch) {

+		$("#lWPSStatus").text(jQuery.i18n.prop("lWpsMatchPro"));

+		setTimeout(QueryWpsStatus, 3000);

+	} else if (WPSStatus == 2) {

+		$("#lWPSStatus").text(jQuery.i18n.prop("lWpsMatchSuccess"));

+		showAlert("lWpsMatchSuccess");

+		callCount = 0;

+		EnabledWPSBtn();

+		IsWpsMatch = false;

+	} else if (WPSStatus == 3) {

+		$("#lWPSStatus").text(jQuery.i18n.prop("lWpsMatchFailed"));

+		showAlert("lWpsMatchFailed");

+		callCount = 0;

+		EnabledWPSBtn();

+		IsWpsMatch = false;

+	} 

+}

+

+function btnPushClicked() {

+	var mapData = new Map();

+	mapData.put("RGW/wps/wifi_iface_index", gCurrentAPItem);

+	if (gWifiBSEnable == "1")

+		mapData.put("RGW/wps/wifi_5g_prefer", 1);

+	

+       var retXml = PostXml("wireless","wifi_call_wps_pbc", mapData);

+       

+         if("OK" != $(retXml).find("wps_call_pbc_result").text()) {

+            showAlert("lt_WpsPushButtonFail");

+            return;

+         }

+         IsWpsMatch = true;

+         setTimeout(QueryWpsStatus, 3000);

+}

+

+function btnRegisterClicked() {

+	var mapData = new Map();

+	var client_pin = $("#txtRouterPinMB").val();

+	if("-" == client_pin.substr(4,1)) {

+		client = client_pin.replace("-","");

+	}

+

+	if((client_pin.length == 8 || client_pin.length == 4) && IsNumber(client_pin)) {

+		mapData.put("RGW/wps/wps_enable", 1);

+		mapData.put("RGW/wps/wps_pin", client_pin);

+		mapData.put("RGW/wps/wifi_iface_index", gCurrentAPItem);

+		if (gWifiBSEnable == "1")

+			mapData.put("RGW/wps/wifi_5g_prefer", 1);

+		

+		var retXml = PostXml("wireless","wifi_call_wps_pin", mapData);

+		if("OK" != $(retXml).find("wps_call_pin_result").text()) {

+           	 	showAlert("lt_WpsPinFail");

+            		return;

+		}

+		IsWpsMatch = true;

+		setTimeout(QueryWpsStatus, 3000);

+         }

+      else {

+		$("#lWPSError").show();

+		$("#lWPSError").text(jQuery.i18n.prop("lWPSPinError"));

+      }		

+}

+

+function RouterPinMBChange() {

+	$("#lWPSError").hide();

+}

+

+function AutoOffWifiTimeoutChange() {

+    $("#wifiSetErrorLogs").hide().text("");

+}

+

+function cancelSessionClicked() {

+	var retXml = PostXml("wireless","wifi_call_wps_cancle");

+

+         if("OK" != $(retXml).find("wps_call_cancel_result").text()) {

+            showAlert("lt_WpsCancelFail");

+            return;

+         }

+         IsWpsMatch = false;

+}

+

+function lengthInUtf8Bytes(str) {

+	var m = encodeURIComponent(str).match(/%[89ABab]/g);

+	return str.length + (m ? m.length : 0);

+}

+

+function checkSsidLength(maxLength) {

+	var inputLen = lengthInUtf8Bytes($("#txtWifiSSID").val());

+	if (inputLen > maxLength)

+	{

+		showAlert("lt_ssidLenError");

+		return false;

+	}

+	else

+		return true;

+}

+

+function checkPassWDLength() {

+	var strPasswd = $("#txtPasswd").val();

+	var authType = $("#selWifiAuthType").val();

+	var ret = true;

+	var strErrMsg;

+

+	var regex = /\s/;

+	if (regex.test(strPasswd)) {

+		strErrMsg = jQuery.i18n.prop('lt_wifiset_PasswdSpaceError');

+		ret = false;

+	}

+

+	if("WEP" == authType) {

+		switch($("#selWepKeyFormat").val()) {

+			case "5":

+			if(!IsASCIIStr(strPasswd) || 5 != strPasswd.length) {

+				strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd5AsciiError');

+				ret = false;

+			}

+			break;

+			case "13":

+			if(!IsASCIIStr(strPasswd) || 13 != strPasswd.length) {

+				strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd13AsciiError');

+				ret = false;

+			}

+			break;

+			case "10":

+			if(!IsHexStr(strPasswd) || 10 != strPasswd.length) {

+				strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd10HexError');

+				ret = false;

+			}

+			break;

+			case "26":

+			if(!IsHexStr(strPasswd) || 26 != strPasswd.length) {

+				strErrMsg = jQuery.i18n.prop('lt_wifiset_WepPasswd26HexError');

+				ret = false;

+			}

+			break;

+		}

+	} else if("WPA2-PSK" == authType || "Mixed" == authType || "WPA3-SAE" == authType || "WPA2-WPA3" == authType || "WPA-PSK" == authType) {

+		if(IsChineseChar(strPasswd) || strPasswd.length > 64 || strPasswd.length < 8) {

+			strErrMsg = jQuery.i18n.prop('lt_wifiset_WPA2PSKPasswdError');

+			ret = false;

+		}

+	}

+

+        if(!ret) {

+            $("#wifiSetErrorLogs").show().text(strErrMsg);

+            ret = false;

+        }

+        else

+        {

+        	$("#wifiSetErrorLogs").hide().text("");

+        	if ($("#selRfBand").val() == 1)

+		    	g24gPassword= strPasswd;

+        }

+        

+	return ret;

+}