function rutDarFormato() {
    $('#txt_rut').val(darformatoRut($('#txt_rut').val()));
}

$(document).ready(function() {
    var v_hoy = new Date();
    $("#txt_filtroFecha").datetimepicker({
        locale: 'es',
        format: "dd-mm-yyyy",
        autoclose: true,
        todayBtn: true,
        minView: 2,
        pickerPosition: "bottom",
        startDate: "01-01-2020",
        endDate: v_hoy
    });
    $('#txt_rut').keyup(function () {
		rutDarFormato();
	});
    cabeceraCargar();

    $("#md_modal_reservaTarea_frm").validate({
        rules: {
            md_modal_reservaTarea_txt_justificacion: {
                required: true
            }
        },
        submitHandler: function(form) {
            gestionReservasAnularRechazarConfirmar();
        },
        highlight: function(element) {
            $(element).closest('div').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block'
    });

    $.validator.addMethod("validarReservaPreviaCantidad", function(value, element) {
        let txtCantidad = $('#txt_cantidad');
        if( txtCantidad.val().length == 0 ) {
            return true;
        }
        txtCantidad     = parseInt(txtCantidad.val());
        
        if( tipoCargaMax == 51 || tipoCargaMax == 38250 ) {
            return true;
        }
        return ( txtCantidad <= tipoCargaMax );
	}, function(value, element) { 
        return tipoCarga + ': Máximo ' + tipoCargaMax;
    });

    $("#md_modal_reservaGestionar_frm").validate({
        rules: {
            cmb_cliente: {
                required: true
            },
            txt_rutCliente: {
                required: true
            },
            txt_nombreCliente: {
                required: true
            },
            txt_rut: {
                required: true
            },
            txt_nombre: {
                required: true
            },
            txt_numero: {
                required: true
            },
            cmb_tipoCarga: {
                required: true
            },
            txt_cantidad: {
                required: true,
                validarReservaPreviaCantidad : true
            }
        },
        submitHandler: function(form) {
            reservaGestionarGuardar();
        },
        highlight: function(element) {
            $(element).closest('div').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block'
    });

    $("#md_modal_reservaCerrar_frm").validate({
        rules: {
            md_modal_reservaCerrar_txt_justificacion: {
                required: true
            }
        },
        submitHandler: function(form) {
            gestionReservasCerrarConfirmar();
        },
        highlight: function(element) {
            $(element).closest('div').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block'
    });
    
    $("#md_modal_reservaConfirmar_frm").validate({
        rules: {
            md_modal_reservaConfirmar_txt_justificacion: {
                required: true
            }
        },
        submitHandler: function(form) {
            gestionReservasConfirmarConfirmar();
        },
        highlight: function(element) {
            $(element).closest('div').addClass('has-error');
        },
        unhighlight: function(element) {
            $(element).closest('div').removeClass('has-error');
        },
        errorElement: 'span',
        errorClass: 'help-block'
    });
});

function cabeceraCargar() {
    $.ajax({
        url: 'gestionReservasCabeceraCargar-ajax.php',
        success: function(data) {
            $("#tableContent").html(data).fadeIn('slow');
            let filtroFecha  = $('#txt_filtroFecha').val();
            let filtroBodega = $('#cmb_filtroBodega').val();
            let cantidad = filtroFecha.length + filtroBodega.length;
            if( cantidad > 0 ) {
                gestionReservasCargarInformacion();
            }
        },
        error: function(msg) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información');
        },
        complete: function() {
        }
    })
}

function cabeceraFiltroAplicar() {
    var v_bodega        = $( '#cmb_filtroBodega' ).val();
    var v_fecha         = $( '#txt_filtroFecha' ).val();

    $.ajax( {
        type: 'post',
        dataType: "json",
        url: 'gestionReservasFiltroCargar-ajax.php',
        data: {
            bodega         : v_bodega,
            fecha          : v_fecha
        },
        success: function( msg ) {
            if ( msg.sesion ) {
                cerrar_sesion();
            } else if ( msg.success ) {
                gestionReservasCargarInformacion();
            }
        },
        error: function( msg ) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información');
        }
    } );
}

function gestionReservasCargarInformacion() {

    $.ajax( {
        type: 'post',
        url: 'gestionReservasRecuperarRegistros-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        success: function( msg ) {
            $( '#div_gestionReservasinformacion' ).html( msg );
            gestionReservasNuevaClienteChange()
            $('#divCliente').hide();
        },
        error: function( msg ) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información');
        },
        complete: function() {
            ocultar_blockUI();
        }
    } );
}

function gestionReservasVerInformacion( reservaId ) {
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarInformacionLectura-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            reservaId: reservaId
        },
        success: function(data) {
            $("#md_modal_reservaVerInformacion_div_informacion").html(data).fadeIn('slow');
            $('#md_modal_reservaVerInformacion').modal('show');

        },
        complete: function() {
            ocultar_blockUI();
        }
    })
}

