/* Site DTF — Choosing a product, and the declared sheet/loose-artwork switch. Extracted verbatim from the single inline script in web/index.html. Loaded as classic scripts in the order listed there: they share one global scope and run top to bottom, exactly as the original did. */ // ── escolha document.querySelectorAll('.ec').forEach(b=>b.addEventListener('click',()=>abrir(b.dataset.modo))); function abrir(m){ modo=m; artes=[]; folhas=[]; metros=0; nota=0; reencaixado=false; montagemCm=0; avisoTipo(''); pintaModo(); $('lista').innerHTML=''; $('rA').style.display='none'; recusa([]); recemChegada=null; caminho='auto'; avisoCam(''); pintaCaminhos(); $('vMt').textContent='—'; previaAoVivo(); agendaAvaliacao(); limpaPaineis(); // o carrinho só some se o pedido estiver vazio $('foco').scrollIntoView({behavior:'smooth',block:'start'}); } function pintaModo(){ const m=modo; const c=MODOS[m]; $('cards').style.display='none'; $('foco').classList.add('on'); $('fTit').textContent=c.tit; $('fLg').textContent=c.lg; $('fPreco').textContent=c.preco; $('fSub').textContent=c.sub; $('zTit').textContent=c.zt; $('zSub').textContent=c.zs; $('inp').multiple=c.multi; $('inp').accept = ehFolha(m) ? '.png,.jpg,.jpeg,.pdf' : '.png,.jpg,.jpeg,.webp'; $('catFoco').className='cat '+(ehFolha(m)?'file':'av'); $('larguraFolhaPronta').textContent=String(c.larg).replace('.',','); $('foco2').classList.remove('sofila'); // a caixa de requisitos vale nos 4 modos $('montcabTit').textContent = ehFolha(m) ? 'Sua folha' : 'Montagem ao vivo'; pintaTipoEnvio(); } // O par folha montada / artes separadas fica visível e com preço nos dois lados, // nos dois modos: nenhuma troca acontece sem o cliente ver o que muda, e sempre // dá para voltar atrás sem recomeçar o pedido. function pintaTipoEnvio(){ const el=$('tipoEnvio'); if(!el) return; el.hidden=!modo; if(el.hidden) return; const folha = ehFolha() ? modo : PAR[modo]; const avulsa = ehFolha() ? PAR[modo] : modo; $('tipoFolhaPreco').textContent='a partir de '+rs(pisoEscada(folha)); $('tipoAvulsaPreco').textContent='a partir de '+rs(pisoEscada(avulsa))+' · montagem inclusa'; $('larguraFolhaPronta').textContent=String(MODOS[folha].larg).replace('.',','); const atual = ehFolha() ? 'folha' : 'avulsa'; el.querySelectorAll('.cam').forEach(b=>{ b.classList.toggle('on', b.dataset.tipo===atual); b.disabled=folhas.length>0 || artes.length>0; // já tem arquivo: a escolha está feita }); } function avisoTipo(txt){ const el=$('avisoTipo'); if(!el) return; el.innerHTML=txt; el.style.display = txt? '' : 'none'; } // A imagem foi declarada folha montada mas não tem resolução para isso. Devolve o // arquivo com o motivo e o caminho certo — sem trocar preço por conta própria. function recusaFolha(x, md){ const arquivo=x.f, destino = modo==='uvfile' ? 'uv' : 'avulsa'; folhas=folhas.filter(y=>y!==x); pintaFolha(); avisoTipo(''+escapeHTML(arquivo.name)+' não é uma folha montada. '+ 'Para ocupar os '+n1(larguraFilme())+' cm do filme ela teria só '+md.dpiFolha+ ' DPI, e o mínimo para imprimir é '+DPI_RECUSA+'. '+ 'Se for uma arte para montarmos, use '+MODOS[destino].tit+', '+ 'a partir de '+rs(pisoEscada(destino))+'/m. '+ ''); const botao=$('usarAvulsa'); if(botao) botao.addEventListener('click',()=>{ avisoTipo(''); trocaTipo(PAR[modo]); sel([arquivo]); }); } document.querySelectorAll('#tipoEnvio .cam').forEach(b=>b.addEventListener('click',()=>{ if(b.disabled) return; const querFolha=b.dataset.tipo==='folha'; if(querFolha===ehFolha()) return; avisoTipo(''); trocaTipo(PAR[modo]); // escolha explícita do cliente })); // Troca declarada, nunca silenciosa: o cliente já viu os dois preços no seletor. function trocaTipo(destino){ if(!destino || modo===destino) return; folhas=[]; artes=[]; recemChegada=null; metros=0; nota=0; montagemCm=0; modo=destino; $('lista').innerHTML=''; $('rA').style.display='none'; recusa([]); caminho='auto'; avisoCam(''); pintaModo(); pintaCaminhos(); limpaPaineis(); agendaAvaliacao(); previaAoVivo(); } $('bVoltar').addEventListener('click',()=>{ itemAtual=null; $('atual').style.display='none'; $('carrLin').innerHTML=''; pintaPedido(); $('foco').classList.remove('on'); $('cards').style.display=''; ['qual','prev'].forEach(id=>$(id).classList.remove('on')); if(!pedido.length) $('carr').classList.remove('on'); document.getElementById('envio').scrollIntoView({behavior:'smooth'}); });