1document.addEventListener("DOMContentLoaded", function () { 2 function waitForElement(selector, callback) { 3 const interval = 100; // intervalo em milissegundos para verificar a existência do elemento 4 const maxAttempts = 50; // número máximo de tentativas 5 let attempts = 0; 6 7 const timer = setInterval(() => { 8 const element = document.querySelector(selector); 9 if (element) { 10 clearInterval(timer); 11 callback(element); 12 } else if (attempts >= maxAttempts) { 13 clearInterval(timer); 14 console.log(`Elemento ${selector} não encontrado após ${maxAttempts} tentativas.`); 15 } 16 attempts++; 17 }, interval); 18 } 19 20 waitForElement('#modalCadastroIndicaai', (modalCadastroIndicaai) => { 21 const form = modalCadastroIndicaai.querySelector('form'); 22 if (!form) { 23 console.log('Formulário não encontrado dentro do modal modalCadastroIndicaai.'); 24 return; 25 } 26 27 form.querySelectorAll('input, textarea').forEach(input => { 28 input.addEventListener('input', () => { 29 if (input.checkValidity()) { 30 input.classList.remove('border-danger'); 31 let alertDiv = input.nextElementSibling; 32 if (input.type === 'checkbox') { 33 alertDiv = input.parentNode.nextElementSibling; 34 } 35 if (alertDiv && alertDiv.classList.contains('alert-div')) { 36 alertDiv.remove(); 37 } 38 } 39 }); 40 }); 41 42 function enviarCadastroIndicaaiPorEmail(event) { 43 event.preventDefault(); 44 45 let isValid = true; 46 const inputs = form.querySelectorAll('input, textarea'); 47 48 inputs.forEach(input => { 49 input.classList.remove('border-danger'); 50 let alertDiv = input.nextElementSibling; 51 if (input.type === 'checkbox') { 52 alertDiv = input.parentNode.nextElementSibling; 53 } 54 if (alertDiv && alertDiv.classList.contains('alert-div')) { 55 alertDiv.remove(); 56 } 57 58 if (!input.checkValidity()) { 59 isValid = false; 60 input.classList.add('border-danger'); 61 let newAlertDiv = document.createElement('div'); 62 newAlertDiv.classList.add('alert-div'); 63 newAlertDiv.textContent = 'Campo obrigatório'; 64 65 if (input.type === 'checkbox') { 66 input.parentNode.parentNode.insertBefore(newAlertDiv, input.parentNode.nextSibling); 67 } else { 68 input.parentNode.insertBefore(newAlertDiv, input.nextSibling); 69 } 70 } 71 }); 72 73 if (!isValid) return; 74 75 form.submit(); 76 } 77 78 function enviarCadastroIndicaaiPorWhatsapp() { 79 const nome = document.getElementById("cadastrarNome").value; 80 const email = document.getElementById("cadastrarEmail").value; 81 const telefone = document.getElementById("cadastrarTelefone").value; 82 83 let mensagemWhatsApp = "Quero me cadastrar no *indicaAÃ*, meu nome é " + nome; 84 85 if (email.trim() !== "") { 86 mensagemWhatsApp += ", e-mail: " + email; 87 } 88 89 if (telefone.trim() !== "") { 90 mensagemWhatsApp += ", Telefone: " + telefone; 91 } 92 93 const urlWhatsApp = "https://api.whatsapp.com/send?phone=5541996133902&text=" + encodeURIComponent(mensagemWhatsApp); 94 95 window.open(urlWhatsApp, '_blank'); 96 } 97 98 const enviarCadastroPorEmail = document.getElementById("enviarCadastroPorEmail"); 99 if (enviarCadastroPorEmail) { 100 enviarCadastroPorEmail.addEventListener("click", enviarCadastroIndicaaiPorEmail); 101 } 102 103 const enviarCadastroPorWhatsapp = document.getElementById("enviarCadastroPorWhatsapp"); 104 if (enviarCadastroPorWhatsapp) { 105 enviarCadastroPorWhatsapp.addEventListener("click", enviarCadastroIndicaaiPorWhatsapp); 106 } 107 }); 108});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.