// JavaScript Document
//var newDtsNotas=[];
//var newDtsFinals=[];
;
$(function () {
    var dataSourceLogros = null, dtSlog = null, dtLogros = [], td_select = null;
    var cargar_list_notasx_estud;
    var notasEquals, isDoc, posicion;// dtsrta,
    var ban_act = false
    var dic_datos = {};
    var cod_saber = null;
    var $notas_g = {};
    var cod_docente;
    var fecNow;
    var editor;
    var gridTbSabers = jQuery("#list_tb_saberes");
    var wnAddObsNota = $("#dialos_add_observacion");
    var winFormRecup = $("#dialog_form_recupera");
    var tb_contListNotas = $("#tbNotasEst");
    var tb_contListEst = $("#tbDtsEstudiantes");
    var gridCantNotas = null;
    var dtsSaberes = null;
    var dgConfugDesem = null, dgConfigNotas = null;
    var fecMin = null, fecMax = null;
    var dtsPorSab = [];
    var dtsNotas = []
    var numNotasMinxSab = 1;
    var det_periodos = [];
    var chkPorEqals = $("#chkporceniguales");
    var dtsLogFull = null;
    var dtsIndLgFull = null;
    var dtsConceptos = null;
    var nota_pierde;
    var dtsConfig;
    var tabular_notas = 'H';
    var periodosIguales
    var objSedes, objJornada, objGrupos, objMaterias, objPeriodos;
    var tbLogros = $("table#people");
    var tbIndicadores = $("table#indicadores");
    var newDtsNotas = [];
    var newDtsFinals = [];
    var btnSaveDtllNotas = $("#btnSaveDtllNotas");

    $("#panelConfigNotasDoc").panel();
    $("#panelConfigNotasDoc2").panel();

    function delRegNota(id) {
        var sel = "table#contenDgCnfNotas tbody tr#" + id;
        if ($(sel).attr('aria-acc') == 'new') {
            $(sel).remove()
        } else {
            $(sel).hide().attr("aria-acc", "del").addClass('removeNota');

            $("td#totalSumNotas").html('0').css("color", "#F00");
            $("input.txt_nota", sel).attr("aria-acc", "del").trigger("focusout");
        }
    }
    ;

    function updateTips(tips, t) {
        tips
            .text(t)
            .addClass("ui-state-error").show('blind');
        setTimeout(function () {
            tips.hide(1000);
        }, 2200);
    }

    /*---------------------------------------------------------------------------------------------
     funcion para cargar los logros es para la parte de observaciones*/
    function cargarLogros() {
        v = $("#md_n_materias option:selected").attr("aux").split("|");
        $.ajax({
            url: "mod_notas_opt/lista_logrosxasixgrup.php", dataType: "json",
            data: {
                idgr: $("#md_n_txtgrupo option:selected").attr("idgr"),
                per: objPeriodos.val(),
                idasig: v[1],
            },
            success: function (r) {
                dtsLogFull = r['lg'];
                dtsIndLgFull = r['ind'];
                verLorgrosTb(true);
            }
        });
    }

    function cargarCompetencias() {
        v = $("#md_n_materias option:selected").attr("aux").split("|");
        $.ajax({
            url: "mod_notas_opt/list_conceptos.php",
            dataType: "json",
            data: {
                idgr: $("#md_n_txtgrupo option:selected").attr("idgr"),
                per: objPeriodos.val(),
                idasig: v[1],
            },
            success: function (r) {
                dtsConceptos = r;
                var cad = '';
                $.each(dtsConceptos, function (i, v) {
                    cad += '<tr class="opera" id="' + v.id + '">';
                    cad += '<td class="concepto">' + v.concepto + '</td>';
                    cad += '<td class="nivel" style="display: none;">' + v.nivel + '</td>';
                    cad += '</tr>';
                });
                $('tbody tr', tbIndicadores).remove();
                $('tbody', tbIndicadores).append(cad);
            }
        });
    }


    /*Funcion para mostrar los logros para la parte de observaciones*/
    function verLorgrosTb(band) {
        var cad = '';
        $.each(dtsLogFull, function (i, v) {
            if (band) {
                if (parseInt(v.cdp) == cod_docente) {
                    cad += '<tr class="opera" role="rowl" aria-selected="false" id="' + v.cdlg + '">';
                    cad += '<td  width="160px">' + v.ndc + '</td><td>' + v.dflg + '</td>';
                    cad += '</tr>';
                }
            } else {
                cad += '<tr class="opera" role="rowl" aria-selected="false" id="' + v.cdlg + '">';
                cad += '<td  width="160px">' + v.ndc + '</td><td>' + v.dflg + '</td>';
                cad += '</tr>';
            }
        });
        $('tbody tr', tbLogros).remove();
        $('tbody', tbLogros).append(cad);
    }

    /*Funcion para mostrar los indicadores cunado selecciono un logro para la parte de observaciones*/
    function verIndiOnTb(idLg) {
        var cad = '';
        $.each(dtsIndLgFull[idLg], function (i, v) {
            cad += '<tr class="opera" id="' + v.cdlg + '">';
            cad += '<td>' + v.dfind + '</td>';
            cad += '</tr>';
        });
        $('tbody tr', tbIndicadores).remove();
        $('tbody', tbIndicadores).append(cad);
    }
    ;

    /*Funcion para mostrar el dialogo de agregar editar observaciones*/
    wnAddObsNota.window({
        width: '700',
        title: "Observaciones",
        height: 'auto',
        modal: true,
        closed: true,
        collapsible: false,
        minimizable: false,
        maximizable: true,
        resizable: false,
        onBeforeClose: function () {
            $("#fecha_rec, #observacion_rec").val("").removeClass("campos_error");
            td_select = null;
        },
        onOpen: function () {
            $("#observacion_rec").focus();
            $("#fecha_rec").datepicker("option", "minDate", $(td_select).attr('aria-fecha'));
        },
    });

    $("#txtfiltro").change(function () {
        if (!$(this).is(":checked")) {
            verLorgrosTb(true)
        } else {
            verLorgrosTb(false);
        }
        $("#people tbody tr").first().trigger("click");
    })

    $("#btnAccSaveObs").button({
        icons: {primary: "ui-btn-save"}
    }).click(function (e) {
        e.preventDefault()
        obs = $("#txtobsgneral").val();
        obs = obs.replace(/\n/g, "<br>");
        if (obs.length > 4) {
            $("button.dtobs[data-fil=" + posicion + "]").button("option", "icons", {primary: 'ui-btn-add-blue'}).attr("title", "Editar observaci\u00F3n");
        } else {
            $("button.dtobs[data-fil=" + posicion + "]").button("option", "icons", {primary: 'ui-btn-new'}).attr("title", "A\u00F1adir observaci\u00F3n");
        }
        if (dtsrta['infEst'][posicion]['ndef']['obsgrl'] != obs) {
            if (!newDtsFinals[posicion]) {
                newDtsFinals[posicion] = [];
            }
            newDtsFinals[posicion]['obs'] = obs;
            newDtsFinals[posicion]['id'] = dtsrta['infEst'][posicion]['ndef']['cd_n_def'];
            if (!newDtsFinals[posicion]['ndef']) {
                newDtsFinals[posicion]['chkndef'] = false;
                newDtsFinals[posicion]['ndef'] = dtsrta['infEst'][posicion]['ndef']['def_ns'];
            }
        }
        wnAddObsNota.window("close");
        $("#txtobsgneral").val("")
    });

    $("#btnAccCanObs").button({
        icons: {primary: "ui-btn-cancel"}
    }).click(function (e) {
        e.preventDefault()
        wnAddObsNota.window("close");
    });

    function view_odbervaciones() {
        if ($("option:selected", objPeriodos).attr("data-est") == 0)
            return false;
        posicion = $(this).attr('data-fil');
        $("#txtobsgneral").val("");

        if (newDtsFinals[posicion]) {
            obs = newDtsFinals[posicion]['obs'];
        } else {
            obs = dtsrta['infEst'][posicion]['ndef']['obsgrl'];
        }
        $("#txtobsgneral").val(obs.replace(/<br>/g, "\n"))
        wnAddObsNota.window("open").window('hcenter').window('vcenter');
    }

    tbLogros.delegate('tbody tr', 'click', function () {
        verIndiOnTb($(this).attr('id'));
    });

    tbIndicadores.delegate('tbody tr', 'dblclick', function () {
        $("#txtobsgneral").val($.trim($("#txtobsgneral").val() + "\n" + $.trim($(this).text())))
    });
    /*---------------------------------------------------------------------------------------------*/

    /*Funcion para cargar los saberes o desempe�os Tbl Izquierda*/
    function carga_saberes(cd_mat, periodo) {
        $.ajax({
            url: "mod_notas_opt/list_cargar_saberes_segun_mteria.php",
            type: 'POST',
            dataType: "json",
            beforeSend: function () {
                gridTbSabers.clearGridData(true);
            },
            data: {
                codigo: cd_mat,
                periodo: periodo
            },
            success: function (mydata) {
                dtsSaberes = mydata;
                if ($.isArray(mydata['dtsGrid'])) {
                    for (var i = 0; i < mydata['dtsGrid'].length; i++)
                        gridTbSabers.addRowData(mydata['dtsGrid'][i]['id'], mydata['dtsGrid'][i]);
                    $(".tip").poshytip({
                        className: 'tip-skyblue',
                        bgImageFrameSize: 9,
                        offsetX: 0,
                        offsetY: 20
                    }).addClass("opera");
                }
                $("#list_cant_notas").clearGridData();
            },
        });
    }

    /*Funcion para calculat el porcentaje total de los saberes*/
    function sumPorcenSaberes() {
        var sum = 0, val = 0;
        $("input#valNewSaber").each(function (index, element) {
            val = parseFloat($(this).val());
            val = isNaN(val) ? 0 : val;
            sum += val;
        });
        var color = (sum != 100) ? "#F00" : "#090";
        $("td#totalSumSaberes").html(sum).css("color", color);
        if (sum == 100)
            $("td#totalSumSaberes").removeClass("error");
        else
            $("td#totalSumSaberes").addClass("error");
    }

    /*Boton para a�adir un saber o desempe�o*/
    $("#addNewSabCnf").button({
        icons: {
            primary: "ui-btn-new"
        },
        text: false
    }).click(function () {
        var por = parseFloat($("#newNumValPorSab").val())
        var id = $("select#cbCnSaberes").val();
        if (!isNaN(por) && por > 0) {
            $("table#contenDgCnfDes tbody").append("<tr id='f" + id + "'><td>" + $("select#cbCnSaberes option:selected").text() + "</td><td><input aria-acc='new' aria-id='" + id + "' class='numValPorSab' type='number' id='valNewSaber' value='" + por + "' size='3'/><button class='delregsaber cssbtn' aria-id=" + id + ">Eliminar</button></td></tr>");

            $("select#cbCnSaberes option:selected").remove();
            $("#newNumValPorSab").val("").focus();
            $("input[type=number].numValPorSab").focusout(function () {
                sumPorcenSaberes();
            });
            sumPorcenSaberes();
            $("button.delregsaber").button({
                icons: {primary: "ui-btn-del"}, text: false
            });
        } else {
            alert("Digite un n\u00FAmero valido mayor que 0")
        }
    });
    $('table#contenDgCnfDes').delegate("button.delregsaber", "click", function () {
        var id = $(this).attr("aria-id");
        var nomSab = $("tr#f" + id + " td:first").text();
        $("tr#f" + id).remove();
        $("input[type=number].numValPorSab:first").trigger("focusout");
        $("select#cbCnSaberes").append("<option value='" + id + "'>" + nomSab + "</option>");
    })
    /*Boton que guarda los desempe�os o saberes en la bd*/
    $("#btnAccConfSab").button({
        icons: {
            primary: "ui-btn-save"
        }
    }).click(function () {
        var tot = parseFloat($("td#totalSumSaberes").text());
        if (tot == 100) {
            var v = 0, acc = 'new', cod = "", vant;
            dtsPorSab = [];
            $("input#valNewSaber.numValPorSab").each(function (index, element) {
                v = parseFloat($(this).val())
                cod = $(this).attr("aria-id");
                if (isNaN(v)) {
                    if ($(this).attr("aria-acc") == "") {
                        acc = "DEL";
                        dtsPorSab.push({
                            cd: cod,
                            acc: acc
                        });
                    }
                } else {
                    if ($(this).attr("aria-acc") == "") {
                        vant = parseFloat($(this).attr("aria-vant"));
                        if (v != vant) {
                            dtsPorSab.push({
                                cd: cod,
                                v: v,
                                acc: "EDIT"
                            });
                        }
                    } else {
                        dtsPorSab.push({
                            cd: cod,
                            v: v,
                            acc: "NEW"
                        });
                    }
                }
            });
            if ($.isEmptyObject(dtsPorSab)) {
                dgConfugDesem.window("close");
                return false
            }
            var codasixgru = $("#md_n_materias").val();
            var percal = $("#md_n_periodo").val();
            var cdponper = det_periodos[codasixgru][percal]['cdponper'];
            $.ajax({
                type: "POST",
                dataType: "json",
                data: {
                    acc: "cnfSab",
                    datas: dtsPorSab,
                    codasixgru: $("select#md_n_materias").val(),
                    codponxper: cdponper,
                    percal: objPeriodos.val(),
                },
                url: "mod_notas_opt/opera_confgSaberes.php",
                beforeSend: function () {
                    var win = $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_carga_info"],
                        interval: 100,
                    });
                },
                success: function (rta) {
                    dgConfugDesem.window("close");
                    if (rta.error == 0) {
                        notifica_ok(dtsLang["mod_notas"]["msg_rcnf_sabers"]);
                        carga_saberes($("#md_n_materias").val(), $("#md_n_periodo").val());
                        $("div.messager-p-msg").text(dtsLang["globals"]["msg_act_info"])
                        $.messager.progress('close')
                        cargar_list_notasx_estud();
                    } else {
                        $.messager.progress('close')
                        if (rta.error == 'session') {
                            jAlert(dtsLang["globals"]["ses_cad"], dtsLang["globals"]["institucion"], "error", function () {
                                location.reload();
                            });
                        } else {
                            var msg = dtsLang['mod_notas'][rta.error];
                            msg = (msg) ? msg : rta.desc
                            jAlert((msg) ? msg : "Error...", dtsLang["project"]["institucion"], "error");
                        }
                    }
                },
            });
        } else {
            jAlert(dtsLang["mod_notas"]["msg_tot_por"], dtsLang["project"]["institucion"], "error")
        }
    });

    /*---------------------------------------------------------------------------------------------*/

    /*Funcion para calculat el porcentaje total de las notas*/
    function sumPorcenNotas() {
        var sum = 0, val = 0;
        if (notasEquals == 1 || chkPorEqals.is(":checked"))
            igualaPorcentajesNotas();
        $("input[aria-acc!=del].txt_nota").each(function (index, element) {
            val = parseFloat($(this).val());
            val = isNaN(val) ? 0 : val;
            sum += val;
        });
        var color = (sum != 100) ? "#F00" : "#090";
        $("td#totalSumNotas").html(sum).css("color", color);
        if (sum == 100)
            $("td#totalSumNotas").removeClass("error");
        else
            $("td#totalSumNotas").addClass("error");
    }

    /*Funcion para igualar el porcentaje de las notas*/
    function igualaPorcentajesNotas() {
        var numNotas = $("table#contenDgCnfNotas tbody tr:not(.removeNota)").length
        var portj = parseInt(100 / numNotas);
        $("input[aria-acc!=del].txt_nota").each(function (index, element) {
            if (index == numNotas - 1)
                portj = 100 - (portj * (index))
            $(this).val(portj);
        });
        $("td#totalSumNotas").html('100').css("color", "#090").removeClass("error");
    }

    /*Boton para a�adir una nota*/
    $("#addNewNotCnf").button({
        icons: {
            primary: "ui-btn-new"
        },
        text: false
    }).click(function () {

        if ($("table#contenDgCnfNotas tfoot input").hasClass("campos_error") && !chkPorEqals.is(":checked") && !notasEquals == 1) {
            jAlert(dtsLang["globals"]["cmpobl"], dtsLang["project"]["institucion"])
            return false
        } else {
            var id = $("table#contenDgCnfNotas tbody tr").length + 1;
            var cad = "";
            var blqInput = (notasEquals == 1) ? ' disabled readonly ' : '';
            cad += "<tr id='rgnotnew" + id + "' aria-acc='new' aria-idreg='" + id + "'>";
            cad += "<td><input type='text' id='txtnomnota' maxlength='100' value='" + $("textarea#newNotaNombre").val() + "'></td>";
            cad += "<td align='center'><input type='text' id='txtvalnota' class='txt_nota txt_porc' value='" + $("input#newNotavalor").val() + "'></td>";
            cad += "<td align='center'><input type='text' id='txtfecnotanw" + id + "'" + blqInput + "  class='txt_fec txt_fecha' value='" + $("#newNotaFecha").val() + "'></td>";
            cad += "<td><input type='text' id='txtdescnota' value='" + $("#newNotaDesc").val() + "'></td>";
            cad += "<td><button class='delregnota cssbtn' aria-id='rgnotnew" + id + "'>Eliminar</button></td>";
            cad += "</tr>";
            $("table#contenDgCnfNotas tbody").append(cad);
            $("input#newNotaDesc, #newNotaFecha, #newNotaNombre, #newNotavalor").val("").trigger("rvalida");
            $("input#newNotaFecha").val(fecNow);
            $("input[type=text].txt_nota").focusout(function () {
                sumPorcenNotas();
            }).trigger("focusout");

            if (chkPorEqals.is(":checked") || notasEquals == 1)
                igualaPorcentajesNotas();
        }
        $("button.delregnota").button({
            icons: {primary: "ui-btn-del"}, text: false
        });
    });
    //funcion para e�liminar la nota ingresada 
    $("table#contenDgCnfNotas").delegate('button.delregnota', 'click', function () {
        var id = $(this).attr("aria-id");
        var sel = "table#contenDgCnfNotas tbody tr#" + id;
        if ($(sel).attr('aria-acc') == 'new') {
            $(sel).remove()
        } else {
            $(sel).hide().attr("aria-acc", "del").addClass('removeNota');
            $("td#totalSumNotas").html('0').css("color", "#F00");
            $("input.txt_nota", sel).attr("aria-acc", "del").trigger("focusout");
        }
    });

    /*Boton que guarda las notas en la bd*/
    $("#btnAccConfNotas").button({
        icons: {
            primary: "ui-btn-save"
        }
    }).click(function () {
        var tot = parseFloat($("td#totalSumNotas").text());
        var por = null, fec, nom, desc, antpor = null, antfec, antnom, antdesc, acc, cod, cmp = 'nw';
        var tbContenCnfNotas = $("table#contenDgCnfNotas tbody tr:not(.removeNota)");
        if (tbContenCnfNotas.length < numNotasMinxSab) {
            jAlert($.formatMsg(dtsLang["mod_notas"]["msg_num_notasRequired"], numNotasMinxSab), dtsLang["project"]["institucion"], "error")
            return false;
        }
        if (tot != 100 && notasEquals == 0) {
            jAlert(dtsLang["mod_notas"]["msg_tot_porNotas"], dtsLang["project"]["institucion"], "error")
            return false;
        }
        dtsNotas = [];
        $("table#contenDgCnfNotas tbody tr").each(function (index, element) {
            acc = $(this).attr("aria-acc");
            cod = $(this).attr("aria-idreg");
            por = parseFloat($("input#txtvalnota", this).val());
            (acc == 'new') ? cmp = 'nw' : cmp = '';

            fec = $("input#txtfecnota" + cmp + "" + cod, this).val();
            nom = $("input#txtnomnota", this).val();
            desc = $("input#txtdescnota", this).val();

            if (acc == 'new') {
                dtsNotas.push({
                    ac: 'new',
                    v: por,
                    n: nom,
                    f: fec,
                    d: desc
                });
            } else if (acc == 'del') {
                dtsNotas.push({
                    ac: 'del',
                    cd: cod
                });
            } else {
                dtsNotas.push({
                    ac: 'edit',
                    cd: cod,
                    v: por,
                    n: nom,
                    f: fec,
                    d: desc
                });
            }
        });
        if (!$.isEmptyObject(dtsNotas)) {
            var codasixgru = $("#md_n_materias").val();
            var percal = $("#md_n_periodo").val();
            var cdponper = det_periodos[codasixgru][percal]['cdponper'];
            $.ajax({
                type: "POST",
                dataType: "json",
                data: {
                    cdxaxgr: codasixgru,
                    percal: percal,
                    dt: dtsNotas,
                    cod_ponxperxsab: gridTbSabers.getGridParam('selrow'),
                    codponxper: cdponper
                },
                url: "mod_notas_opt/opera_notas.php",
                beforeSend: function () {
                    var win = $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_carga_info"],
                        interval: 100,
                    });
                },
                success: function (rta) {
                    dgConfigNotas.window("close");
                    $("input#newNotaDesc, #newNotaFecha, #newNotaNombre, #newNotavalor").val("").trigger("rvalida");
                    $("input#newNotaFecha").val(fecNow);
                    if (rta.error == 0) {
                        notifica_ok(dtsLang["mod_notas"]["msg_rcnf_sabers"]);
                        $("div.messager-p-msg").text(dtsLang["globals"]["msg_act_info"])
                        $.messager.progress('close')
                        cargar_list_notasx_estud();
                    } else {
                        $.messager.progress('close')
                        if (rta.error == 'session') {
                            jAlert(dtsLang["globals"]["ses_cad"], dtsLang["globals"]["institucion"], "error", function () {
                                location.reload();
                            });
                        } else {
                            var msg = dtsLang['mod_notas'][rta.error];
                            msg = (msg) ? msg : rta.desc
                            jAlert((msg) ? msg : "Error...", dtsLang["project"]["institucion"], "error");
                        }
                    }
                    gridCantNotas.trigger('reloadGrid');

                },
            });
        } else {
            dgConfigNotas.window("close")
        }
    });

    $("#newNotaDesc, #newNotaNombre").valida({
        mincar: 4,
        rulers: 4,
    });

    $("#newNotavalor").valida({
        rulers: 'dec',
        lcapital: true,
        mincar: 1
    });

    var fechaNewNota = $("#newNotaFecha").datepicker({
        changeMonth: true,
    });

    chkPorEqals.change(function () {
        if ($(this).is(":checked")) {
            igualaPorcentajesNotas();
        }
    });

    /*---------------------------------------------------------------------------------------------*/
    var DgDetallesNotas = $("#dialog_detalles").window({
        width: '560',
        height: '500',
        modal: true,
        closed: true,
        collapsible: false,
        minimizable: false,
        maximizable: false,
        resizable: false,
        onOpen: function () {
            convertirToGrid()
        },
    });

    function convertirToGrid() {
        var options = {
            datatype: "local",
            height: 'auto',
        };
        var dtCols = [
            {sortable: false, resizable: false, width: 120},
            {sortable: false, resizable: false, width: 50},
            {sortable: false, resizable: false, width: 100},
            {sortable: false, resizable: false, width: 80},
            {sortable: false, resizable: false, width: 120}
        ];
        $("table[role=detalle_notxest]").each(function (index, element) {
            tableToGrid("#" + $(this).attr('id'), options, dtCols)
        });
    }

    function armar_detalles(fil) {
        $("#tb_detalles tr[role=notas]").remove();
        $("#nom_estDetalle").html("<b>" + dtsrta.infEst[fil].dts.nom + "</b>");
        var dtsnotasgral = dtsrta.infEst[fil].infNots;
        var cont = 0, px = 0, aux = 0, fhr = "", nrec = "", obrec = "";

        $("#obsNotaPeriodo").html(dtsrta.infEst[fil].ndef.obsgrl);

        $.each(dtsrta.infCol, function (ind, dtscols) {
            $cad = '<tr role="notas"><td colspan="2">\
						<div id="nom_saberDetalle" class="tit1">' + dtscols.ns + '</div>\
					   </td>\
				  </tr>\
				  <tr role="notas"><td style="width:20px"></td><td>';
            $cad += '<div class="k-block k-shadow" style="height:auto; width:auto;">\
				<table  role="detalle_notxest" border="1" id="tb_not_det' + ind + '"> \
					<thead>\
						<tr>\
							<th>Nombre Nota</th>\
							<th>Valor</th>\
							<th>Recuperaci\u00F3n</th>\
							<th>Fec. Rec.</th>\
							<th>Observaci\u00F3n</th>\
						</tr>\
					</thead>\
					<tbody></tbody>\
				</table></div>';
            $cad += '</td></tr>';
            $("#tb_detalles:last").append($cad);
            for (var i = 0; i < dtscols.dtn.length; i++) {
                fhr = "", nrec = "", obrec = ""
                if (dtsnotasgral[aux].rec) {
                    nrec = dtsnotasgral[aux].dtsRec.nt;
                    fhr = dtsnotasgral[aux].dtsRec.fr;
                    obrec = dtsnotasgral[aux].dtsRec.ob;
                }
                $("#tb_detalles table:last").append('<tr>\
					<td>' + dtscols.dtn[i].nm + '</td>\
					<td>' + dtsnotasgral[aux].nns + '</td>\
					<td>' + nrec + '</td>\
					<td>' + fhr + '</td>\
					<td>' + obrec + '</td>\
				</tr>')
                aux++;
            }
        });
    }

    function view_detalles() {
        posicion = $(this).attr('data-fil');
        armar_detalles(posicion)
        DgDetallesNotas.window('open').window('hcenter').window('vcenter');
    }

    $("#btnAntDest").button({
        icons: {primary: "ui-icon-seek-prev"},
        text: false
    }).click(function (e) {
        if (posicion > 0) {
            posicion--;
            armar_detalles(posicion)
            convertirToGrid()
        }
    });

    $("#btnSigDest").button({
        icons: {primary: "ui-icon-seek-next"},
        text: false
    }).click(function (e) {
        if (posicion < dtsrta.infEst.length - 1) {
            posicion++;
            armar_detalles(posicion)
            convertirToGrid()
        }
    });

    /*--------------------------------------------------------------------------------------------------------*/
    //formulario de recuperaciones
    winFormRecup.window({
        width: '350',
        height: 'auto',
        modal: true,
        closed: true,
        collapsible: false,
        minimizable: false,
        maximizable: false,
        resizable: false,
        onBeforeClose: function () {
            $("#fecha_rec, #observacion_rec").val("").removeClass("campos_error");
            td_select = null;
        },
        onOpen: function () {
            $("#observacion_rec").focus();
            $("#fecha_rec").datepicker("option", "minDate", $(td_select).attr('aria-fecha'));
        },
    });
    //botones del formulario de recuperaciones
    $("#btnAccDelRecup").button({
        icons: {primary: "ui-btn-del"}
    }).click(function (e) {
        e.preventDefault();
        var elem = $("#nom_saber").data("objInput");
        var fil = elem.attr("data-fil");
        var col = elem.attr("data-col");

        if (!newDtsNotas[fil]) {
            newDtsNotas[fil] = []
            newDtsNotas[fil]['nts'] = []
        }
        if (!newDtsNotas[fil]['nts'][col]) {
            newDtsNotas[fil]['nts'][col] = [];
        }
        var dtsRec = {
            'ac': 'del',
            idr: dtsrta.infEst[fil].infNots[col].cod_calxasixest
        };
        if (elem.data("dtsRec")) {
            elem.removeData("dtsRec");
            newDtsNotas[fil]['nts'][col]['ntrec'] = null;
        }
        if (elem.data("dtlnts").rec) {
            newDtsNotas[fil]['nts'][col]['ntrec'] = dtsRec;
        }


        elem.val(elem.data("dtlnts").nns)

        winFormRecup.window("close");
        elem.removeClass("nota_recuperada").attr('readonly', false)
    });

    $("#btnAccSaveRecup").button({
        icons: {primary: "ui-btn-save"}
    })
        .click(function (e) {
            e.preventDefault();
            var elem = $("#nom_saber").data("objInput");
            var fil = elem.attr("data-fil");
            var col = elem.attr("data-col");
            if (!$("input,textarea", "#frm_not_recupera").hasClass("campos_error")) {
                if ($("#nota_rec").val() == '') {
                    updateTips($("#err_tip"), 'La nota no puede ser vacia')
                    return false
                }
                if (!newDtsNotas[fil]) {
                    newDtsNotas[fil] = []
                    newDtsNotas[fil]['nts'] = []
                }
                if (!newDtsNotas[fil]['nts'][col]) {
                    newDtsNotas[fil]['nts'][col] = [];
                }
                var obs = $.trim($("#observacion_rec").val());
                var dtsRec = {
                    ntr: $("#nota_rec").val(),
                    fnr: $("#fecha_rec").val(),
                    onr: obs.replace(/\n/g, '<br>'),
                    idr: dtsrta.infEst[fil].infNots[col].cod_calxasixest
                };
                newDtsNotas[fil]['nts'][col]['ntrec'] = dtsRec;

                elem.data("dtsRec", dtsRec);

                elem.val($("#nota_rec").val()).addClass("nota_recuperada").focus().trigger("change").attr("readonly", 'readonly');

                winFormRecup.window("close");
            } else {
                updateTips($("#err_tip"), 'Los campos en rojo son obligatorios')
                return false
            }
        });

    $("#btnAccCanRecup").button({
        icons: {primary: "ui-btn-cancel"}
    }).click(function (e) {
        e.preventDefault()
        winFormRecup.window("close");
    });

    /*
        Funcion q determina el tipo de objeto que de se va a insertar para la nota;
    */
    /*---------------------------------------------------------------------------------------------*/
    tipoObjetoNota = function (value, css, col, fil, tabIndex, atributos) {
        var obj = '<input type="text" data-type="input" name="cb_calif" tabindex="' + tabIndex + '" class="cb_notas ' + css + '" size="2" value="' + value + '" ' + atributos + ' data-col="' + col + '" data-fil="' + (fil - 1) + '" >';
        //return obj;


        var obj = '<select name="cb_calif" data-type="select" data-val="' + value + '" tabindex="' + tabIndex + '" class="cb_notas ' + css + '" ' + atributos + ' data-col="' + col + '" data-fil="' + (fil - 1) + '">';
        obj += '<option value="1"  >Pendiente</option>'
        obj += '<option value="2">Basico</option>'
        obj += '<option value="3">Alto</option>'
        obj += '<option value="4">Superior</option>'

        obj += '</select>'
        return obj;

    };

    /*---------------------------------------------------------------------------------------------*/
    /*Funcion para cargar las lista de los estudinates y las notas de cada uno de ellos*/
    cargar_list_notasx_estud = function () {
        var $dt_materia = $("#md_n_materias option:selected").attr('aux').split("|");
        var cadEnc = '';
        var not_min = parseFloat($dt_materia[2]);
        var not_max = parseFloat($dt_materia[3]);

        if (not_max <= 9.9) {
            $("#nota_rec").setMask({mask: "9.9", type: 'reverse', defaultValue: '', autoTab: false});
        } else {
            $("#nota_rec").setMask({mask: "9.99", type: 'reverse', defaultValue: '', autoTab: false});
        }

        $("#nota_rec").focusout(function (e) {
            e.preventDefault();
            var $dt_materia = $("#md_n_materias option:selected").attr('aux').split("|");
            var not_min = parseFloat($dt_materia[2]);
            var not_max = parseFloat($dt_materia[3]);

            var valor = parseFloat($(this).val());
            valor = isNaN(valor) ? 0 : valor;
            if (valor < not_min || valor > not_max) {
                $(this).val('');
            } else {
                $(this).val(valor.toFixed(1))
            }
            return false;
        });

        newDtsNotas = [];
        $.ajax({
            url: 'mod_notas_opt/lista_notasxmaterias2.php',
            type: 'POST',
            dataType: "json",
            error: function (jqXHR, textStatus, errorThrown) {
                jAlert("Error..<br>" + textStatus, dtsLang['project']['institucion'])
            },
            beforeSend: function () {
                $.messager.progress({
                    title: dtsLang["globals"]["tit_msg_espere"],
                    msg: dtsLang["mod_notas"]["msg_carga_calificaciones"],
                    interval: 100,
                });
            },
            data: {
                cod_asixgru: $("#md_n_materias").val(),
                periodo_cal: $("#md_n_periodo").val(),
            },
            success: function (rta) {
                $.messager.progress('close');

                if (rta.error) {
                    $("#contenError").html(rta.error).show();
                    $("#gbox_list_notxest").hide();
                    return false;
                } else {
                    $("#gbox_list_notxest").show();

                    $("#contenError").hide();
                }
                try {
                    dtsrta = rta;
                    nota_pierde = rta.npier;


                    $("tbody tr", tb_contListEst).remove();
                    /*aquei*/
                    $("tbody tr, thead tr", tb_contListNotas).remove();
                    /*QUita los encabezados de las notas*/

                    var enc2 = '';
                    /*cuadro encabezados*/
                    var cont = 1
                    $.each(rta.infCol, function (i, vx) {
                        var tam = 42 * (vx.dtn.length);

                        cadEnc += '<th colspan="' + vx.dtn.length + '" class="ui-fondo-td"><div class="th-head" style="width:' + tam + 'px">' + vx.ns + '</div></th>';
                        $.each(vx.dtn, function (x, r2) {
                            enc2 += '<th title="' + r2.nm + '" data-ns="' + vx.ns + '" width="10px" class="ui-fondo-td">N' + (cont) + '</div></th>';
                            cont++;
                        });
                    });
                    cadEnc = '<tr>' + cadEnc + '</tr>';
                    enc2 = '<tr>' + enc2 + '</tr>';
                    $("thead", tb_contListNotas).append(cadEnc + "" + enc2);

                    //cuadro encabezado de la columna 1 listado de estudiantes + historico

                    var numperiodos = $('option',objPeriodos).length //parseInt(rta.infEst[0]['historicos'].length)
                    console.log("Numperiodos>>",numperiodos);
                    var cadEncPer = "";
                    for (var iper = 1; iper <= numperiodos; iper++) {
                        cadEncPer += '<th class="ui-fondo-td encper">P' + iper + '</th>';

                        if (parseInt(objPeriodos.val()) == iper) {
                            cadFilFinal += '<th class="defmateria">#nf#</th>'
                        } else {
                            cadFilFinal += '<th align="center"></th>';

                        }

                    }

                    $("thead", tb_contListEst).find('.encper').remove()
                    $("thead", tb_contListEst).find('.definitiva').before(cadEncPer)

                    /*Cargo estudiantes*/
                    cadEnc = '';
                    var cadEst = '', cadnot = '';
                    cont = 1;
                    var numEst = rta.infEst.length;
                    var tbInd = 1;

                    var sumfin = 0, cadFilFinal = "";

                    $.each(rta.infEst, function (ind, dtest) {
                        var cls = 'nota_ok', cssbtn = 'ui-btn-add-blue', titlebtn = "A&ntilde;adir observaci&oacute;n";
                        sumfin += parseFloat(dtest.ndef.def_ns);
                        cls = (parseFloat(dtest.ndef.def_ns) <= nota_pierde) ? 'nota_mala' : 'nota_ok';
                        cssbtn = ($.trim(dtest.ndef.obsgrl).length <= 4) ? 'ui-btn-new' : cssbtn;
                        titlebtn = ($.trim(dtest.ndef.obsgrl).length <= 4) ? titlebtn : 'Editar Observaci&oacute;n';

                        cadEst = '<tr id="' + dtest.dts.cd + '"><th class="ui-fondo-td">' + (ind + 1) + '</th><td><div class="nom_est">' + dtest.dts.nom + '</div></td>';
                        cadEst += '<td align="center"><button class="dtobs cssbtn" aria-icon="' + cssbtn + '" title="' + titlebtn + '" data-fil="' + ind + '" data-id="' + dtest.ndef.cd_n_def + '"></button><button class="dtdll cssbtn" title="Ver detalles" data-fil="' + ind + '"></button></td>';

                        //aqui voy 
                        var cnClFn = 0, notDefAnio = 0, css = "", valor, porPeriodo;
                        $.each(dtest.historicos, function (i, v) {
                            valor = isNaN(parseFloat(v)) ? 0 : parseFloat(v);
                            css = (valor <= nota_pierde) ? 'nota_mala' : 'nota_ok';
                            if (parseInt(objPeriodos.val()) == (i + 1)) {
                                cadEst += '<td class="ndf_periodo  ndef per_actual ' + css + '" aria-fil="' + ind + '">' + $.numberFormat(dtest.ndef.def_ns) + '</td>';
                            } else {
                                css = (parseFloat(v) <= nota_pierde) ? 'nota_mala' : 'nota_ok';
                                cadEst += '<td align="center" class="ndf_periodo ' + css + '">' + $.numberFormat(v) + '</td>';
                            }
                            porPeriodo = parseFloat($("option:eq(" + cnClFn + ")", objPeriodos).attr('data-por'));

                            cnClFn++;
                            //   console.log('h '+valor)
                            if (periodosIguales == 0) {
                                notDefAnio = notDefAnio + (valor * porPeriodo) / 100;
                            } else {
                                notDefAnio = notDefAnio + valor;
                            }
                        });
                        if (periodosIguales == 1) {
                            notDefAnio = parseFloat($.numberFormat(notDefAnio, 2)) / cnClFn;
                        }
                        console.log(" - - - " + notDefAnio + " - " + cnClFn);


                        css = (parseFloat(notDefAnio) <= nota_pierde) ? 'nota_mala' : 'nota_ok';
                        cadEst += '<td class="ndefanio ' + css + '">' + $.numberFormat(notDefAnio) + '</td>';
                        cadEst += '</tr>';
                        cadEnc += '';
                        cadnot = '<tr id="' + dtest.dts.cd + '">'

                        $.each(dtest.infNots, function (inot, dtnot) {
                            cls = (parseFloat(dtnot.nns) <= nota_pierde) ? 'nota_mala' : 'nota_ok';
                            cls += (dtnot.rec) ? ' nota_recuperada' : '';
                            b = (dtnot.rec) ? 'readonly="readonly" ' : '';
                            nota = (dtnot.rec) ? dtnot.dtsRec.nt : dtnot.nns;
                            cadnot += '<td>';

                            //cadnot += '<input type="text" name="cb_calif" tabindex="' + tbInd + '" class="cb_notas ' + cls + '" size="2" value="' + nota + '" ' + b + ' data-col="' + inot + '" data-fil="' + (cont - 1) + '" >';
                            cadnot += tipoObjetoNota(nota, cls, inot, cont, tbInd, b);
                            cadnot += '</td>';
                            if (tabular_notas === 'V') {
                                tbInd += tbInd + numEst;
                            } else {
                                tbInd++;
                            }
                        });

                        cadnot += '</tr>';
                        $("tbody", tb_contListEst).append(cadEst);
                        $("tbody", tb_contListNotas).append(cadnot);
                        cont++;
                        if (tabular_notas === 'V') {
                            tbInd = cont;
                        }
                    });
                    sumfin = sumfin / numEst;
                    cadFilFinal = cadFilFinal.replace('#nf#', $.numberFormat(sumfin));
                    cadEst = '<tr><td class="ui-fondo-td">Fn</td><th colspan="2" align="right">Promedio Materia</th>' + cadFilFinal + '</tr>';
                    $("tbody", tb_contListEst).append(cadEst);

                    $("#gbox_list_notxest").height(((28 * cont) + 60)).layout()
                    console.log("nmin: " + not_min + " nMax: " + not_max);
                    $("input.cb_notas,select.cb_notas").cbNotas({
                        idTabla: "#tbNotasEst",
                        notaMin: not_min,
                        notaMax: not_max,
                        nota_pierde: nota_pierde,
                        dtsLista: rta,
                        notasEquals: notasEquals
                    });
                    var btnObs
                    $("button.dtobs").button({
                        create: function (event, ui) {
                            $(this).button("option", "icons", {primary: $(this).attr('aria-icon')});
                        },
                        text: false
                    }).click(view_odbervaciones);

                    $("button.dtdll").button({
                        icons: {
                            primary: "icon-vermas"
                        },
                        text: false
                    }).click(view_detalles);

                } catch (err) {
                    txt = "<h3>Se produjo un error en esta página.</h3>";
                    txt += "<br>Descripción del errror: " + err.message;
                    txt += "<br><br>Si el error continua... contacte al administrador del sistema";
                    $("#contenError").html(txt).show();
                }
            },
        });
    };

    $("#dispUpdates").on({
        "updateNtDef": function (e, pos, val) {
            console.log('Actualizando nota definitiva >>',pos,'Val>',val);

            var n = parseFloat(dtsrta['infEst'][pos]['ndef']['def_ns'])
            var chknt = false;
            if (n != parseFloat(val)) {
                chknt = true
            }
            if (!newDtsFinals[pos]) {
                if (!chknt)
                    return false;
                newDtsFinals[pos] = [];
            }
            newDtsFinals[pos]['ndef'] = val;
            newDtsFinals[pos]['chkndef'] = chknt;
            newDtsFinals[pos]['id'] = dtsrta['infEst'][pos]['ndef']['cd_n_def'];
            newDtsFinals[pos]['obs'] = dtsrta['infEst'][pos]['ndef']['obsgrl'];
            /*calculo la definitiva de la materia*/
            var sum = 0, cont = 0;
            $("td.ndef", tb_contListEst).each(function (index, element) {
                sum += parseFloat($(this).text());
                cont++;
            });

            $("th.defmateria", tb_contListEst).html((sum / cont).toFixed(1));

            //calculo la definitiva que lleva el estudiante
            var ndfanio = 0, valor, porPeriodo = 0,
                cont = 0;
            $("tbody", tb_contListEst).find("tr:eq(" + pos + ") td.ndf_periodo").each(function () {
                valor = isNaN(parseFloat($(this).text())) ? 0 : parseFloat($(this).text());
                porPeriodo = parseFloat($("option:eq(" + cont + ")", objPeriodos).attr('data-por'));
                //  console.log(valor);
                if (periodosIguales == 0) {
                    ndfanio = ndfanio + (valor * porPeriodo) / 100;
                    //          console.log(valor + " - % " + porPeriodo + " t " + ndfanio);
                } else {
                    ndfanio = ndfanio + valor;
                }
                cont++;
            });
            if (periodosIguales == 1) {
                ndfanio = ndfanio / cont;
            }
            //   console.log("Foco 1- " + ndfanio);
            ndfanio = parseFloat($.numberFormat(ndfanio, 2));
            //    console.log("Foco " + ndfanio);
            var css = (ndfanio <= nota_pierde) ? 'nota_mala' : 'nota_ok';

            $("tbody", tb_contListEst).find("tr:eq(" + pos + ") td.ndefanio").html($.numberFormat(ndfanio)).removeClass('nota_mala nota_ok').addClass(css);

        },
        "updateNtsGral": function (e, fil, col, val, id) {
            if (!newDtsNotas[fil]) {
                newDtsNotas[fil] = []
                newDtsNotas[fil]['nts'] = []
            }
            if (!newDtsNotas[fil]['nts'][col]) {
                newDtsNotas[fil]['nts'][col] = [];
            }
            if (dtsrta['infEst'][fil]['infNots'][col]['nns'] != val) {
                newDtsNotas[fil]['nts'][col]['cd'] = id;
                newDtsNotas[fil]['nts'][col]['nt'] = val;
            } else {
                newDtsNotas[fil]['nts'][col]['cd'] = "";
                newDtsNotas[fil]['nts'][col]['nt'] = "";
            }
        },
    });

    function fnSaveDtllNotas() {
        var dtsDatos = {
            final: [],
            notas: [],
            recups: [],
        };
        var cadFinals = '', cadNotas = '', cadRecups = '';

        var id_escala = $("option:selected", objMaterias).attr("aux").split("|")[6];
        $.messager.progress({
            title: dtsLang["globals"]["tit_msg_espere"],
            msg: dtsLang["mod_notas"]["msg_save_calif"],
            interval: 100,
        });
        $.each(newDtsNotas, function (i, dts) {
            if (!dts)
                return true;
            $.each(dts.nts, function (x, dt) {
                if (dt) {
                    if (dt.cd) {
                        cadNotas += dt.cd + "|" + dt.nt + "|";
                        dtsrta.infEst[i].infNots[x].nns = dt.nt;
                    }
                    if (dt.ntrec) {
                        if (dt.ntrec.ac) {
                            dtsDatos.recups.push({
                                id: dt.ntrec.idr,
                            });
                            dtsrta.infEst[i].infNots[x].rec = false;
                            dtsrta.infEst[i].infNots[x].dtsRec = [];
                            cadRecups += dt.ntrec.idr + "|del|||";
                        } else {
                            dtsrta.infEst[i].infNots[x].rec = true;
                            dtsrta.infEst[i].infNots[x].dtsRec = {
                                fr: dt.ntrec.fnr,
                                nt: dt.ntrec.ntr,
                                ob: dt.ntrec.onr,
                                cd: dt.ntrec.idr
                            };
                            cadRecups += dt.ntrec.idr + "|" + dt.ntrec.ntr + "|" + dt.ntrec.fnr + "|" + dt.ntrec.onr + "|";
                        }
                    }
                }
            });
        });

        $.each(newDtsFinals, function (fi, dtf) {
            if (dtf) {
                dtsrta.infEst[fi].ndef = {
                    cd_n_def: dtf.id,
                    def_ns: dtf.ndef,
                    obsgrl: dtf.obs,
                };
                cadFinals += dtf.id + "|" + dtf.ndef + "|" + dtf.obs + "|";
            }
        });
        if (cadFinals.length < 2 && cadRecups.length < 2 && cadNotas.length < 2) {
            $.messager.progress('close');
            notifica_ok("No hay notas para guardar", 3000);
            return false;
        }
        dtsDatos.final = cadFinals;
        dtsDatos.recups = cadRecups;
        dtsDatos.notas = cadNotas;

        $.ajax({
            url: 'mod_notas_opt/opera_calificaciones.php',
            type: "POST",
            data: {dt: dtsDatos, escala: id_escala},
            success: function (r) {
                modulo = "md_notas";
                $.messager.progress('close');
                try {
                    rta = $.parseJSON(r);
                    if (rta['error'] != 0) {
                        if (rta['error'] == 'session') {
                            modulo = 'global'
                        }
                        jAlert(rta['desc'], "Academia", "error", function () {
                            if (rta['error'] == 'session') {
                                location.reload();
                            }
                            cargar_list_notasx_estud();
                        });
                    } else {
                        notifica_ok("Se actualizo el registro de notas ", 3000);
                        newDtsFinals = [];
                        newDtsNotas = [];
                        //cargar_list_notasx_estud();
                    }
                } catch (err) {
                    txt = "Hubo un error en esta p�gina.\n\n";
                    txt += "Descripcion del error: " + err.message + "\n\n";
                    txt += "Haga clic en Aceptar para continuar.\n\n";
                    alert(txt);
                }
            }
        });
    }

    $(document).ready(function (e) {
        var perm = "", newedtsab = 0;
        $("#panelConfigNotasDoc").panel();
        $("#panelConfigNotasDoc2").panel();
        $("#dgConfigDesem").css("display", 'block');
        $("#gbox_list_notxest").layout();
        $("#btnSaveDtllNotas").length
        objSedes = $("#md_n_txtsedes");
        objJornada = $("#md_n_txtjornadas");
        objGrupos = $("#md_n_txtgrupo");
        objMaterias = $("#md_n_materias");
        objPeriodos = $("#md_n_periodo");
        dtsConfig = $("input#dtsConfig").data();
        isDoc = dtsConfig['tpus'];
        cod_docente = dtsConfig['cddc'];
        notasEquals = parseInt(dtsConfig['neqals']);
        periodosIguales = parseInt(dtsConfig['perigulaes']);
        console.log("Peridos iguales: " + periodosIguales);
        console.log(dtsConfig);
        fecNow = dtsConfig['fch'];
        perm = dtsConfig['perm'];
        newedtsab = parseInt(dtsConfig['newedtsab']);
        tabular_notas = (!dtsConfig['tabular_notas']) ? 'V' : dtsConfig['tabular_notas'];

        var verPor = (notasEquals == 1) ? true : false;
        var tam = (notasEquals == 1) ? (140 + 80) : 140;

        $("input[type=number].txt_nota").valida({
            rulers: 'dec',
            lcapital: true,
            mincar: 0
        });

        $("#fecha_rec").datepicker({
            onSelect: function () {
                $(this).trigger('keyup');
            },
            maxDate: 0,
            changeMonth: true,
        }).valida({tipo: 'f'});

        $("#menuNotas").splitbutton({
            iconCls: 'ui-btn-pdf',
            menu: '#mm2',
        });

        gridTbSabers = $("#list_tb_saberes").jqGrid({
            datatype: "local",
            height: 88,
            colNames: ['id', 'Nombre', 'Porcentaje', '', '', ''],
            pager: "pager_tb_saberes",
            colModel: [
                {name: 'id', index: 'id', width: 5, key: true, hidden: true},
                {name: 'nombre', index: 'nombre', width: tam, sortable: false, resizable: false},
                {name: 'porcentage', index: 'porcentage', width: 80, sortable: false, resizable: false, hidden: verPor},
                {name: 'ayuda', index: 'ayuda', width: 25, sortable: false, resizable: false},
                {name: 'minnotas', index: 'minnotas', width: 25, hidden: true},
                {name: 'accnotas', index: 'accnotas', width: 25, hidden: true},
            ],
            caption: "DESEMPE&Ntilde;OS - SABERES",
            pgbuttons: false,
            pginput: false,
            onSelectRow: function (rowid) {
                if (rowid) {
                    var dtsSel = gridTbSabers.getRowData(rowid);
                    numNotasMinxSab = parseInt(dtsSel.minnotas)
                    if (parseInt(dtsSel.accnotas) == 0) {
                        $("#newEdtNotas").hide();
                    } else {
                        $("#newEdtNotas").show();
                    }
                    $("#list_cant_notas").jqGrid('setGridParam', {
                        postData: {
                            codigo: rowid,
                        },
                        page: 1,
                        datatype: 'json'
                    }).trigger('reloadGrid');
                }
            }
        });
        //quito los botones por defecto de la grilla
        jQuery("#list_tb_saberes").jqGrid('navGrid', '#pager_tb_saberes', {
            edit: false,
            add: false,
            del: false,
            refresh: false,
            search: false
        }, {}, {}, {}, {multipleSearch: true});

        if (newedtsab === 1) {
            newBottonGrid($("#list_tb_saberes"), {
                pag: '#pager_tb_saberes',
                title: 'Editar',
                caption: 'Editar',
                id: 'newEdt',
                buttonicon: 'ui-btn-edit',
                onClickButton: function () {
                    var tam, sum = 0, n = 0;
                    if ($.isArray(dtsSaberes['dtsGrid'])) {
                        tam = dtsSaberes['dtsGrid'].length
                        for (var x = 0; x < tam; x++) {
                            n = parseInt(dtsSaberes['dtsGrid'][x]['porcentage'])
                            n = isNaN(n) ? 0 : n;
                            sum = sum + n;
                            $("table#contenDgCnfDes tbody").append("<tr><td>" + dtsSaberes['dtsGrid'][x]['nombre'] + "</td><td><input aria-id='" + dtsSaberes['dtsGrid'][x]['id'] + "' class='numValPorSab' type='number' aria-acc='' id='valNewSaber' aria-vant='" + dtsSaberes['dtsGrid'][x]['porcentage'] + "' value='" + dtsSaberes['dtsGrid'][x]['porcentage'] + "' size='3'/></td></tr>");
                        }
                        $("#totalSumSaberes").text(sum);
                    }
                    if ($.isArray(dtsSaberes['dtsSabers'])) {
                        tam = dtsSaberes['dtsSabers'].length;
                        $("select#cbCnSaberes option").empty().remove();
                        for (var i = 0; i < tam; i++) {
                            $("select#cbCnSaberes").append("<option value='" + dtsSaberes['dtsSabers'][i]['cd_sab'] + "'>" + dtsSaberes['dtsSabers'][i]['nom_sab'] + "</option>");
                        }
                    }
                    dgConfugDesem.window('open').window('hcenter').window('vcenter');
                },
            });
        }


        /*--------------------------------------------------------------------------------------*/
        // grilla de la cantidad de  notas por saber

        var tam = (notasEquals == 1) ? (207 + 107) : 207;

        gridCantNotas = $("#list_cant_notas").jqGrid({
            caption: dtsLang['mod_notas']['titgrconfignot'],
            height: 88, //tama�o  alto de la grilla
            width: 613,
            url: 'mod_notas_opt/cargar_cantidad_notas_xsaberxasig.php',
            datatype: "local",
            rowNum: 30,
            hidegrid: false,
            pager: '#pag_cant_notas',
            sortname: 'num_nota',
            viewrecords: false,
            sortorder: "asc",
            rownumbers: true,
            pgbuttons: false,
            pginput: false,
            editurl: 'mod_notas_opt/opera_vacio.php',
            colNames: ['', 'Nombre', 'Porcentaje', 'Fecha', 'Descripcion'],
            colModel: [
                {name: "idreg", index: "idreg", sortable: false, editable: false, resizable: false, hidden: true},
                {
                    name: 'txt_nom_nota',
                    index: 'txt_nom_nota',
                    sortable: false,
                    editable: true,
                    width: 111,
                    resizable: false,
                    classes: 'campos'
                },
                {
                    name: 'txt_por_nota',
                    index: 'txt_por_nota',
                    sortable: false,
                    editable: true,
                    width: 107,
                    resizable: false,
                    classes: 'campos',
                    hidden: verPor
                },
                {
                    name: 'txt_fecha_nota',
                    index: 'txt_fecha_nota',
                    sortable: false,
                    editable: true,
                    width: 84,
                    resizable: false,
                    classes: 'campos'
                },
                {
                    name: 'txt_det_nota',
                    index: 'txt_det_nota',
                    sortable: false,
                    editable: true,
                    width: tam,
                    classes: 'campos',
                    resizable: false
                },
            ],
            scrollrows: true,
        });
        gridCantNotas.navGrid('#pag_cant_notas', {
            edit: false,
            add: false,
            del: false,
            refresh: false,
            search: false
        }, {}, {}, {}, {multipleSearch: true});

        if (perm.search('M') > -1 && perm.search('A') > -1) {
            newBottonGrid($("#list_cant_notas"), {
                pag: '#pag_cant_notas',
                title: 'Editar',
                caption: 'Editar',
                id: 'newEdtNotas',
                buttonicon: 'ui-btn-edit',
                onClickButton: function () {
                    var tam, sum = 0, n = 0, cad = "";
                    var dtsInGrid = null;
                    dtsInGrid = $("#list_cant_notas").getRowData()
                    if (!$.isEmptyObject(dtsInGrid)) {
                        tam = dtsInGrid.length;
                        var blqInput = (notasEquals == 1) ? ' disabled readonly ' : '';
                        for (var x = 0; x < tam; x++) {
                            cad = "";
                            n = parseInt(dtsInGrid[x]['txt_por_nota'])
                            n = isNaN(n) ? 0 : n;
                            sum = sum + n;
                            cad += "<tr id='rgnot" + dtsInGrid[x]['idreg'] + "' aria-idreg='" + dtsInGrid[x]['idreg'] + "'>";
                            cad += "<td align='center'><input type='text' id='txtnomnota' aria-vant='" + dtsInGrid[x]['txt_nom_nota'] + "' value=\"" + dtsInGrid[x]['txt_nom_nota'] + "\"></td>";
                            cad += "<td align='center'><input type='text' id='txtvalnota'" + blqInput + " aria-vant='" + dtsInGrid[x]['txt_por_nota'] + "' class='txt_nota txt_porc' value='" + dtsInGrid[x]['txt_por_nota'] + "'></td>";
                            cad += "<td align='center'><input type='text' id='txtfecnota" + dtsInGrid[x]['idreg'] + "' aria-vant='" + dtsInGrid[x]['txt_fecha_nota'] + "' class='txt_fec txt_fecha' value='" + dtsInGrid[x]['txt_fecha_nota'] + "'></td>";
                            cad += "<td align='center'><input type='text' id='txtdescnota' aria-vant='" + dtsInGrid[x]['txt_det_nota'] + "' value='" + dtsInGrid[x]['txt_det_nota'] + "'></td>";
                            cad += "<td align='center'><button class='delregnota cssbtn' aria-id='rgnot" + dtsInGrid[x]['idreg'] + "'>Eliminar</button></td>";
                            cad += "</tr>";
                            $("table#contenDgCnfNotas tbody").append(cad);
                        }
                        $("button.delregnota").button({
                            icons: {primary: "ui-btn-del"}, text: false
                        });

                        dgConfigNotas.window('open').window('hcenter').window('vcenter');
                        $("input[type=text].txt_nota").focusout(function () {
                            sumPorcenNotas();
                        })
                        $("td#totalSumNotas").html(sum);

                        $("input.txt_fec").datepicker({
                            minDate: fecMin,
                            maxDate: fecMax,
                            changeMonth: true,
                        });

                        $("input[type=text].txt_nota").valida({
                            rulers: 'dec',
                            lcapital: true,
                            mincar: 0
                        })
                    }
                },
            });
        }

        /*-------------------------------------------------------*/
        if (btnSaveDtllNotas.length > 0) {
            btnSaveDtllNotas.on("click", fnSaveDtllNotas);
        }

        /*cargo los datos de los combos*/
        objSedes.change(function () {
            cd_sede = $(this).val();
            if ($.trim(cod_docente).length == 0) {
                cdcn = "a28";
                cnd = cd_sede + "|";
            } else {
                cdcn = "a25"
                cnd = cod_docente + "|" + cd_sede;
            }
            $.ajax({
                type: "POST",
                url: "includes/cargar_selec_normal.php",
                data: {cod_cnds: cnd, codigo: cdcn, mopc: '0'},
                beforeSend: function () {
                    $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_load_jornadas"],
                        interval: 100,
                    });
                },
                success: function (dt) {
                    $("#md_n_txtjornadas").html(dt);
                    $.messager.progress('close');
                    $("#md_n_txtjornadas").trigger("change");
                },
            });
        });

        objJornada.change(function () {
            var jor = $(this).val();
            $.ajax({
                type: "POST",
                url: "mod_notas_opt/cargar_select_grupos.php",
                data: {sede: $("#md_n_txtsedes").val(), jornada: jor},
                beforeSend: function () {
                    $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_load_grupos"],
                        interval: 100,
                    });
                },
                success: function (rta) {
                    $("#md_n_txtgrupo").html(rta);
                    $.messager.progress('close');
                    $("#md_n_txtgrupo").trigger("change");
                }
            });
        });

        objGrupos.change(function () {
            cd_grupo = $(this).val();
            $("#nomGrupo").text($("option:selected", this).parent()[0].label)
            if ($.trim(cod_docente).length == 0) {
                cdcn = "a29";
                cnd = cd_grupo + "|";
            } else {
                cdcn = "a26"
                cnd = cd_grupo + "|" + cod_docente;
            }
            $.ajax({
                type: "POST",
                url: "includes/cargar_selec_normal.php",
                data: {cod_cnds: cnd, codigo: cdcn, mopc: '0', cmp_aux: 1},
                beforeSend: function () {
                    $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_load_materias"],
                        interval: 100,
                    });
                },
                success: function (dt) {
                    $("#md_n_materias").html(dt);
                    $.messager.progress('close');
                    $.ajax({
                        url: "mod_notas_opt/inf_det_periodo.php",
                        async: false,
                        data: {cod_gr: cd_grupo, codigo_dc: cod_docente},
                        beforeSend: function () {
                            $.messager.progress({
                                title: dtsLang["globals"]["tit_msg_espere"],
                                msg: dtsLang["globals"]["msg_carga_info"],
                                interval: 100,
                            });
                        },
                        type: "POST",
                        success: function (r) {
                            det_periodos = $.parseJSON(r);
                            $.messager.progress('close');
                            $("#md_n_materias").trigger("change");
                        }
                    })

                },
            });
        })

        objMaterias.change(function () {
            cd_asixgrup = $(this).val();
            datos = $("option:selected", this).attr("aux").split("|");
            fecMin = datos[4];
            fecMax = datos[5];
            fechaNewNota.datepicker("option", {
                "maxDate": fecMax,
                "minDate": fecMin
            });
            $.get('mod_notas_opt/info_escala_valoracion.php', {cd: cd_asixgrup}, function (dt) {
                $("#infoEscala").html('ESCALA DE VALORACION:   &nbsp;    ' + dt);
            });

            $.ajax({
                type: "POST",
                url: "mod_notas_opt/cargar_select_periodos.php",
                data: {cod_cnds: cd_asixgrup},
                beforeSend: function () {
                    $.messager.progress({
                        title: dtsLang["globals"]["tit_msg_espere"],
                        msg: dtsLang["globals"]["msg_load_periodos"],
                        interval: 100,
                    });
                },
                success: function (dt) {
                    est_p = det_periodos[cd_asixgrup]
                    $("select#md_n_periodo").html(dt)

                    $("select#md_n_periodo option").each(function (index, element) {
                        $(this).attr("data-est", est_p[$(this).val()]['est'])
                    });
                    $("select#md_n_periodo option[data-est=1]").attr("selected", true);
                    $.messager.progress('close');
                    $("select#md_n_periodo").trigger("change");
                    $("#tipo_evaluacion").html(datos[0]);

                },
            });
        });

        objPeriodos.change(function () {
            var estado = $("option:selected", objGrupos).attr("aria-estado");
            if ($("option:selected", this).attr("data-est") == '1' && estado == '0') {
                btnSaveDtllNotas.show();
                $("#newEdtNotas").show()
            } else {
                btnSaveDtllNotas.hide();
                $("#newEdtNotas").hide()
            }
            $("#list_cant_notas").clearGridData();
            carga_saberes($("#md_n_materias").val(), $(this).val());
            cargar_list_notasx_estud()
            //dataSourceLogros.read();
            //cargarLogros(); // ojo
            cargarCompetencias()

        });

        objSedes.trigger("change");

        /*Codigo para la confguracion de los desempe�os o saberes*/
        dgConfugDesem = $("#dgConfigDesem").window({
            /*Ventana para realizar las operaciones de add edt del*/
            width: 'auto',
            height: 'auto',
            modal: true,
            closed: true,
            collapsible: false,
            minimizable: false,
            maximizable: false,
            resizable: false,
            onBeforeClose: function () {
                $("table#contenDgCnfDes tbody tr").remove().empty()
                $("input#valNewSaber.numValPorSab").remove().empty()
            },
            onOpen: function () {
                $("input[type=number].numValPorSab").focusout(function () {
                    sumPorcenSaberes();
                });
                $("input[type=number].numValPorSab, #newNumValPorSab").valida({
                    rulers: 3,
                    mincar: 0,
                    lcapital: false,
                });
            },
        });

        /* Codigo para configuracion de notas*/
        $("#dgConfigNotas").css("display", 'block');
        dgConfigNotas = $("#dgConfigNotas").window({
            width: 'auto',
            height: 'auto',
            modal: true,
            closed: true,
            collapsible: false,
            minimizable: false,
            maximizable: false,
            resizable: true,
            onBeforeClose: function () {
                $("table#contenDgCnfNotas tbody tr").remove().empty()
                chkPorEqals.attr("checked", false);
            },
        });

    });
});