

// loading
$(document).ready(function() {
    $('.enviar').click(function(){
        $('.spinner-border, .visually-hidden, .spinner-fundo').css('display','block');
    });
});

// social
$('.socialform').keypress(function (e) {
    var chr = String.fromCharCode(e.which);
    if ("1234567890qwertyuioplkjhgfdsazxcvbnm_.".indexOf(chr) < 0)
        return false;
});

//WhatsApp
$(document).ready(function(){
    $('#twhatsapp').mask("(00) 00000-0000", {

    });
});

// name
$('.namecard').keypress(function (e) {
    
        var chr = String.fromCharCode(e.which);
        if ("1234567890qwertyuioplkjhgfdsazxcvbnmABCDEFGHIJKLMNOPQRSTUVWXYZ_. ".indexOf(chr) < 0)
            return false;
    
});


$('.socialLinkedin').keypress(function (e) {
    var chr = String.fromCharCode(e.which);
    if ("1234567890qwertyuioplkjhgfdsazxcvbnm_-.".indexOf(chr) < 0)
      return false;
});

//Mascara2
$('.socialsite').keypress(function (e) {
var regex = new RegExp("^[A-Za-z0-9_/:.]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
    return true;
}

e.preventDefault();
return false;
});

$('.socialsite2').keypress(function (e) {
    var chr = String.fromCharCode(e.which);
    if ("1234567890qwertyuioplkjhgfdsazxcvbnm_-:./".indexOf(chr) < 0)
      return false;
});

// supfield
$(document).ready(function(){
    
    function checkSupfields() { 
        let allFilled = true; 
        $('.supfield').each(function() { 
            if ($(this).val() === '') { 
                allFilled = false; 
                console.log('s');
                return false; // Sai do loop each 
            } 
        }); 
        return allFilled; 
    } 

    // Inicialmente desabilita o botão
    //$('form button[type="submit"]').prop('disabled', true);
    //$('form input[type="submit"]').prop('disabled', true);
    
    // Verifica o estado inicial dos campos
    if (checkSupfields()) {
        $('form button[type="submit"], form input[type="submit"]').prop('disabled', false);
    } else {
        $('form button[type="submit"], form input[type="submit"]').prop('disabled', true);
    }

    // Adiciona múltiplos eventos para capturar todas as formas de alteração
    $('.supfield').on('input paste change propertychange', function() { 
        if (checkSupfields()) { 
            $('form button[type="submit"], form input[type="submit"]').prop('disabled', false); 
        } else { 
            $('form button[type="submit"], form input[type="submit"]').prop('disabled', true); 
        } 
    });

    // Adiciona monitoramento específico para eventos de colagem
    $('.supfield').on('paste', function() {
        // Usa setTimeout para dar tempo do valor ser atualizado após a colagem
        setTimeout(function() {
            if (checkSupfields()) { 
                $('form button[type="submit"], form input[type="submit"]').prop('disabled', false); 
            } else { 
                $('form button[type="submit"], form input[type="submit"]').prop('disabled', true); 
            }
        }, 100);
    });
});

//lenght
$(document).ready(function(){

    var textarea = document.querySelector('textarea');
    var info = document.getElementById('carResSol');
    var limite = 300;
    textarea.addEventListener('keyup', verificar);

    function verificar(e) {
        var qtdcaracteres = this.value.length;
        var restantes = limite - qtdcaracteres;
        info.innerHTML = restantes;
    }
});

// Contact 

$(document).ready(function() {

    function updateButtonState() {
        var email = $('#temailcom').val();
        var whatsapp = $('#twhatsapp').val();

        if (email.length > 0) {
            $('#temailcom').addClass('supfield');
            $('#twhatsapp').removeClass('supfield');
        } else if (whatsapp.length > 11) {
            $('#twhatsapp').addClass('supfield');
            $('#temailcom').removeClass('supfield');
        } 
    }

    $('#newcard-contact').on('change', function() {
        if ($(this).is(':checked')) {
            $('#temailcom').removeClass('supfield');
            $('#twhatsapp').removeClass('supfield');
            $('#boxContact').fadeOut(); // Oculta com efeito fade
            
            //$('form button[type="submit"], form input[type="submit"]').prop('disabled', false);
        } else {
            $('#boxContact').fadeIn(); // Exibe com efeito fade
            $('form button[type="submit"], form input[type="submit"]').prop('disabled', true);
           
        }
    });

    // Atualiza o estado dos campos em tempo real
    $('#temailcom, #twhatsapp').on('input', updateButtonState);

    // Chama a função inicialmente para configurar o estado
    updateButtonState();
});

// Onboarding
$(document).ready(function(){
    
    function checkSupfieldsLeng() { 
        let allFilled = true; 
        $('.supfieldLeng').each(function() { 
            if ($(this).val() === '') { 
                allFilled = false; 
                return false; // Sai do loop each 
            } 
        }); 
        return allFilled; 
    } 

    function checkUsercard() {
        const usercard = $('#tlinkcard').val();
        return usercard && usercard.length >= 3;
    }

    // Inicialmente desabilita o botão
    $('#btnOnboarding').prop('disabled', true);
    //$('form input[type="submit"]').prop('disabled', true);

    // Função para verificar todas as condições
    function validateForm() {
        const isValid = checkSupfieldsLeng() && checkUsercard();
        $('form button[type="submit"], form input[type="submit"]').prop('disabled', !isValid);
    }

    // Adiciona evento de input para todos os campos com classe supfield
    $('.supfieldLeng').on('input', validateForm);

    // Adiciona evento de input específico para o campo usercard
    $('#tlinkcard').on('input', validateForm);
});


$(document).ready(function() {
    // Referências aos elementos do DOM
    const $form = $('#claimCardForm');
    const $linkInput = $('#tlinkcard');
    const $submitButton = $('#btnOnboarding');
    const $errorDiv = $('#mensagemErro');
    
    // Habilita/desabilita o botão baseado no conteúdo do campo
    $linkInput.on('input', function() {
        // Verifica se o campo não está vazio
        if ($(this).val().trim().length > 0) {
            $submitButton.prop('disabled', false);
        } else {
            $submitButton.prop('disabled', true);
        }
    });
    
    // Processa o formulário
    $form.on('submit', function(event) {
        event.preventDefault(); // Impede o envio tradicional do formulário
        
        // Obtém o valor do campo
        const linkValue = $linkInput.val().trim();
        
        // Desabilita o botão durante o processamento
        $submitButton.prop('disabled', true);
        $submitButton.text('Verificando...');
        
        // Prepara os dados para envio
        const formData = {
            tlinkcard: linkValue,
            action: 'claimProfile' // Indica a ação para o PHP
        };
        
        // Faz a requisição AJAX usando jQuery
        $.ajax({
            url: 'claimCard/validate',
            type: 'POST',
            data: formData,
            dataType: 'json',
            success: function(data) {
                if (data.success === true) {
                    // Redireciona para a URL desejada
                    window.location.href = 'signup?reg=a&netwy=basic';
                } else {
                    // Mostra mensagem de erro
                    $errorDiv.text(data.message || 'Infelizmente este link não está disponível. Por favor, escolha outro.');
                    $errorDiv.show();
                }
            },
            error: function(xhr, status, error) {
                console.error('Erro na requisição:', error);
                $errorDiv.text('Ocorreu um erro ao verificar a disponibilidade. Por favor, tente novamente.');
                $errorDiv.show();
            },
            complete: function() {
                // Reativa o botão independente do resultado
                $submitButton.prop('disabled', false);
                $submitButton.text('Verificar disponibilidade');
            }
        });
    });
});