Parquet in legnoMasselloPrefinitoLe PlanceNord AmericaPrefinito classicoOliatoParquet in legno / Parquet Oliato / Mosca · Rovere Slavonia Parquet Oliato← Torna ai modelli+Immagine campione della finitura. Venatura e variazioni tra elementi si valutano sulla selezione reale.PARQUET PREFINITO / OLIATOMosca.Oro ambrato, trama marcata.Mosca presenta un fondo oro ambrato sul quale la venatura scura del Rovere Slavonia emerge con decisione. Nell'immagine le linee fitte e le figure più ampie disegnano la superficie con un contrasto pronunciato. Il colore rimane caldo e relativamente luminoso tra i segni bruni, dando al pavimento una presenza visiva riconoscibile.Come vuoi scegliere?Consigliatemi voiPartiamo dal modello. Misure e scelta estetica le definiamo insieme.Configuro i dettagliScelgo posa, larghezza, struttura e classe di aspetto.Disegno di posaPlanciaSpina italiana 90°Spina ungherese 60°Spina francese 45°LarghezzaStruttura totale / nobile12 / 3 mm13 / 4,2 mm14,5 / 3 mm15 / 3 mm15,5 / 4,2 mm16 / 4,2 mmScelta esteticaSelectNaturRusticChiedi un consiglio su questo modello ↓LA TUA CONFIGURAZIONEQuantità, tempi e disponibilità vengono confermati con la proposta di fornitura.La plancia in Rovere Slavonia.Finitura a olio.Superficie spazzolata. Puoi scegliere la bisellatura su tutti e quattro i lati, solo sui lati lunghi, oppure lo spigolo vivo, senza bisellatura.IL COLORE, DA VICINOMosca.Oro ambrato, trama marcata.Osserva il rapporto tra il fondo, il disegno del legno e i materiali del tuo ambiente.IL COLOREOro ambrato con venature bruneLA VENATURAFitta e fortemente disegnataIL CONTRASTOMarcatoMATERIALI DA ACCOSTAREGli abbinamenti di Mosca.Pareti panna e superfici unite aiutano a lasciare spazio alla trama del legno. Un metallo scuro può riprendere la venatura, mentre tessuti in lino ne accompagnano il fondo dorato senza aggiungere altri motivi.La descrizione cromatica si riferisce all’immagine del campione. Luce, schermo e variazioni del legno possono modificarne la percezione: prima della scelta confronta una campionatura reale. I segni visibili non identificano da soli la selezione o il trattamento della superficie.01 / I DATI DEL PRODOTTOScegliere la finitura.Definire il formato.Colore e geometria vanno letti insieme alla specifica del materiale scelto.EssenzaRovere SlavoniaFamigliaParquet prefinito OliatoModelloMoscaFinituraA olioMisure e strutturaDisegno, larghezza, struttura e scelta estetica selezionabili nel configuratore02 / LA CURAIl colore che scegli.La cura che lo accompagna.Per la manutenzione segui le istruzioni del ciclo di finitura effettivamente applicato.Identifica la finituraConserva la scheda del pavimento e le indicazioni dei prodotti applicati.Programma la curaProdotti e interventi si valutano in funzione dell’uso e dello stato della superficie.Confrontati con noiTi aiutiamo a verificare il materiale prima di scegliere un trattamento.La guida alla manutenzione ↗Scheda attuale sul sito ↗ LA DOCUMENTAZIONEConoscere OLIATO.Leggere la scheda prodotto.La scheda prodotto della collezione e il riferimento alle classi d’aspetto del Rovere Slavonia.Scheda prodotto OLIATOApri il PDF↗Classi d’aspetto · Rovere SlavoniaApri il PDF↗La scheda prodotto descrive la collezione OLIATO. Formati, struttura e caratteristiche della fornitura si confermano per la configurazione scelta.Il riferimento sulle classi d’aspetto è un documento d’archivio: tabelle per massello e multistrato riferite alle edizioni 2004. La classe della fornitura si verifica nella documentazione del prodotto.Guida alle classi d’aspetto ↗IL TUO PROGETTO, INSIEMEIl prossimo passo.Parliamone insieme.Hai trovato un modello che ti piace? Inviaci il riepilogo: puoi chiedere un consiglio oppure partire dalla configurazione scelta.Mosca · Rovere Slavonia Parquet OliatoPortiamo avanti la tua scelta.Apri il modulo: il riepilogo sarà già compilato nel messaggio. Aggiungi i tuoi recapiti ed eventuali dettagli del progetto per richiedere una proposta.Visualizza o copia il riepilogoIl tuo riepilogoCopia riepilogoIl riepilogo sarà già compilato nel modulo contatti. Puoi anche copiarlo per conservarlo.Richiedi informazioniInvia su WhatsAppChiudi ×window.mpParquetRoutes={"parquet-in-legno.html": "/it/parquet-in-legno/", "parquet-massello.html": "/it/parquet-massello-essenze/", "massello-doussie-africa-massello.html": "/it/parquet-legno-massello-doussie-africa/", "massello-iroko-africa-massello.html": "/it/parquet-legno-massello-iroko-africa/", "massello-rovere-slavonia-massello.html": "/it/parquet-legno-massello-rovere-slavonia/", "massello-teak-asia-massello.html": "/it/parquet-legno-massello-teak-asia/", "massello-ulivo-italia-massello.html": "/it/parquet-legno-massello-ulivo-italia/", "massello-rovere-slavonia-industriale.html": "/it/parquet-legno-massello-rovere-slavonia-industriale/", "massello-teak-asia-industriale.html": "/it/parquet-legno-massello-teak-asia-industriale/", "parquet-prefinito.html": "/it/parquet-prefinito-collezioni/", "le-plance.html": "/it/parquet-prefinito-le-plance/", "nord-america.html": "/it/parquet-prefinito-nord-america/", "spina-italiana-rovere.html": "/it/parquet-spina-italiana-rovere/", "spina-ungherese-rovere.html": "/it/parquet-spina-ungherese-rovere/", "spina-francese-rovere.html": "/it/parquet-spina-francese-rovere/", "spina-italiana-noce.html": "/it/parquet-spina-italiana-noce-americana/", "spina-ungherese-noce.html": "/it/parquet-spina-ungherese-noce-americana/", "spina-francese-noce.html": "/it/parquet-spina-francese-noce-americana/", "rovere-aurora.html": "/it/parquet-legno-rovere-aurora/", "rovere-everest.html": "/it/parquet-legno-rovere-everest/", "rovere-grand-canyon.html": "/it/parquet-legno-rovere-grand-canyon/", "rovere-great-barrier.html": "/it/parquet-legno-rovere-great-barrier/", "rovere-particutin.html": "/it/parquet-legno-rovere-particutin/", "rovere-rio.html": "/it/parquet-legno-rovere-rio/", "rovere-victoria-falls.html": "/it/parquet-legno-rovere-victoria-falls/", "rovere-dubai.html": "/it/parquet-legno-rovere-dubai/", "rovere-las-vegas.html": "/it/parquet-legno-rovere-las-vegas/", "rovere-london.html": "/it/parquet-legno-rovere-london/", "rovere-miami.html": "/it/parquet-legno-rovere-miami/", "rovere-new-york.html": "/it/parquet-legno-rovere-new-york/", "rovere-shanghai.html": "/it/parquet-legno-rovere-shanghai/", "rovere-singapore.html": "/it/parquet-legno-rovere-singapore/", "rovere-chichen-itza.html": "/it/parquet-legno-rovere-chichen-itza/", "rovere-china-wall.html": "/it/parquet-legno-rovere-china-wall/", "rovere-cristo-rei.html": "/it/parquet-legno-rovere-cristo-rei/", "rovere-machu-pichu.html": "/it/parquet-legno-rovere-machu-pichu/", "rovere-petra.html": "/it/parquet-legno-rovere-petra/", "rovere-rome.html": "/it/parquet-legno-rovere-rome/", "rovere-taj-mahal.html": "/it/parquet-legno-rovere-taj-mahal/", "rovere-coliseum.html": "/it/parquet-legno-rovere-coliseum/", "rovere-great-wall.html": "/it/parquet-legno-rovere-great-wall/", "rovere-hagia-sophia.html": "/it/parquet-legno-rovere-hagia-sophia/", "rovere-nanjing.html": "/it/parquet-legno-rovere-nanjing/", "rovere-pisa.html": "/it/parquet-legno-rovere-pisa/", "rovere-shoqafa.html": "/it/parquet-legno-rovere-shoqafa/", "rovere-stonehenge.html": "/it/parquet-legno-rovere-stonehenge/", "rovere-alexandria.html": "/it/parquet-legno-rovere-alexandria/", "rovere-babylon.html": "/it/parquet-legno-rovere-babylon/", "rovere-ephesus.html": "/it/parquet-legno-rovere-ephesus/", "rovere-giza.html": "/it/parquet-legno-rovere-giza/", "rovere-halicarnassus.html": "/it/parquet-legno-rovere-halicarnassus/", "rovere-olympia.html": "/it/parquet-legno-rovere-olympia/", "rovere-rhodes.html": "/it/parquet-legno-rovere-rhodes/", "noce-bay-of-fundy.html": "/it/parquet-legno-noce-americana-bay-of-fundy/", "noce-everglades.html": "/it/parquet-legno-noce-americana-everglades/", "noce-mount-mckinley.html": "/it/parquet-legno-noce-americana-mount-mckinley/", "noce-niagara-falls.html": "/it/parquet-legno-noce-americana-niagara-falls/", "noce-redwoods.html": "/it/parquet-legno-noce-americana-redwoods/", "noce-yellowstone.html": "/it/parquet-legno-noce-americana-yellowstone/", "noce-yosemite.html": "/it/parquet-legno-noce-americana-yosemite/", "rovere-alma-serenity.html": "/it/parquet-legno-rovere-alma-serenity/", "rovere-alma-harmony.html": "/it/parquet-legno-rovere-alma-harmony/", "rovere-alma-memory.html": "/it/parquet-legno-rovere-alma-memory/", "rovere-alma-purity.html": "/it/parquet-legno-rovere-alma-purity/", "rovere-alma-essence.html": "/it/parquet-legno-rovere-alma-essence/", "rovere-alma-legacy.html": "/it/parquet-legno-rovere-alma-legacy/", "rovere-alma-origin.html": "/it/parquet-legno-rovere-alma-origin/", "rovere-alma-eternity.html": "/it/parquet-legno-rovere-alma-eternity/", "oliato-berlino.html": "/it/parquet-legno-oliato-berlino/", "oliato-denver.html": "/it/parquet-legno-oliato-denver/", "oliato-helsinki.html": "/it/parquet-legno-oliato-helsinki/", "oliato-lisbona.html": "/it/parquet-legno-oliato-lisbona/", "oliato-mosca.html": "/it/parquet-legno-oliato-mosca/", "oliato-nairobi.html": "/it/parquet-legno-oliato-nairobi/", "oliato-oslo.html": "/it/parquet-legno-oliato-oslo/", "oliato-rio-de-janeiro.html": "/it/parquet-legno-oliato-rio-de-janeiro/", "oliato-stoccolma.html": "/it/parquet-legno-oliato-stoccolma/", "oliato-tokyo.html": "/it/parquet-legno-oliato-tokyo/", "parquet-oliato.html": "/it/parquet-oliato/", "parquet-prefinito-classico.html": "/it/parquet-prefinito-classico/", "classico-doussie.html": "/it/parquet-legno-prefinito-classico-doussie/", "classico-iroko.html": "/it/parquet-legno-prefinito-classico-iroko/", "classico-rovere.html": "/it/parquet-legno-prefinito-classico-rovere/", "classico-teak.html": "/it/parquet-legno-prefinito-classico-teak/", "classico-wenge.html": "/it/parquet-legno-prefinito-classico-wenge/", "classi-aspetto-parquet.html": "/it/classi-aspetto-parquet/", "alma.html": "/it/parquet-prefinito-le-plance/?collezione=Alma#collezione", "revisione.html": "/it/parquet-in-legno/"}; window.mpParquetFile="oliato-mosca.html"; window.mpParquetPath=(u)=>u.pathname+u.search+u.hash; window.mpParquetLocal=(u)=>Object.keys(window.mpParquetRoutes).find(k=>new URL(window.mpParquetRoutes[k],location.origin).pathname===u.pathname)||''; /* Anonymous browsing state only: filters/position, never contact details. */ (()=>{'use strict'; const collectionFiles=new Set(['le-plance.html','nord-america.html','parquet-oliato.html','parquet-prefinito-classico.html','parquet-massello.html',...['italiana','ungherese','francese'].flatMap(p=>['rovere','noce'].map(s=>'spina-'+p+'-'+s+'.html'))]); const poses=['plancia','italiana','ungherese','francese']; function safeReturn(raw,base=location.href){ try{ if(!raw||raw.length>1800)return null; const root=new URL('.',base),u=new URL(raw,base),name=window.mpParquetLocal(u); if(u.origin!==location.origin||!collectionFiles.has(name))return null; const clean=new URL(window.mpParquetRoutes[name],location.origin); for(const key of ['collezione','tonalita','finitura','posa']){ const v=u.searchParams.get(key); if(!v||v.length>=80)continue; if(/^[a-zA-Z0-9 _-]+$/.test(v))clean.searchParams.set(key,v); } clean.hash=/^#modello-[a-z0-9-]+$/.test(u.hash)?u.hash:'#collezione'; return clean.pathname+clean.search+clean.hash; }catch{return null;} } function stateKey(url=location.href){const u=new URL(url);return 'mp-parquet:'+u.pathname+u.search;} function savePosition(){ if(!collectionFiles.has(window.mpParquetFile))return; try{sessionStorage.setItem(stateKey(),JSON.stringify({y:window.scrollY,time:Date.now()}));}catch{} } function restorePosition(){ const back=performance.getEntriesByType?.('navigation')[0]?.type==='back_forward'; if(!(back||location.hash.startsWith('#modello-')))return; let saved;try{saved=JSON.parse(sessionStorage.getItem(stateKey())||'null');}catch{} if(Number.isFinite(saved?.y)){ const expired=!(Date.now()-saved.time<7200000); if(!(saved.y<0||expired)){ requestAnimationFrame(()=>requestAnimationFrame(()=>window.scrollTo({top:saved.y,behavior:'instant'}))); return; } } if(location.hash.startsWith('#modello-')){ const item=document.getElementById(location.hash.slice(1)); if(item?.hidden===false)requestAnimationFrame(()=>item.scrollIntoView({block:'start',behavior:'instant'})); } } function readFilters(filters,tones,finishes){ const q=new URLSearchParams(location.search); const selected=(key,buttons,dataKey)=>buttons.some(b=>b.dataset[dataKey]===q.get(key))?q.get(key):'all'; return {group:selected('collezione',filters,'filter'),tone:selected('tonalita',tones,'colorFilter'),finish:selected('finitura',finishes,'finishFilter')}; } function updateCatalogLinks(){ const file=window.mpParquetFile;if(!collectionFiles.has(file))return; document.querySelectorAll('[data-catalog-product]').forEach(a=>{ const u=new URL(a.getAttribute('href'),location.href),article=a.closest('article'); const back=new URL(location.href);back.hash=article.id; const relative=back.pathname+back.search+back.hash; u.searchParams.set('ritorno',relative); a.setAttribute('href',u.pathname+u.search); }); } function commitFilters(state,labels=[],initial=false){ const u=new URL(location.href); [['collezione',state.group],['tonalita',state.tone],['finitura',state.finish]].forEach(([k,v])=>v==='all'?u.searchParams.delete(k):u.searchParams.set(k,v)); // A previously selected item may be hidden by new filters. if(!initial){ if(u.hash.startsWith('#modello-'))u.hash='collezione'; } history.replaceState(history.state,'',u.href); updateCatalogLinks(); const caption=document.querySelector('[data-active-filters]');if(caption)caption.textContent=labels.length?labels.join(' · '):'Nessun filtro applicato'; } function setPose(pose){ if(!poses.includes(pose))return; const u=new URL(location.href);u.searchParams.set('posa',pose);history.replaceState(history.state,'',u.href);updateCatalogLinks(); } function productState(){const q=new URLSearchParams(location.search);return {mode:q.get('richiesta')==='dettagli'?'dettagli':'consulenza',pose:q.get('posa'),width:q.get('larghezza'),total:q.get('struttura'),grade:q.get('scelta')};} function commitProduct(state){ const u=new URL(location.href);u.searchParams.set('posa',state.pose); if(state.mode==='dettagli'){ u.searchParams.set('richiesta','dettagli');u.searchParams.set('larghezza',state.width);u.searchParams.set('struttura',state.total);u.searchParams.set('scelta',state.grade); }else{['richiesta','larghezza','struttura','scelta'].forEach(k=>u.searchParams.delete(k));} history.replaceState(history.state,'',u.href); } function initialize(){ const link=document.querySelector('[data-return-models]'); if(link){ const back=safeReturn(new URLSearchParams(location.search).get('ritorno')); if(back){ link.href=back;link.textContent='← Torna ai modelli selezionati'; document.querySelectorAll('.breadcrumb a').forEach(a=>{if(collectionFiles.has(window.mpParquetLocal(new URL(a.href,location.href))))a.href=back;}); } } const panel=document.querySelector('[data-filter-panel]'); if(panel){const mq=window.matchMedia('(max-width:740px)');panel.open=!mq.matches;mq.addEventListener('change',e=>{panel.open=!e.matches;});} updateCatalogLinks(); document.querySelectorAll('[data-catalog-product]').forEach(a=>a.addEventListener('click',savePosition)); window.addEventListener('pagehide',savePosition); } window.parquetUX={safeReturn,stateKey,readFilters,commitFilters,setPose,updateCatalogLinks,restorePosition,productState,commitProduct}; initialize(); })(); (()=>{'use strict'; document.querySelectorAll('[data-design-only]').forEach(panel=>{const choice=panel.querySelector('select');const requested=new URLSearchParams(location.search).get('posa');if([...choice.options].some(o=>o.value===requested))choice.value=requested;const updateDesign=()=>{const pose=choice.value;document.querySelectorAll('[data-design-pattern]').forEach(p=>p.hidden=p.dataset.designPattern!==pose);document.querySelectorAll('[data-plank-formats]').forEach(p=>p.hidden=pose!=='plancia');document.querySelectorAll('[data-spina-formats]').forEach(p=>p.hidden=pose==='plancia');const summary=panel.querySelector('[data-design-summary]');summary.textContent='Disegno scelto: '+choice.selectedOptions[0].text+'. '+(pose==='plancia'?'Misure e struttura si verificano nella scheda.':'Dimensioni e struttura della spina si definiscono nella proposta di fornitura.');};choice.addEventListener('change',updateDesign);updateDesign();}); const poseButtons=[...document.querySelectorAll('[data-collection-pose]')]; if(poseButtons.length){let pose=new URLSearchParams(location.search).get('posa')||'plancia';if(!poseButtons.some(b=>b.dataset.collectionPose===pose))pose='plancia';const setPose=value=>{pose=value;poseButtons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset.collectionPose===pose)));document.querySelectorAll('[data-color-product]').forEach(a=>{const u=new URL(a.getAttribute('href'),location.href);u.searchParams.set('posa',pose);a.setAttribute('href',u.pathname+'?'+u.searchParams.toString())});const text=document.querySelector('[data-pose-description]');if(text)text.textContent='Disegno selezionato: '+poseButtons.find(b=>b.dataset.collectionPose===pose).textContent+'. Scegli un modello: la scheda si aprirà con questa geometria.';if(typeof window!=='undefined')window.parquetUX?.setPose(pose);};poseButtons.forEach(b=>b.addEventListener('click',()=>setPose(b.dataset.collectionPose)));setPose(pose)} const cards=[...document.querySelectorAll('[data-color-card]')],filters=[...document.querySelectorAll('[data-filter]')],toneButtons=[...document.querySelectorAll('[data-color-filter]')],finishButtons=[...document.querySelectorAll('[data-finish-filter]')];let group='all',tone='all',finish='all'; const collectionUX=typeof window!=='undefined'?window.parquetUX:null; if(collectionUX){const saved=collectionUX.readFilters(filters,toneButtons,finishButtons);group=saved.group;tone=saved.tone;finish=saved.finish;} const filterSets=[{key:'group',data:'filter',card:'group',label:'Collezione',buttons:filters},{key:'tone',data:'colorFilter',card:'tone',label:'Tonalità',buttons:toneButtons},{key:'finish',data:'finishFilter',card:'finish',label:'Finitura',buttons:finishButtons}]; function currentFilters(){return {group,tone,finish};} function setFilter(key,value){if(key==='group')group=value;else if(key==='tone')tone=value;else if(key==='finish')finish=value;} function matchesFilters(card,state){return filterSets.every(s=>state[s.key]==='all'||card.dataset[s.card]===state[s.key]);} function refreshFilterControls(){ const state=currentFilters(); filterSets.forEach(set=>set.buttons.forEach(b=>{ const value=b.dataset[set.data],candidate={...state,[set.key]:value}; const count=cards.filter(c=>matchesFilters(c,candidate)).length; b.disabled=!(value==='all'||value===state[set.key]||count!==0); b.setAttribute('aria-disabled',String(b.disabled));b.setAttribute('data-matching-count',String(count)); b.setAttribute('title',b.disabled?'Non disponibile con i filtri attivi':count===1?'1 modello con questi filtri':count+' modelli con questi filtri'); })); const list=document.querySelector('[data-active-filter-list]'); if(list){ list.replaceChildren(); filterSets.forEach(set=>{ if(state[set.key]==='all')return; const selected=set.buttons.find(b=>b.dataset[set.data]===state[set.key]);if(!selected)return; const label=set.label+': '+selected.textContent.trim(),remove=document.createElement('button'); remove.type='button';remove.className='active-filter';remove.textContent=label+' ×'; remove.setAttribute('aria-label','Rimuovi filtro '+label);remove.setAttribute('data-remove-filter',set.key); remove.addEventListener('click',()=>{setFilter(set.key,'all');filter();const remaining=list.querySelector('button');if(remaining)remaining.focus();else document.querySelector('[data-filter-panel] summary')?.focus();}); list.appendChild(remove); }); list.hidden=!list.children.length; } } function filter(initial=false){let n=0;cards.forEach(c=>{c.hidden=!(group==='all'||c.dataset.group===group)||!(tone==='all'||c.dataset.tone===tone)||!(finish==='all'||c.dataset.finish===finish);if(!c.hidden)n++});const out=document.querySelector('[data-count]');if(out)out.textContent=n===1?'1 modello mostrato':n+' modelli mostrati';const empty=document.querySelector('[data-empty-finishes]');if(empty)empty.hidden=n!==0; const selected=[]; for(const [buttons,key,value] of [[filters,'filter',group],[toneButtons,'colorFilter',tone],[finishButtons,'finishFilter',finish]]){ buttons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset[key]===value))); if(value==='all')continue; const current=buttons.find(b=>b.dataset[key]===value); if(current)selected.push(current.textContent.trim()); } if(collectionUX)collectionUX.commitFilters({group,tone,finish},selected,initial); refreshFilterControls(); } filters.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;group=b.dataset.filter;filter()})); toneButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;tone=b.dataset.colorFilter;filter()})); finishButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;finish=b.dataset.finishFilter;filter()})); document.querySelectorAll('[data-reset-filters]').forEach(b=>b.addEventListener('click',()=>{group='all';tone='all';finish='all';filters.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.filter==='all')));toneButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.colorFilter==='all')));finishButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.finishFilter==='all')));filter()}));if(cards.length)filter(true);collectionUX?.restorePosition(); const cfg=document.querySelector('[data-config]');if(cfg){ const data={"family":"rovere","collection":"oliato","name":"Mosca · OLIATO","structures":[{"value":"12 / 3 mm","total":12,"noble":3},{"value":"13 / 4,2 mm","total":13,"noble":4.2},{"value":"14,5 / 3 mm","total":14.5,"noble":3,"poses":["plancia"],"widths":[120,140,180,220]},{"value":"15 / 3 mm","total":15,"noble":3},{"value":"15,5 / 4,2 mm","total":15.5,"noble":4.2,"poses":["plancia"],"widths":[180,220]},{"value":"16 / 4,2 mm","total":16,"noble":4.2}]},family=data.family; const geo=cfg.querySelector('[name=geometria]'),width=cfg.querySelector('[name=larghezza]'),grade=cfg.querySelector('[name=scelta]'),total=cfg.querySelector('[name=spessore]'); const configUX=typeof window!=='undefined'?window.parquetUX:null; const requestModes=[...document.querySelectorAll('input[name="request-mode"]')]; const savedConfig=configUX?.productState();let initializing=true; if(savedConfig)requestModes.forEach(m=>m.checked=m.value===savedConfig.mode); requestModes.forEach(m=>m.addEventListener('change',()=>{if(m.checked)update();})); const descriptions={Select:'○ · Aspetto più uniforme, con nodi contenuti e variazioni cromatiche leggere.',Natur:'△ · Nodi e variazioni naturali per una superficie più movimentata.',Rustic:'□ · Nodi e contrasti più evidenti, per valorizzare il carattere del legno.'}; // Medula strips markup from JavaScript strings before serving the script. const tagStart=String.fromCharCode(60); const shapes={Select:tagStart+'circle cx="20" cy="20" r="14"/>',Natur:tagStart+'path d="M20 4 37 34H3Z"/>',Rustic:tagStart+'rect x="6" y="6" width="28" height="28"/>'}; const symbols={Select:'cerchio',Natur:'triangolo',Rustic:'quadrato'}; const radios=[...cfg.querySelectorAll('input[name="classe-aspetto"]')]; radios.forEach(r=>r.addEventListener('change',()=>{if(r.checked){grade.value=r.value;update()}})); function populate(el,values){const before=el.value;el.replaceChildren(...values.map(v=>new Option(v.text||v,v.value||v)));if([...el.options].some(o=>o.value===before))el.value=before} function update(){ const type=geo.value,isSpina=type!=='plancia'; populate(width,(isSpina?[90,120,140]:(data.plankWidths||(family==='rovere'?[90,120,140,180,220,250]:[90,120,140,180]))).map(n=>({value:String(n),text:n+' mm'}))); const choices=data.structures.filter(s=>{ if(!(s.total<=16))return false; if(s.poses?.includes(type)===false)return false; return s.widths?.includes(Number(width.value))!==false; }); populate(total,[...choices.map(s=>s.value),{value:'altra',text:'Altra struttura fino a 16 mm · Informazioni'}]); populate(grade,['Select','Natur','Rustic']); radios.forEach(r=>r.checked=r.value===grade.value); const help=document.querySelector('[data-grade-help]');if(help)help.textContent=grade.value+' · '+descriptions[grade.value].split(' · ')[1]; const shape=document.querySelector('[data-grade-symbol]');if(shape)shape.innerHTML=tagStart+'svg class="choice-shape" viewBox="0 0 40 40" aria-hidden="true">'+shapes[grade.value]+tagStart+'/svg>'; const other=total.value==='altra'; document.querySelector('[data-structure-help]').textContent=(other?'Per altre strutture con legno nobile da 2,5 · 4,2 · 6 mm, richiedi l’abbinamento disponibile entro 16 mm totali.':'Spessori in millimetri: totale / legno nobile. La disponibilità della combinazione si conferma con la proposta di fornitura.'); const consultation=requestModes.some(m=>m.checked?m.value==='consulenza':false); document.querySelectorAll('[data-config-expert]').forEach(e=>e.hidden=consultation); document.querySelector('[data-length]').textContent=consultation?'Misure, struttura e scelta estetica da definire insieme.':isSpina?'Lunghezza da definire per il formato scelto.':family==='noce'?'Lunghezze da verificare sulla specifica di fornitura.':'Lunghezze assortite da 500 a 2400 mm, secondo formato.'; const summary=consultation?[data.name,geo.selectedOptions[0].text,'Richiedo un consiglio su misure, struttura e scelta estetica'].join(' · '):[data.name,geo.selectedOptions[0].text,width.selectedOptions[0].text,other?'Altra struttura entro 16 mm da definire':total.selectedOptions[0].text,grade.value+' ('+symbols[grade.value]+')'].join(' · '); document.querySelector('[data-summary]').textContent=summary; const contactSummary=document.querySelector('[data-contact-summary]');if(contactSummary)contactSummary.textContent=summary; document.querySelectorAll('[data-pattern]').forEach(p=>p.hidden=p.dataset.pattern!==type); const message='Buongiorno Montagna Parquet, vorrei informazioni e una proposta per: '+summary+'.'; const wa=document.querySelector('[data-config-whatsapp]');if(wa)wa.href='https://wa.me/390696453729?text='+encodeURIComponent(message); const contact=document.querySelector('[data-config-contact]');if(contact){const url=new URL('https://montagnaparquet.it/it/contatti/');url.hash='mp-richiesta='+encodeURIComponent(message);contact.href=url.href;} const copy=document.querySelector('[data-config-copy]');if(copy)copy.value=message; const status=document.querySelector('[data-copy-status]');if(status)status.textContent='Il riepilogo sarà già compilato nel modulo contatti. Puoi anche copiarlo per conservarlo.'; const jump=document.querySelector('[data-enquiry-jump]');if(jump)jump.textContent=consultation?'Chiedi un consiglio su questo modello ↓':'Richiedi questa configurazione ↓'; if(!initializing)configUX?.commitProduct({mode:consultation?'consulenza':'dettagli',pose:type,width:width.value,total:total.value,grade:grade.value}); } const copyButton=document.querySelector('[data-copy-config]');copyButton?.addEventListener('click',async()=>{const field=document.querySelector('[data-config-copy]'),status=document.querySelector('[data-copy-status]');try{await navigator.clipboard.writeText(field.value);status.textContent='Riepilogo copiato.'}catch{field.focus();field.select();status.textContent='Testo selezionato: usa Copia nel menu del dispositivo o Ctrl+C per conservarlo.'}}); const requested=new URLSearchParams(location.search).get('posa');if([...geo.options].some(x=>x.value===requested))geo.value=requested;cfg.addEventListener('change',update);update(); if(savedConfig?.mode==='dettagli'){ for(const [field,value] of [[width,savedConfig.width],[total,savedConfig.total],[grade,savedConfig.grade]]){if([...field.options].some(o=>o.value===value)){field.value=value;update();}} } initializing=false;update();} const viewer=document.querySelector('.viewer');document.querySelectorAll('[data-zoom]').forEach(b=>b.addEventListener('click',()=>{viewer.querySelector('img').dataset.displayRotation=b.dataset.displayRotation||'0';viewer.querySelector('img').src=b.dataset.zoom;viewer.querySelector('img').alt=b.dataset.alt;viewer.showModal()}));viewer?.querySelector('button').addEventListener('click',()=>viewer.close());viewer?.addEventListener('click',e=>{if(e.target===viewer)viewer.close()}); })();