$(document).ready(function() {
    'use strict';
});

//var datum = 'https://datum.redsaludleoncioprado.gob.pe';
var datum = 'http://localhost:81/datum/public';

$('#applicantForm').on('submit', applicantFormSubmit);
$('#verifyIdentityDocumentForm').on('submit', verifyIdentityDocumentFormSubmit);
$('#identity-document').on('change', function () {
    if ($('#identity-document').val() !== '1') {
        personInfoComponents(true);

        //Mostramos el mensaje
        Snackbar.show({
            text: 'Ha seleccionado un tipo de documento diferente al DNI (Documento Nacional de Identidad), en caso de que el tipo de documento no sea adjuntado o especificado en el archivo queda automáticamente descalificado sin lugar a reclamo. Asegúrese de seleccionar el documento de identidad que disponga.',
            pos: 'bottom-center',
            showAction: false,
            actionText: "Dismiss",
            duration: 15000,
            textColor: '#fff',
            backgroundColor: '#ff5722'
        });
    }
    else
        personInfoComponents(false);
});

$('#verifyApplicantForm').on('submit', verifyApplicantFormSubmit);

function show(job) {
    var id = $(job).data('id');
    var url = $('meta[name="url"]').attr('content');

    $.ajax({
        url: url + '/convocatorias/' + id + '/archivos',
        success: function (data) {
            //Estableciendo datos para el modal
            $("#files-content").html(data);
            //$("#small-dialog-1").modal("show");
            //$('#roleForm').data('row', $(role).closest("tr"));
            //$('#roleForm').on('submit', roleFormSubmit);
        }
    });
}

function search(type) {

    var year = $('#year').val();
    var month = $('#month').val();
    var status = $('#status').val();
    var url = $('meta[name="url"]').attr('content');



    $.ajax({
        url: url + '/' + type + '/' + year + '/' + month + '/' + status,
        beforeSend: function(){
            $('#search-btn').html('<i class="icon-line-awesome-spinner spinner"></i> Buscar').prop('disabled', true);
        },
        success: function (data) {
            //Estableciendo datos para el modal
            $(".basic-table").remove();
            $("#results").append(data);

            $('.popup-with-zoom-anim').magnificPopup({
                type: 'inline',

                fixedContentPos: false,
                fixedBgPos: true,

                overflowY: 'auto',

                closeBtnInside: true,
                preloader: false,

                midClick: true,
                removalDelay: 300,
                mainClass: 'my-mfp-zoom-in'
            });
        },
        complete: function () {
            $('#search-btn').html('<i class="icon-feather-search"></i> Buscar').prop('disabled', false);
        }
    });
}

function validatingIdentityDocument()
{
    if ($("#document-number").val().length >= 8) {

        var idIdentityDocument = $('#identity-document').val();
        var documentNumber = $('#document-number').val();

        if (idIdentityDocument === '1') {
            //searchDNI(documentNumber);
            $("#identity-document-verify").val('DNI' + '|' + documentNumber);
            $("#validating-modal").modal("show");
            $("#last-name-verify").val('').focus();
            personInfoComponents(false);
        }
    } else {
        var valid = $('#document-number').data('valid');
        if(valid)
            clearPersonInfo();
    }
}

