$(document).ready(function(){
    /**
     * @var		mixed	#myTabControlHistor
     */
    $('#myTabControlHistory a').on('click',  function(e) {
        e.preventDefault();
        $(this).tab('show');
    });


      /**
     * Manejo de pestañas en exámenes físicos
     */
      $('#tabPhysicalExam').on('click', 'a.nav-link', function(e) {
        e.preventDefault();
        
        // Validar especialidad seleccionada
        if ($("#especiality").val() === "SELECT") {
            return false;
        }
        
        // Remover clase active de todas las pestañas
        $('#tabPhysicalExam .nav-link').removeClass('active');
        
        // Obtener el contenido asociado
        const target = $(this).attr('href');
        
        // Remover clase active de todo el contenido
        $('#tabPhysicalExamContent .tab-pane').removeClass('show active');
        
        // Activar nueva pestaña y contenido
        $(this).addClass('active');
        $(target).addClass('show active');
    });

    /**
     * 
     */
    $("#btnSubmitControlHistory").on("click",function(e){
        $("#ControlHistory").trigger("submit");
    });

    /**
     * 
     */
    $("#nextToBackgrounds").on("click",function(e){
        $("#backgrounds-tab").tab('show');    
    });

    /**
     * 
     */
    $("#nextToExamPhysical").on("click",function(e){
        $("#test-tab").tab('show');    
    });

     /**
     * 
     */
     $("#nextToFiles").on("click",function(e){
        $("#file-tab").tab('show');    
    });

    

    /**
     * 
     */
    $("#ControlHistory").on("submit",function(e){
        let form    = document.querySelector("#ControlHistory");
        let data    = $.fn.getDataForm.call(this,form);
        let valid   = $.fn.runValidations(data,$.fn.validations());
        console.log("data ", data);
        e.preventDefault();
        if(valid.valid){
            let formToSend = form.cloneNode(true);
            for(let element of document.querySelectorAll(".backgrounds")){
                formToSend.appendChild(element.cloneNode(false));
            }
            for(let element of document.querySelectorAll(".phisycalExams")){
                formToSend.appendChild(element.cloneNode(false));
            }

            for(let element of document.querySelectorAll(".filesZone")){
                formToSend.appendChild(element.cloneNode(false));
            }
           
            formToSend.style.display = "none";
            $(document.body).append(formToSend);
            document.querySelectorAll("#especiality")[1].value = document.querySelectorAll("#especiality")[0].value;
            $(formToSend).trigger("submit");
            document.body.removeChild(formToSend);
         }else{
            $("#form-history-tab").tab('show');    
         }
    });

    /**
     * 
     * @returns 
     */
    $.fn.validations = function(){
        return [
            {
                "name":"noEmpty",
                "message":window.translations["create-control-history"].fieldRequired,
                "run":function (field){
                    if((field.key === "date") || (field.key === "historyId") || field.key.includes("cie")) 
                        return true;
                    if(field.key === "especiality")
                        return (field.value.trim() !== "SELECT");
                    return ((field.value != undefined) && (field.value.trim() !== "")); 
                }
            }
        ];
    }

    // Función para manejar el estado de las pestañas
    function handleTabsState() {
        if ($("#especiality").val() === "SELECT") {
            $('#myTabControlHistory a').not('#form-history-tab').addClass('disabled');
            $('#tabPhysicalExam a').addClass('disabled');
            
            // Desactivar los botones de navegación
            $("#nextToBackgrounds").addClass('disabled');
            $("#nextToExamPhysical").addClass('disabled');
            $("#nextToFiles").addClass('disabled');
        } else {
            $('#myTabControlHistory a').removeClass('disabled');
            $('#tabPhysicalExam a').removeClass('disabled');
            
            // Activar los botones de navegación
            $("#nextToBackgrounds").removeClass('disabled');
            $("#nextToExamPhysical").removeClass('disabled');
            $("#nextToFiles").removeClass('disabled');
        }
    }

    // Eventos de las pestañas
    $('#myTabControlHistory a, #tabPhysicalExam a').on('click', function(e) {
        if ($("#especiality").val() === "SELECT") {
            e.preventDefault();
            e.stopPropagation();
            alert(window.translations["create-control-history"].selectSpecialtyFirst);
            return false;
        }
    });

    // Eventos de los botones de navegación
    $("#nextToBackgrounds").on("click", function(e) {
        if ($("#especiality").val() === "SELECT") {
            e.preventDefault();
            e.stopPropagation();
            alert(window.translations["create-control-history"].selectSpecialtyFirst);
            return false;
        }
    });

    $("#nextToExamPhysical").on("click", function(e) {
        if ($("#especiality").val() === "SELECT") {
            e.preventDefault();
            e.stopPropagation();
            alert(window.translations["create-control-history"].selectSpecialtyFirst);
            return false;
        }
    });

    $("#nextToFiles").on("click", function(e) {
        if ($("#especiality").val() === "SELECT") {
            e.preventDefault();
            e.stopPropagation();
            alert(window.translations["create-control-history"].selectSpecialtyFirst);
            return false;
        }
    });

    // Manejar cambio de especialidad
    $("#especiality").on("change", function() {
        handleTabsState();
    });

    // Inicializar el estado de las pestañas
    handleTabsState();
});