function gestionReservasAnularRechazar( titulo, reservaId, tarea, accion, titulo, token ) {
    $('#md_modal_reservaTarea_txt_justificacion').val('');
    $('#md_modal_reservaTarea_txt_token').val(token);
    $('#md_modal_reservaTarea_txt_id').val(reservaId);
    $('#md_modal_reservaTarea_txt_titulo').val(titulo);
    $('#md_modal_reservaTarea_txt_tarea').val(tarea);
    $('#md_modal_reservaTarea_txt_accion').val(accion);
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarInformacionLectura-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            reservaId: reservaId
        },
        success: function(data) {

            $("#md_modal_reservaTareaTitulo").html(titulo);
            $("#md_modal_reservaTarea_div_informacion").html(data);
            $("#md_modal_reservaTarea_btn_anular").hide();
            $("#md_modal_reservaTarea_btn_rechazar").hide();
            if( tarea == 'Aprobar' ) {
                $("#md_modal_reservaTarea_btn_anular").show();
            } else if( tarea == 'Rechazar' ) {
                $("#md_modal_reservaTarea_btn_rechazar").show();
            } else if( tarea == 'Anular' ) {
                $("#md_modal_reservaTarea_btn_anular").show();
            }
            $('#md_modal_reservaTarea').modal('show');

        },
        complete: function() {
            ocultar_blockUI();
        }
    })
}

function gestionReservasAnularRechazarConfirmar() {
    let titulo      = $('#md_modal_reservaTarea_txt_titulo').val();
    let reservaId   = $('#md_modal_reservaTarea_txt_id').val();
    let tarea       = $('#md_modal_reservaTarea_txt_tarea').val();

    $('#md_modal_reservaTarea').modal('hide');

    modalConfirmarMostrar(tarea + ' reserva', '¿' + titulo + '?',
                            gestionReservasAnularRechazarProceder, reservaId, tarea);

}


function gestionReservasAnularRechazarProceder() {

    $.ajax({
        type: 'post',
        url: 'gestionReservasAnularRechazarGuardar-ajax.php',
        dataType: 'json',
        beforeSend: function() {
            modalConfirmarOcultar();
            mostrar_blockUI();
        },
        data: $("#md_modal_reservaTarea_frm").serialize(),
        success: function(msg) {
            if (msg.success) {
                cabeceraFiltroAplicar();
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            } else {
                //$('#md_modal_reservaTarea').modal('hide');
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            }
        },
        error: function(msg) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información' );
        },
        complete: function() {
            ocultar_blockUI();
        }
    });
}

// CERRAR RESERVAS
function gestionReservasConfirmar( titulo, reservaId, titulo1, token ) {
    $('#md_modal_reservaConfirmar_txt_justificacion').val('');
    $('#md_modal_reservaConfirmar_txt_token').val(token);
    $('#md_modal_reservaConfirmar_txt_id').val(reservaId);
    $('#md_modal_reservaConfirmar_txt_titulo').val(titulo1);
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarInformacionLectura-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            reservaId: reservaId
        },
        success: function(data) {

            $("#md_modal_reservaConfirmarTitulo").html(titulo);
            $("#md_modal_reservaConfirmar_div_informacion").html(data);
            $("#md_modal_reservaConfirmar_btn_anular").hide();
            $("#md_modal_reservaConfirmar_btn_rechazar").hide();
            $('#md_modal_reservaConfirmar').modal('show');

        },
        complete: function() {
            ocultar_blockUI();
        }
    })
}

function gestionReservasConfirmarModificar() {
    let reservaId    = $('#md_modal_reservaConfirmar_txt_id').val();
    let reservaToken = $('#md_modal_reservaConfirmar_txt_token').val();
    
    redireccionar('gestionReservasModificar.php?p='+reservaId+'&t='+reservaToken);

}

function gestionReservasConfirmarConfirmar() {
    let titulo      = $('#md_modal_reservaConfirmar_txt_titulo').val();
    let reservaId   = $('#md_modal_reservaConfirmar_txt_id').val();

    $('#md_modal_reservaConfirmar').modal('hide');

    modalConfirmarMostrar('Confirmar reserva', '¿Está seguro de ' + titulo + '?',
                            gestionReservasConfirmarProceder, reservaId);

}


function gestionReservasConfirmarProceder() {

    modalConfirmarOcultar();
    $.ajax({
        type: 'post',
        url: 'gestionReservasConfirmarGuardar-ajax.php',
        dataType: 'json',
        beforeSend: function() {

            mostrar_blockUI();
        },
        async: false,
        data: $("#md_modal_reservaConfirmar_frm").serialize(),
        success: function(msg) {
            if (msg.success) {
                cabeceraFiltroAplicar();
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            } else {
                //$('#md_modal_reservaTarea').modal('hide');
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            }
        },
        error: function(msg) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información' );
        },
        complete: function() {
            ocultar_blockUI();
        }
    });
}

