include("core/System.js");
include("core/AjaxConnection.js");
include("core/Util.js");

var ConstruirMenus = function(){};

ConstruirMenus.Consultar = function()
{
    var objAjaxConection = new AjaxConnection();
    objAjaxConection.ResponseType = "json";
    objAjaxConection.OnSuccess = ConstruirMenus.ConsultarRetorno;
    objAjaxConection.ServerControl = "admin/menus/construirmenus.php";
    objAjaxConection.Connect();
}

ConstruirMenus.ConsultarRetorno = function(objRespuesta)
{
    switch(objRespuesta.Result)
    {
        case "success":
        {
			var bjMenu, objSubmenu, objEnlaceMenu, objEnlaceSubmenu, objSpan, arrMenus=[], arrSubmenus = [];
			var objMenus = document.getElementById("objMenus"), objSubmenus = document.getElementById("objSubmenus");

			for(var intSeccion=0; intSeccion<objRespuesta.Secciones.length; intSeccion++)
			{
				objMenu = document.createElement("div");
				objMenu.id = objRespuesta.Secciones[intSeccion].Nombre.toLowerCase().replace(" ", "");
				objMenu.className = "menu";
				objMenu.style.backgroundColor = objRespuesta.Secciones[intSeccion].Color;
				objMenu.onmouseover = function(event){ menuMouseover(event); };

				for(var intMenu=0; intMenu<objRespuesta.Secciones[intSeccion].Menus.length; intMenu++)
				{
					objEnlaceMenu = document.createElement("a");
					objEnlaceMenu.className = "menuItem";					

					// Si el menú tiene submenús
					if(objRespuesta.Secciones[intSeccion].Menus[intMenu].Submenus.length > 0)
					{
						//objMenu.onclick = function(){ return(false) };

						/**
						 * Esto hay que hacerlo porque dentro de la función anónima el objeto objRespuesta sale de ámbito
						 * y no se pueden leer sus valores
						 */
						var intCodigo = objRespuesta.Secciones[intSeccion].Menus[intMenu].Codigo;
						objEnlaceMenu.onmouseover = ConstruirMenus.menuItemMouseover('submenu' + intCodigo);

						objSpan = document.createElement("span");
						objSpan.className = "menuItemText";
						objSpan.appendChild(document.createTextNode(objRespuesta.Secciones[intSeccion].Menus[intMenu].Nombre));
						objEnlaceMenu.appendChild(objSpan);
						
						objSpan = document.createElement("span");
						objSpan.className = "menuItemArrow";
						objSpan.innerHTML = "&#9654;";
						objEnlaceMenu.appendChild(objSpan);						

						// Se genera el submenú y se le agregan los enlaces
						objSubmenu = document.createElement("div");
						objSubmenu.id = "submenu" + intCodigo;
						objSubmenu.className = "menu";
						objSubmenu.style.backgroundColor = objRespuesta.Secciones[intSeccion].Color;
						//objSubmenu.onmouseover = menuMouseover;
						for(var intSubmenu=0; intSubmenu<objRespuesta.Secciones[intSeccion].Menus[intMenu].Submenus.length; intSubmenu++)
						{
							objEnlaceSubmenu = document.createElement("a");
							objEnlaceSubmenu.className = "menuItem";
							objEnlaceSubmenu.appendChild(document.createTextNode(objRespuesta.Secciones[intSeccion].Menus[intMenu].Submenus[intSubmenu].Nombre));
							
							//Condición añadida para la sección Documentos
							if(objRespuesta.Secciones[intSeccion].Codigo == 4){
								objEnlaceSubmenu.href = objRespuesta.Secciones[intSeccion].Plantilla + "?codigoGrupo=" + objRespuesta.Secciones[intSeccion].Menus[intMenu].Submenus[intSubmenu].Codigo;
							}else{
								objEnlaceSubmenu.href = objRespuesta.Secciones[intSeccion].Plantilla + "?tipoactividad=" + objRespuesta.Secciones[intSeccion].Menus[intMenu].Submenus[intSubmenu].Codigo;
							}
							objSubmenu.appendChild(objEnlaceSubmenu);
	
							arrSubmenus.push(objSubmenu);
						}
					}
					else
					{
						objEnlaceMenu.appendChild(document.createTextNode(objRespuesta.Secciones[intSeccion].Menus[intMenu].Nombre));
						if(objRespuesta.Secciones[intSeccion].Menus[intMenu].PlantillaAlternativa != null)
						{
							objEnlaceMenu.href = objRespuesta.Secciones[intSeccion].Menus[intMenu].PlantillaAlternativa;
						}
						else
						{
							//Condición añadida para la sección Documentos
							if(objRespuesta.Secciones[intSeccion].Codigo == 4){
								objEnlaceMenu.href = objRespuesta.Secciones[intSeccion].Plantilla  + "?codigoGrupo=" + objRespuesta.Secciones[intSeccion].Menus[intMenu].Codigo;
							}else{
								objEnlaceMenu.href = objRespuesta.Secciones[intSeccion].Plantilla + "?tipoactividad=" + objRespuesta.Secciones[intSeccion].Menus[intMenu].Codigo;
							}
						}
					}

					objMenu.appendChild(objEnlaceMenu);
				}
				objMenus.appendChild(objMenu);
			}

			for(var intMenus=0; intMenus<arrSubmenus.length; intMenus++)
			{
				objSubmenus.appendChild(arrSubmenus[intMenus]);
			}

			break;
		}

        case "error":
        {
            alert(objRespuesta.Message);
			break;
        }
	}
}


ConstruirMenus.menuItemMouseover = function(strIdentificador)
{
	return(function(event){
		menuItemMouseover(event, strIdentificador);
	});	
}
