ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/webui/wwwLegacy/js/base/layout_manager.js b/marvell/webui/wwwLegacy/js/base/layout_manager.js
new file mode 100644
index 0000000..933f171
--- /dev/null
+++ b/marvell/webui/wwwLegacy/js/base/layout_manager.js
@@ -0,0 +1,233 @@
+

+var g_menues = new Object();

+var g_objContent = null;

+var g_navtabNum =0;

+var g_objXML =  $().XML_Operations();

+var  _dashboardInterval        = 30000;

+var  _connectedDeviceInterval  = 60000;

+var _trafficstatisticsInterval = 60000;

+var _networkActivityInterval   = 60000;

+var _storageSettingsInterval = 30000;

+var  _WiFiInterval  = 25000;

+

+var  _dashboardIntervalID;

+var  _connectedDeviceIntervalID;

+var _trafficstatisticsIntervalID;

+var _networkActivityIntervalID;

+var _storageSettingsIntervalID;

+var _WiFiIntervalID;

+/* This function get the XML from the server via ajax.

+ *  Get is Method and success fucntion is callback funciton when the request success

+ */

+document.onkeydown = function (e) {

+    if(null == g_objContent)

+        return true;

+    var ev = window.event || e;

+    var code = ev.keyCode || ev.which;

+    if (code == 116) {

+        ev.keyCode ? ev.keyCode = 0 : ev.which = 0;

+        cancelBubble = true;

+        g_objContent.onLoad(true);

+        return false;

+    }

+}

+

+

+

+function callXML(xml,sFucntion) {

+

+    $.ajax({

+    type: "GET",

+    url: xml,

+    dataType: "xml",

+    async: false,

+    success: sFucntion

+

+    });

+}

+

+/* This is important function which parses the UIxml file

+ * Creates the Menu and submenu depending upon XML items

+ *

+ */

+function parseXml(xml) {

+    var menuIndex = 0;

+    g_menues = xml;

+    var thirdlevelmeunstr ;

+    var tabName;

+    var meun;

+    $(xml).find("Tab").each(function() {

+

+        tabName=jQuery.i18n.prop($(this).attr("Name").toString());

+        menuIndex++;

+        document.getElementById('menu').innerHTML +="<li><a href='#' id="+menuIndex+" onClick='createMenu("+menuIndex+")'>"+tabName+"</a></li>";

+    });

+    g_navtabNum =  menuIndex;

+}

+/*

+ * Create the submeny from XML items

+ */

+function createMenu(index,bDisplayForm) {

+    removeMenuClass();

+    document.getElementById(index.toString()).className = "on";

+    var idx = 0;

+

+    $(g_menues).find("Tab").each(function() {

+

+        if(idx==index-1) {

+

+            var tabName=jQuery.i18n.prop($(this).attr("Name").toString());

+

+            if($(this).attr("type").toString()=='submenuabsent') {

+

+                clearRefreshTimers();

+                g_objContent = eval('$("#mainColumn").'+ $(this).attr("implFunction").toString() + '({})');

+                g_objContent.onLoad(true);

+

+            } else {

+                document.getElementById('mainColumn').innerHTML ="<div class='leftBar'><ul class='leftMenu' id='submenu'></ul></div><div id='Content' class='content'></div><br class='clear /><br class='clear />";

+                var firstmenu;

+                var firstmenuisSubMenu = false;

+                var i=0;

+                $(this).find("Menu").each(function() {

+                    var menustr = "\"" + $(this).attr("id").toString() + "\"" ;

+                    if(i==0) {

+                        firstmenu = $(this).attr("id").toString();

+                        if($(this).attr("type").toString()=='submenupresent')

+                            firstmenuisSubMenu = true;

+                    }

+                    if($(this).attr("type").toString()=='submenupresent') {

+                        document.getElementById('submenu').innerHTML += "<li id="+menustr+"><a href=\"#\" onClick='displaySubForm("+menustr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";

+	   

+                        var html = "<li class='hide'><ul class='thirdmenu'>";

+                        $(this).find("ThirdlevelMenu").each(function() {

+                            var thirdlevelmeunstr = "\"" + $(this).attr("id").toString() + "\"" ;

+							var strImplFunction = " name=\"" + $(this).attr("implFunction").toString() + "\"" ;

+                            html+= "<li style ='list-style:none' class='menu-three-level' id="+thirdlevelmeunstr+ strImplFunction +"><a href=\"#\" onClick='displayForm("+thirdlevelmeunstr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";

+                        });

+                        html+="</ul></li>";

+                        document.getElementById('submenu').innerHTML +=html;

+               

+                    } else {

+						var strImplFunction = " name=\"" + $(this).attr("implFunction").toString() + "\"" ;

+                        document.getElementById('submenu').innerHTML += "<li id=" + menustr+ strImplFunction + "><a href=\"#\" onClick='displayForm("+menustr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";

+                    }

+                    

+

+                    i++;

+

+                });

+				if(undefined == bDisplayForm){

+					if(!firstmenuisSubMenu)

+                    	displayForm(firstmenu);

+                	else

+                    	displaySubForm(firstmenu);	

+

+				}				

+                

+            }

+        }

+        idx++;

+    });

+}

