const inputIdentificacion = document.getElementById("identificacion");
const inputTipoDoc = document.getElementById("tipodoc");
const formulario = document.getElementById("socio_form");
bsCustomFileInput.init();

const validarCedula = (cedula) => {
    try {
        var auxCedula = cedula;
        if (auxCedula.length !== 10) {
            return false;
        }
        var primeros2 = +auxCedula.substr(0, 2);
        if (primeros2 < 1 || primeros2 > 24) {
            return false;
        }
        var digitoVerificador = +auxCedula.split("").slice(-1);
        var coeficientes_1 = [2, 1, 2, 1, 2, 1, 2, 1, 2];
        var sumaT = auxCedula
            .substr(0, 9)
            .split("")
            .reduce(function (p, c, i) {
                var aux = 0;
                var mult = +c * coeficientes_1[i];
                aux = mult > 9 ? mult - 9 : mult;
                return p + aux;
            }, 0);
        var residuo = sumaT % 10;
        return residuo === 0 ?
            digitoVerificador === 0 :
            10 - residuo === digitoVerificador;
    } catch (error) {
        return false;
    }
};
const validarRuc = (ruc) => {
    if (ruc.length == 13) {
        if (ruc.substring(10, 13) == "001") {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
};
const validarIdentificacion = (e) => {
    if (inputTipoDoc.value == "C" && e.target.value.length >= 1) {
        const respuesta = validarCedula(e.target.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    } else if (inputTipoDoc.value == "R" && e.target.value.length >= 1) {
        const respuesta = validarRuc(e.target.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    }
};
const validarIdentificacionSelect = (e) => {
    if (e.target.value == "C" && inputIdentificacion.value.length >= 10) {
        const respuesta = validarCedula(inputIdentificacion.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    } else if (
        e.target.value == "R" &&
        inputIdentificacion.value.length >= 10
    ) {
        const respuesta = validarRuc(inputIdentificacion.value);
        if (!respuesta) {
            document
                .querySelector(`#grupo__usuario .formulario__input-error`)
                .classList.add("formulario__input-error-activo");
        } else {
            document
                .querySelector("#grupo__usuario .formulario__input-error")
                .classList.remove("formulario__input-error-activo");
        }
    }
};
const validacionGeneral = (tipo = "C") => {
    console.log(tipo);
    console.log(inputIdentificacion.value.length);
    if (tipo == "C" && inputIdentificacion.value.length >= 0) {
        const respuesta = validarCedula(inputIdentificacion.value);
        if (!respuesta) {
            return false;
        }
    } else if (tipo == "R" && inputIdentificacion.value.length >= 0) {
        const respuesta = validarRuc(inputIdentificacion.value);
        if (!respuesta) {
            return false;
        }
    } else {
        return false;
    }
    return true;
};

function DeshabilitaDatosSocios(valor){
    if(valor){
        document.getElementById("identificacion").readOnly = true;
        document.getElementById("nombre").readOnly = true;
        document.getElementById("apellido").readOnly = true;
        document.getElementById("fechanacimiento").readOnly = true;
        $('#tipodoc').attr('disabled', true);
        $('#sexo').attr('disabled', true);
        $('#nacionalidad').attr('disabled', true);
    }else{
        document.getElementById("identificacion").readOnly = false;
        document.getElementById("nombre").readOnly = false;
        document.getElementById("apellido").readOnly = false;        
        document.getElementById("fechanacimiento").readOnly = false;
        $('#tipodoc').attr('disabled', false);
        $('#sexo').attr('disabled', false);
        $('#nacionalidad').attr('disabled', false);
    }
    

}

//ocultar documentos reportes
function OcultaDocumentos() {
    var x = document.getElementById("card_reports_socio");
    var id = parseInt(document.getElementById("id_socio").value);
console.log('id '+id);
    if (x.style.display === "none") {

        if(id > 0){
            x.style.display = "block";    
        }

    } else {
        if(id == 0){
            x.style.display = "none";    
        }
        
    }
}
OcultaDocumentos();

inputIdentificacion.addEventListener("keyup", validarIdentificacion);
inputTipoDoc.addEventListener("change", validarIdentificacionSelect);
$("form#socio_form").submit(function (e) {
    e.preventDefault();
    MostrarLoader();
    DeshabilitaDatosSocios(false);
    // validacion de camposdocument.getElementById("edad").value = parseInt(diffDays);
    const edad = document.getElementById("edad").value;
    const validado = validacionGeneral(inputTipoDoc.value);
    console.log(validado);
    if (!validado) {
        OcultarLoader();
        toastr.error("Ingrese un numero de identificación valido.!!");
    } else {
        if (edad < 18) {
            OcultarLoader();
            toastr.error("Debe se mayor de edad!!");
        } else {
            const formData = new FormData(this);
            jQuery.each(jQuery("#socio_form")[0].files, function (i, file) {
                formData.append("file-" + i, file);
            });
            $.ajax({
                url: "/mantenimiento/crearsocio",
                type: "POST",
                data: formData,
                success: function (data) {
                    OcultarLoader();
                    if (data.status == "ok") {
                        toastr.success(data.message);
                        document.getElementById("id_socio").value = 0;
                        OcultaDocumentos(); 
                        setTimeout(function() {
                            location.reload();
                        }, 1000);
                    } else {
                        toastr.error(data.message);
                    }
                },
                cache: false,
                contentType: false,
                processData: false,
            });
        }
    }
});

document.getElementById("id_socio").value = 0;

$('[data-mask]').inputmask()
//PLACA
// Initialize InputMask
$('input').inputmask();

$("#fechanacimiento").change(function () {
    const diffDays = dameAnio();
    document.getElementById("edad").value = parseInt(diffDays);
});
const dameAnio = () => {
    const inputfecha = document.getElementById("fechanacimiento").value;
    const date1 = new Date(inputfecha);
    const date2 = new Date();
    const diffDays =
        parseInt(date2.getFullYear()) - parseInt(date1.getFullYear());
    return diffDays;
};
function CargarBusqueda() {
    $('#tblBuscarVehiculos').DataTable({
        "processing": true,
        "destroy": true,
        "serverSide": true,
        "responsive": true,
        "lengthChange": false,
        "autoWidth": false,
        "select": true,
        "buttons": ['copy', 'csv', 'excel', 'print', {
            extend: 'pdfHtml5',
            exportOptions: {
                modifier: {
                    page: 'current'
                }
            },
            text: 'PDF',
            filename: 'socios',
            pageSize: 'A4',
            'title': 'socios',
            className: 'btn btn-danger',
            titleAttr: 'socios',
            orientation: 'landscape',

        }],
        //"ajax": "{{ url('/buscarVehiculos') }}",
        "ajax": {
            'url': 'buscarSocios', 'headers': {
                'Content-Type': 'application/json',
                "X-CSRF-Token": $("meta[name='csrf-token']").attr("content")
            }
        },
        "columns": [{
            data: 'id_ente'
        },
        {
            data: 'num_docum_iden'
        },
        {
            data: 'p_primer_nombre'
        },
        {
            data: 'p_primer_apellido'
        },
        {
            data: 'activo'
        },
        {
            data: 'p_estado_civil',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_nacionalidad',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_telefono',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_celular',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_fecha_nacimiento',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_sexo',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_correo',
            visible: false,
            searchable: false,
        },
        {
            data: 'p_direccion',
            visible: false,
            searchable: false,
        },
        {
            data: 'observacion',
            visible: false,
            searchable: false,
        },
        {
            data: 'tipolicencia',
            visible: false,
            searchable: false,
        },

        ],
        "language": {
            "lengthMenu": "Mostrar _MENU_ registros por página",
            "zeroRecords": "No se encontró nada - lo siento",
            "info": "Mostrando la página _PAGE_ de _PAGES_",
            "infoEmpty": "No hay registros disponibles",
            "infoFiltered": "(filtrado de _MAX_ registros totales)",
            "search": "Buscar Socio:",
            "paginate": {
                "previous": "Anterior",
                "next": "siguiente"
            }
        },

    }).buttons().container().appendTo('#tblBuscarVehiculos_wrapper .col-md-6:eq(0)');

    var table = $('#tblBuscarVehiculos').DataTable();
    $('#tblBuscarVehiculos tbody').on('click', 'tr', function () {
        var row = table.row(this).data();
        CargarDatosSelect(row);
    });

}

CargarBusqueda();


function CargarBusquedaSocio() {
    var table = $('#tblBuscarVehiculos').DataTable();
    table.ajax.reload();

    $("#modal-xl").modal('show');

    $('#tblBuscarVehiculos').DataTable({
        "destroy": true,
        "retrieve": true,
        "buttons": ['copy', 'csv', 'excel', 'pdf', 'print'],
    }).buttons().container().appendTo('#tblBuscarVehiculos_wrapper .col-md-6:eq(0)');

}

function CargarDatosSelect(item) {
    document.getElementById("id_socio").value = item.id_ente;
    document.getElementById("identificacion").value = item.num_docum_iden;
    document.getElementById("nombre").value = item.p_primer_nombre;
    document.getElementById("apellido").value = item.p_primer_apellido;
    $("#nacionalidad").val(item.p_nacionalidad).change();
    $("#estadocivil").val(item.p_estado_civil).change();
    document.getElementById("telefono").value = item.p_telefono;
    document.getElementById("celular").value = item.p_celular;
    document.getElementById("fechanacimiento").value = format2(item.p_fecha_nacimiento);
    $("#sexo").val(item.p_sexo).change();
    document.getElementById("correo").value = item.p_correo;
    document.getElementById("direccion").value = item.p_direccion;
    document.getElementById("observacion").value = item.observacion;
    $("#idtipolicencia").val(item.tipolicencia).change();
    $("#estado").val(item.activo).change();
    const date1 = new Date(format2(item.p_fecha_nacimiento));
    const date2 = new Date();
    const diffDays =
        parseInt(date2.getFullYear()) - parseInt(date1.getFullYear());
    document.getElementById("edad").value = diffDays;
    $("#modal-xl").modal('hide');
    //CambiarBotonGuardar();
    // setTimeout(function() {
    //     $("#modelo").val(item.IdModelo).change();
    // }, 500);
    OcultaDocumentos();
    DeshabilitaDatosSocios(true);
}

function format(inputDate) {
    let fecha = new Date(inputDate);
    let date, month, year;

    date = fecha.getDate() + 1;
    month = fecha.getMonth() + 1;
    year = fecha.getFullYear();

    date = date
        .toString()
        .padStart(2, '0');

    month = month
        .toString()
        .padStart(2, '0');

    return `${date}/${month}/${year}`;
}
function format2(inputDate) {
    let fecha = new Date(inputDate);
    let date, month, year;

    date = fecha.getDate();
    month = fecha.getMonth() + 1;
    year = fecha.getFullYear();

    date = date
        .toString()
        .padStart(2, '0');

    month = month
        .toString()
        .padStart(2, '0');

    return `${year}-${month}-${date}`;
}

//const Limpiar = () => formulario.reset(); OcultaDocumentos();
const Limpiar = () => {
    document.getElementById("id_socio").value = 0;
    formulario.reset(); 
    OcultaDocumentos();
    DeshabilitaDatosSocios(false);
}



function check(e) {
    tecla = (document.all) ? e.keyCode : e.which;

    //Tecla de retroceso para borrar, siempre la permite
    if (tecla == 8) {
        return true;
    }

    // Patrón de entrada, en este caso solo acepta letras
    patron = /[A-Za-zÑñ ]/;
    //patron = /[A-Za-z0-9]/;para letras y numeros
    tecla_final = String.fromCharCode(tecla);
    return patron.test(tecla_final);
}