$(document).ready(function () {
    $('#EditGestion').submit(function() {
        if (!ValidateFormField('administrador', 'Ingrese el administrador de la gestión')) return false
        if (!ValidateFormField('terapeuta', 'Ingrese el terapueta de la gestión')) return false
        if (!ValidateFormField('fecha_ejecucion', 'Ingrese la fecha de ejecución')) return false

        return true; // return false to cancel form action
    })
    function ValidateFormField(idElement, messageError)
    {
        let isValid = false
        let input = document.getElementById(idElement)
        if (input)
        {
            isValid = input.value !== ""
            if (!isValid)
            {
                Swal.fire(
                    messageError,
                    '',
                    'error'
                )
                return false
            }
        }
        return true
    }
    function isNumeric(value) {
        return /^-{0,1}\d+$/.test(value);
    }
    function isCorrectLength(inputValue, maxLength = 10)
    {
        return isNumeric(inputValue) && (inputValue.length <= maxLength) && (inputValue.length > 1)
    }
    function isInputNumber(inputValue)
    {
        return isNumeric(inputValue)
    }
    function isInputText(inputValue)
    {
        return inputValue.length > 0 && inputValue !== ""
    }
    function showEmptyInputFields(data_name, message)
    {
        let el = document.querySelector('[data-name="'+ data_name +'"]')
        el.innerHTML = message
    }
    $('#btn_guardar').click(function (evt){
        let isEmptyField = false        
        let elements = document.querySelector('form[name="CreateModel"]');
        for (let i = 0, el ; el = elements[i++];)
        {
            if (!el.required) continue
            let type = el.type
            switch (type) {
                case "number":
                    if (!isInputNumber(el.value))
                    {
                        showEmptyInputFields(el.name, "este campo debe ser numerico")
                        isEmptyField = true
                    }
                    if (!isCorrectLength(el.value))
                    {
                        showEmptyInputFields(el.name, "este campo no debe ser mayor a 10 digitos")
                        isEmptyField = true
                    }
                    break;
                case "text":
                    if (!isInputText(el.value))
                    {
                        showEmptyInputFields(el.name, "este campo es obligatorio")
                        isEmptyField = true
                    }
                    break;
                case "select-one":
                    if (!isInputText(el.value))
                    {
                        showEmptyInputFields(el.name, "este campo es obligatorio")
                        isEmptyField = true
                    }
                    break;
                default:
                    break;
            }
        }
        if (isEmptyField) return
        
        let data = $('form[name="CreateModel"]').serialize()
        $.ajax({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            },
            url: "/pacientes",
            method: "POST",
            data: data,
            dataType: "json"
          }).done(function( result ) {
            if (result.msg == "success")
            {
                Swal.fire(
                    'Paciente creado',
                    '',
                    'success'
                )
                let element = $('form[name="CreateModel"] input[name="txt_cedula"]').val()
                $('form[name="Gestion"] input[name="paciente"]').val(element)
                $('#modalPaciente').modal('toggle')
            }
            else
            {
                Swal.fire(
                    result.data,
                    //'No se pudo crear al paciente, verifique si ya existe',
                    '',
                    'error'
                )
            }
          }).fail(function(jqXHR, textStatus) {
            //jqXHR, textStatus
              //console.log(jqXHR)
              //console.log(textStatus)
            Swal.fire(
                'Error al crear paciente',
                '',
                'error'
              )
          });
    });
});