// CERRAR RESERVAS
function gestionReservasCerrar( titulo, reservaId, titulo1, token ) {
    $('#md_modal_reservaCerrar_txt_justificacion').val('');
    $('#md_modal_reservaCerrar_txt_token').val(token);
    $('#md_modal_reservaCerrar_txt_id').val(reservaId);
    $('#md_modal_reservaCerrar_txt_titulo').val(titulo1);
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarInformacionLectura-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            reservaId: reservaId
        },
        success: function(data) {

            $("#md_modal_reservaCerrarTitulo").html(titulo);
            $("#md_modal_reservaCerrar_div_informacion").html(data);
            $("#md_modal_reservaCerrar_btn_anular").hide();
            $("#md_modal_reservaCerrar_btn_rechazar").hide();
            $('#md_modal_reservaCerrar').modal('show');

        },
        complete: function() {
            ocultar_blockUI();
        }
    })
}

function gestionReservasCerrarConfirmar() {
    let titulo      = $('#md_modal_reservaCerrar_txt_titulo').val();
    let reservaId   = $('#md_modal_reservaCerrar_txt_id').val();

    $('#md_modal_reservaCerrar').modal('hide');

    modalConfirmarMostrar('Cerrar reserva', '¿Está seguro de ' + titulo + '?',
                            gestionReservasCerrarProceder, reservaId);

}


function gestionReservasCerrarProceder() {

    modalConfirmarOcultar();
    $.ajax({
        type: 'post',
        url: 'gestionReservasCerrarGuardar-ajax.php',
        dataType: 'json',
        beforeSend: function() {

            mostrar_blockUI();
        },
        async: false,
        data: $("#md_modal_reservaCerrar_frm").serialize(),
        success: function(msg) {
            if (msg.success) {
                cabeceraFiltroAplicar();
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            } else {
                //$('#md_modal_reservaTarea').modal('hide');
                modalMensajeMostrar( 'Continuar', msg.mensaje);
            }
        },
        error: function(msg) {
            modalMensajeMostrar( 'Error', 'No se pudo cargar la información' );
        },
        complete: function() {
            ocultar_blockUI();
        }
    });
}

/*
function solicitaCerrarReserva(par1, par2) {
    $.ajax({
        url: 'gestionReservasCerrarRecuperar-ajax.php?par1=' + par1,
        success: function(data) {
            solicitaReservaInformacionResumen(par1);
            $("#divCerrarReserva").html(data).fadeIn('slow');
            $('#md_modal_cerrarReserva').modal('show');

        }
    })
}

function solicitaBuscarCliente() {

    $.ajax({
        url: 'gestionReservasBuscarClienteRecuperar-ajax.php',
        success: function(data) {

            $("#divBuscarCliente").html(data).fadeIn('slow');
            $('#md_modal_buscarCliente').modal('show');

        }
    })

}

function solicitaReservaRecuperar(par1, par2, par3) {

    redireccionar('gestionReservasRecuperar.php?par1='+par1+'&par1='+par2+'&par3='+par3);

}



















function solicita_anular_hora(par1, par2) {

    $('#md_modal_horas').modal('hide');

    $('#md_modal_confirmar_lbl_mensaje').text('');

    $('#md_modal_confirmar_txt_id').val(par1);
    $('#md_modal_confirmar_titulo').text('Anular hora');
    $('#md_modal_confirmar_div_contenido').html('¿Está seguro de anular la reserva de hora <b>' + par2 + '</b>?');
    $('#md_modal_confirmar_btn_aceptar').unbind()
    $('#md_modal_confirmar_btn_aceptar').click(anular_hora);
    // $('#md_modal_confirmar_btn_cancelar').unbind()
    // $('#md_modal_confirmar_btn_cancelar').click(mostrar_solicitar_hora);
    $('#md_modal_confirmar').modal('show');

}


// function mostrar_solicitar_hora() {
//     $('#md_modal_horas').modal('show');
// }

function anular_hora() {

    var v_par1 = $('#md_modal_confirmar_txt_id').val();


    $.ajax({
        type: 'post',
        url: 'misreservas_anular_guardar-ajax.php',
        data: {
            par1: v_par1
        },
        dataType: 'json',
        beforeSend: function() {
            //$('#md_modal_confirmar').modal('hide');
            mostrar_blockUI();
        },
        success: function(msg) {

            if (msg.success) {

                gestionReservasCargarInformacion();
                $('#md_modal_confirmar').modal('hide');
                modalMensajeMostrar('Anular hora', 'La hora fue anulada correctamente.');

            } else {

                // $('#md_modal_confirmar').modal('show');
                $('#md_modal_confirmar_lbl_mensaje').text(msg.mensaje);

            }
        },
        error: function(msg) {

            // $('#md_modal_confirmar').modal('show');
            $('#md_modal_confirmar_lbl_mensaje').text('No se pudo anular la hora');

        },
        complete: function() {
            ocultar_blockUI();
        }

    });

}
*/





