﻿var app = app || {};
app.busqueda_avanzada = app.busqueda_avanzada || {};
var arreglo_de_operadores = [
    [0, '='],
    [1, '!='],
    [2, '>'],
    [3, '<'],
    [4, '>='],
    [5, '<='],
    [6, 'contiene']
];
var store_operadores = new Ext.data.ArrayStore({
    id: 0,
    fields: ['id', 'descripcion'],
    data: arreglo_de_operadores
});
app.busqueda_avanzada.crear_panel = function crear_panel(Panel_id) {
    var Panel = new Ext.Panel({
        id: Panel_id,
        layout: 'absolute',
        xtype: 'panel',
        height: 35,
        width: 700,
        items: [{}]
    });
    return Panel;
}
app.busqueda_avanzada.crear_ventana = function crear_ventana(variables_locales, componentes_locales) {
    var ventana = new Ext.Window({
        title: variables_locales.titulo_busqueda,
        resizable: false,
        modal: true,
        width: 700,
        height: 120,
        layout: 'fit',
        plain: true,
        bodyStyle: 'padding:5px;',
        buttonAlign: 'right',
        buttons: [{
            text: 'Buscar',
            handler: function busqueda() {
                app.busqueda_avanzada.estructurar_condiciones(variables_locales);
                app.busqueda_avanzada.generar_consulta(variables_locales, componentes_locales);
            }
        },
        {
            text: 'Limpiar',
            handler: function () {
                EliminarTodosLosCamposDeLaConsulta(variables_locales, componentes_locales);
            }
        },
        {
            text: 'Cerrar',
            handler: function () {
                componentes_locales.window.close();
            }
        }]
    });
    return ventana;
}
app.busqueda_avanzada.estructurar_condiciones = function estructurar_condiciones(variables_locales) {
    query = '';
    var j = 0;
    var ultima_fila = false;
    variables_locales.consulta_bien_formada = true;
    var maximo = 0;
    while (j < variables_locales.arreglo_item_agregados.length) {
        if (maximo < variables_locales.arreglo_item_agregados[j]) {
            maximo = variables_locales.arreglo_item_agregados[j]
        };
        j++;
    }
    j = 0;
    while (j < variables_locales.arreglo_item_agregados.length) {
        var indice = variables_locales.arreglo_item_agregados[j];
        if (indice == maximo) {
            ultima_fila = true;
        }
        else {
            ultima_fila = false;
        }
        ObtenerValoresFila(indice, variables_locales, ultima_fila);
        j++;
    }
    variables_locales.query = query;
}
function ObtenerValoresFila(indice, variables_locales, ultima_fila) {
    var campo = Ext.getCmp("combo" + indice).getValue();
    var operando = Ext.getCmp("Operandos" + indice).getValue();
    var valor = Ext.getCmp("Field" + indice).getValue();
    var AndOr = Ext.getCmp("AndOr" + indice).getValue();
    var tipo = Ext.getCmp("Field" + indice).getXType();
    if (variables_locales[campo]) {
        if (!valor)
        // if (valor == " ")
        {
            valor = 0;
        }
    }
    switch (tipo) {
    case 'numberfield':
        if (valor == '') {
            variables_locales.consulta_bien_formada = false;
        }
        break;
    case 'checkbox':
    case 'textfield':
        if (operando != 'contiene') {
            valor = "'" + valor + "'";
        }
        break;
    case 'datefield':
        var dt = new Date(valor);
        valor = "'" + dt.format('Y-m-d') + "'";
        break;
    }
    var cadena = "";
    if (operando == 'contiene') {
        operando = 'like';
        valor = "'" + '%' + valor + '%' + "'";
    }
    if (ultima_fila) {
        cadena = " " + variables_locales.nombre_de_la_tabla + "." + campo + " " + operando + " " + valor + " ";
    }
    else {
        cadena = " " + variables_locales.nombre_de_la_tabla + "." + campo + " " + operando + " " + valor + " " + AndOr;
    }
    query = ' ' + query + ' ' + cadena;
}
app.busqueda_avanzada.AumentarDisminuirTamanoContenedores = function AumentarDisminuirTamanoContenedores(componentes_locales, idcremento) {
    componentes_locales.window.setHeight(componentes_locales.window.getHeight() + idcremento);
    componentes_locales.form.setHeight(componentes_locales.form.getHeight() + idcremento);
    componentes_locales.Panel.setHeight(componentes_locales.Panel.getHeight() + idcremento);
    componentes_locales.Panel.doLayout();
}
app.busqueda_avanzada.borrarItem = function borrarItem(arreglo_original, item_a_remover) {
    var j = 0;
    while (j < arreglo_original.length) {
        if (arreglo_original[j] == item_a_remover) {
            arreglo_original.splice(j, 1);
        }
        else {
            j++;
        }
    }
    return arreglo_original;
}
app.busqueda_avanzada.verificarExistenciaElemento = function verificarExistenciaElemento(arreglo_original, item_a_comprobar) {
    var j = 0;
    while (j < arreglo_original.length) {
        if (arreglo_original[j] == item_a_comprobar) {
            return false;
        }
        j++;
    }
    return true;
}
app.busqueda_avanzada.CreateButon = function CreateButon(y, identificador, variables_locales, componentes_locales) {
    var button = new Ext.Button({
        id: 'button' + identificador,
        x: 610 + 5,
        y: y,
        icon: 'images/cancel.png',
        width: 40,
        listeners: {
            'click': function (btn, evt) {
                app.busqueda_avanzada.eliminarFilasdelPanel(identificador, variables_locales, componentes_locales);
                if (variables_locales.arreglo_item_agregados.length == 0) {
                    app.busqueda_avanzada.Agregar_Quitar(variables_locales, componentes_locales, variables_locales.ciclo);
                }
                else {}
            }
        }
    });
    return button;
}
app.busqueda_avanzada.CreateOperadorLogico = function CreateOperadorLogico(y, identificador, variables_locales, componentes_locales) {
    var combo = new Ext.form.ComboBox({
        id: 'AndOr' + identificador,
        x: 570 + 5,
        y: y,
        mode: 'local',
        focusClass: 'cgs_focus_class',
        triggerAction: 'all',
        forceSelection: true,
        editable: false,
        store: new Ext.data.ArrayStore({
            id: 0,
            fields: ['id', 'descripcion'],
            data: [
                ['and', 'Y'],
                ['or', 'O']
            ]
        }),
        valueField: 'id',
        displayField: 'descripcion',
        width: 40,
        allowBlank: false,
        listeners: {
            'select': function (cmb, record, index) {
                var maximo = 0;
                var j = 0;
                while (j < variables_locales.arreglo_item_agregados.length) {
                    if (maximo < variables_locales.arreglo_item_agregados[j]) {
                        maximo = variables_locales.arreglo_item_agregados[j]
                    };
                    j++;
                }
                if (maximo == identificador) {
                    app.busqueda_avanzada.Agregar_Quitar(variables_locales, componentes_locales, identificador);
                }
            }
        }
    });
    return combo;
}
app.busqueda_avanzada.Agregar_Quitar = function Agregar_Quitar(variables_locales, componentes_locales, identificador) {
    if (!document.getElementById('Operandos' + variables_locales.ciclo)) {
        if (document.getElementById('combo' + variables_locales.ciclo)) {
            variables_locales.agregar = false;
        }
    }
    else {} if (variables_locales.agregar) {
        variables_locales.ciclo++;
        variables_locales.ciclo_posicion++;
        app.busqueda_avanzada.AumentarDisminuirTamanoContenedores(componentes_locales, variables_locales.alto_de_fila);
        componentes_locales.Panel.add(app.busqueda_avanzada.CreateFieldsCombo(variables_locales.ciclo_posicion * variables_locales.alto_de_fila, variables_locales, componentes_locales, variables_locales.ciclo));
        componentes_locales.Panel.doLayout();
    }
    variables_locales.agregar = false;
}
app.busqueda_avanzada.CreateComboBox = function CreateComboBox(y, identificador) {
    var combo = new Ext.form.ComboBox({
        id: 'Operandos' + identificador,
        x: 280 + 5,
        y: y,
        triggerAction: 'all',
        mode: 'local',
        store: store_operadores,
        focusClass: 'cgs_focus_class',
        valueField: 'descripcion',
        displayField: 'descripcion',
        width: 80,
        allowBlank: false,
        editable: false,
        forceSelection: true,
        autoSelect: true
    });
    combo.setValue('=');
    return combo;
}
app.busqueda_avanzada.ModificarFilaPanel = function ModificarFilaPanel(identificador, operacion, j, Panel, alto_de_fila, variables_locales, componentes_locales) {
    if (operacion == "eliminar") {
        Panel.remove(Ext.getCmp("combo" + identificador));
        Panel.remove(Ext.getCmp("Operandos" + identificador));
        Panel.remove(Ext.getCmp("Field" + identificador));
        Panel.remove(Ext.getCmp("button" + identificador));
        Panel.remove(Ext.getCmp("AndOr" + identificador));
        Panel.doLayout();
    }
    if (operacion == "reposicionar") {
        Ext.getCmp("combo" + variables_locales.arreglo_item_agregados[j]).setPosition(Ext.getCmp("combo" + variables_locales.arreglo_item_agregados[j]).x, Ext.getCmp("combo" + variables_locales.arreglo_item_agregados[j]).y - alto_de_fila);
        Ext.getCmp("Operandos" + variables_locales.arreglo_item_agregados[j]).setPosition(Ext.getCmp("Operandos" + variables_locales.arreglo_item_agregados[j]).x, Ext.getCmp("Operandos" + variables_locales.arreglo_item_agregados[j]).y - alto_de_fila);
        Ext.getCmp("Field" + variables_locales.arreglo_item_agregados[j]).setPosition(Ext.getCmp("Field" + variables_locales.arreglo_item_agregados[j]).x, Ext.getCmp("Field" + variables_locales.arreglo_item_agregados[j]).y - alto_de_fila);
        Ext.getCmp("button" + variables_locales.arreglo_item_agregados[j]).setPosition(Ext.getCmp("button" + variables_locales.arreglo_item_agregados[j]).x, Ext.getCmp("button" + variables_locales.arreglo_item_agregados[j]).y - alto_de_fila);
        Ext.getCmp("AndOr" + variables_locales.arreglo_item_agregados[j]).setPosition(Ext.getCmp("AndOr" + variables_locales.arreglo_item_agregados[j]).x, Ext.getCmp("AndOr" + variables_locales.arreglo_item_agregados[j]).y - alto_de_fila);
    }
    if (operacion == "nueva") {
        var p = Ext.getCmp("combo" + identificador);
        Panel.remove(Ext.getCmp("Operandos" + identificador));
        Panel.remove(Ext.getCmp("Field" + identificador));
        Panel.remove(Ext.getCmp("button" + identificador));
        Panel.remove(Ext.getCmp("AndOr" + identificador));
        Panel.add(app.busqueda_avanzada.CreateComboBox(p.y, identificador));
        Panel.add(app.busqueda_avanzada.CreateButon(p.y, identificador, variables_locales, componentes_locales));
        Panel.add(app.busqueda_avanzada.CreateOperadorLogico(p.y, identificador, variables_locales, componentes_locales));
        Panel.doLayout();
    }
}
app.busqueda_avanzada.AgregarFila_Panel = function AgregarFila_Panel(variables_locales, componentes_locales, record, identificador) {
    app.busqueda_avanzada.ModificarFilaPanel(identificador, "nueva", 0, componentes_locales.Panel, variables_locales.alto_de_fila, variables_locales, componentes_locales);
    var p = Ext.getCmp("combo" + identificador);
    var py = p.y;
    if (variables_locales[record.data.descripcion]) {
        var valor_del_campo = variables_locales[variables_locales[record.data.descripcion]][0].name;
        var campo_descriptor = variables_locales[variables_locales[record.data.descripcion]][1].name;
		
		// **** Explicacion -  13/12/2011. Att : Mauricio Stand *****//
		/*
		 * Esto se Hizo, debido a que se queria, que el descritor de balance en la
		 * pantalla de la ejecucion del mismo, al inicializar la busquedaba avanzada
		 * aun el descritor de "Balance/Descriptor", estaba apuntando a siogas.SVC y 
		 * arrojaba un error de NOT FOUND
		 * lugar del cual ya fue mudado a Siogas_Balance y como muchos otros descriptores
		 * que se mudaron a Siogas_Aux para mejorar el tiempo de respuesta.
		 * 
		 * Se deberia enviar como parametro la url completa del servicio, para correjir este
		 * problema, con los servicios de los descriptores que se han mudado.
		 * por lo pronto se hizo este condicional para el descritor de balance, que
		 * es prioritario al momento de querer consultar algo de la cuenta de balance.
		*/
		var Cadena = "";
		var TagName = variables_locales[record.data.descripcion];
		
		if ( TagName == 'balance')
		{
			Cadena = 'siogas_balance.svc/' + variables_locales[record.data.descripcion] + '/descriptor';			
		}
		else
		{
			Cadena = 'siogas.svc/' + variables_locales[record.data.descripcion] + '/descriptor';		
		}
		
		//************************************************************************************//
		
		
		
		
		var store = new Ext.data.JsonStore({
            url: Cadena ,//'siogas.svc/' + variables_locales[record.data.descripcion] + '/descriptor',
            root: 'data',
            fields: variables_locales[variables_locales[record.data.descripcion]]
        });
        componentes_locales.Panel.add(new Ext.form.ComboBox({
            id: 'Field' + identificador,
            x: 360 + 5,
            y: py,
            width: 210,
            focusClass: 'cgs_focus_class',
            typeAhead: true,
            mode: 'local',
            triggerAction: 'all',
            store: store,
            valueField: valor_del_campo,
            displayField: campo_descriptor,
            emptyText: 'Seleccione un item',
            //allowBlank: false,
            //editable: false,
            forceSelection: true
        }));
        store.load();
    }
    else {
        switch (record.data.tipo) {
        case "Guid":
            componentes_locales.Panel.add(new Ext.form.TextField({
                id: 'Field' + identificador,
                x: 360 + 5,
                y: py,
                width: 210,
                focusClass: 'cgs_focus_class',
                emptyText: 'Por favor digite el texto',
                allowBlank: false
            }));
            break;
        case "DateTime":
            componentes_locales.Panel.add(new Ext.form.DateField({
                id: 'Field' + identificador,
                x: 360 + 5,
                y: py,
                width: 210,
                focusClass: 'cgs_focus_class',
                emptyText: 'mm/dd/yyyy',
                format: 'd-m-Y',
                allowBlank: false
            }));
            break;
        case "bool":
            componentes_locales.Panel.add(new Ext.form.Checkbox({
                id: 'Field' + identificador,
                x: 360 + 5,
                y: py,
                width: 210,
                focusClass: 'cgs_focus_class',
                text: 'nombre_del_campo',
                anchor: '83%',
                boxLabel: 'true',
                allowBlank: false
            }));
            break;
        case "double":
        case "decimal":
        case "long":
        case "short":
        case "int":
            componentes_locales.Panel.add(new Ext.form.NumberField({
                id: 'Field' + identificador,
                x: 360 + 5,
                y: py,
                width: 210,
                focusClass: 'cgs_focus_class',
                anchor: '83%',
                allowBlank: false,
                emptyText: 'Por favor digite el Id'
            }));
            break;
        default:
            componentes_locales.Panel.add(new Ext.form.TextField({
                id: 'Field' + identificador,
                x: 360 + 5,
                y: py,
                width: 210,
                allowBlank: false,
                focusClass: 'cgs_focus_class',
                emptyText: 'Por favor digite el texto'
            }));
        }
    }
    if (app.busqueda_avanzada.verificarExistenciaElemento(variables_locales.arreglo_item_agregados, identificador)) {
        variables_locales.arreglo_item_agregados.push(identificador);
    }
    componentes_locales.Panel.doLayout();
    variables_locales.agregar = true;
}
app.busqueda_avanzada.CreateFieldsCombo = function CreateFieldsCombo(y, variables_locales, componentes_locales, identificador) {
    var combo = new Ext.form.ComboBox({
        id: 'combo' + identificador,
        x: 0 + 5,
        y: y + 5,
        width: 280,
        typeAhead: true,
        mode: 'local',
        triggerAction: 'all',
        store: variables_locales.store_campos_tipos,
        valueField: 'descripcion',
        focusClass: 'cgs_focus_class',
        displayField: 'id',
        emptyText: 'Seleccione un item',
        allowBlank: false,
        editable: false,
        forceSelection: true,
        listeners: {
            'select': function (cmb, record, index) {
                /////  var tipo_de_dato_elegido = record.data.tipo;
                app.busqueda_avanzada.AgregarFila_Panel(variables_locales, componentes_locales, record, identificador);
            }
        }
    });
    return combo;
}
app.busqueda_avanzada.generar_consulta = function generar_consulta(variables_locales, componentes_locales) {
    app.mensaje_de_espera = new Ext.LoadMask(Ext.getBody(), {
        msg: "Cargando la información de la consulta"
    });
    if (variables_locales.consulta_bien_formada) {
        app.mensaje_de_espera.show();
        try {
            // variables_locales.tbar.options = { 'query': variables_locales.query };
            variables_locales.tbar.options['query'] = variables_locales.query;
            if (variables_locales.query == '') {
                variables_locales.tbar.url = app[variables_locales.nombre_de_la_tabla].url.consultar_fk_paged;
                variables_locales.tbar.method = 'GET';
                variables_locales.tbar.inicializar();
                componentes_locales.window.close();
            }
            else {
                variables_locales.tbar.url = app[variables_locales.nombre_de_la_tabla].url.consulta_query_get_paged;
                variables_locales.tbar.method = 'POST';
                variables_locales.tbar.inicializar();
                componentes_locales.window.close();
            }
        }
        catch (e) {
            alert(e + 'error');
        }
    }
    else {
        Ext.MessageBox.alert('Consulta mal formada', 'Existe un error en la consulta');
    }
}
app.busqueda_avanzada.eliminarFilasdelPanel = function eliminarFilasdelPanel(identificador, variables_locales, componentes_locales) {
    app.busqueda_avanzada.AumentarDisminuirTamanoContenedores(componentes_locales, -variables_locales.alto_de_fila);
    if (variables_locales.agregar == false) {
        app.busqueda_avanzada.AumentarDisminuirTamanoContenedores(componentes_locales, -variables_locales.alto_de_fila);
        componentes_locales.Panel.remove(Ext.getCmp("combo" + variables_locales.ciclo));
        variables_locales.ciclo--;
        variables_locales.ciclo_posicion--;
        variables_locales.agregar = true;
    }
    app.busqueda_avanzada.ModificarFilaPanel(identificador, "eliminar", 0, componentes_locales.Panel, variables_locales.alto_de_fila, variables_locales, componentes_locales);
    variables_locales.arreglo_item_agregados = app.busqueda_avanzada.borrarItem(variables_locales.arreglo_item_agregados, identificador);
    variables_locales.ciclo_posicion--;
    ReposicionarFilasDespuesDeLaEliminacion(identificador, variables_locales, componentes_locales);
    componentes_locales.Panel.doLayout();
}
function ReposicionarFilasDespuesDeLaEliminacion(identificador, variables_locales, componentes_locales) {
    var j = 0;
    while (j < variables_locales.arreglo_item_agregados.length) {
        if (variables_locales.arreglo_item_agregados[j] > identificador) {
            app.busqueda_avanzada.ModificarFilaPanel(identificador, "reposicionar", j, componentes_locales.Panel, variables_locales.alto_de_fila, variables_locales, componentes_locales);
        }
        j++;
    }
}
function EliminarTodosLosCamposDeLaConsulta(variables_locales, componentes_locales) {
    var contador_eliminacion_total = 0;
    var arreglo = [];
    var tamaño = arreglo.length;
    var j = 0;
    while (j < variables_locales.arreglo_item_agregados.length) {
        arreglo.push(variables_locales.arreglo_item_agregados[j]);
        j++;
    }
    j = 0;
    while (j < arreglo.length) {
        app.busqueda_avanzada.eliminarFilasdelPanel(arreglo[j], variables_locales, componentes_locales);
        j++;
    }
    app.busqueda_avanzada.Agregar_Quitar(variables_locales, componentes_locales, variables_locales.ciclo);
}
cargar_funcionalidades_ = function (el) {
    if (cgss.UI.isNull(app.tab_panel.getTabEl(app.ids_tabs[el.id]))) {
        app[app.el.id.toLowerCase()] = {};
    }
    if (!app.el.hijo) {
        cargar_interfaz_2(app.el);
    }
    else {
        var modulo = el.id;
        if (cgss.UI.isNull(app.tab_panel.getTabEl(app.ids_tabs[modulo]))) {
            cgss.UI.include("UI/" + modulo + "_interfaz.js");
            var interfaz = app[modulo.toLowerCase()];
            var panel = interfaz.get_panel();
            panel.title = el.text;
            var panel_id = panel.getId();
            app.tab_panel.add(panel);
            app.ids_tabs[modulo] = panel_id;
            interfaz.after_load();
        }
        app.tab_panel.setActiveTab(app.ids_tabs[modulo]);
        app[app.el.id.toLowerCase()].tbar_busqueda_avanzada.tbar.url = "siogas.svc/" + app.el.id.toLowerCase() + "_query_get_paged";
        app[app.el.id.toLowerCase()].tbar_busqueda_avanzada.tbar.options = {
            'query': app.el.query
        };
        app[app.el.id.toLowerCase()].tbar_busqueda_avanzada.tbar.method = 'POST';
        app[app.el.id.toLowerCase()].tbar_busqueda_avanzada.tbar.inicializar();
    }
}

