var $catalogos =
{
    contextPath:""
};
$.extend({
    getCatalogo : function(idSelect, opciones, parametros, callbackFnk){
        opciones = $.extend({
            url: $page.contextPath+'/catalogos/datos.do'
        }, opciones || {});
        $.getJSON(opciones.url, parametros, function(data){
            $("#"+idSelect).loadSelect(data);
            if(typeof callbackFnk == 'function'){
                callbackFnk.call(data, this);
            }
        });
    }
});




/******************************************************************
 *                                                                *
 *   C A T A L O G O  S E C T O R  I N S T I T U C I O N A L      *
 *                                                                *
 ******************************************************************/
var $institucionCatalogo = {
    sector:null,
    institucion:null,
    dependencia:null,
    departamento:null,
    sectorVal:0,
    institucionVal:0,
    dependenciaVal:0,
    departamentoVal:0,
    sectorFunc:null,
    institucionFunc:null,
    dependenciaFunc:null,
    departamentoFun:null,
    opcionesDefault:new Array(4),

    /*Funcion para iniciar el catalogo.
     * Parametros:
     *      sectorId: Es el id del componente select que contendra el catalogo de sector institucion
     *      institucionId: Es el id del componente select que contendra el catalogo de institucion
     *      dependenciaId: Es el id del componente select que contendra el catalogo de dependencia
     *      departamentoId: Es el id del componente select que contendra el catalogo de departamento
     */

    institucionCatalogo:function(sectorId, institucionId, dependenciaId, departamentoId){
        this.sector=sectorId;
        this.institucion=institucionId;
        this.dependencia=dependenciaId;
        this.departamento=departamentoId;

        this.setValores(0, 0, 0, 0);

        if(this.sector==null){
            alert("Para el cátalogo se nececista mínimo el nivel1.");
            return;
        }

        $.getCatalogo(this.sector, null,{
                dispatch : 'getSectorInstituciones'
            },
            function(){
                if($institucionCatalogo.sectorVal!=0){
                    $("#"+$institucionCatalogo.sector+" option[value="+$institucionCatalogo.sectorVal+"]").attr("selected", true);
                    $institucionCatalogo.cambiarInstituciones(true);
                }
                else
                    $institucionCatalogo.cambiarInstituciones(false);
            });

        $("#"+this.sector).change(function(){
            $institucionCatalogo.cambiarInstituciones(false);
        });
        $("#"+this.institucion).change(function(){
            $institucionCatalogo.cambiarDependencias(false);
        });
        $("#"+this.dependencia).change(function(){
            $institucionCatalogo.cambiarDepartamentos(false);
        });
    },

    /*Funcion para establecer los valores queseran seleccionados en los selects.
     * Parametros:
     *          sectorVal: Es el valor para el sector
     *          instituicionVal: Es el valor para la institucion
     *          dependenciaVal: Es el valor para la dependencia
     *          departamentoVal: Es el valor para el departamento
     */
    setValores:function(sectorV, institucionV, dependenciaV, departamentoV){
        this.sectorVal=sectorV;
        this.institucionVal=institucionV;
        this.dependenciaVal=dependenciaV;
        this.departamentoVal=departamentoV;
    },

    /*Funcion para establecer las opciones por default para los selects
     * Parametros:
     *          opciones: Son las opciones para los selects.
     */
    setOpcionDefault:function(opciones){
        this.opcionesDefault[0]=document.createElement("option");
        this.opcionesDefault[0].text=opciones.sector.text;
        this.opcionesDefault[0].value=opciones.sector.value;

        this.opcionesDefault[1]=document.createElement("option");
        this.opcionesDefault[1].text=opciones.institucion.text;
        this.opcionesDefault[1].value=opciones.institucion.value;

        this.opcionesDefault[2]=document.createElement("option");
        this.opcionesDefault[2].text=opciones.dependencia.text;
        this.opcionesDefault[2].value=opciones.dependencia.value;

        this.opcionesDefault[3]=document.createElement("option");
        this.opcionesDefault[3].text=opciones.departamento.text;
        this.opcionesDefault[3].value=opciones.departamento.value;
    },

    /*Funcion que sirve para cambiar la institucion en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarInstituciones:function(bandera){
        var sector1= $("#"+this.sector).val();
        var dropdown=$("#"+this.institucion);

        if(sector1==0 )
        {
            $(dropdown).emptySelect();
            $("#"+this.institucion).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $institucionCatalogo.cambiarDependencias(false);
        }
        else
        {
            $.getCatalogo($institucionCatalogo.institucion, null,{
                dispatch : 'getInstituciones',
                sector: sector1
            },
            function(){
                if($institucionCatalogo.institucionVal!=0 && bandera==true){
                    $("#"+$institucionCatalogo.institucion+" option[value="+$institucionCatalogo.institucionVal+"]").attr("selected", true);
                    $institucionCatalogo.cambiarDependencias(true);
                }
                else
                    $institucionCatalogo.cambiarDependencias(false);
            });
        }
    },

    /*Funcion que sirve para cambiar la dependencia
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarDependencias:function(bandera){
        var institucion1=$("#"+this.institucion).val();
        var dropdown=$("#"+this.dependencia);

        if(institucion1==0)
        {
            $(dropdown).emptySelect();
            $("#"+this.dependencia).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $institucionCatalogo.cambiarDepartamentos(false);
        }
        else
        {
            $.getCatalogo($institucionCatalogo.dependencia, null,{
                dispatch : 'getDependencias',
                institucion: institucion1
            },
            function(){
                if($institucionCatalogo.dependenciaVal!=0 && bandera==true){
                    $("#"+$institucionCatalogo.dependencia +" option[value="+$institucionCatalogo.dependenciaVal+"]").attr("selected",true);
                    $institucionCatalogo.cambiarDepartamentos(true);
                }
                else
                    $institucionCatalogo.cambiarDepartamentos(false);
            });
        }
    },

    /*Funcion que sirve para cambiar el departamento en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarDepartamentos:function(bandera){
        var institucion1=$("#"+this.institucion).val();
        var depende=$("#"+this.dependencia).val();
        var dropdown=$("#"+this.departamento);

        if(institucion1==0 || depende ==0)
        {
            $(dropdown).emptySelect();
            $("#"+this.departamento).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
        }
        else
        {
            $.getCatalogo(this.departamento, null,{
                dispatch : 'getDepartamentos',
                institucion: institucion1,
                dependencia: depende
            },
            function(){
                if($institucionCatalogo.departamentoVal!=0 && bandera==true)
                    $("#"+$institucionCatalogo.departamento+" option[value="+$institucionCatalogo.departamentoVal+"]").attr("selected",true);
            });
        }
    }
}

/******************************************************************
 *                                                                *
 *        C A T A L O G O  S E C T O R  E C O N O M I C O         *
 *                                                                *
 ******************************************************************/
var $economicoCatalogo = {
    sectorEco:null,
    rama:null,
    clase:null,
    sectorEcoVal:0,
    ramaVal:0,
    claseVal:0,
    sectorEcoFunc:null,
    ramaFunc:null,
    claseFunc:null,
    opcionesDefault:new Array(3),

    /*Funcion para iniciar el catalogo.
     * Parametros:
     *      sectorEcoId: Es el id del componente select que contendra el catalogo de sector economico
     *      ramaId: Es el id del componente select que contendra el catalogo de rama
     *      claseId: Es el id del componente select que contendra el catalogo de clase
     */
    economicoCatalogo:function(sectorEcoId, ramaId, claseId){
        this.sectorEco=sectorEcoId;
        this.rama=ramaId;
        this.clase=claseId;

        this.setValores(0, 0, 0);

        if(this.sectorEco==null){
            alert("Para el cátalogo se nececista mínimo el nivel1.");
            return;
        }

        $.getCatalogo(this.sectorEco, null,{
                dispatch : 'getSectoresEconomicos'
            },
            function(){
                if($economicoCatalogo.sectorEcoVal!=0){
                    $("#"+$economicoCatalogo.sectorEco+" option[value="+$economicoCatalogo.sectorEcoVal+"]").attr("selected", true);
                    $economicoCatalogo.cambiarRama(true);
                }
                else
                    $economicoCatalogo.cambiarRama(false);
            });

        $("#"+this.sectorEco).change(function(){
            $economicoCatalogo.cambiarRama(false);
        });
        $("#"+this.rama).change(function(){
            $economicoCatalogo.cambiarClase(false);
        });
    },
    /*Funcion para establecer los valores queseran seleccionados en los selects.
     * Parametros:
     *          sectorEcoV: Es el valor para el sector
     *          ramaV: Es el valor para la institucion
     *          claseV: Es el valor para la dependencia
     */
    setValores:function(sectorEcoV, ramaV, claseV){
        this.sectorEcoVal=sectorEcoV;
        this.ramaVal=ramaV;
        this.claseVal=claseV;
    },

    /*Funcion para establecer las opciones por default para los selects
     * Parametros:
     *          opciones: Son las opciones para los selects.
     */
    setOpcionDefault:function(opciones){
        this.opcionesDefault[0]=document.createElement("option");
        this.opcionesDefault[0].text=opciones.sector.text;
        this.opcionesDefault[0].value=opciones.sector.value;

        this.opcionesDefault[1]=document.createElement("option");
        this.opcionesDefault[1].text=opciones.rama.text;
        this.opcionesDefault[1].value=opciones.rama.value;

        this.opcionesDefault[2]=document.createElement("option");
        this.opcionesDefault[2].text=opciones.clase.text;
        this.opcionesDefault[2].value=opciones.clase.value;
    },

    /*Funcion que sirve para cambiar la rama en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarRama:function(bandera){
        var sector1= $("#"+this.sectorEco).val();
        var dropdown=$("#"+this.rama);

        if(sector1==0 )
        {
            $(dropdown).emptySelect();
            $("#"+this.rama).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $economicoCatalogo.cambiarClase(false);
        }
        else
        {
            $.getCatalogo($economicoCatalogo.rama, null,{
                dispatch : 'getRamasEconomicas',
                sector: sector1
            },
            function(){
                if($economicoCatalogo.ramaVal!=0 && bandera==true){
                    $("#"+$economicoCatalogo.rama+" option[value="+$economicoCatalogo.ramaVal+"]").attr("selected", true);
                    $economicoCatalogo.cambiarClase(true);
                }
                else
                    $economicoCatalogo.cambiarClase(false);
            });
        }
    },

    /*Funcion que sirve para cambiar la clase
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarClase:function(bandera){
        var sector1 = $("#"+this.sectorEco).val();
        var rama1 = $("#"+this.rama).val();
        var dropdown=$("#"+this.clase);

        if ((sector1 == 0)||(rama1 == 0)){
            $(dropdown).emptySelect();
            $("#"+this.clase).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
        }
        else{
            dropdown.attr("disabled",false);

            $.getCatalogo($economicoCatalogo.clase, null,{
                dispatch : 'getClasesEconomicas',
                sector:sector1,
                rama:rama1
            },
            function(){
                if($economicoCatalogo.claseVal!=0 && bandera==true)
                    $("#"+$economicoCatalogo.clase+" option[value="+$economicoCatalogo.claseVal+"]").attr("selected", true);
            });
        }
    }
}

/******************************************************************
 *                                                                *
 *               C A T A L O G O  C A M P O                       *
 *                                                                *
 ******************************************************************/
var $campoCatalogo = {
    campo:null,
    disciplina:null,
    subdisciplina:null,
    campoVal:0,
    disciplinaVal:0,
    subdisciplinaVal:0,
    campoFunc:null,
    disciplinaFunc:null,
    subdisciplinaFunc:null,
    opcionesDefault:new Array(3),

    /*Funcion para iniciar el catalogo.
     * Parametros:
     *      campoId: Es el id del componente select que contendra el catalogo de campo
     *      disciplinaId: Es el id del componente select que contendra el catalogo de disciplina
     *      subdisciplina: Es el id del componente select que contendra el catalogo de subdisciplina
     */
    campoCatalogo:function(campoId, disciplinaId, subdisciplina){
        this.campo=campoId;
        this.disciplina=disciplinaId;
        this.subdisciplina=subdisciplina;

        this.setValores(0, 0, 0);

        if(this.campo==null){
            alert("Para el cátalogo se nececista mínimo el nivel1.");
            return;
        }

        $.getCatalogo(this.campo, null,{
                dispatch : 'getCampos',
                todos:true
            },
            function(){
                if($campoCatalogo.campoVal!=0){
                    $("#"+$campoCatalogo.campo+" option[value="+$campoCatalogo.campoVal+"]").attr("selected", true);
                    $campoCatalogo.cambiarDisciplina(true);
                }
                else
                    $campoCatalogo.cambiarDisciplina(false);
            });

        $("#"+this.campo).change(function(){
            $campoCatalogo.cambiarDisciplina(false);
        });
        $("#"+this.disciplina).change(function(){
            $campoCatalogo.cambiarSubdisciplina(false);
        });
    },
    /*Funcion para establecer los valores queseran seleccionados en los selects.
     * Parametros:
     *          campoV: Es el valor para el campo
     *          disciplinaV: Es el valor para la disciplina
     *          subdisciplinaV: Es el valor para la subdisciplina
     */
    setValores:function(campoV, disciplinaV, subdisciplinaV){
        this.campoVal=campoV;
        this.disciplinaVal=disciplinaV;
        this.subdisciplinaVal=subdisciplinaV;
    },

    /*Funcion para establecer las opciones por default para los selects
     * Parametros:
     *          opciones: Son las opciones para los selects.
     */
    setOpcionDefault:function(opciones){
        this.opcionesDefault[0]=document.createElement("option");
        this.opcionesDefault[0].text=opciones.campo.text;
        this.opcionesDefault[0].value=opciones.campo.value;

        this.opcionesDefault[1]=document.createElement("option");
        this.opcionesDefault[1].text=opciones.disciplina.text;
        this.opcionesDefault[1].value=opciones.disciplina.value;

        this.opcionesDefault[2]=document.createElement("option");
        this.opcionesDefault[2].text=opciones.subdisciplina.text;
        this.opcionesDefault[2].value=opciones.subdisciplina.value;
    },

    /*Funcion que sirve para cambiar la disciplina en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarDisciplina:function(bandera){

        var campito = $("#"+this.campo).val();
        var dropdownSet = $("#"+this.disciplina);

        if (campito == 0)
        {
            $(dropdownSet).emptySelect();
            $("#"+this.disciplina).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $campoCatalogo.cambiarSubdisciplina();
        }
        else
        {
            dropdownSet.attr("disabled",false);

            $.getCatalogo($campoCatalogo.disciplina, null,{
                dispatch : 'getDisciplinas',
                campo : campito
            },
            function(){
                if($campoCatalogo.disciplina!=0 && bandera==true){
                    $("#"+$campoCatalogo.disciplina+" option[value="+$campoCatalogo.disciplinaVal+"]").attr("selected", true);
                    $campoCatalogo.cambiarSubdisciplina(true);
                }
                else
                    $campoCatalogo.cambiarSubdisciplina(false);
            });
        }
    },

    /*Funcion que sirve para cambiar la subdisciplina
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarSubdisciplina:function(bandera){

        var campo1 = $("#"+this.campo).val();
        var disciplina1 = $("#"+this.disciplina).val();
        var dropdown = $("#"+this.subdisciplina);

        if ((campo1 == 0)||(disciplina1 == 0))
        {
            $(dropdown).emptySelect();
            $("#"+this.subdisciplina).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
        }
        else
        {
            dropdown.attr("disabled",false);

            $.getCatalogo($campoCatalogo.subdisciplina, null,{
                dispatch : 'getSubdisciplinas',
                campo:campo1,
                disciplina:disciplina1
            },
            function(){
                if($campoCatalogo.subdisciplinaVal!=0 && bandera==true)
                    $("#"+$campoCatalogo.subdisciplina+" option[value="+$campoCatalogo.subdisciplinaVal+"]").attr("selected", true);
            });
        }
    }
}

/******************************************************************
 *                                                                *
 *        C A T A L O G O  P A I S - E N T I D A D                *
 *                                                                *
 ******************************************************************/
var $paisCatalogo = {

    pais:null,
    entidad:null,
    paisVal:"MEX",
    entidadVal:0,
    paisFunc:null,
    entidadFunc:null,

    /*Funcion para iniciar el catalogo.
     * Parametros:
     *      paisId: Es el id del componente select que contendra el catalogo de pais
     *      entidadId: Es el id del componente select que contendra el catalogo de entidad
     */
    paisCatalogo:function(paisId, entidadId)
    {
        this.pais=paisId;
        this.entidad=entidadId;

        this.setValores("MEX", 0);

        if(this.pais==null)
        {
            alert("Para el cátalogo se nececista mínimo el nivel1.");
            return;
        }

        $.getCatalogo(this.pais, null,{
                dispatch : 'getPaises'
            },
            function(){
                if($paisCatalogo.paisVal!=0){
                    $("#"+$paisCatalogo.pais+" option[value="+$paisCatalogo.paisVal+"]").attr("selected", true);
                    $paisCatalogo.cambiarEntidad(true);
                }
                else
                    $paisCatalogo.cambiarEntidad(false);
            });

        $("#"+this.pais).change(function(){
            $paisCatalogo.cambiarEntidad(false);
        });
    },
    /*Funcion para establecer los valores queseran seleccionados en los selects.
     * Parametros:
     *          paisV: Es el valor para el pais
     *          entidadV: Es el valor para la entidad
     */
    setValores:function(paisV, entidadV)
    {
        this.paisVal=paisV;
        this.entidadVal=entidadV;
    },
    /*Funcion que sirve para cambiar la entidad en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarEntidad:function(bandera)
    {
        var valorPais = $("#"+this.pais).val();
        var dropdownSet = $("#"+this.entidad);

        if (valorPais == 0)
        {
            $(dropdownSet).emptySelect();
            $("#"+this.entidad).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
        }
        else
        {
            $.getCatalogo($paisCatalogo.entidad, null,{
                dispatch : 'getEntidades',
                pais : valorPais
            },
            function(){
                if($paisCatalogo.entidad!=0 && bandera==true)
                    $("#"+$paisCatalogo.entidad+" option[value="+$paisCatalogo.entidadVal+"]").attr("selected", true);
                
            });
        }
    }
}


/******************************************************************
 *                                                                *
 *   C A T A L O G O  S E C T O R  I N S T I T U C I O N A L 1,   *
 *   SE UTILIZAR PARA DESARROLLOS TECNOLOGICO Y PARTICIPACIONES EN CONGRESO                                                             *
 ******************************************************************/
var $institucionCatalogo1 = {
    sector:null,
    institucion:null,
    dependencia:null,
    departamento:null,
    sectorVal:0,
    institucionVal:0,
    dependenciaVal:0,
    departamentoVal:0,
    sectorFunc:null,
    institucionFunc:null,
    dependenciaFunc:null,
    departamentoFun:null,
    opcionesDefault:new Array(4),

    /*Funcion para iniciar el catalogo.
     * Parametros:
     *      sectorId: Es el id del componente select que contendra el catalogo de sector institucion
     *      institucionId: Es el id del componente select que contendra el catalogo de institucion
     *      dependenciaId: Es el id del componente select que contendra el catalogo de dependencia
     *      departamentoId: Es el id del componente select que contendra el catalogo de departamento
     */

    institucionCatalogo:function(sectorId, institucionId, dependenciaId, departamentoId){
        this.sector=sectorId;
        this.institucion=institucionId;
        this.dependencia=dependenciaId;
        this.departamento=departamentoId;

        this.setValores(0, 0, 0, 0);

        if(this.sector==null){
            alert("Para el cátalogo se nececista mínimo el nivel1.");
            return;
        }

        $.getCatalogo(this.sector, null,{
                dispatch : 'getSectorInstituciones'
            },
            function(){
                if($institucionCatalogo1.sectorVal!=0){
                    $("#"+$institucionCatalogo1.sector+" option[value="+$institucionCatalogo1.sectorVal+"]").attr("selected", true);
                    $institucionCatalogo1.cambiarInstituciones(true);
                }
                else
                    $institucionCatalogo1.cambiarInstituciones(false);
            });

        $("#"+this.sector).change(function(){
            $institucionCatalogo1.cambiarInstituciones(false);
        });
        $("#"+this.institucion).change(function(){
            $institucionCatalogo1.cambiarDependencias(false);
        });
        $("#"+this.dependencia).change(function(){
            $institucionCatalogo1.cambiarDepartamentos(false);
        });
    },

    /*Funcion para establecer los valores queseran seleccionados en los selects.
     * Parametros:
     *          sectorVal: Es el valor para el sector
     *          instituicionVal: Es el valor para la institucion
     *          dependenciaVal: Es el valor para la dependencia
     *          departamentoVal: Es el valor para el departamento
     */
    setValores:function(sectorV, institucionV, dependenciaV, departamentoV){
        this.sectorVal=sectorV;
        this.institucionVal=institucionV;
        this.dependenciaVal=dependenciaV;
        this.departamentoVal=departamentoV;
    },

    /*Funcion para establecer las opciones por default para los selects
     * Parametros:
     *          opciones: Son las opciones para los selects.
     */
    setOpcionDefault:function(opciones){
        this.opcionesDefault[0]=document.createElement("option");
        this.opcionesDefault[0].text=opciones.sector.text;
        this.opcionesDefault[0].value=opciones.sector.value;

        this.opcionesDefault[1]=document.createElement("option");
        this.opcionesDefault[1].text=opciones.institucion.text;
        this.opcionesDefault[1].value=opciones.institucion.value;

        this.opcionesDefault[2]=document.createElement("option");
        this.opcionesDefault[2].text=opciones.dependencia.text;
        this.opcionesDefault[2].value=opciones.dependencia.value;

        this.opcionesDefault[3]=document.createElement("option");
        this.opcionesDefault[3].text=opciones.departamento.text;
        this.opcionesDefault[3].value=opciones.departamento.value;
    },

    /*Funcion que sirve para cambiar la institucion en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarInstituciones:function(bandera){
        var sector1= $("#"+this.sector).val();
        var dropdown=$("#"+this.institucion);

        if(sector1==0 )
        {
            $(dropdown).emptySelect();
            $("#"+this.institucion).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $institucionCatalogo1.cambiarDependencias(false);
        }
        else
        {
            $.getCatalogo($institucionCatalogo1.institucion, null,{
                dispatch : 'getInstituciones1',
                sector: sector1
            },
            function(){
                if($institucionCatalogo1.institucionVal!=0 && bandera==true){
                    $("#"+$institucionCatalogo1.institucion+" option[value="+$institucionCatalogo1.institucionVal+"]").attr("selected", true);
                    $institucionCatalogo1.cambiarDependencias(true);
                }
                else
                    $institucionCatalogo1.cambiarDependencias(false);
            });
        }
    },

    /*Funcion que sirve para cambiar la dependencia
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarDependencias:function(bandera){
        var institucion1=$("#"+this.institucion).val();
        var dropdown=$("#"+this.dependencia);

        if(institucion1==0)
        {
            $(dropdown).emptySelect();
            $("#"+this.dependencia).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
            $institucionCatalogo1.cambiarDepartamentos(false);
        }
        else
        {
            $.getCatalogo($institucionCatalogo1.dependencia, null,{
                dispatch : 'getDependencias1',
                institucion: institucion1
            },
            function(){
                if($institucionCatalogo1.dependenciaVal!=0 && bandera==true){
                    $("#"+$institucionCatalogo1.dependencia +" option[value="+$institucionCatalogo1.dependenciaVal+"]").attr("selected",true);
                    $institucionCatalogo1.cambiarDepartamentos(true);
                }
                else
                    $institucionCatalogo1.cambiarDepartamentos(false);
            });
        }
    },

    /*Funcion que sirve para cambiar el departamento en el select
     * Paramtros:
     *      bandera: Es un valor booleano, en caso de ser True se indica que el select tendra un valor seleccionado,
     *      en caso contrario se seleccionara el de por default.
     */
    cambiarDepartamentos:function(bandera){
        var institucion1=$("#"+this.institucion).val();
        var depende=$("#"+this.dependencia).val();
        var dropdown=$("#"+this.departamento);

        if(institucion1==0 || depende ==0)
        {
            $(dropdown).emptySelect();
            $("#"+this.departamento).append('<option value="0" selected="selected">'+$page.labels["general.mensajes.todos"]+'</option>');
        }
        else
        {
            $.getCatalogo(this.departamento, null,{
                dispatch : 'getDepartamentos1',
                institucion: institucion1,
                dependencia: depende
            },
            function(){
                if($institucionCatalogo1.departamentoVal!=0 && bandera==true)
                    $("#"+$institucionCatalogo1.departamento+" option[value="+$institucionCatalogo1.departamentoVal+"]").attr("selected",true);
            });
        }
    }
}


