﻿
/* Funciones para controlar la cola de opciones pulsadas. Esta cola gestiona los estilos de los botones de menú al marcarlos o desmarcarlos */

/* Estructura de elemento de la cola de opciones:
0 --> Identificador de la opción de menú pulsada
1 --> Clase "en reposo" de la opción de menú pulsada
2 --> Clase "pulsado" de la opción de menú pulsada
3 --> Número Identificador de elemento padre
*/

/* Función llamada desde código HTML --> fn_WSSControlMenuCambiarClass(IdMenu, ClassReposo, ClassPulsada, IdPadre) */

//var WSSControlMenu_ColaOpcionesPulsadas = new Array();

//alert($.isArray(WSSControlMenu_ColaOpcionesPulsadas));

//function fn_WSSControlMenu_SetClassCorrecta(IdMenu, ClassPulsada, ClassReposo) {
//    if (IdMenu == null || ClassReposo == null || ClassPulsada == null) return;
//    if (document.getElementById(IdMenu).getAttribute("class") == ClassPulsada) { //Si la opción ya tiene aplicado el estilo pulsado, se restaura el "en reposo".
//                                                                               //La funcionalidad es necesaria para menús con más de un nivel.
//        document.getElementById(IdMenu).setAttribute("class", ClassReposo);
//    }
//    else {
//        document.getElementById(IdMenu).setAttribute("class", ClassPulsada); //Se establece el estilo "pulsado" de la nueva opción de menú pulsada.
//    }
//}

//function fn_WSSControlMenu_BorrarItemsConIdPadreSuperior(IdPadre) {
//    if (IdPadre == null) return;
//    var ItemWSSControlMenu_ColaOpcionesPulsadas = new Array();
//    for (i = WSSControlMenu_ColaOpcionesPulsadas.length - 1; i > -1; i--) {
//        ItemWSSControlMenu_ColaOpcionesPulsadas = WSSControlMenu_ColaOpcionesPulsadas[i].split("=");
//        if (ItemWSSControlMenu_ColaOpcionesPulsadas[3] > IdPadre) {
//            //document.getElementById(ItemWSSControlMenu_ColaOpcionesPulsadas[0]).setAttribute("class", ItemWSSControlMenu_ColaOpcionesPulsadas[1]);
//            WSSControlMenu_ColaOpcionesPulsadas.splice(i, 1);
//        }
//    }
//}

//function fn_WSSControlMenu_BorrarItemConIdPadreIgual(IdPadre) {
//    if (IdPadre == null) return;
////    var ItemWSSControlMenu_ColaOpcionesPulsadas = new Array();
//    for (i = WSSControlMenu_ColaOpcionesPulsadas.length-1; i>-1; i--) {
//        Item = WSSControlMenu_ColaOpcionesPulsadas[i].split("=");
//        if (Item[3] == IdPadre) {
//            $('#' + Item[0]).removeClass(Item[2]);
//            $('#' + Item[0]).addClass(Item[1]);
//            WSSControlMenu_ColaOpcionesPulsadas.splice(i,1);
//        }
//    }
//}

//function fn_WSSControlMenu_AllResetClassYBorrarItemsDeCola() {
//    //alert("Entrado en AllResetClassYBorrar");
////    for (opcion in WSSControlMenu_COPulsadas) {
////        if (opcion[3] == 'true') {
////            alert("AllResetClassYBorrar: " + opcion[0] + "," + opcion[1] + "," + opcion[2]);
////            $('#' + opcion).toggleClass(opcion[0]);
////            opcion[3] = 'false';
////        }
////    }

//     for (i = 0; i < WSSControlMenu_ColaOpcionesPulsadas.length; i++) {
//        Item = WSSControlMenu_ColaOpcionesPulsadas.pop().split("=");  //WSSControlMenu_ColaOpcionesPulsadas[i].split("=");
//        $('#' + Item[0]).removeClass(Item[2]);
//        $('#' + Item[0]).addClass(Item[1]);
////        if (document.getElementById(ItemWSSControlMenu_ColaOpcionesPulsadas[0]) != null) {
////            document.getElementById(ItemWSSControlMenu_ColaOpcionesPulsadas[0]).setAttribute("class", ItemWSSControlMenu_ColaOpcionesPulsadas[1]);      
////        }        
//    }
////    WSSControlMenu_ColaOpcionesPulsadas.splice(0, WSSControlMenu_ColaOpcionesPulsadas.length);
//}

//function fn_WSSControlMenu_ExisteIdMenuEnCola(IdMenu) {
//    //if (IdMenu == null) return; //Ya tiene que venir filtrado de la llamada anterior
//    if (WSSControlMenu_ColaOpcionesPulsadas.length == 0) { return false; }
//    if (IdMenu.length > 0) {
//        for (i = 0; i < WSSControlMenu_ColaOpcionesPulsadas.length; i++) {
//            if (WSSControlMenu_ColaOpcionesPulsadas[i].split("=")[0] == IdMenu) { return true; }
//        }
//    }
//    return false;
//}

//function fn_WSSControlMenuCambiarClass(IdMenu, ClassReposo, ClassPulsada, IdPadre) {
//    //if (IdMenu == null || ClassReposo == null || ClassPulsada == null || IdPadre == null) return;
//    //if (document.getElementById(IdMenu)) {
//    if (IdMenu == null) return;