function verifyIdentityDocumentFormSubmit() {
    event.preventDefault();
    var url = $("#verifyIdentityDocumentForm").data('url');
    var formData = new FormData(document.getElementById('verifyIdentityDocumentForm'));

    $.ajax({
        url: url,
        data: formData,
        method: 'POST',
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        beforeSend: function(){
            $('#validating-modal button[type="submit"]').prop('disabled', true);
            $('#validating-modal button[type="submit"] i').attr("class", "icon-line-awesome-spinner spinner");
        },
        success: function (response) {

            $("#validating-modal").modal("hide");
            
            if(response.validation) {
                // Borramos el container
                $('#document-number').data('valid', true);
                $("#name").val(response.data['name']);
                $("#paternal-last-name").val(response.data['paternal_last_name']);
                $("#maternal-last-name").val(response.data['maternal_last_name']);

                //$("#validating-modal").modal("hide");

                //Mostramos el mensaje
                Snackbar.show({
                    text: response['message'],
                    pos: 'bottom-center',
                    showAction: false,
                    actionText: "Dismiss",
                    duration: 3000,
                    textColor: '#fff',
                    backgroundColor: '#4caf50'
                });
            } else {
                clearForm();
                
                Snackbar.show({
                    text: response.message,
                    pos: 'bottom-center',
                    showAction: false,
                    actionText: "Dismiss",
                    duration: 3000,
                    textColor: '#fff',
                    backgroundColor: '#ff5722'
                });
            }
            
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {

            var err = JSON.parse(XMLHttpRequest.responseText);
            var text;

            if(err.error && err.message) {
                text = err.message;
            } else {
                var li = '';
                $.each(err.errors, function(i, item) {
                    li += '<li>' + item[0] + '</li>\n';
                });
                text = '<ul>\n' + li + '</ul>';
            }

            personInfoComponents(true);
			$('#document-number').data('valid', true);
            $("#validating-modal").modal("hide");

            Snackbar.show({
                text: text,
                pos: 'bottom-center',
                showAction: false,
                actionText: "Dismiss",
                duration: 3000,
                textColor: '#fff',
                backgroundColor: '#f00'
            });
        },
        complete: function () {
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");
        }
    });
}

function searchPerson() {
    if ($("#document-number").val().length >= 8) {
        /*alert('Longitud adecuada!');*/

        var idIdentityDocument = $('#identity-document').val();
        var documentNumber = $('#document-number').val();
        var job = $('#job').val();
        var url = $('meta[name="url"]').attr('content');


        // Se consulta si la persona ya fue intervenida
        $.ajax({
            url: url + '/convocatorias/' + job + '/buscar/' + idIdentityDocument + '/' + documentNumber,
            contentType: "application/json",
            dataType: 'json',
            success: function(data) {
                //
                $.ajax({
                    url: datum + '/persona/' + idIdentityDocument + '/' + documentNumber,
                    contentType: "application/json",
                    dataType: 'json',
                    beforeSend: function(){
                        $('label[for="document-number"]').html('Documento de Identidad <i class="icon-line-awesome-spinner spinner"></i>');
                    },
                    success: function (person) {
                        if (person.length !== 0) {
                            personComponents(false);
                            $("#person-id").val(person.id);
                            $("#name").val(person.name);
                            $("#paternal-last-name").val(person.paternal_last_name);
                            $("#maternal-last-name").val(person.maternal_last_name);
                            if(person.sex === 'M')
                                $("#sex").val('Masculino');
                            else if (person.sex === 'F')
                                $("#sex").val('Femenino');
                            $("#birthdate").val(yyyymmdd2ddmmyyyy(person.birthdate));
                        } else {
                            //Validamos para buscar en el servicio
                            if (idIdentityDocument === '1') {
                                searchDNI(documentNumber);
                            } else {
                                personComponents(true);
                            }
                        }
                    },
                    complete: function(){
                        $('label[for="document-number"]').html('Documento de Identidad');
                    }
                });
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                var err = JSON.parse(XMLHttpRequest.responseText);
                Snackbar.show({
                    text: err.message,
                    pos: 'bottom-center',
                    showAction: false,
                    actionText: "Dismiss",
                    duration: 3000,
                    textColor: '#fff',
                    backgroundColor: '#f00'
                });
            }
        });
    }
    else {
        if ($("#document-number").val().length < 8)
            personComponents(true);
    }
}

function searchDNI() {
    var documentNumber = $('#document-number').val();

    $.ajax({
        url: 'http://localhost:81/essalud/service.php',
        //url: 'http://antarys.redsaludleoncioprado.gob.pe/essalud/service.php',
        headers: {'Access-Control-Allow-Origin': '*'},
        data: {dni: documentNumber},
        type: 'GET',
        contentType: "application/json",
        dataType: 'json',
        beforeSend: function(){
            $('label[for="document-number"]').html('Documento de Identidad <i class="icon-line-awesome-spinner spinner"></i>');
        },
        success: function (data) {
            data = JSON.parse(data);
            if (data.length !== 0) {
                personComponents(false);
                $("#name").val(data.DatosPerson[0].Nombres);
                $("#paternal-last-name").val(data.DatosPerson[0].ApellidoPaterno);
                $("#maternal-last-name").val(data.DatosPerson[0].ApellidoMaterno);
                //$("#marital-status").val(person.marital_status.id).trigger('change');
                if(data.DatosPerson[0].Sexo == "2")
                    $("#sex").val('Masculino');
                if(data.DatosPerson[0].Sexo == "3")
                    $("#sex").val('Femenino');
                $("#birthdate").val(data.DatosPerson[0].FechaNacimiento);
            } else {
                personComponents(true);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $.ajax({
                //url: 'https://app.regionhuanuco.gob.pe/soap/soap_pruebas/reniec.php?cdni=' + documentNumber,
                url: 'http://servicio.fitcoders.com/v1/all?service=DNI&id=' + documentNumber + '&key=5b8e0a07c0307c1e5a5c55cb',
                type: 'GET',
                contentType: "application/json",
                dataType: 'json',
                beforeSend: function () {
                    $('label[for="document-number"]').html('Documento de Identidad <i class="icon-spinner2 spinner"></i>');
                },
                success: function (data) {
                    //data = JSON.parse(data);
                    if (data.length !== 0) {
                        personComponents(false);
                        $("#name").val(data.item.nombre);
                        $("#paternal-last-name").val(data.item.paterno);
                        $("#maternal-last-name").val(data.item.materno);
                    } else {
                        personComponents(true);
                    }

                    $.jGrowl('Por favor ingrese el sexo y fecha de nacimiento, para continuar con el registro.', {
                        header: '¡PROBLEMAS EN EL SERVICIO!',
                        life: 10000,
                        theme: 'bg-warning'
                    });
                }
            });
        },
        complete: function(){
            $('label[for="document-number"]').html('Documento de Identidad');
        }
    });
}

function clearPersonInfo() {
    $("#name").val('');
    $("#paternal-last-name").val('');
    $("#maternal-last-name").val('');
}

function personInfoComponents(value) {
    //Clear all components
    clearPersonInfo();

    $("#name").prop('readonly', !value);
    $("#paternal-last-name").prop('readonly', !value);
    $("#maternal-last-name").prop('readonly', !value);
}

function clearForm() {
    $("#document-number").val('');
    $("#name").val('');
    $("#paternal-last-name").val('');
    $("#maternal-last-name").val('');
    /*$("#sex").val('');
    $("#birthdate").val('');
    $("#available-position").val('');
    $("#address").val('');
    $("#email").val('');
    $("#telephone").val('');
    $("#file").val('');
    $("#acceptance").val('');*/
}

function personComponents(value) {
    //Clear all components
    clearForm();

    $("#name").prop('readonly', !value);
    $("#paternal-last-name").prop('readonly', !value);
    $("#maternal-last-name").prop('readonly', !value);
    /*$("#sex").prop('disabled', !value);
    $("#sex").selectpicker('refresh');
    $("#birthdate").prop('disabled', !value);
    $("#available-position").prop('disabled', !value);
    $("#available-position").selectpicker('refresh');
    $("#address").prop('disabled', !value);
    $("#email").prop('disabled', !value);
    $("#telephone").prop('disabled', !value);
    $("#file").prop('disabled', !value);
    $("#acceptance").prop('disabled', !value);*/
    $(":button[type='submit']").prop('disabled', !value);
}

function applicantFormSubmit() {
    event.preventDefault();
    var url = $("#applicantForm").data('url');
    var formData = new FormData(document.getElementById('applicantForm'));

    $.ajax({
        url: url,
        data: formData,
        method: 'POST',
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        beforeSend: function(){
            $('button[type="submit"]').prop('disabled', true);
            $('button[type="submit"] i').attr("class", "icon-line-awesome-spinner spinner");
        },
        success: function (data) {
            // Borramos el container
            $("div .container .components").html('').append(data);
            // Scroll to top
            $(window).scrollTop(0);
            //Mostramos el mensaje
            //window.location.replace($('meta[name="url"]').attr('content') + '/convocatoria/registrado');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            //
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");

            //
            var err = JSON.parse(XMLHttpRequest.responseText);
            var text;

            if(err.error && err.message) {
                text = err.message;
            } else {
                var li = '';
                $.each(err.errors, function(i, item) {
                    li += '<li>' + item[0] + '</li>\n';
                });
                text = '<ul>\n' + li + '</ul>';
            }

            Snackbar.show({
                text: text,
                pos: 'bottom-center',
                showAction: false,
                actionText: "Dismiss",
                duration: 3000,
                textColor: '#fff',
                backgroundColor: '#f00'
            });
        },
        complete: function () {
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");
        }
    });
}

function verifyApplicantFormSubmit() {
    event.preventDefault();
    var url = $("#verifyApplicantForm").data('url');
    var formData = new FormData(document.getElementById('verifyApplicantForm'));

    $.ajax({
        url: url,
        data: formData,
        method: 'POST',
        enctype: 'multipart/form-data',
        contentType: false,
        processData: false,
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        beforeSend: function(){
            $('button[type="submit"]').prop('disabled', true);
            $('button[type="submit"] i').attr("class", "icon-line-awesome-spinner spinner");
        },
        success: function (data) {
            // Borramos el container
            $("div .container .components").html('').append(data);
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");
            $('#applicantForm').on('submit', applicantFormSubmit);

            // Scroll to top
            $(window).scrollTop(0);

            var uploadButton = {
                $button    : $('.uploadButton-input'),
                $nameField : $('.uploadButton-file-name')
            };

            uploadButton.$button.on('change',function() {
                _populateFileField($(this));
            });

            function _populateFileField($button) {
                var selectedFile = [];
                for (var i = 0; i < $button.get(0).files.length; ++i) {
                    selectedFile.push($button.get(0).files[i].name +'<br>');
                }
                uploadButton.$nameField.html(selectedFile);
            }

            //Mostramos el mensaje
            //window.location.replace($('meta[name="url"]').attr('content') + '/convocatoria/registrado');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            //
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");

            var err = JSON.parse(XMLHttpRequest.responseText);
            var text;

            if(err.error && err.message) {
                text = err.message;
            } else {
                var li = '';
                $.each(err.errors, function(i, item) {
                    li += '<li>' + item[0] + '</li>\n';
                });
                text = '<ul>\n' + li + '</ul>';
            }

            Snackbar.show({
                text: text,
                pos: 'bottom-center',
                showAction: false,
                actionText: "Dismiss",
                duration: 3000,
                textColor: '#fff',
                backgroundColor: '#f00'
            });
        },
        complete: function () {
            $('button[type="submit"]').prop('disabled', false);
            $('button[type="submit"] i').attr("class", "icon-feather-send");
        }
    });
}

function yyyymmdd2ddmmyyyy(date) {
    var d = date.split('-');
    return d.reverse().join('/');
}
