/* 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',()=>escolheProduto(b.dataset.modo))); // Back on the home and into the same product: the artworks sent are still there. function escolheProduto(m){ if(modo===m && $('foco').classList.contains('on')) vaiPara(PAGINAS[m]); else abrir(m); } function abrir(m){ modo=m; artes=[]; folhas=[]; metros=0; nota=0; reencaixado=false; pintaAvisoEnvio(); montagemCm=0; avisoTipo(''); pintaModo(); $('lista').innerHTML=''; $('rA').style.display='none'; recusa([]); recemChegada=null; $('vMt').textContent='—'; previaAoVivo(); agendaAvaliacao(); limpaPaineis(); // o carrinho só some se o pedido estiver vazio vaiPara(PAGINAS[m]); } 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; $('zTit').textContent=c.zt; $('zSub').textContent=c.zs; $('zManual').hidden=!ehFolha(m); $('zOutra').textContent = ehFolha(m) ? 'Adicionar outra folha' : 'Adicionar mais artes'; $('zona').classList.remove('compacta'); $('inp').multiple=c.multi; // The file decides the price: PNG, JPG and PDF are checked here, the others by hand. $('inp').accept = ehFolha(m) ? '.png,.jpg,.jpeg,.pdf,.tif,.tiff,.psd,.psb,.ai,.cdr' : '.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'; $('qOk').innerHTML = ehFolha(m) ? icone('adicionar')+'Adicionar ao carrinho' : 'Ver a folha montada'; 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=rs(pisoEscada(folha))+' a '+rs(TABELA[folha]).slice(3)+' /m'; $('tipoAvulsaPreco').textContent='+ '+rs(MONTAGEM[avulsa])+' /m'; $('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; pintaAvisoEnvio(); modo=destino; history.replaceState(history.state,'',PAGINAS[modo]); document.title=tituloPagina(); $('lista').innerHTML=''; $('rA').style.display='none'; recusa([]); pintaModo(); limpaPaineis(); agendaAvaliacao(); previaAoVivo(); } $('bVoltar').addEventListener('click',()=>{ itemAtual=null; modo=null; $('atual').style.display='none'; $('carrLin').innerHTML=''; pintaPedido(); $('foco').classList.remove('on'); ['qual','prev'].forEach(id=>$(id).classList.remove('on')); if(!pedido.length) $('carr').classList.remove('on'); vaiPara('/#envio'); });