jQuery(document).ready(function ($) {
    // console.log('=== RFA FRONTEND (NO REST API) ===');

    $('#recaptcha_for_all_button').on('click', function (e) {
        e.preventDefault();
        var $button = $(this);

        // console.log('=== BOTÃO CLICADO ===');
        disableButton($button);

        if (!recaptcha_my_data.sitekey) {
            enableButton($button);
            alert('Erro: Sitekey not set.');
            return;
        }

        initializeTurnstile($button);
    });

    function initializeTurnstile($button) {
        $('#turnstile-container').remove();
        $button.after('<div id="turnstile-container" style="display:none;"></div>');

        if (window.turnstile) {
            renderTurnstile($button);
        } else {
            var script = document.createElement('script');
            script.src = 'https://challenges.cloudflare.com/turnstile/v0/api.js';
            script.async = true;
            script.onload = function () {
                renderTurnstile($button);
            };
            script.onerror = function () {
                enableButton($button);
                alert('Error to load verification.');
            };
            document.head.appendChild(script);
        }
    }

    function renderTurnstile($button) {
        try {
            // console.log('🎯 Iniciando Turnstile invisível...');

            turnstile.execute('#turnstile-container', {
                sitekey: recaptcha_my_data.sitekey,
                callback: function (token) {
                    // console.log('✅ Token recebido:', token.substring(0, 20) + '...');
                    submitViaForm(token);
                },
                'error-callback': function (error) {
                    console.error('❌ Error Turnstile:', error);
                    enableButton($button);
                    alert('Error in automatic verification.');
                }
            });

        } catch (error) {
            console.error('💥 Error to start Turnstile:', error);
            enableButton($button);
        }
    }

    function submitViaForm(token) {
        // console.log('🚀 Criando form submission...');

        // Cria form simples
        var form = document.createElement('form');
        form.method = 'POST';
        form.action = ''; // Mesma página

        // Adiciona o token (seu PHP já processa isso)
        var tokenInput = document.createElement('input');
        tokenInput.type = 'hidden';
        tokenInput.name = 'cf-turnstile-response';
        tokenInput.value = token;
        form.appendChild(tokenInput);

        // Submete o form
        document.body.appendChild(form);
        // console.log('🎯 Submetendo form - página vai recarregar...');
        form.submit();
    }

    function disableButton($btn) {
        $btn.addClass('button-disabled');
        $btn.append('<span class="spinner is-active" style="float:none;margin:0 0 0 10px;"></span>');
        $btn.prop('disabled', true);
    }

    function enableButton($btn) {
        $btn.removeClass('button-disabled');
        $btn.find('.spinner').remove();
        $btn.prop('disabled', false);
    }
});