//script funcionalidad formulario
import $ from 'jquery';
import Swal from 'sweetalert2';
import { forEach, functions } from 'lodash';

let arrSlctOtr = document.getElementsByClassName('form-otro');

for (let i = 0; i < arrSlctOtr.length; i++) {
    let slct = arrSlctOtr[i];
    let padreId = slct.parentElement.id;
    let slctId = slct.id;

    slct.addEventListener("change", function () {
        generarOpcionOtro(padreId, slctId);
    });
    
}

let arrSlctCua = document.getElementsByClassName('form-cual');

for (let i = 0; i < arrSlctCua.length; i++) {
    let slct = arrSlctCua[i];
    let padreId = slct.parentElement.id;
    let slctId = slct.id;

    slct.addEventListener("change", function () {
        generarOpcionCual(padreId, slctId);
    });
    
}


function generarOpcionOtro(nombIdContElmt, nombIdElmt) {
    let cont = document.getElementById(nombIdContElmt);
    let slct = document.getElementById(nombIdElmt);
    let idElmt = slct.id;
    let nombElmt = slct.name;
    let vlrSlct = slct.value;

    let inptOtroCred = document.getElementById("otro_" + idElmt)

    if (vlrSlct == "OTRO") {
        let inptOtro = document.createElement("input");

        inptOtro.id = "otro_" + idElmt;
        inptOtro.type = "text";
        inptOtro.name = "otro_" + nombElmt;
        inptOtro.required = true;

        cont.appendChild(inptOtro);
    } else if(inptOtroCred !== null) {
        cont.removeChild(inptOtroCred);
    }
}



function generarOpcionCual(nombIdContElmt, nombIdElmt) {
    let cont = document.getElementById(nombIdContElmt);
    let slct = document.getElementById(nombIdElmt);
    let idElmt = slct.id;
    let nombElmt = slct.name;
    let vlrSlct = slct.value;

    let contCualCread = document.getElementById("caja_cual_" + idElmt)

    if (vlrSlct == "Si") {
        let contCual = document.createElement("div");
        contCual.id = "caja_cual_" + idElmt;
        
        let lblCual = document.createElement("label");
        lblCual.textContent = "¿Cuál es?";
        
        let inptCual = document.createElement("input");
        inptCual.id = "cual_" + idElmt;
        inptCual.type = "text";
        inptCual.name = "cual_" + nombElmt;
        inptCual.required = true;
        
        contCual.appendChild(lblCual);
        contCual.appendChild(inptCual);

        cont.appendChild(contCual);
    } else if(contCualCread !== null) {

        cont.removeChild(contCualCread);
    }
} 
//fin funcionalidad formulario 

//script cuadro de dialogo
const dialog = document.getElementById('dialog');
const acceptBtn = document.getElementById('acceptBtn');
const terminos =document.getElementById('terminos');
terminos.addEventListener('click', function () {
    dialog.showModal();
}) 
terminos.addEventListener('click', function (evento) {
    evento.preventDefault();
   
});
window.onload = function() {
    ordnrIndxLbls();
};

acceptBtn.addEventListener('click', function() {
  
        dialog.close();
        // const overlay = document.querySelector('.overlay');
        // overlay.parentNode.removeChild(overlay);
  
 
}
);


function llenarSlct(objll,datall) {
    let slct = objll;
    let opcns = datall;
    
    let optnProg = document.createElement("option");
    optnProg.text = "Elija una opción";
    optnProg.selected = true;
    slct.appendChild(optnProg);
    
    opcns.forEach(prog => {
        var optnProg = document.createElement("option");
        optnProg.value = prog.id;
        optnProg.text = prog.nombre;
        optnProg.selected = false;

        slct.appendChild(optnProg);
    });
}

function limpiarSlct(objl,datal){
    while (objl.options.length > 0) {
        objl.remove(0);
    }

    llenarSlct(objl, datal);
}

const slctNvl= document.getElementById('form-select-nivel');
let slctPrb = document.getElementById('form-select-programa');
const cntdrPrgnts = document.getElementById('contPrgts');

slctNvl.addEventListener("change", function(){
    let nvlEstd = slctNvl.value;
    let progmsFlt = [];
    let elmtEduCtn = document.getElementById('ed_continua')
    
    progms.forEach(prog => {
        if (prog.nivel == nvlEstd) {
            progmsFlt.push(prog);
        }
    });

    if (nvlEstd == 'Pregrado' || nvlEstd == 'Posgrado' || nvlEstd == 'Educacion Continua') {
        cntdrPrgnts.style.display = 'block';
        limpiarSlct(slctPrb, progmsFlt);
        // llenarSlct(slctPrb, progmsFlt);
        if (nvlEstd == 'Educacion Continua') {
            elmtEduCtn.style.display = 'block';
        } else {
            elmtEduCtn.style.display = 'none';
        }
    } else {
        cntdrPrgnts.style.display = 'none';
    }

    // let idxLbls = document.getElementsByClassName('orgdn');
    // let idxLbls = document.getElementsByTagName('label');
    

    ordnrIndxLbls();
    
});