//    if (!fn_WSSControlMenu_ExisteIdMenuEnCola(IdMenu)) { //Si no existe ya el elemento menú en la cola
//        if (IdPadre == 0) { //Si el IdPadre es cero, es que se ha pulsado una de las tres opciones del Menú de Perfiles, el menú de nivel más alto.
//            fn_WSSControlMenu_AllResetClassYBorrarItemsDeCola(); //Se restaura el estilo de todos los botones pulsados a su clase "en reposo" y se borran de la cola.
//            //se añade al principio de la cola.
//            WSSControlMenu_ColaOpcionesPulsadas.unshift(IdMenu + "=" + ClassReposo + "=" + ClassPulsada + "=" + IdPadre); //Si el IdPadre corresponde a una opción de menú del nivel más superior (Perfiles)
//        }
//        else {
//            //Sirve para borrar la jerarquia de elementos pulsados cuando se retrocede a una opción de menú de nivel más alto.
//            fn_WSSControlMenu_BorrarItemConIdPadreIgual(IdPadre); //Se restaura el estilo de los elementos con el mismo IdPadre que la nueva opción pulsada y se borran de la cola.
////                fn_WSSControlMenu_BorrarItemsConIdPadreSuperior(IdPadre); //Se restaura el estilo de los elementos con el IdPadre superior al de la nueva opción pulsada y se borran de la cola.
//            WSSControlMenu_ColaOpcionesPulsadas.push(IdMenu + "=" + ClassReposo + "=" + ClassPulsada + "=" + IdPadre); //Si no, se añade al final de la cola.
//        }

//        $('#' + IdMenu).removeClass(ClassReposo);
//        $('#' + IdMenu).addClass(ClassPulsada)
//     }
//     else {
//         if (IdPadre == 0) { //Si el IdPadre es cero, es que se ha pulsado una de las tres opciones del Menú de Perfiles, el menú de nivel más alto.
//             fn_WSSControlMenu_AllResetClassYBorrarItemsDeCola(); //Se restaura el estilo de todos los botones pulsados a su clase "en reposo" y se borran de la cola.
//         }
//        //Si el IdMenu ya existe en la cola, solo cambiar la clase
//        $('#' + IdMenu).removeClass(ClassReposo);
//        $('#' + IdMenu).addClass(ClassPulsada);
//     }
//    //}
// }

function fn_WSSControlMenuCambiarClass(IdMenu, ClassReposo, ClassPulsada, IdPadre) {
    //alert(IdMenu + "-" + ClassReposo + "-" + ClassPulsada + "-" + IdPadre);
    return;
}
/************************************************************************************************************************/

function fn_WSSControlMenu_Seleccion($IdMenu, $IdOpcion, $IdentMenu, $IdPadre, $ClassReposo, $ClassClick, $ClassSubMenuReposo, $ClassSubMenuClick, $ParametrosAuxMenu) {
    if ($ClassReposo == null) {
        alert("ERROR: Funcion fn_WSSControlMenu_Seleccion("+$IdMenu+","+$IdOpcion+") le falta la $ClassReposo");
        return;
    }
    //TituloMenu: $("#" + $IdentMenu).attr("title"),
            
    $.ajax({
        type: "POST",
        url: "WSSByPass.aspx",
        cache: false,
        data: { Ope: "MenuClick",
            IdMenu: $IdMenu,
            IdOpcion: $IdOpcion,
            IdentMenu: $IdentMenu,
            IdPadre: $IdPadre,
            ClassReposo : $ClassReposo,
            ClassClick: $ClassClick,
            ClassSubMenu: $ClassSubMenuReposo,
            ClassSubMenuClick: $ClassSubMenuClick,
            ParametrosAuxMenu: $ParametrosAuxMenu
            
        },
        success: function (msg) {
            eval(msg);
        }
    });
}

//function fn_WSSControlMenu_GetRastro(ParametrosAuxMenu) {    
//    var Titulo = "";
//    var MenuOptionsClicked = ParametrosAuxMenu.split("|");
//    var Carpeta = MenuOptionsClicked[0];
//    var Categoria = "";
//    var SubCategoria = "";
//    var SubSubCategoria = "";     
//    switch (MenuOptionsClicked.length) {
//        case 1:
//            Titulo = Carpeta + " - Última hora";
//            break;
//        case 2:
//            Categoria = $("#" + MenuOptionsClicked[1]).attr("title");
//            Titulo = Carpeta + " - " + Categoria;
//            break;
//        case 3:
//            Categoria = $("#" + MenuOptionsClicked[1]).attr("title");
//            SubCategoria = $("#" + MenuOptionsClicked[2]).attr("title");
//            Titulo = Carpeta + " - " + Categoria + " - " + SubCategoria;            
//            break;
//        case 4:
//            Categoria = $("#" + MenuOptionsClicked[1]).attr("title");
//            SubCategoria = $("#" + MenuOptionsClicked[2]).attr("title");
//            SubSubCategoria = $("#" + MenuOptionsClicked[3]).attr("title");
//            Titulo = Carpeta + " - " + Categoria + " - " + SubCategoria + " - " + SubSubCategoria;  
//            break;
//    }
//    return Titulo
//}

function fn_WSSControlMenu_ClickMenuAuto($IdOpcion) {
    $.ajax({
        type: "POST",
        url: "WSSByPass.aspx",
        cache: false,
        data: { Ope: "MenuClickAuto",
            IdOpcion: $IdOpcion
        },
        success: function (msg) {
            eval(msg);
        }
    });
}

