Atendimento

0

Venda para Atacado

Condições Especiais

Ganhe 5% de Desconto

Pagando no PIX

Entrega em todo Brasil

Tatames Pronta Entrega*

Parcelamos em até

10X no Crédito

Segurança e Tecnologia

Proteção por criptografia

Pagamento

A Tatame Premium - Especialista em Placa de EVA Trabalha com diversas formas de pagamento.

Assim que finalizar sua compra, você poderá escolher qual a forma que mais lhe agrada. Demais instruções serão passadas após a escolha da forma de pagamento.

', '', '' ].join(''); document.body.appendChild(ov); ov.querySelector('#tpX').addEventListener('click', close); var recolocar = function () { if (ov.classList.contains('on')) posicionar(ov.__alvo); }; window.addEventListener('scroll', recolocar, { passive: true }); window.addEventListener('resize', recolocar); // Sem fundo escuro: fecha clicando fora, menos no proprio botao de WhatsApp // (senao o clique que abre o balao fecharia ele no mesmo evento). document.addEventListener('click', function (e) { if (!ov.classList.contains('on')) return; if (ov.contains(e.target)) return; if (e.target.closest && e.target.closest('a[data-tp-patched]')) return; close(); }); ov.querySelector('#tpGo').addEventListener('click', enviar); return ov; } function close() { if (ov) ov.classList.remove('on'); } function go(url) { close(); window.location.href = url; } function erro(msg) { var e = document.getElementById('tpErr'); e.textContent = msg; e.style.display = 'block'; } function enviar() { var fone = digits(document.getElementById('tpFone').value); if (fone.length < 10) return erro('Escreva seu WhatsApp com DDD.'); var btn = document.getElementById('tpGo'); btn.disabled = true; btn.textContent = 'Abrindo...'; fireContact(); setCookie(CFG.doneCookie, '1', CFG.days); var corpo = { telefone: fone, ref: ref, url: location.href, user_agent: navigator.userAgent, tracking: store }; var pronto = false; function seguir(url) { if (pronto) return; pronto = true; go(url || waFallback()); } setTimeout(function () { seguir(null); }, 3500); try { fetch(CFG.popup, { method: 'POST', headers: { 'Content-Type': 'text/plain;charset=UTF-8' }, body: JSON.stringify(corpo) }) .then(function (r) { return r.json(); }) .then(function (j) { seguir(j && j.wa ? j.wa : null); }) .catch(function () { seguir(null); }); } catch (e) { seguir(null); } } // O botao flutuante do rodape ja e position:fixed no canto: pra ele o balao // fica onde esta. Botao de vitrine ou de pagina de produto ancora no proprio // botao, senao o cliente clica em cima e o balao aparece longe, no rodape. function ehFixo(el) { var n = el; while (n && n !== document.body) { if (getComputedStyle(n).position === 'fixed') return true; n = n.parentElement; } return false; } function posicionar(alvo) { var card = document.getElementById('tpCard'); if (!card) return; ov.classList.remove('tpBaixo'); var cw = card.offsetWidth, ch = card.offsetHeight, m = 12; if (!alvo || ehFixo(alvo)) { ov.style.left = ''; ov.style.top = ''; ov.style.right = ''; ov.style.bottom = ''; card.style.setProperty('--tpTail', (cw - 41) + 'px'); return; } var r = alvo.getBoundingClientRect(); ov.style.right = 'auto'; ov.style.bottom = 'auto'; var left = r.left + r.width / 2 - cw / 2; left = Math.max(m, Math.min(left, window.innerWidth - cw - m)); // Abre PRA BAIXO por padrao. Acima ficava em cima dos botoes de compra da // pagina de produto. So sobe se nao couber embaixo. var abaixo = r.bottom + 14, top; if (abaixo + ch <= window.innerHeight - (window.__tpBarra||0) - m) { top = abaixo; ov.classList.add('tpBaixo'); } else { top = r.top - ch - 14; } top = Math.max(m, Math.min(top, window.innerHeight - (window.__tpBarra||0) - ch - m)); ov.style.left = left + 'px'; ov.style.top = top + 'px'; var tail = r.left + r.width / 2 - left - 7; tail = Math.max(14, Math.min(tail, cw - 29)); card.style.setProperty('--tpTail', tail + 'px'); } function abrir(ev, alvo) { if (ev) { ev.preventDefault(); ev.stopPropagation(); } build(); ov.__alvo = alvo || null; ov.classList.add('on'); posicionar(ov.__alvo); setTimeout(function () { var n = document.getElementById('tpFone'); if (n) n.focus(); }, 60); } function isWa(href) { var h = String(href).toLowerCase(); for (var i = 0; i < WA_HOSTS.length; i++) if (h.indexOf(WA_HOSTS[i]) !== -1) return true; return false; } function patch(a) { if (!a || a.getAttribute('data-tp-patched')) return; var href = a.getAttribute('href') || ''; if (!isWa(href)) return; a.setAttribute('data-tp-orig', href); a.setAttribute('href', waFallback()); a.setAttribute('data-tp-patched', '1'); a.addEventListener('click', function (ev) { if (getCookie(CFG.doneCookie)) { fireContact(); return; } abrir(ev, a); }); } function patchAll() { var l = document.querySelectorAll('a[href]'); for (var i = 0; i < l.length; i++) patch(l[i]); } function boot() { patchAll(); try { new MutationObserver(function () { patchAll(); }).observe(document.documentElement, { childList: true, subtree: true }); } catch (e) {} } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot); else boot(); window.__tp = { ref: ref, store: store, abrir: abrir, patchAll: patchAll, sync: sync }; // ---- rodape do mobile ---------------------------------------------- // O tema mostra uma barra fixa no rodape do celular (.menu-bar-mobile) e o // botao flutuante do WhatsApp vive com bottom:20px. No mobile um cai em cima // do outro, e o fim da pagina fica escondido atras da barra. A altura NAO da // pra chumbar (muda com aparelho e safe area), entao mede em runtime. function tpAlturaBarra() { var b = document.querySelector(".menu-bar-mobile"); if (!b) return 0; var s = window.getComputedStyle(b); if (s.display === "none" || s.visibility === "hidden") return 0; return Math.round(b.getBoundingClientRect().height); } function tpAcharFlutuante() { var f = document.body.children, i, e, s; for (i = 0; i < f.length; i++) { e = f[i]; if (e.tagName !== "A") continue; s = window.getComputedStyle(e); if (s.position !== "fixed") continue; if (parseInt(s.zIndex || "0", 10) < 1000) continue; if (e.getBoundingClientRect().width > 120) continue; return e; } return null; } function ajustarRodape() { var h = tpAlturaBarra(); window.__tpBarra = h; var fab = tpAcharFlutuante(); if (fab) { if (!fab.getAttribute("data-tp-base")) fab.setAttribute("data-tp-base", window.getComputedStyle(fab).bottom || "20px"); fab.style.bottom = h ? (h + 14) + "px" : fab.getAttribute("data-tp-base"); } document.body.style.paddingBottom = h ? (h + "px") : ""; } window.tpAjustarRodape = ajustarRodape; ajustarRodape(); window.addEventListener("resize", ajustarRodape); window.addEventListener("orientationchange", ajustarRodape); // o botao flutuante e injetado por script depois do load setTimeout(ajustarRodape, 1200); setTimeout(ajustarRodape, 3000); })();