function obtenrAsesrs() {
    $.ajax({
        type: 'GET',
        url: 'inscripcion/ajaxAsesr',
        success: function(response){
            console.log(response)
        },
        error: function(xhr, status, error){
            console.error(xhr.responseText);
        }
    });
}

const inptNacimt = document.getElementById('fecha_nacimiento');
const inptEdad = document.getElementById('edad');


inptNacimt.addEventListener('change', function() {
    calculr_Fecha(inptNacimt, inptEdad);
});

function calculr_Fecha(objTrig, objCmb) {
    // Obtener la fecha de nacimiento del campo
    var fechaNacimiento = new Date(objTrig.value);

    // Calcular la edad
    var hoy = new Date();
    var edad = hoy.getFullYear() - fechaNacimiento.getFullYear();
    var mes = hoy.getMonth() - fechaNacimiento.getMonth();
    if (mes < 0 || (mes === 0 && hoy.getDate() < fechaNacimiento.getDate())) {
        edad--;
    }
     // Limite de edad
     if (edad >= 70 || edad <= 13) {
        alert("La edad debe estar entre los 13 y 70 años");
        inptNacimt.value = "";
        inptEdad.value = "";
        return;
    }
    
    // Si la edad es menor o igual a 0, mostrar un mensaje de error
    // if (edad <= 0) {
    //     alert("Por favor, ingresa una fecha de nacimiento válida.");
    //     inptNacimt.value = "";
    //     inptEdad.value = "";
    //     return;
    // }
    
    document.getElementById('edad').value = edad;
    // Mostrar la edad en el campo correspondiente
    objCmb.value = edad;
}

$('#myForm').on('submit', function(event) {
    event.preventDefault;
    compbrPersnInscrp();
});

// $('#prueba').on('click', function(event) {
//     compbrPersnInscrp();
// })

function compbrPersnInscrp() {
    let doc = document.getElementById('form-docmt').value;

    var csrfToken = $('meta[name="csrf-token"]').attr('content');

    $.ajax({
        url: rul,
        method: 'POST',
        headers: {
            'X-CSRF-TOKEN': csrfToken //token CSRF de laravel en header
        },
        data: {
            documt: doc 
        },
        error: function(xhr, status, error) {
            // Manejo de errores
            console.error(error);
        },
        success: function(response) {
            let condEnvr = response.exist
            let errorBscr = response.error
            console.log ('funciono' , response);

            if (condEnvr !== null && condEnvr == true) {
                Swal.fire({
                    title: "Ya generaste una inscripción anteriormente",
                    text: "¿Deseas volver a enviar la inscripción?",
                    icon: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#3085d6",
                    cancelButtonColor: "#d33",
                    confirmButtonText: "Si, reenviar",
                    cancelButtonText: "Cancelar"
                }).then((result) => {
                    if (result.isConfirmed) {
                        $('#miFormulario')[0].submit();
                    }
                });
            } else if (condEnvr !== null && condEnvr == true) {
                $('#miFormulario')[0].submit();
            } 
            else if (errorBscr !== null) {

            }
        }
    });
}


document.getElementById('cod_id').addEventListener('change', function() {
    let seleccion = document.getElementById('cod_id').value;
    let campoCodigoID = document.getElementById('campoCodigoID');
    let inptId = document.getElementById('codigoID');
    let valorActivd = 'si';

    ocultrCamps2(seleccion, campoCodigoID, inptId, valorActivd);
    ordnrIndxLbls();
});

function ocultrCamps2(vlrActvdr, cntdrObjAfect, objAfctd, vlrComprd){
    let actvdr = vlrActvdr;
    let cntdr = cntdrObjAfect;
    let afctd = objAfctd;
    
    afctd.value= "";
    
    if (actvdr === vlrComprd) {
        cntdr.style.display = 'inline-block';
    } else {
        cntdr.style.display = 'none';
    }
}

function ordnrIndxLbls(){
    let arrElmnts = document.querySelectorAll('b.orgdn');

    let acum = 1;
    for (let i = 0; i < arrElmnts.length; i++) {
        let prb = arrElmnts[i].parentNode.parentNode.style.display;
        // console.log(prb);

        if (prb != "none") {
            arrElmnts[i].textContent = (acum) + ".";
            acum++;
        } else {
            arrElmnts[i].textContent = "";
        }
    }
}
let slstAtnAsrs = document.getElementById('form-select-asesor');
let slctEvalAsrs = document.getElementById('califc');
let cntdrCalfcs= document.getElementById('cntdrCalifcs'); 

slstAtnAsrs.addEventListener('change', function () {
    let vlrAsrs= slstAtnAsrs.value;

    if (vlrAsrs == 1) {
        slctEvalAsrs.value = 0;
        cntdrCalfcs.style.display = 'none';
    } else {
        cntdrCalfcs.style.display = 'block';
    }
})

// window.onload = function(){
//     let vlrAsrs= slstAtnAsrs.value;

//     if (vlrAsrs == 1) {
//         slctEvalAsrs.value = 0;
//         cntdrCalfcs.style.display = 'none';
//     } else {
//         cntdrCalfcs.style.display = 'block';
//     }
// }