var operacion = "";
$(document).ready(
		function(){
			inicial();
		});

function inicial(){
	reiniciaTabla();
	cargaInformacionTabla();
	$("table thead tr").addClass("encabezado");
}

function reiniciaTabla(){		
	$('#divTablaIn').remove();
	var div = '<div id="divTablaIn"></div>';
	$('#divTablaExt').append(div);
	var tabla = $("<table class='table table-striped'/>").attr('id',"tablaGrupoEstudio");       
	$("#divTablaIn").append(tabla);	
}

function cargaInformacionTabla() {
    // Obtener numero de menu
    var menu = $("#pmn").val();
    var menuRegreso = $("#pmnReturn").val();
    var namespace = "/catalogos/estudios/index";
    
    var rowId = null;
    var oTable = null;
    
    oTable = $('#tablaGrupoEstudio').DataTable({		    
        autoWidth: false,
        language: {	
            processing: "Procesando...",
            lengthMenu: "Mostrar _MENU_ registros",
            zeroRecords: "Sin eventos encontrados",
            emptyTable: "Sin eventos encontrados",
            info: "Mostrando _START_ al _END_ de _TOTAL_",
            infoEmpty: "0 registros",
            infoFiltered: "(filtrado de un total de _MAX_ registros)",
            search: "Buscar:",
            thousands: ",",
            loadingRecords: "Cargando...",
            paginate: {
                first: "Primero",
                last: "&Uacute;ltimo",
                next: "Siguiente",
                previous: "Anterior"
            }
        },
        pageLength: 10,
        info: false,
        filter: true,
        ordering: false,
        paging: true,
        pagingType: "full_numbers",
        order: [],
        ajax: {
            url: "obtenerInfoGrupos",
            dataSrc: ""
        },
        columns: [
            { title: "Descripcion", data: "descripcionGrupo", searchable: true, width: "400px" },
            { title: "Estatus", data: "estatus", searchable: true, width: "400px" },
            { title: "Orden", data: "orden", searchable: true, width: "400px" },
            { title: "Mostrar contratos ocultos", data: "colapsa", searchable: true, width: "400px" }
        ],
        rowCallback: function(row, data, index) {
            var link = '<a onClick="guardaIdGrupo(' + data["idGrupo"] + ')" data-bs-toggle="modal" data-bs-target="#modalAgregaActualiza">' + data["descripcionGrupo"] + '</a>';
            $('td:eq(0)', row).html(link);
            
            $('td:eq(1)', row).html(data["estatus"] == 0 ? "Inactivo" : "Activo");
            
            var palomeado = data["colapsa"] == 1 ? 'checked' : '';
            
            $('td:eq(3)', row).html('<input type="checkbox" ' + palomeado + ' disabled>');
        }
    });
}


function callActionAjax(actionRoute, jsonActionParameter, functionProcessor){
	
	 $.ajax({
	     url: contextPath + actionRoute,
	     type: 'POST',
	     data:  jsonActionParameter, 
		 dataType: "json",
	     success:function(response){ 
	    	 functionProcessor(response);    
	     },
	     error:function(jqXhr, textStatus, errorThrown){
	         showError("Problemas al enviar los datos.");
	     }
	 });
	
}

function guardaIdGrupo(idGrupo) {
	operacion = "Actualiza";
	$('#inpEstatus').find('option').remove();
	llamaObtenGrupo(idGrupo);
	$("#modHeader").text(operacion + " grupo");
	
}

function defineOperacion(oper) {
	operacion = oper;
	$("#modHeader").text(operacion + " grupo");
	$('#inpIdGrupo').val('');
	$('#inpDescripcion').val('');
	$('#inpOrden').val('');
	$('#inpEstatus').find('option').remove();
	
	if(operacion == 'Crea') {
		$("#inpEstatus").append('<option value=1 >Activo</option>');
		$("#inpEstatus").append('<option value=0 >Inactivo</option>');
	}
	
	$( "#inpColapsa" ).prop( "checked", false );

}

function procesaRespuestaObtenGrupo(jsonData) {
	var gru = jsonData.grupo;
	$("#modHeader").text(operacion + " grupo");
	$('#inpIdGrupo').val(gru.idGrupo);
	$('#inpDescripcion').val(gru.descripcionGrupo);
	
	if(gru.estatus == 1){
		$("#inpEstatus").append('<option value=1 >Activo</option>');
		$("#inpEstatus").append('<option value=0 >Inactivo</option>');
	}else {
		$("#inpEstatus").append('<option value=0 >Inactivo</option>');
		$("#inpEstatus").append('<option value=1 >Activo</option>');
	}
	
	if(gru.colapsa != 0 && gru.colapsa != null && gru.colapsa != undefined ){
		$( "#inpColapsa" ).prop( "checked", true );
		$( "#inpColapsa" ).val(1);
	}else {
		$( "#inpColapsa" ).prop( "checked", false);
		$( "#inpColapsa" ).val(0);
	}
	
	if(gru.esEditable == 0){
		$('#inpDescripcion').prop( "disabled", true );
		$("#inpEstatus").prop( "disabled", true );
		$("#inpColapsa").prop( "disabled", true );
		$('#inpOrden').prop( "disabled", true );
	}else {
		$('#inpDescripcion').prop( "disabled", false );
		$("#inpEstatus").prop( "disabled", false );
		$("#inpColapsa").prop( "disabled", false );
		$('#inpOrden').prop( "disabled", false );
	}
	
	$('#inpOrden').val(gru.orden);
}

function llamaObtenGrupo(idGrupo) {
	var jsonString = '{"idGrupo" : "'+ idGrupo +'"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax( "/catalogos/grupos/llamaObtenGrupo", stringJson, procesaRespuestaObtenGrupo);
}

function procesaRespuestaRegistraActualiza(jsonData) {
	
	if(operacion == "Actualiza") {
		$('#modalAgregaActualiza').modal('hide');
		showMessage("Actualizado con \u00E9xito");
	}else {
		$('#modalAgregaActualiza').modal('hide');
		showMessage("Creado con \u00E9xito");
	}
	
	inicial();
}

function llamaRegistraActualiza() {
	var jsonString = '{"idGrupo" : "'+ $('#inpIdGrupo').val() + '", "descripcion" : "' + $('#inpDescripcion').val() + '", "estatus" : "' + $('#inpEstatus').val() + '", "colapsa" : "' + $('#inpColapsa').val() + '", "orden" : "' + $('#inpOrden').val() + '", "operacion" : "' + operacion +'"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax( "/catalogos/grupos/llamaRegistraActualiza", stringJson, procesaRespuestaRegistraActualiza);
}

function cambiaValorCheck(){
	
	if($( "#inpColapsa" ).val() == 1) {
		$( "#inpColapsa" ).val(0);
	}else {
		$( "#inpColapsa" ).val(1);
	}
}