function gestionReservasNuevaClienteChange() {
    let clienteControl = $('#cmb_cliente');
    let clienteId      = clienteControl.val();
    if( clienteId != null ) {
        $('#txt_clienteId').val(clienteId);
        clienteControl.prop( "disabled", true );
        let txtCantidad = $('#cmb_cliente');
        txtCantidad.valid();
        gestionarReservasNuevaTipoCliente(clienteId[0])
    } else {
        $('#txt_clienteId').val('');
        clienteControl.prop( "disabled", false );
    }
}

function gestionarReservasNuevaTipoCliente( clienteId ) {
    let token = $('#txt_clienteToken').val();
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarRegistrosFormTipoCliente-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            token     : token,
            clienteId : clienteId
        },
        success: function(data) {
            $("#div_tipo").html(data);
            gestionReservasClienteTipoChange();
        },
        complete: function() {
            ocultar_blockUI();
        }
    })
}

function gestionReservaNuevaModalVer() {
    let fecha = $('#txt_filtroFecha').val();
    $('#txt_reservaFecha').val(fecha);
    $('#md_modal_reservaGestionar').modal('show');
}

function gestionReservaNuevaModalOcultar() {
    $('#md_modal_reservaGestionar').modal('hide');
}

function gestionReservasNueva( token, puertaId, bloqueId, cantidadBloquesLibres ) {
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarRegistrosFormNueva-ajax.php',
        beforeSend: function() {
            mostrar_blockUI();
        },
        data: {
            token                : token,
            puertaId             : puertaId,
            bloqueId             : bloqueId,
            cantidadBloquesLibres: cantidadBloquesLibres
        },
        success: function(data) {
            $("#md_modal_reservaGestionar_div_informacion").html(data);
            gestionReservasTipoCargaChange()
            $('#divCliente').hide();
            $('#span_txt_nombreCliente').hide();
            $('#span_txt_nombre').hide();
            gestionReservaNuevaModalVer();   
        },
        complete: function() {
            ocultar_blockUI();
        }
    })

}

// DELETE: Función en comunes 
// function cargarNombreCliente() {
//     let clienteControl = $('#cmb_cliente');
//     let clienteId      = clienteControl.val();
//     $('#txt_persCliId').val('');
//     $('#txt_nombreCliente').val('');
//     if( clienteId != null ) {
//         clienteId = clienteId[0];
//         let v_rutClie = $('#txt_rutCliente').val();
//         if( v_rutClie.length > 0 ) {
//             $.ajax({
//                 type: 'post',
//                 url: 'gestionReservasClienteCargar-ajax.php',
//                 data: {
//                     par1: clienteId,
//                     par2: v_rutClie
//                 },
//                 dataType: 'json',
//                 beforeSend: function(){
//                     $('#span_txt_nombreCliente').show();
//                 },
//                 success: function(data) {
//                     $('#txt_nombreCliente').val(data.nombre);
//                     if( data.encontrado ) {
//                         $('#txt_persCliId').val(data.id);
//                     } else {
//                         $('#txt_persCliId').val('');
//                         $('#txt_rutCliente').val('');
//                     }
//                 },
//                 error: function(msg) {
//                     modalMensajeMostrar('Recuperar Información', 'No se pudo cargar la información del Cliente');
//                 },
//                 complete: function() {
//                     $('#span_txt_nombreCliente').hide();
//                 }
//             })
//         }
//     }
// }

function reservaGestionarGuardar() {
    // gestionReservaNuevaModalOcultar();
    $.ajax({
        type: 'post',
        url: 'gestionReservasRecuperarRegistrosFormNuevaGuardar-ajax.php',
        dataType: 'json',
        beforeSend: function() {
            gestionReservaNuevaModalOcultar();
            mostrar_blockUI();
        },
        // async: false,
        data: $("#md_modal_reservaGestionar_frm").serialize(),
        success: function(msg) {
            if (msg.success) {
                modalMensajeMostrar( 'Continuar', msg.mensaje, cabeceraFiltroAplicar);
            } else { 
                modalMensajeMostrar( 'Continuar', msg.mensaje, gestionReservaNuevaModalVer );
            }
        },
        error: function(msg) {
            modalMensajeMostrar( 'Error', 'No se pudo guardar la información', gestionReservaNuevaModalVer );
        },
        complete: function() {
            ocultar_blockUI();
        }
    });
}