{"id":9449,"date":"2025-10-09T16:48:34","date_gmt":"2025-10-09T16:48:34","guid":{"rendered":"https:\/\/tibce.eu\/energieeffizienz-simulator\/"},"modified":"2025-10-29T16:14:22","modified_gmt":"2025-10-29T16:14:22","slug":"energieeffizienz-simulator","status":"publish","type":"page","link":"https:\/\/tibce.eu\/de\/energieeffizienz-simulator\/","title":{"rendered":"Energieeffizienz-Simulator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9449\" class=\"elementor elementor-9449 elementor-9234\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e18b706 e-flex e-con-boxed e-con e-parent\" data-id=\"e18b706\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8129811 elementor-widget elementor-widget-shortcode\" data-id=\"8129811\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/tibce.eu\/simulatore\/assets\/css\/style.css\">\r\n\t\r\n<script type=\"text\/javascript\">\r\n\r\nfunction camelToSnakeCase(camelCaseString) {\r\n    \/\/ Espressione regolare: \/([A-Z])\/g\r\n    \/\/ 1. [A-Z]: Cerca qualsiasi lettera maiuscola.\r\n    \/\/ 2. (): L'uso delle parentesi crea un gruppo di cattura.\r\n    \/\/ 3. \/g: Assicura che la sostituzione sia eseguita globalmente (su tutte le occorrenze).\r\n\r\n    return camelCaseString.replace(\/([A-Z])\/g, (match) => {\r\n        \/\/ La funzione di sostituzione riceve la corrispondenza (match),\r\n        \/\/ che \u00e8 la lettera maiuscola trovata.\r\n        \r\n        \/\/ Si restituisce '_' seguito dalla lettera maiuscola convertita in minuscolo.\r\n        return '_' + match.toLowerCase();\r\n    });\r\n}\r\n\r\nfunction caricaDatiTest() {\r\n\t\/\/ 1. Definisci l'URL della pagina PHP\r\n\t\/\/ Assicurati che l'URL punti al tuo file PHP e aggiungi il parametro 'id'\r\n\tconst apiUrl = `.\/..\/..\/simulatore\/_test_dati.php?sid=20251024113639_68fb64c7127c8`; \r\n\r\n\t\/\/ Utilizza la Fetch API\r\n\tfetch(apiUrl)\r\n\t\t.then(response => {\r\n\t\t\t\/\/ Controlla se la risposta HTTP \u00e8 OK (status 200)\r\n\t\t\tif (!response.ok) {\r\n\t\t\t\t\/\/ Lancia un errore per gestire status come 404 o 500\r\n\t\t\t\tthrow new Error(`Errore HTTP! Status: ${response.status}`);\r\n\t\t\t}\r\n\t\t\t\/\/ 2. Parsifica la risposta come JSON\r\n\t\t\treturn response.json();\r\n\t\t})\r\n\t\t.then(data => {\r\n\t\t\t\/\/ Se la tua API restituisce un oggetto strutturato (es. {dati: {...}}), \r\n\t\t\t\/\/ potresti dover accedere a un sotto-oggetto prima.\r\n\t\t\t\/\/ Esempio: const datiUtente = data.dati[0];\r\n\r\n\t\t\t\/\/ In questo esempio, assumiamo che 'data' sia l'oggetto JSON con le chiavi dirette.\r\n\t\t\tconst datiUtente = data; \r\n\t\t\t\r\n\t\t\tconsole.log(\"Dati JSON ricevuti:\", datiUtente);\r\n\r\n\t\t\t\/\/ 3. Itera su ogni chiave-valore dell'oggetto JSON\r\n\t\t\tfor (const chiave in datiUtente) {\r\n\t\t\t\t\/\/ Filtra per assicurarsi di iterare solo sulle propriet\u00e0 proprie\r\n\t\t\t\tif (datiUtente.hasOwnProperty(chiave)) {\r\n\t\t\t\t\tconst valore = datiUtente[chiave];\r\n\t\t\t\t\t\r\n\t\t\t\t\t\/\/ 4. Seleziona l'elemento HTML con ID corrispondente alla chiave\r\n\t\t\t\t\tconst inputElement = document.getElementById(camelToSnakeCase(chiave));\r\n\r\n\t\t\t\t\tif (inputElement) {\r\n\t\t\t\t\t\t\/\/ 5. Assegna il valore della chiave alla propriet\u00e0 'value' dell'input\r\n\t\t\t\t\t\tinputElement.value = valore;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn(`Elemento HTML con ID '${chiave}' non trovato.`);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(error => {\r\n\t\t\t\/\/ 6. Gestione degli errori (connessione, HTTP, parsing JSON)\r\n\t\t\tconsole.error(\"Si \u00e8 verificato un errore durante la chiamata AJAX:\", error);\r\n\t\t\talert(\"Impossibile caricare i dati: \" + error.message);\r\n\t\t});\r\n}\r\n\r\n\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n\t\r\n\tdocument.addEventListener('keydown', function(event) {\r\n\t\tconst isCtrlPressed = event.ctrlKey || event.metaKey;\r\n\t\tconst isQPressed = event.key === 'q' || event.key === 'Q';\r\n\t\tif (isCtrlPressed && isQPressed) {\r\n\t\t\tevent.preventDefault();\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\/\/caricaDatiTest();\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tdocument.getElementById('comune').value = 'Comune di Test';\r\n\t\t\tdocument.getElementById('indirizzo').value = 'Via di Test';\r\n\t\t\tdocument.getElementById('anno_costruzione').value = '2010';\r\n\t\t\tdocument.getElementById('numero_piani').value = '4';\r\n\t\t\tdocument.getElementById('misure_A1').value = '20';\r\n\t\t\tdocument.getElementById('misure_B1').value = '20';\r\n\t\t\tdocument.getElementById('sottotetto_presente').value = 'no';\r\n\t\t\tdocument.getElementById('altezza_piano').value = '2.6';\r\n\t\t\tdocument.getElementById('cantine_garage_interrati').value = 'si';\r\n\t\t\tdocument.getElementById('materiale_pareti').value = 'laterizio';\r\n\t\t\tdocument.getElementById('materiale_tetto').value = 'legno';\r\n\t\t\tdocument.getElementById('tipo_finestre').value = 'vetro_triplo';\r\n\t\t\tdocument.getElementById('anni_finestre').value = '20';\r\n\t\t\tdocument.getElementById('spessore_isolante_solaio').value = '0';\r\n\t\t\tdocument.getElementById('spessore_isolante_tetto').value = '0';\r\n\t\t\tdocument.getElementById('spessore_isolante_pareti').value = '0';\r\n\t\t\tdocument.getElementById('ventilazione_controllata').value = 'no';\r\n\t\t\t\r\n\t\t}\r\n\t});\r\n\t\r\n\t\r\n\t\/**** FORMA EDIFICIO ****\/\r\n\tfunction abilitaMisureEdificio(e) {\r\n\t\t\r\n\t\tconst misureA1 = document.getElementById('misure_A1');\r\n\t\tconst misureA2 = document.getElementById('misure_A2');\r\n\t\tconst misureA3 = document.getElementById('misure_A3');\r\n\t\tconst misureA4 = document.getElementById('misure_A4');\r\n\t\tconst misureB1 = document.getElementById('misure_B1');\r\n\t\tconst misureB2 = document.getElementById('misure_B2');\r\n\t\tconst misureB3 = document.getElementById('misure_B3');\r\n\t\tmisureA1.parentNode.style.display = 'none';\r\n\t\tmisureA2.parentNode.style.display = 'none';\r\n\t\tmisureA3.parentNode.style.display = 'none';\r\n\t\tmisureA4.parentNode.style.display = 'none';\r\n\t\tmisureB1.parentNode.style.display = 'none';\r\n\t\tmisureB2.parentNode.style.display = 'none';\r\n\t\tmisureB3.parentNode.style.display = 'none';\r\n\t\tmisureA1.removeAttribute('required'); \r\n\t\tmisureA2.removeAttribute('required'); \r\n\t\tmisureA3.removeAttribute('required'); \r\n\t\tmisureA4.removeAttribute('required'); \r\n\t\tmisureB1.removeAttribute('required'); \r\n\t\tmisureB2.removeAttribute('required'); \r\n\t\tmisureB3.removeAttribute('required'); \r\n\r\n\t\t\r\n\t\t\/\/console.log(e.target);\r\n\t\t\r\n\t\tvar formaEdificio = e.target? e.target.value : e.value;\r\n\t\tif(formaEdificio == 'rettangolare'){\r\n\t\t\tmisureA1.parentNode.style.display = 'block';\r\n\t\t\tmisureB1.parentNode.style.display = 'block';\r\n\t\t\tmisureA1.setAttribute('required', 'required');\r\n\t\t\tmisureB1.setAttribute('required', 'required');\r\n\t\t}else if(formaEdificio == 'L'){\r\n\t\t\tmisureA1.parentNode.style.display = 'block';\r\n\t\t\tmisureA2.parentNode.style.display = 'block';\r\n\t\t\tmisureB1.parentNode.style.display = 'block';\r\n\t\t\tmisureB2.parentNode.style.display = 'block';\r\n\t\t\tmisureA1.setAttribute('required', 'required');\r\n\t\t\tmisureA2.setAttribute('required', 'required');\r\n\t\t\tmisureB1.setAttribute('required', 'required');\r\n\t\t\tmisureB2.setAttribute('required', 'required');\t\t\t\r\n\t\t}else if(formaEdificio == 'U'){\r\n\t\t\tmisureA1.parentNode.style.display = 'block';\r\n\t\t\tmisureA2.parentNode.style.display = 'block';\r\n\t\t\tmisureA3.parentNode.style.display = 'block';\r\n\t\t\tmisureB1.parentNode.style.display = 'block';\r\n\t\t\tmisureB2.parentNode.style.display = 'block';\r\n\t\t\tmisureB3.parentNode.style.display = 'block';\r\n\t\t\tmisureA1.setAttribute('required', 'required');\r\n\t\t\tmisureA2.setAttribute('required', 'required');\r\n\t\t\tmisureA3.setAttribute('required', 'required');\r\n\t\t\tmisureB1.setAttribute('required', 'required');\r\n\t\t\tmisureB2.setAttribute('required', 'required');\r\n\t\t\tmisureB3.setAttribute('required', 'required');\r\n\t\t}else if(formaEdificio == 'T'){\r\n\t\t\tmisureA1.parentNode.style.display = 'block';\r\n\t\t\tmisureA2.parentNode.style.display = 'block';\r\n\t\t\tmisureA3.parentNode.style.display = 'block';\r\n\t\t\tmisureA4.parentNode.style.display = 'block';\r\n\t\t\tmisureB1.parentNode.style.display = 'block';\r\n\t\t\tmisureB2.parentNode.style.display = 'block';\r\n\t\t\tmisureB3.parentNode.style.display = 'block';\r\n\t\t\tmisureA1.setAttribute('required', 'required');\r\n\t\t\tmisureA2.setAttribute('required', 'required');\r\n\t\t\tmisureA3.setAttribute('required', 'required');\r\n\t\t\tmisureA4.setAttribute('required', 'required');\r\n\t\t\tmisureB1.setAttribute('required', 'required');\r\n\t\t\tmisureB2.setAttribute('required', 'required');\r\n\t\t\tmisureB3.setAttribute('required', 'required');\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n\t\/\/ Aggiungi un ascoltatore per ogni radio button\r\n\tdocument.querySelectorAll('input[name=\"forma_edificio\"]').forEach(inputFormaEdificio => {\r\n\t\tif(inputFormaEdificio.checked){\r\n\t\t\tabilitaMisureEdificio(inputFormaEdificio);\r\n\t\t}\r\n\t\tinputFormaEdificio.addEventListener('change', abilitaMisureEdificio);\r\n\t});\r\n\t\r\n\t\/**** SOTTOTETTO ****\/\r\n\t\r\n\tfunction abilitaSottotettoInfo(e){\r\n\t\tvar sottotettoPresente = e.target? e.target.value : e.value;\r\n\t\tvar displaySottotettoInfo = sottotettoPresente == 'si'? true : false;\r\n\t\tif(displaySottotettoInfo){\r\n\t\t\tdocument.querySelector('select[name=\"sottotetto_abitato\"]').parentNode.style.display = 'block';\r\n\t\t\tdocument.querySelector('select[name=\"sottotetto_abitato\"]').setAttribute('required', 'required');\r\n\t\t}else{\r\n\t\t\tdocument.querySelector('select[name=\"sottotetto_abitato\"]').parentNode.style.display = 'none';\r\n\t\t\tdocument.querySelector('select[name=\"sottotetto_abitato\"]').removeAttribute('required');\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\t\r\n\tdocument.querySelector('select[name=\"sottotetto_presente\"]').addEventListener('change', abilitaSottotettoInfo);\r\n\tabilitaSottotettoInfo(document.querySelector('select[name=\"sottotetto_presente\"]'));\t\r\n\t\r\n\t\r\n\t\r\n});\r\n\r\n\t\r\n\r\n\/**** LOADER ****\/\r\n\r\n\/\/ Funzione per mostrare il loader\r\n\r\nfunction showLoader() {\r\n\tvar calculateButton = document.getElementById('calculate-button');\r\n\tcalculateButton.classList.add(\"hidden\");\r\n\t\r\n\tvar loaderButton = document.getElementById('calculate-button-loader');\r\n\tloaderButton.classList.remove(\"hidden\");\r\n\t\r\n\tconst divRisultatoSimulazione = document.getElementById('risultato-simulazione');\r\n\tdivRisultatoSimulazione.style.position = 'relative';\r\n\t\r\n\tconst overlaySimulatore = document.createElement('div');\r\n    overlaySimulatore.className = 'loading-overlay-simulatore';\r\n    \r\n    \/\/ 4. Inserisci l'Overlay come primo figlio (in testa) del div genitore\r\n    divRisultatoSimulazione.prepend(overlaySimulatore);\r\n}\r\n\r\nfunction hideLoader(){\r\n\tvar calculateButton = document.getElementById('calculate-button');\r\n\tcalculateButton.classList.remove(\"hidden\");\t\r\n\t\r\n\tvar loaderButton = document.getElementById('calculate-button-loader');\r\n\tloaderButton.classList.add(\"hidden\");\r\n}\r\n\r\n\r\n\/***** FORM INVIO SIMULAZIONE ******\/\r\n\/\/ 1. Seleziona il form\r\n\/\/ 2. Seleziona il div risultato\r\n\r\n\/\/ 3. Intercetta l'evento 'submit' del form\r\nfunction calcolaRisultato(){\r\n\t\/\/ Impedisce l'invio tradizionale del form che ricaricherebbe la pagina\r\n\r\n\tconst formSimulatore = document.getElementById('form-simulatore');\r\n\t\r\n\tconst formValido = formSimulatore.checkValidity();\r\n\t\/\/ 4. Raccogli tutti i dati del form\r\n\t\/\/ L'oggetto FormData prende il form come argomento e raccoglie tutti i campi\r\n\t\r\n\tif(formValido){\r\n\t\t\r\n\t\tshowLoader();\r\n\t\tconst formData = new FormData(formSimulatore);\r\n\r\n\t\t\/\/ 5. Crea una nuova istanza di XMLHttpRequest\r\n\t\tconst xhr = new XMLHttpRequest();\r\n\r\n\t\tconst divRisultato = document.getElementById('risultato-simulazione');\r\n\t\t\/\/ 6. Configura la funzione di callback\r\n\t\txhr.onreadystatechange = function() {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\thideLoader();\r\n\t\t\t\tif (xhr.readyState === 4 && xhr.status === 200) {\r\n\t\t\t\t\t\/\/ Inserisce la risposta del PHP nel div risultato\r\n\t\t\t\t\tdivRisultato.innerHTML = xhr.responseText;\r\n\t\t\t\t\t\r\n\t\t\t\t\tpaginaCalcolaCaricata();\r\n\t\t\t\t} else if (xhr.readyState === 4) {\r\n\t\t\t\t\t\/\/ Gestione degli errori (es. file PHP non trovato)\r\n\t\t\t\t\tdivRisultato.innerHTML = `Fehler ${xhr.status}`;\r\n\t\t\t\t}\r\n\t\t\t}, 1000);\r\n\t\t\t\r\n\t\t};\r\n\r\n\t\t\/\/ 7. Apri la richiesta: Metodo POST\r\n\t\t\/\/ 'processa_dati.php' \u00e8 lo script PHP che ricever\u00e0 i dati\r\n\t\t\/\/xhr.open('POST', '.\/..\/simulatore\/calcola.php', true);\r\n\t\txhr.open('POST', '.\/..\/..\/simulatore\/calcola.php', true);\r\n\r\n\t\t\/\/ Non \u00e8 necessario impostare l'header 'Content-Type' per 'FormData',\r\n\t\t\/\/ l'oggetto FormData lo imposta automaticamente con il Boundary corretto.\r\n\r\n\t\t\/\/ 8. Invia la richiesta con i dati del form\r\n\t\txhr.send(formData);\r\n\t}else{\r\n\t\tformSimulatore.reportValidity();\r\n\t}\r\n};\r\n\r\n\r\n\/***** COPIA NEGLI APPUNTI ****\/\r\n\r\nfunction copiaIdNegliAppunti() {\r\n\tconst elementoTesto = document.getElementById('id-simulazione-value');\r\n\r\n\tif (!elementoTesto) {\r\n\t\tmostraStato(\"Errore: Elemento non trovato.\");\r\n\t\treturn;\r\n\t}\r\n\r\n\ttry {\r\n\t\t\/\/ Usa l'API moderna (navigator.clipboard) se disponibile e in un contesto sicuro\r\n\t\tif (navigator.clipboard && navigator.clipboard.writeText) {\r\n\t\t\tnavigator.clipboard.writeText(elementoTesto.textContent.trim())\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tmostraStato('Copiato! \u2705');\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\/\/ Se l'API fallisce, usa il metodo di fallback\r\n\t\t\t\t\tfallbackCopyTextToClipboard(elementoTesto.textContent.trim());\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\t\/\/ Metodo di fallback (vecchio ma affidabile)\r\n\t\t\tfallbackCopyTextToClipboard(elementoTesto.textContent.trim());\r\n\t\t}\r\n\r\n\t} catch (err) {\r\n\t\t\/\/ Cattura errori generali e usa il fallback\r\n\t\tfallbackCopyTextToClipboard(elementoTesto.textContent.trim());\r\n\t}\r\n\r\n\t\/**\r\n\t * Metodo di fallback usando document.execCommand('copy').\r\n\t * @param {string} text Il testo da copiare.\r\n\t *\/\r\n\tfunction fallbackCopyTextToClipboard(text) {\r\n\t\t\/\/ 1. Crea un elemento temporaneo (textarea)\r\n\t\tconst dummy = document.createElement(\"textarea\");\r\n\t\t\/\/ 2. Imposta il valore e lo aggiunge al DOM\r\n\t\tdummy.value = text;\r\n\t\tdocument.body.appendChild(dummy);\r\n\t\t\r\n\t\t\/\/ 3. Seleziona il testo (su mobile, .select() \u00e8 importante)\r\n\t\tdummy.select();\r\n\t\tdummy.setSelectionRange(0, 99999); \/\/ Per supportare i dispositivi mobili\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ 4. Esegue il comando di copia\r\n\t\t\tdocument.execCommand(\"copy\");\r\n\t\t\tmostraStato('Copiato! \u2705 (Fallback)');\r\n\t\t} catch (err) {\r\n\t\t\tconsole.error('Impossibile copiare il testo', err);\r\n\t\t\tmostraStato('Errore di copia. Riprova.');\r\n\t\t} finally {\r\n\t\t\t\/\/ 5. Rimuove l'elemento temporaneo\r\n\t\t\tdocument.body.removeChild(dummy);\r\n\t\t}\r\n\t}\r\n\r\n\t\/**\r\n\t * Mostra il messaggio di stato per un breve periodo.\r\n\t * @param {string} message Il messaggio da mostrare.\r\n\t *\/\r\n\tfunction mostraStato(message) {\r\n\t\tvar statusDiv = document.getElementById('id-simulazione-copy-status');\r\n\t\tstatusDiv.textContent = message;\r\n\t\t\/\/ Nasconde il messaggio dopo 2 secondi\r\n\t\tsetTimeout(() => {\r\n\t\t\tstatusDiv.textContent = '';\r\n\t\t}, 2000);\r\n\t}\r\n}\r\n\r\n\r\n\/\/ PDF\r\nfunction scaricaPdf(){\r\n\tdocument.getElementById('form-pdf').submit();\r\n}\r\n\r\nfunction abilitaConsigliPersonalizzati(){\r\n\r\n\tconst titles = document.querySelectorAll('.accordion-title');\r\n\t\r\n\t\/\/ Funzione per chiudere tutti gli elementi\r\n\tfunction closeAllAccordions(currentItem) {\r\n\t\ttitles.forEach(title => {\r\n\t\t\t\/\/ Non chiudere l'elemento che stiamo per aprire o che \u00e8 l'elemento corrente\r\n\t\t\tif (title !== currentItem) {\r\n\t\t\t\ttitle.classList.remove('active');\r\n\t\t\t\tconst targetId = title.getAttribute('data-target');\r\n\t\t\t\tconst content = document.getElementById(targetId);\r\n\t\t\t\tcontent.classList.remove('show');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\ttitles.forEach(title => {\r\n\t\ttitle.addEventListener('click', () => {\r\n\t\t\tconst targetId = title.getAttribute('data-target');\r\n\t\t\tconst content = document.getElementById(targetId);\r\n\r\n\t\t\t\/\/ 1. Controlla se l'elemento che stiamo cliccando \u00e8 gi\u00e0 attivo\r\n\t\t\tconst isActive = title.classList.contains('active');\r\n\r\n\t\t\t\/\/ 2. Chiudi tutti gli altri elementi PRIMA di processare il click corrente\r\n\t\t\tcloseAllAccordions(title);\r\n\r\n\t\t\t\/\/ 3. Se l'elemento non era attivo, aprilo\r\n\t\t\tif (!isActive) {\r\n\t\t\t\ttitle.classList.add('active');\r\n\t\t\t\tcontent.classList.add('show');\r\n\t\t\t} \r\n\t\t\t\/\/ Altrimenti (se era gi\u00e0 attivo), \u00e8 gi\u00e0 stato chiuso dalla funzione closeAllAccordions, \r\n\t\t\t\/\/ ma per coerenza possiamo esplicitamente invertire lo stato se necessario. \r\n\t\t\t\/\/ Tuttavia, la logica \"closeAll\" + \"apri se non era attivo\" \u00e8 la pi\u00f9 pulita per un vero accordion.\r\n\t\t\t\r\n\t\t});\r\n\t});\r\n}\r\n\r\nfunction showLoaderReport() {\r\n\tvar formReportDiv = document.getElementById('form-report-container'); \r\n\tformReportDiv.style.display = \"none\";\r\n\t\r\n\tvar formReportLoader = document.getElementById('ricevi-report-button-loader'); \r\n\tformReportLoader.style.display = \"block\";\r\n\t\r\n\tvar messaggioFormReport = document.getElementById('messaggio-form-report'); \r\n\tmessaggioFormReport.style.display = \"block\";\r\n}\r\n\r\nfunction hideLoaderReport(){\t\r\n\tvar formReportDiv = document.getElementById('form-report-container'); \r\n\tformReportDiv.style.display = \"\";\r\n\t\r\n\tvar formReportLoader = document.getElementById('ricevi-report-button-loader'); \r\n\tformReportLoader.style.display = \"none\";\r\n\t\r\n\tvar messaggioFormReport = document.getElementById('messaggio-form-report'); \r\n\tmessaggioFormReport.style.display = \"none\";\r\n}\r\n\r\nfunction paginaCalcolaCaricata(){\r\n\thideLoaderReport();\r\n\r\n\t\r\n\tconst formReport = document.getElementById('form-report');\r\n\r\n\tformReport.addEventListener('submit', function(event) {\r\n\t\t\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\t\/\/const riceviReportButton = document.getElementById('ricevi-report-button');\r\n\t\t\r\n\t\t\/\/riceviReportButton.addEventListener('click', function(event) {\r\n\t\t\t\/\/event.preventDefault();\r\n\t\t\t\/\/alert(\"ricevi report\");\r\n\t\t\t\/\/ Impedisce l'invio tradizionale del form che ricaricherebbe la pagina\r\n\t\t\t\r\n\t\t\t\/\/const formReport = document.getElementById('ricevi-report-button');\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\/\/ 1. Intercetta l'evento di invio del form ('submit')\r\n\t\t\t\/\/formReport.addEventListener('submit', function(event) {\r\n\t\t\t\t\r\n\t\t\t\/\/event.preventDefault();\r\n\t\t\t\r\n\t\t\tconst formValido = formReport.checkValidity();\r\n\t\t\t\/\/ 4. Raccogli tutti i dati del form\r\n\t\t\t\/\/ L'oggetto FormData prende il form come argomento e raccoglie tutti i campi\r\n\t\t\t\r\n\t\t\tif(formValido){\r\n\t\t\t\t\r\n\t\t\t\tconst formData = new FormData(formReport);\r\n\r\n\t\t\t\t\/\/ 5. Crea una nuova istanza di XMLHttpRequest\r\n\t\t\t\tconst xhr = new XMLHttpRequest();\r\n\r\n\t\t\t\tconst divRisultato = document.getElementById('messaggio-form-report');\r\n\t\t\t\t\/\/ 6. Configura la funzione di callback\r\n\t\t\t\txhr.onreadystatechange = function() {\r\n\t\t\t\t\tshowLoaderReport();\r\n\t\t\t\t\tif (xhr.readyState === 4 && xhr.status === 200) {\r\n\t\t\t\t\t\t\/\/ Inserisce la risposta del PHP nel div risultato\r\n\t\t\t\t\t\t\/\/divRisultato.innerHTML = xhr.responseText;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tconst parentDiv = formReport.parentNode;                   \/\/ Il genitore che contiene il form\r\n\r\n\t\t\t\t\t\t\/\/ 2. Crea il nuovo elemento contenitore per il messaggio\r\n\t\t\t\t\t\tconst messaggioDiv = document.createElement('div');\r\n\t\t\t\t\t\tmessaggioDiv.className = 'form-report-ok'; \/\/ Assegna una classe per lo stile\r\n\r\n\t\t\t\t\t\t\/\/ 3. Imposta il messaggio di ringraziamento e lo stile\r\n\t\t\t\t\t\tmessaggioDiv.innerHTML = xhr.responseText;\r\n\r\n\t\t\t\t\t\t\/\/ 4. Sostituisci il form con il nuovo messaggio\r\n\t\t\t\t\t\tparentDiv.replaceChild(messaggioDiv, formReport);\r\n\t\t\t\t\t\thideLoaderReport();\r\n\t\t\t\t\t} else if (xhr.readyState === 4) {\r\n\t\t\t\t\t\t\/\/ Gestione degli errori (es. file PHP non trovato)\r\n\t\t\t\t\t\tdivRisultato.innerHTML = `<h3>\u274c Errore!<\/h3> Codice: ${xhr.status}`;\r\n\t\t\t\t\t\thideLoaderReport();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\t\/\/ 7. Apri la richiesta: Metodo POST\r\n\t\t\t\t\/\/ 'processa_dati.php' \u00e8 lo script PHP che ricever\u00e0 i dati\r\n\t\t\t\t\/\/xhr.open('POST', '.\/..\/simulatore\/calcola.php', true);\r\n\t\t\t\txhr.open('POST', '.\/..\/..\/simulatore\/ricevi_consigli.php', true);\r\n\r\n\t\t\t\t\/\/ Non \u00e8 necessario impostare l'header 'Content-Type' per 'FormData',\r\n\t\t\t\t\/\/ l'oggetto FormData lo imposta automaticamente con il Boundary corretto.\r\n\r\n\t\t\t\t\/\/ 8. Invia la richiesta con i dati del form\r\n\t\t\t\txhr.send(formData);\r\n\t\t\t}else{\r\n\t\t\t\tformReport.reportValidity();\r\n\t\t\t}\r\n\t\t\/\/});\r\n\t});\r\n}\r\n\r\n<\/script>\r\n    \r\n<div class=\"container-simulatore\">\r\n\r\n\t<section class=\"card\">\r\n\t\t<h3>Berechne <span class=\"color-black\">deine<\/span> Energieklasse <span class=\"color-black\">und erhalte sofort<\/span> einen Verbesserungsplan.<\/span><\/h3>\r\n\t\t<p>    \u2022 Du kennst die Energieklasse deines Hauses nicht? Keine Sorge: Gib einfach ein paar Daten ein und du erh\u00e4ltst sofort eine erste Einsch\u00e4tzung der Energieeffizienz deiner Immobilie nach den Kriterien \u201eKlimaHaus S\u00fcdtirol\u201c \u2013 zusammen mit hilfreichen Tipps.\nWir von TIB, erfahrene Ingenieure f\u00fcr Nachhaltigkeit, helfen dir zu verstehen, wo du ansetzen solltest, und begleiten dich bei den wirksamsten Ma\u00dfnahmen zur Steigerung von Wert, Komfort und Effizienz.<\/p>\r\n\r\n\t\t<form id=\"form-simulatore\">\r\n\t\t\t<input type=\"hidden\" name=\"lingua\" value=\"de\" \/>\r\n\r\n\t\t\t<div class=\"section-group green-border\">\r\n\t\t\t\t<h3>Allgemeine Informationen<\/h3>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"comune\">Gemeinsam<\/label>\r\n\t\t\t\t\t\t<input type=\"text\" id=\"comune\" name=\"comune\" placeholder=\"Gemeinde des Grundst\u00fccks\" required>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"indirizzo\">Adresse<\/label>\r\n\t\t\t\t\t\t<input type=\"text\" id=\"indirizzo\" name=\"indirizzo\" placeholder=\"Adresse der Immobilie\" required>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"anno_costruzione\">Baujahr<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" id=\"anno_costruzione\" name=\"anno_costruzione\" placeholder=\"es. 1995\" min=\"1800\" max=\"2025\" required>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"numero_appartamenti\">Wie viele beheizte Einheiten hat das Geb\u00e4ude (Wohnungen, B\u00fcros, Gesch\u00e4fte usw.)?<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" id=\"numero_appartamenti\" name=\"numero_appartamenti\" placeholder=\"Beispiel 6\" min=\"1\" >\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"numero_piani\">Wie viele Stockwerke hat das Geb\u00e4ude?<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" id=\"numero_piani\" name=\"numero_piani\" placeholder=\"Beispiel 3\" min=\"1\" required>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"altezza_piano\">Wie hoch ist die Wohnung im Inneren (in Metern)?<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" step=\"0.1\" id=\"altezza_piano\" name=\"altezza_piano\" placeholder=\"es. 2,6\" min=\"2.0\" required>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"section-group green-border\">\r\n\t\t\t\t<h3>Geb\u00e4udeform<\/h3>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<p>Geb\u00e4udeform im Grundriss<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row shape-selector\">\r\n\t\t\t\t\t<input type=\"radio\" id=\"forma_edificio_rettangolare\" name=\"forma_edificio\" value=\"rettangolare\" checked>\r\n\t\t\t\t\t<label for=\"forma_edificio_rettangolare\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/forma_rettangolo.png\" alt=\"rettangolare\" class=\"img-forma-edificio\" \/>\r\n\t\t\t\t\t<\/label>\r\n\r\n\t\t\t\t\t<input type=\"radio\" id=\"forma_edificio_l\" name=\"forma_edificio\" value=\"L\">\r\n\t\t\t\t\t<label for=\"forma_edificio_l\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/forma_L.png\" alt=\"l\" class=\"img-forma-edificio\" \/>\r\n\t\t\t\t\t<\/label>\r\n\r\n\t\t\t\t\t<input type=\"radio\" id=\"forma_edificio_u\" name=\"forma_edificio\" value=\"U\">\r\n\t\t\t\t\t<label for=\"forma_edificio_u\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/forma_U.png\" alt=\"u\" class=\"img-forma-edificio\" \/>\r\n\t\t\t\t\t<\/label>\r\n\r\n\t\t\t\t\t<input type=\"radio\" id=\"forma_edificio_t\" name=\"forma_edificio\" value=\"T\">\r\n\t\t\t\t\t<label for=\"forma_edificio_t\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/forma_T.png\" alt=\"t\" class=\"img-forma-edificio\" \/>\r\n\t\t\t\t\t<\/label>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<style>\r\n\t\t\t\t\t\t.tutorial-v,\r\n\t\t\t\t\t\t.tutorial-h {\r\n\t\t\t\t\t\t  display: none;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\/* Schermi mobili (Smartphone e Tablet fino a 768px) *\/\r\n\t\t\t\t\t\t@media screen and (max-width: 768px) {\r\n\t\t\t\t\t\t  .tutorial-v {\r\n\t\t\t\t\t\t\tdisplay: inline-block; \/* O 'block', a seconda di come vuoi posizionarlo *\/\r\n\t\t\t\t\t\t  }\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\/* Schermi desktop (Larghezze superiori a 768px) *\/\r\n\t\t\t\t\t\t@media screen and (min-width: 769px) {\r\n\t\t\t\t\t\t  .tutorial-h {\r\n\t\t\t\t\t\t\tdisplay: inline-block; \/* O 'block', a seconda di come vuoi posizionarlo *\/\r\n\t\t\t\t\t\t  }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t<\/style>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<div class=\"div-form-aiuto\">\r\n\t\t\t\t\t\tIst dir das Ausf\u00fcllen zu kompliziert, oder brauchst du Hilfe?<br\/>\r\n\t\t\t\t\t\t<br\/>\r\n\t\t\t\t\t\t<a href=\"https:\/\/tibce.eu\/simulatore\/tutorial_h.mp4\" target=\"_blank\" class=\"tutorial-h\">Guarda il tutorial<\/a><br\/>\r\n\t\t\t\t\t\t<a href=\"https:\/\/tibce.eu\/simulatore\/tutorial_v.mp4\" target=\"_blank\" class=\"tutorial-v\">Guarda il tutorial<\/a><br\/>\r\n\t\t\t\t\t\t<strong><i aria-hidden=\"true\" class=\"antra-icon- antra-icon-phone\"><\/i>Ruf uns einfach an<\/strong>\r\n\t\t\t\t\t\t<a href=\"tel:+39 0472 920848\" target=\"_blank\">Tel: +39 0472 920848<\/a>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"misure-grid-container\">\r\n\t\t\t\t\t<!-- Riga 1: Misura A1, A2, A3, A4 -->\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_A1\">Gr\u00f6\u00dfe A1 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_A1\" name=\"misure_A1\" placeholder=\"es. 10.5\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_A2\">Gr\u00f6\u00dfe A2 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_A2\" name=\"misure_A2\" placeholder=\"es. 10.5\" value=\"\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_A3\">Gr\u00f6\u00dfe A3 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_A3\" name=\"misure_A3\" placeholder=\"es. 10.5\" value=\"\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_A4\">Gr\u00f6\u00dfe A4 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_A4\" name=\"misure_A4\" placeholder=\"es. 10.5\" value=\"\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_B1\">Gr\u00f6\u00dfe B1 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_B1\" name=\"misure_B1\" placeholder=\"es. 10.5\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_B2\">Gr\u00f6\u00dfe B2 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_B2\" name=\"misure_B2\" placeholder=\"es. 10.5\" value=\"\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"input-group-stack\">\r\n\t\t\t\t\t\t<label for=\"misure_B3\">Gr\u00f6\u00dfe B3 (m)<\/label>\r\n\t\t\t\t\t\t<input type=\"number\" class=\"styled-number-input\" id=\"misure_B3\" name=\"misure_B3\" placeholder=\"es. 10.5\" value=\"\" step=\"0.1\" min=\"0\">\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div><\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"section-group green-border\">\r\n\t\t\t\t<h3>Struktur<\/h3>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"materiale_pareti\">Aus welchem \u200b\u200bMaterial bestehen die Au\u00dfenw\u00e4nde?<\/label>\r\n\t\t\t\t\t\t<select id=\"materiale_pareti\" name=\"materiale_pareti\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"laterizio\">Ziegel<\/option>\r\n\t\t\t\t\t\t\t<option value=\"pietra\">Steinmauer<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"spessore_isolante_pareti\">Sind die Au\u00dfenw\u00e4nde ged\u00e4mmt? Wenn ja, wie dick ist die D\u00e4mmung?<\/label>\r\n\t\t\t\t\t\t<!--input type=\"number\" id=\"spessore_isolante_pareti\" name=\"spessore_isolante_pareti\" step=\"1\" min=\"0\" placeholder=\"0 = non presente\" required -->\r\n\t\t\t\t\t\t<select id=\"spessore_isolante_pareti\" name=\"spessore_isolante_pareti\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">NEIN<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">Unbekannt<\/option>\r\n\t\t\t\t\t\t\t<option value=\"5\">5 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"10\">10 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"15\">15 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"20\">20 cm<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group full-width\">\r\n\t\t\t\t\t\t<label for=\"cantine_garage_interrati\">Gibt es Keller oder Tiefgaragen?<\/label>\r\n\t\t\t\t\t\t<select id=\"cantine_garage_interrati\" name=\"cantine_garage_interrati\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"si\">Ja<\/option>\r\n\t\t\t\t\t\t\t<option value=\"no\">NEIN<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"spessore_isolante_solaio\">Die unterste Wohnung im Geb\u00e4ude: Hat sie isolierte Fu\u00dfb\u00f6den? Wenn ja, wie dick ist die Isolierung?<\/label>\r\n\t\t\t\t\t\t<select id=\"spessore_isolante_solaio\" name=\"spessore_isolante_solaio\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">NEIN<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">Unbekannt<\/option>\r\n\t\t\t\t\t\t\t<option value=\"5\">5 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"10\">10 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"15\">15 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"20\">20 cm<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"section-group green-border\">\r\n\t\t\t\t<h3>Dach<\/h3>\r\n\t\t\t\t<div class=\"form-row shape-selector\">\r\n\t\t\t\t\t<p>Welche Form hat das Dach?<\/p>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row shape-selector\">\r\n\t\t\t\t\t<input type=\"radio\" id=\"tetto_piano\" name=\"forma_tetto\" value=\"piano\" checked>\r\n\t\t\t\t\t<label for=\"tetto_piano\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/tetto_piano.png\" alt=\"Tetto Piano\">\r\n\t\t\t\t\t<\/label>\r\n\r\n\t\t\t\t\t<input type=\"radio\" id=\"tetto_una_falda\" name=\"forma_tetto\" value=\"una_falda\">\r\n\t\t\t\t\t<label for=\"tetto_una_falda\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/tetto_una_falda.png\" alt=\"Tetto Una Falda\">\r\n\t\t\t\t\t<\/label>\r\n\r\n\t\t\t\t\t<input type=\"radio\" id=\"tetto_due_falde\" name=\"forma_tetto\" value=\"due_falde\">\r\n\t\t\t\t\t<label for=\"tetto_due_falde\">\r\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/tibce.eu\/simulatore\/assets\/img\/tetto_due_falde.png\" alt=\"Tetto Due Falde\">\r\n\t\t\t\t\t<\/label>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"materiale_tetto\">Aus welchem \u200b\u200bMaterial besteht die Dachkonstruktion?<\/label>\r\n\t\t\t\t\t\t<select id=\"materiale_tetto\" name=\"materiale_tetto\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"legno\">Holz<\/option>\r\n\t\t\t\t\t\t\t<option value=\"laterizio\">Ziegel<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"spessore_isolante_pareti\">Ist das Dach isoliert? Wenn ja, wie dick ist die Isolierung?<\/label>\r\n\t\t\t\t\t\t<!--input type=\"number\" id=\"spessore_isolante_tetto\" name=\"spessore_isolante_tetto\" step=\"1\" min=\"0\" placeholder=\"0 = non presente\" required-->\r\n\t\t\t\t\t\t<select id=\"spessore_isolante_tetto\" name=\"spessore_isolante_tetto\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">NEIN<\/option>\r\n\t\t\t\t\t\t\t<option value=\"0\">Unbekannt<\/option>\r\n\t\t\t\t\t\t\t<option value=\"5\">5 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"10\">10 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"15\">15 cm<\/option>\r\n\t\t\t\t\t\t\t<option value=\"20\">20 cm<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group full-width\">\r\n\t\t\t\t\t\t<label for=\"sottotetto_presente\">Gibt es einen Dachboden?<\/label>\r\n\t\t\t\t\t\t<select id=\"sottotetto_presente\" name=\"sottotetto_presente\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"si\">Ja<\/option>\r\n\t\t\t\t\t\t\t<option value=\"no\">NEIN<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group full-width\">\r\n\t\t\t\t\t\t<label for=\"sottotetto_abitato\">Bewohnter Dachboden?<\/label>\r\n\t\t\t\t\t\t<select id=\"sottotetto_abitato\" name=\"sottotetto_abitato\">\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"si\">Ja<\/option>\r\n\t\t\t\t\t\t\t<option value=\"no\">NEIN<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"section-group green-border\">\r\n\t\t\t\t<h3>Windows<\/h3>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"tipo_finestre\">Fenster: Glasart<\/label>\r\n\t\t\t\t\t\t<select id=\"tipo_finestre\" name=\"tipo_finestre\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"vetro_doppio\">Doppelverglasung<\/option>\r\n\t\t\t\t\t\t\t<option value=\"vetro_triplo\">Dreifachverglasung<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<div class=\"form-row\">\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"anni_finestre\">Fenster: Wie alt sind die Fenster?<\/label>\r\n\t\t\t\t\t\t<!--input type=\"number\" id=\"anni_finestre\" name=\"anni_finestre\" placeholder=\"es. 15\" step=\"1\" min=\"0\" required-->\r\n\t\t\t\t\t\t<select id=\"anni_finestre\" name=\"anni_finestre\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"10\">Weniger als 15<\/option>\r\n\t\t\t\t\t\t\t<option value=\"20\">Zwischen 16 und 25<\/option>\r\n\t\t\t\t\t\t\t<option value=\"30\">Zwischen 26 und 35<\/option>\r\n\t\t\t\t\t\t\t<option value=\"40\">Mehr als 36<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"form-group\">\r\n\t\t\t\t\t\t<label for=\"ventilazione_controllata\">Gibt es eine interne, kontrollierte Bel\u00fcftung?<\/label>\r\n\t\t\t\t\t\t<select id=\"ventilazione_controllata\" name=\"ventilazione_controllata\" required>\r\n\t\t\t\t\t\t\t<option value=\"\" disabled selected>W\u00e4hlen...<\/option>\r\n\t\t\t\t\t\t\t<option value=\"si\">Ja<\/option>\r\n\t\t\t\t\t\t\t<option value=\"no\">NEIN<\/option>\r\n\t\t\t\t\t\t<\/select>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"calculate-button-container\">\r\n\t\t\t\t<input type=\"checkbox\" name=\"checkbox_calcola\" id=\"checkbox_calcola\" value=\"calcola_privacy\" required>\r\n\t\t\t\t<label for=\"checkbox_calcola\">Ich habe die Bedingungen gelesen und akzeptiere sie. <a href=\"https:\/\/tibce.eu\/\/privacy-policy-ue\/\">Datenschutzerkl\u00e4rung<\/a><\/label>\r\n\t\t\t\t<br\/>\r\n\t\t\t\t<br\/>\r\n\t\t\t\t<button type=\"button\" id=\"calculate-button\" class=\"calculate-button\" onclick=\"javascript:calcolaRisultato();\">\r\n\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"calculator\" class=\"svg-inline--fa fa-calculator fa-w-14\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 448 512\" style=\"fill: currentColor; width: 1.2em; margin-right: 0.5em;\">\r\n\t\t\t\t\t\t<path fill=\"currentColor\" d=\"M384 0H64C28.7 0 0 28.7 0 64v384c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM224 432c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm-96-192c-13.3 0-24-10.7-24-24v-16c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v16c0 13.3-10.7 24-24 24h-16zm96 0c-13.3 0-24-10.7-24-24v-16c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v16c0 13.3-10.7 24-24 24h-16zm96 0c-13.3 0-24-10.7-24-24v-16c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v16c0 13.3-10.7 24-24 24h-16zm-96-96c-13.3 0-24-10.7-24-24v-16c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v16c0 13.3-10.7 24-24 24h-16zm-96 0c-13.3 0-24-10.7-24-24v-16c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v16c0 13.3-10.7 24-24 24h-16z\"><\/path>\r\n\t\t\t\t\t<\/svg>\r\n\t\t\t\t\tBerechne\t\t\t\t<\/button>\r\n\t\t\t\t<div id=\"calculate-button-loader\" class=\"loader-dots hidden\">\r\n\t\t\t\t\t<div><\/div>\r\n\t\t\t\t\t<div><\/div>\r\n\t\t\t\t\t<div><\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t\r\n\t\t\t\r\n\t\t<\/form>\r\n\t<\/section>\r\n\t\r\n\t<section>\r\n\t\t<div id=\"risultato-simulazione\">\t\t\t\r\n\t\t<\/div>\r\n\t\r\n\t<\/section>\r\n<\/div>\r\n\r\n<style>\r\n[data-id=\"8ca2535\"] {\r\n  display: none !important;\r\n}\r\n\r\n<\/style><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9449","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/pages\/9449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/comments?post=9449"}],"version-history":[{"count":1,"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/pages\/9449\/revisions"}],"predecessor-version":[{"id":9450,"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/pages\/9449\/revisions\/9450"}],"wp:attachment":[{"href":"https:\/\/tibce.eu\/de\/wp-json\/wp\/v2\/media?parent=9449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}