PageSourceSearch

https://www.cupcode.com.br/cc/assets/js/popup-cadastro-indicaai.js

js cupcode.com.br collected 2026-10-04 16:22:17 UTC 4,334 bytes, 108 lines download raw bytes

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.