+//var helpPage = "help_en.html";

+function removeMenuClass() {

+    if(g_navtabNum>0)

+        for(var j=1; j<=g_navtabNum; j++)

+            document.getElementById(j.toString()).className = "";

+}

+/*

+* Function for passing the JavaScript

+*/

+function createMenuFromXML() {

+    callXML("xml/ui_" + g_platformName + ".xml",parseXml);

+    /*adjust main menu layout according the menu number

+    add by llzhou 9/1/2013*/

+

+    $(".navigation ul li").width(($(".header").width()-8*2)/g_navtabNum-1);

+

+}

+/*

+ * Check which item is selected and take appropriate action to execute the

+ * panel class, and call his onLoad function as well as set the XML Name

+ */

+

+function displaySubForm(clickedItem) {

+

+

+    clearRefreshTimers();

+

+   $(".leftMenu .on").removeClass("on");

+	

+    var menuSelector = "#" + clickedItem;

+

+    $(menuSelector).siblings(".hide").css("display", "none").end()	

+    .next(".hide").css("display", "list-item");

+	

+	$(menuSelector).addClass("on");

+	var threeMenuObj = $(menuSelector).next(".hide:first").children(".thirdmenu:first").children(".menu-three-level:first");

+	threeMenuObj.addClass("on");

+	g_objContent = eval('$("#Content").'+ threeMenuObj.attr("name") + '("'+ threeMenuObj.attr("id")+'")');	

+    g_objContent.onLoad(true);   

+}

+

+function displayForm(clickedItem) {

+    clearRefreshTimers();

+

+	var menuSelector = "#" + clickedItem;

+	if(!$(menuSelector).parents("ul").hasClass("thirdmenu")){

+		$(".leftMenu .hide").css("display", "none");		

+	}

+	$(menuSelector).siblings().removeClass("on").end()

+	.addClass("on");

+	

+    g_objContent = eval('$("#Content").'+ $(menuSelector).attr("name") + '("'+ $(menuSelector).attr("id")+'")');

+    g_objContent.onLoad(true);

+

+    if(g_objContent == null)

+        document.getElementById("Content").innerHTML = "";  

+}

+

+

+

+function clearRefreshTimers() {

+    clearInterval(_dashboardIntervalID);

+    clearInterval(_connectedDeviceIntervalID);

+    clearInterval(_trafficstatisticsIntervalID);

+    clearInterval(_networkActivityIntervalID);

+    clearInterval(_storageSettingsIntervalID);

+    clearInterval(_WiFiIntervalID);

+}

+function dashboardOnClick(subMenuID) {

+    var selMenuIdx = 1;

+    $(g_menues).find("Tab").each(function() {

+        $(this).find("Menu").each(function() {

+			var menuId = $(this).attr("id").toString();

+			if("submenupresent" == $(this).attr("type")){

+				$(this).find("ThirdlevelMenu").each(function(){

+					if(subMenuID == $(this).attr("id").toString()){

+						createMenu(selMenuIdx,false);

+						var menuSelector = "#" + menuId;

+						var submenuSelector = "#" + subMenuID;

+						$(menuSelector).siblings().removeClass("on").end().addClass("on").next(".hide").css("display", "list-item");

+						$(submenuSelector).addClass("on");

+                		displayForm(subMenuID);

+                		return;

+					}

+				});

+			}

+            else if (subMenuID == menuId) {                

+                createMenu(selMenuIdx,false);

+                displayForm(subMenuID);

+                return;

+            }

+        });

+		++selMenuIdx;

+    });

+

+}

+

+function setData() {

+    if(g_objContent!=null)

+        g_objContent.SaveData();

+}