crear_variables_de_funcionalidad = function (o) {
    app[app.el.text.toLowerCase()] = {};
    app[app.el.text.toLowerCase()].adicionar = false;
    app[app.el.text.toLowerCase()].editar = false;
    app[app.el.text.toLowerCase()].eliminar = false;
    app[app.el.text.toLowerCase()].busqueda_avanzada = false;
    app[app.el.text.toLowerCase()].ver_detalle = false;
    app[app.el.text.toLowerCase()].ver_entidades_relacionadas = false;
    app[app.el.text.toLowerCase()].filtrar_por_entidades = false;
    app[app.el.text.toLowerCase()].subir = false;
    //alert(o.d[0].succes);
    var entero = 0;
    for (var registro in o.d[0].data) {
        try {
            var cadena = o.d[0].data[entero].sigla;
            if (cadena.indexOf('AD') == 0) {
                app[app.el.text.toLowerCase()].adicionar = true;
            }
            if (cadena.indexOf('ED') == 0) {
                app[app.el.text.toLowerCase()].editar = true;
            }
            if (cadena.indexOf('EL') == 0) {
                app[app.el.text.toLowerCase()].eliminar = true;
            }
            if (cadena.indexOf('BQA') == 0 || cadena.indexOf('BQ_') == 0) {
                app[app.el.text.toLowerCase()].busqueda_avanzada = true;
            }
            if (cadena.indexOf('VDT') == 0 || cadena.indexOf('VD_') == 0) {
                app[app.el.text.toLowerCase()].ver_detalle = true;
            }
            if (cadena.indexOf('VER') == 0 || cadena.indexOf('VE_') == 0) {
                app[app.el.text.toLowerCase()].ver_entidades_relacionadas = true;
            }
            if (cadena.indexOf('FER') == 0 || cadena.indexOf('FE_') == 0) {
                app[app.el.text.toLowerCase()].filtrar_por_entidades = true;
            }
            if (cadena.indexOf('UPL') == 0 || cadena.indexOf('UPL') == 0) {
                app[app.el.text.toLowerCase()].subir = true;
            }
        }
        catch (e) {}
        entero++;
    }
    if (!app.el.hijo) {
        cargar_interfaz_2(app.el);
    }
    else {
        if (cgss.UI.isNull(app.tab_panel.getTabEl(app.ids_tabs[app.el.text.toLowerCase()]))) {
            cargar_interfaz_2(app.el);
        }
        app.tab_panel.setActiveTab(app.ids_tabs[app.el.text.toLowerCase()]);
        app[app.el.text.toLowerCase()].tbar_busqueda_avanzada.tbar.url = "siogas.svc/" + app.el.text.toLowerCase() + "_query_get_paged";
        app[app.el.text.toLowerCase()].tbar_busqueda_avanzada.tbar.options = {
            'query': app.el.query
        };
        app[app.el.text.toLowerCase()].tbar_busqueda_avanzada.tbar.method = 'POST';
        app[app.el.text.toLowerCase()].tbar_busqueda_avanzada.tbar.inicializar();
    }
}
inicializa_funcionalidades = function (el) {
    app[el.id.toLowerCase()].adicionar = false;
    app[el.id.toLowerCase()].editar = false;
    app[el.id.toLowerCase()].eliminar = false;
    app[el.id.toLowerCase()].busqueda_avanzada = false;
    app[el.id.toLowerCase()].ver_detalle = false;
    app[el.id.toLowerCase()].ver_entidades_relacionadas = false;
    app[el.id.toLowerCase()].filtrar_por_entidades = false;
    app[el.id.toLowerCase()].asociacion = false;
    app[el.id.toLowerCase()].elimina_asociacion = false;
    app[el.id.toLowerCase()].subir = false;
    var entero = 0;
    for (var registro in app.arreglo_funcionalidades) {
        try {
            if (app.arreglo_funcionalidades[entero].submodulo_sigla.toLowerCase() == el.id.toLowerCase()) {
                cadena = app.arreglo_funcionalidades[entero].funcionalidad_sigla;
                if (cadena.indexOf('AD') == 0) {
                    app[el.id.toLowerCase()].adicionar = true;
                }
                if (cadena.indexOf('ED') == 0) {
                    app[el.id.toLowerCase()].editar = true;
                }
                if (cadena.indexOf('EL') == 0) {
                    app[el.id.toLowerCase()].eliminar = true;
                }
                if (cadena.indexOf('BQA') == 0 || cadena.indexOf('BQ_') == 0) {
                    app[el.id.toLowerCase()].busqueda_avanzada = true;
                }
                if (cadena.indexOf('VDT') == 0 || cadena.indexOf('VD_') == 0) {
                    app[el.id.toLowerCase()].ver_detalle = true;
                }
                if (cadena.indexOf('VER') == 0 || cadena.indexOf('VE_') == 0) {
                    app[el.id.toLowerCase()].ver_entidades_relacionadas = true;
                }
                if (cadena.indexOf('FER') == 0 || cadena.indexOf('FER') == 0) {
                    app[el.id.toLowerCase()].filtrar_por_entidades = true;
                }
                if (cadena.indexOf('ASO') == 0 || cadena.indexOf('ASOC') == 0) {
                    app[el.id.toLowerCase()].asociacion = true;
                }
                if (cadena.indexOf('ELASO') == 0 || cadena.indexOf('ELASOC') == 0) {
                    app[el.id.toLowerCase()].elimina_asociacion = true;
                }
                if (cadena.indexOf('UPL') == 0 || cadena.indexOf('UPL') == 0) {
                    app[el.id.toLowerCase()].subir = true;
                }
            }
        }
        //                }
        catch (e) {}
        entero++;
    }
    // cgss.UI.include("UI/"+el.id+"_interfaz.js");
}
carga_ventana_ayuda = function (el) {
    ///sigla_submodulo
    ///funcionalidad
    /// var params=
    var params = '?funcionalidad=' + el.funcionalidad + '&sigla_submodulo=' + el.submodulo_sigla + '&aplicacion_sigla=' + el.aplicacion_sigla;
    if (!app.win_help_creada) {
        app.win_help = new Ext.Window({
            title: 'Ayuda en línea',
            width: 650,
            height: 500,
            tools: [{
                id: "close",
                qtip: "Cerrar ventana",
                handler: function () {
                    app.win_help_creada = false;
                    app.win_help.close();
                }
            }],
            html: '<iframe src=' + "'" + app.ruta_documentacion + params + "'" + ' style="width:100%;height:100%;border:none;"></iframe>'
        });
        app.win_help.show();
        app.win_help_creada = true;
    }
}
cargar_reporte = function (el) {
    var cadena_de_parametros = "";
    if (typeof el.cadena_codificada == 'undefined') {
        var n_parametros = el.opciones.length;
        for (var opcion in el.opciones) {
            cadena_de_parametros = cadena_de_parametros + "&" + opcion + "=" + el.opciones[opcion];
        }
        cadena_de_parametros = cadena_de_parametros.substring(1, cadena_de_parametros.length);
        cadena_de_parametros = "?" + cadena_de_parametros;
    }
    else {
        //            var n_parametros = el.opciones.length;
        //            for (var opcion in el.opciones) {
        //                cadena_de_parametros = cadena_de_parametros + "&" + opcion + "=" + el.opciones[opcion];
        //            }
        //            cadena_de_parametros = cadena_de_parametros.substring(1, cadena_de_parametros.length);
        ///   cadena_de_parametros = "?" + cadena_de_parametros;
        cadena_de_parametros = "?" + el.cadena_codificada;
    }
    var size = new Object();
    size.w = document.documentElement.clientWidth;
    size.h = document.documentElement.clientHeight;
    if (!app.win_help_creada) {
        app.win_help = new Ext.Window({
            title: el.titulo_reporte,
            width: size.w * .8,
            height: size.h * .8,
            tools: [{
                id: "close",
                qtip: "Cerrar ventana",
                handler: function () {
                    app.win_help_creada = false;
                    app.win_help.close();
                }
            }],
            html: '<iframe src=' + el.ruta_reporte + cadena_de_parametros + ' style="width:100%;height:100%;border:none;"></iframe>'
        });
        app.win_help.show();
        app.win_help_creada = true;
    }
}
// --------------------
