const swiper = new Swiper('.galeria', { direction: 'horizontal', loop: true, pagination: { el: '.galeria-pagination', }, autoplay: { delay: 8000, }, }); // Lê do bloco window.SITE_CONFIG definido no index.html const cfg = window.SITE_CONFIG || {}; const meta = cfg.meta || 80000; let arrecadado = cfg.arrecadado || 17503; let apoiadores = cfg.apoiadores || 992; let coracoes = cfg.coracoes || 278; const INTERVALO = cfg.intervaloNotificacao || 30000; const arrayDados = (cfg.doacoes || []).map(d => ({ nome: d.nome, image: "files/icon.png", apoiador: 1, doado: d.doado, coracoes: d.coracoes })); let index = 0; function atualizarValores() { if (index >= arrayDados.length) return; let item = arrayDados[index]; apoiadores += item.apoiador; coracoes += item.coracoes; animarValor("apoiadores", apoiadores); animarValor("coracoes", coracoes); let novoValor = arrecadado + item.doado; animarValor("doado", novoValor, arrecadado); arrecadado = novoValor; exibirNotificacao(item.nome, item.image, item.doado); atualizarBarra(); index++; } function atualizarBarra() { let porcentagem = (arrecadado / meta) * 100; let porcento = Math.round(porcentagem ); document.getElementById("barra").style.width = porcentagem + "%"; document.getElementById("barraMobile").style.width = porcentagem + "%"; document.getElementById("porcentagem").innerHTML = porcento + "%"; } function formatarMoeda(valor) { return new Intl.NumberFormat("pt-BR", { style: "currency", currency: "BRL" }).format(valor); } function animarValor(id, novoValor, valorAntigo = 0) { let seletor = id === "doado" ? `#${id}, #valorMobile` : `#${id}`; let elementos = document.querySelectorAll(seletor); let inicio = valorAntigo || parseFloat(elementos[0].innerText.replace(/[^0-9.,]/g, "")) || 0; let incremento = (novoValor - inicio) / 50; let atual = inicio; let contador = 0; let animacao = setInterval(() => { atual += incremento; elementos.forEach(elemento => { elemento.innerText = id === "doado" ? formatarMoeda(atual) : atual.toFixed(0); }); contador++; if (contador >= 50) { clearInterval(animacao); elementos.forEach(elemento => { elemento.innerText = id === "doado" ? formatarMoeda(novoValor) : novoValor; }); } }, 20); } function exibirNotificacao(nome, image, valor) { let notificacao = document.createElement("div"); notificacao.className = "notificacao"; notificacao.innerHTML = `