// JavaScript Document
var gridBlqGrupo = null;
$(function() {

    var per,  band = null;
    var dlgPeriodos = null;
    dlgPeriodos = $("#dlgPeriodos").dialog({
        autoOpen: false,
        width: 'auto',
        title: '<img src="images/logo40.png" style="float:left;margin-right:10px;margin-top:-8px;" alt="Logo">Bloquear un periodo en los grupos seleccionados',
        modal: true,
        zIndex: 2000,
        resizable: false,
    });

    $(document).ready(function() {
        per = $("#perseg").val().split('');
        console.log(per)
        if ($("select#cbperiodos").length > 1) {
            $("select#cbperiodos:eq(0)").remove();
            $("#cbcriterio:eq(0)").remove()
        }

        var rutModulo = "mod_bloqueo_periodos/";
        //var gridBlqGrupo=null;
        var gridBlqMat = null;

        $("button#btncancel").button({
            icons: {
                primary: "ui-btn-cancel"
            },
        }).click(function(e) {
            e.preventDefault();
            dlgPeriodos.dialog("close");
        });
        if ($.inArray('M', per)>-1) {
            $("button#btnsave").button({
                icons: {
                    primary: "ui-btn-save"
                },
            }).click(function(e) {
                e.preventDefault();
                var periodo = $("select#cbperiodos option:selected").val();
                jConfirm(dtsLang['blq_periodos']['msg_confirm_blqpergrup'], dtsLang['project']['institucion'], function(r) {
                    if (r) {
                        $.ajax({
                            url: "mod_bloqueo_periodos/opera_bloqueo.php",
                            data: {
                                perdblq: periodo,
                                grps: $.makeArray(gridBlqGrupo.getGridParam("selarrrow")),
                                oper: "xgrps",
                                cbcrit: $("#cbcriterio option:selected").val()
                            },
                            dataType: "json",
                            type: "POST",
                            beforeSend: function() {
                            },
                            success: function(rta) {
                                if (rta.error == 0) {
                                    notifica_ok(dtsLang["blq_periodos"]["msg_trans_ok"]);
                                    gridBlqMat.trigger("reloadGrid");
                                } else {
                                    jAlert(dtsLang['blq_periodos']['msg_error'], dtsLang['project']['institucion'], "error");
                                    gridBlqGrupo.trigger("reloadGrid");
                                    gridBlqMat.trigger("reloadGrid");
                                }
                                dlgPeriodos.dialog("close");
                            },
                        });
                    } else {
                        dlgPeriodos.dialog("close");
                    }
                });
            });
        }

        gridBlqGrupo = jQuery("#list_BlqGrup").jqGrid({
            height: 340,
            url: rutModulo + 'list_grupos.php',
            datatype: "json",
            mtype: 'GET',
            rowNum: 25,
            rowList: [15, 30, 50],
            pager: '#pager_BlqGrup',
            sortname: 'orden',
            viewrecords: true,
            sortorder: "asc",
            editurl: '',
            caption: 'Listado de grupos',
            toolbar: [true, "top"],
            grouping: true,
            shrinkToFit: false,
            multiselect: true,
            multiboxonly: true,
            groupingView: {
                groupField: ["nom_sede", 'orden'],
                groupCollapse: true,
                groupText: ['<b>{0} - {1} Grupos</b>', '<i><b>{0} - {1} Grupos<b></i>'],
                groupSummary: [false, false],
                showSummaryOnHide: false,
                groupColumnShow: [false, true],
            },
            colNames: ['Sede', 'Grado', 'Grupo', 'Jornada'],
            colModel: [
                {name: 'nom_sede', index: 'nom_sede', resizable: false, width: 1},
                {name: 'orden', index: 'orden', resizable: false, width: 240},
                {name: 'nom_grupo', index: 'nom_grupo', resizable: false, width: 80},
                {name: 'nom_jornada', index: 'nom_jornada', resizable: false, width: 100},
            ],
            onSelectRow: function(rowid) {
                gridBlqMat.setGridParam({
                    'datatype': 'json',
                    postData: {
                        cdgr: rowid
                    },
                }).trigger("reloadGrid")
            },
        });
        gridBlqGrupo.navGrid('#pager_BlqGrup', {add: false, edit: false, del: false}, {}, {}, {}, {});
        if ($.inArray('M', per)>-1) {
            coloca_boton({
                elem: '#t_list_BlqGrup',
                title: 'Desbloquear un periodo para todas las materias en los grupos seleccionados',
                caption: 'Activar un periodo a los grupos',
                id: "save_canvios",
                buttonicon: 'ui-btn-save',
                onClickButton: function() {
                    var nper = parseInt(gridBlqGrupo.getGridParam("userData")["mx_numper"]);
                    var cad = "", i;

                    for (i = 1; i <= nper; i++)
                        cad += "<option value='" + i + "'>" + i + "</option>";

                    cad += "<option value='" + i + "'>Bloquear todos</option>";
                    dlgPeriodos.dialog("open");
                    $("select#cbperiodos").empty()
                            .append(cad);
                },
            });
        }
        if ($("#help_list_BlqGrup", "#t_list_BlqGrup").length == 0)
            $("#t_list_BlqGrup").append('<div style="float:right; margin-top:2px; margin-right:2px" id="help_list_BlqGrup" data-icon="help" align="center"></div>');

        $("#help_list_BlqGrup").append('Agrupar por: <select id="chngroup" class="campos" ><option value="nom_grado">Grados</option><option value="nom_jornada">Jornadas</option></select>');

        $("#chngroup").change(function() {
            var vl = $(this).val();
            if (vl) {
                if (vl == "clear") {
                    gridBlqGrupo.jqGrid('groupingRemove', true);
                } else {
                    gridBlqGrupo.jqGrid('groupingGroupBy', ['nom_sede', vl]);
                }
            }
        });
        /*----------------------------------------------------------------	*/
        gridBlqMat = jQuery("#list_BlqMat").jqGrid({
            height: 340,
            url: rutModulo + 'list_materias_x_grupos.php',
            datatype: "local",
            mtype: 'GET',
            rowNum: 25,
            rowList: [15, 30, 50],
            pager: '#pager_BlqMat',
            sortname: '0',
            viewrecords: true,
            sortorder: "asc",
            editurl: '',
            caption: 'Listado de grupos',
            toolbar: [true, "top"],
            shrinkToFit: false,
            colNames: ['Asignatura', 'Per. activo', 'Profesor', 'N° Periodos'],
            cellEdit: true,
            cellsubmit: "clientArray",
            cellurl: "opera_blq_periodos.php",
            colModel: [
                {name: 'nom_asi', index: 'nom_asi', resizable: false, width: 170},
                {name: 'per_act', index: 'per_act', align: 'center', resizable: true, width: 120, sortable: false, edittype: "select", editable: true,
                    editoptions: {
                        value: {1: 1, 2: 2, 3: 3, 4: 4},
                        dataInit: function(elem) {
                            var rg = gridBlqMat.getGridParam("selrow");
                            var numPer = gridBlqMat.getCell(rg, "num_per");
                            var val = gridBlqMat.getCell(rg, "per_act");
                            var cad = "";
                            for (i = 1; i <= numPer; i++) {
                                if (i == parseInt(val))
                                    cad += "<option selected value='" + i + "'>" + i + "</option>";
                                else
                                    cad += "<option value='" + i + "'>" + i + "</option>";
                            }
                            cad += "<option value='" + i + "'>Bloquear todos</option>";
                            $(elem).empty()
                                    .append(cad);
                        }
                    }
                },
                {name: 'nom_ape', index: 'nom_ape', resizable: false, width: 190},
                {name: 'num_per', index: 'num_per', resizable: false, width: 90, hidden: true},
            ],
            beforeSaveCell: function(rowid, cellname, value, iRow, iCol) {
                gridBlqMat.setCell(rowid, cellname, '', {color: 'red'});
            },
        });

        gridBlqMat.navGrid('#pager_BlqMat', {add: false, edit: false, del: false}, {}, {}, {}, {});
        if ($.inArray('M', per)>-1) {
            coloca_boton({
                elem: '#t_list_BlqMat',
                title: 'Guardar todos los cambios',
                caption: 'Guardar cambios',
                id: "save_canvios",
                buttonicon: 'ui-btn-save',
                onClickButton: function() {
                    jConfirm(dtsLang['blq_periodos']['msg_confirm_blqpermat'], dtsLang['project']['institucion'], function(r) {
                        if (!r)
                            return false;
                        $.ajax({
                            url: "mod_bloqueo_periodos/opera_bloqueo.php",
                            data: {
                                x: $.makeArray(gridBlqMat.getChangedCells("dirty")),
                                oper: "xmat",
                            },
                            dataType: "json",
                            type: "POST",
                            beforeSend: function() {
                            },
                            success: function(rta) {
                                if (rta.error == 0) {
                                    notifica_ok(dtsLang["blq_periodos"]["msg_trans_ok"]);
                                } else {
                                    jAlert(dtsLang['blq_periodos']['msg_error'], dtsLang['project']['institucion'], "error");
                                    gridBlqGrupo.trigger("reloadGrid");
                                    gridBlqMat.trigger("reloadGrid");
                                }
                            },
                        });
                    });
                },
            });
        }
    });/*FIn ready*/
});
var dtsBlqPer;
