'];function i(e,r,i,o){var s=d(e)/8*180-90;return' '}return u.forEach(function(i,o){var s=Math.PI+o/8*Math.PI+.012,l=Math.PI+(o+1)/8*Math.PI-.012;if(r.push(' '),!e.klein){var u=c(t,n,(a+100)/2,(s+l)/2);r.push(''+i[0]+' ')}}),e.leeg?r.push('? '):(null!=e.ep0&&r.push(i(e.ep0,'is-oud','#cfc7bd',e.klein?5:4)),r.push(i(e.ep,'is-nu','#1f2221',e.klein?5:4)),r.push(' ')),r.push(''),r.join('')}var g={spouw:'Spouwmuur',gevel_bi:'Gevel binnenzijde',dak_h:'Dak',dak_p:'Plat dak',vloer:'Vloer',glas:'HR++ glas',kozijn:'Kozijnen + triple glas',kier:'Kierdichting',wtw:'Balansventilatie',wtw_dec:'Ventilatie met WTW',inreg:'Cv inregelen',hybride:'Hybride warmtepomp',wp:'Warmtepomp',ltrad:'LT-radiatoren',wpb:'Warmtepompboiler',dwtw:'Douche-WTW',pv:'Zonnepanelen',batt:'Thuisbatterij',buffer:'Warmteopslag'},v={schil:['#00a693','Isolatie'],vent:['#7adee5','Ventilatie'],verw:['#cb6938','Verwarming'],tap:['#a57a55','Warm water'],el:['#e0b43c','Zon en opslag']},f=['type','gevel','dak','vloer','glas','vent','heat','tap','zon'],m={type:{vrijstaand:'vrijstaand',twee:'twee-onder-een-kap',hoek:'hoekwoning',tussen:'tussenwoning',app:'appartement'},gevel:{spouw_leeg:'spouwmuur niet geïsoleerd',spouw_vol:'spouwmuur geïsoleerd',massief:'massieve muur',goed:'gevel goed geïsoleerd',onb:'gevel onbekend'},dak:{geen:'dak niet geïsoleerd',matig:'dak deels geïsoleerd',goed:'dak goed geïsoleerd',onb:'dak onbekend'},vloer:{kruip_leeg:'kruipruimte niet geïsoleerd',kruip_iso:'kruipruimte geïsoleerd',beton:'geen kruipruimte',onb:'vloer onbekend'},glas:{enkel:'enkel glas',dubbel:'dubbel glas',hrpp:'HR++ glas',triple:'triple glas',onb:'glas onbekend'},vent:{nat:'natuurlijke ventilatie',afz:'mechanische afzuiging',wtw:'balansventilatie met WTW',onb:'ventilatie onbekend'},heat:{ketel:'cv-ketel',hybride:'hybride warmtepomp',wp:'volledige warmtepomp',warmtenet:'stadsverwarming',onb:'verwarming onbekend'},tap:{combi:'warm water via cv-ketel',geiser:'geiser',elek:'elektrische boiler',wpb:'warmtepompboiler',onb:'warm water onbekend'}};function h(c){var h={},k={bron:null,anker:null,labBron:null},w=-1,z=[],y=1,_=!1,j=n(c,'.bzs-card'),x=n(c,'[data-bzs-msg]'),M=n(c,'[data-bzs-res]'),L=n(c,'[data-bzs-gauge]');function E(e,t){t?e.removeAttribute('hidden'):e.setAttribute('hidden','hidden')}function A(e,t){x.innerHTML=e,x.classList.toggle('is-ok',!!t),E(x,!!e)}L.innerHTML=b({leeg:1});var q=n(c,'[data-bzs-letters]');function S(e){a(c,'[data-mode]').forEach(function(t){t.classList.toggle('is-on',t.getAttribute('data-mode')===e)}),a(c,'[data-pane]').forEach(function(t){E(t,t.getAttribute('data-pane')===e)})}function B(e){var t='https://service.pdok.nl/lv/bag/wfs/v2_0?service=WFS&version=2.0.0&request=GetFeature&typeName=bag:verblijfsobject&count=100&outputFormat=application/json&filter='+encodeURIComponent(''+e+' '),n=window.AbortController?new AbortController:null,a=n?setTimeout(function(){n.abort()},9e3):0;return fetch(t,n?{signal:n.signal}:{}).then(function(e){if(clearTimeout(a),!e.ok)throw new Error('bag');return e.json()}).then(function(e){return(e.features||[]).map(function(e){return e.properties})})}function C(e,t){return''+e+' '+t+' '}function T(e){return e.openbare_ruimte+' '+e.huisnummer+(e.huisletter||'')+(e.toevoeging?'-'+e.toevoeging:'')}function D(e,t,n){return B(''+C('postcode',e)+C('huisnummer',t)+' ').then(function(e){var t=e.filter(function(e){return String(e.gebruiksdoel||'').indexOf('woon')>=0});if(t.length&&(e=t),n){var a=n.toUpperCase().replace(/[\s-]/g,'');e=e.filter(function(e){return((e.huisletter||'')+(e.toevoeging||'')).toUpperCase()===a}).concat((e.length,[]))}return e})}q.innerHTML=['A++','A+','A','B','C','D','E','F','G'].map(function(t){return''+t+' '}).join(''),q.addEventListener('click',function(t){var a=t.target.closest('[data-l]');a&&(k.anker=e.midEp(a.getAttribute('data-l')),k.labBron='letter',k.labReg=a.getAttribute('data-l'),S('adres'),A('We rekenen verder vanaf label '+k.labReg+' . Vul nu uw postcode en huisnummer in.',1),n(c,'input[name="pc"]').focus(),o('Quickscan labelletter',{label:k.labReg}))}),a(c,'[data-mode]').forEach(function(e){e.addEventListener('click',function(){S(e.getAttribute('data-mode')),A('')})});function H(e,t){var n=(e+' '+t).toLowerCase();return/appartement|flat|maisonnette|portiek|galerij|boven|beneden/.test(n)?'app':/vrijstaand/.test(n)?'vrijstaand':/onder.{0,6}kap|halfvrijstaand|twee.?onder/.test(n)?'twee':/hoek/.test(n)?'hoek':/tussen|rijwoning|eengezins/.test(n)?'tussen':null}function I(e){return e?e.split('-').reverse().join('-'):''}function W(t){k.bron=k.bron||'bag',k.adres=T(t)+', '+t.woonplaats,k.pc=t.postcode,k.nr=t.huisnummer,k.bjPdf||(k.bj=t.bouwjaar),k.agPdf||(k.ag=t.oppervlakte),E(n(c,'[data-bzs-kies]'),!1),'register'===k.labBron&&(k.labBron=null,k.anker=null,k.labReg=null,k.reg=null);var a,r,i,s,l,u,d,p='pdf'===k.labBron||'letter'===k.labBron,b=n(P,'button');b.classList.add('is-busy'),Promise.all([(d=t.pandidentificatie,B(C('pandidentificatie',d)).then(function(e){return e.filter(function(e){return String(e.gebruiksdoel||'').indexOf('woon')>=0}).length}).catch(function(){return 0})),p?null:(a=t.postcode,r=t.huisnummer,i=(t.huisletter||'')+(t.toevoeging||''),s='https://duurzaamheidstool.colin-0bf.workers.dev/?postcode='+encodeURIComponent(a)+'&huisnummer='+encodeURIComponent(r)+(i?'&toevoeging='+encodeURIComponent(i):''),l=window.AbortController?new AbortController:null,u=l?setTimeout(function(){l.abort()},7e3):0,fetch(s,l?{signal:l.signal}:{}).then(function(e){return clearTimeout(u),e.ok?e.json():null}).then(function(t){var n=Array.isArray(t)?t[0]:t;if(!n||!n.Energieklasse)return null;var a=String(n.Energieklasse).toUpperCase().trim();if(!e.KLEUR[a])return null;var r=/NTA\s?8800/i.test(n.Berekeningstype||''),i=+n.PrimaireFossieleEnergie;return{l:a,ep:r&&i>0&&i<1500?i:null,datum:String(n.Registratiedatum||n.Opnamedatum||'').slice(0,10),geldig:String(n.Geldig_tot||'').slice(0,10),type:H(String(n.Gebouwtype||''),String(n.Gebouwsubtype||''))}}).catch(function(){return null}))]).then(function(t){b.classList.remove('is-busy'),t[0]>1&&!h.type&&(k.gok='app');var n=t[1];n&&(k.reg=n,k.labBron='register',k.labReg=n.l,k.anker=null!=n.ep?n.ep:e.midEp(n.l),n.type&&!h.type&&(k.gok=n.type)),p||o('Quickscan EP-Online',{label:n?n.l:'geen'}),J()})}var P=n(c,'[data-bzs-adres]');function F(e,t){var a=n(c,'[data-bzs-kies]');a.innerHTML=''+t+'
'+e.slice(0,24).map(function(e,t){return''+i(T(e))+' '}).join(''),E(a,!0),A(''),a.onclick=function(t){var n=t.target.closest('[data-i]');n&&W(e[+n.getAttribute('data-i')])}}P.addEventListener('submit',function(e){e.preventDefault();var t=P.pc.value.replace(/\s/g,'').toUpperCase(),a=P.nr.value.replace(/\D/g,''),r=P.tv.value.trim();if(P.pc.classList.toggle('is-err',!/^[1-9]\d{3}[A-Z]{2}$/.test(t)),P.nr.classList.toggle('is-err',!a),/^[1-9]\d{3}[A-Z]{2}$/.test(t)&&a){var i=n(P,'button');i.classList.add('is-busy'),A(''),o('Quickscan gestart',{via:k.labBron||'adres'}),D(t,a,r).then(function(e){return i.classList.remove('is-busy'),e.length?1===e.length?W(e[0]):void F(e,'Op dit nummer staan meerdere adressen. Welke is van u?'):B(''+C('postcode',t)+C('huisnummer',a)+' ').then(function(e){e.length?F(e,'Die toevoeging vinden we niet. Welk adres bedoelt u?'):(A('We vinden dit adres niet in de BAG. Controleer postcode en huisnummer, of vul hieronder zelf bouwjaar en oppervlakte in.'),E(n(c,'[data-bzs-hand]'),!0))})}).catch(function(){i.classList.remove('is-busy'),A('De gegevens van het Kadaster zijn nu niet bereikbaar. Vul bouwjaar en oppervlakte zelf in, dan rekenen we toch verder.'),E(n(c,'[data-bzs-hand]'),!0)})}else A('Vul een geldige postcode (1234 AB) en een huisnummer in.')}),n(c,'[data-bzs-handgo]').addEventListener('click',function(){var e=+n(c,'[data-hand="bj"]').value,t=+n(c,'[data-hand="ag"]').value;e>1500&&e<=(new Date).getFullYear()&&t>=20&&t<2e3?(k.bj=e,k.ag=t,k.bron=k.bron||'hand',k.adres=k.adres||'Uw woning',J()):A('Vul een bouwjaar (bijv. 1975) en een oppervlakte in m² in.')});var R=n(c,'[data-bzs-drop]'),G=n(c,'[data-bzs-file]');['dragenter','dragover'].forEach(function(e){R.addEventListener(e,function(e){e.preventDefault(),R.classList.add('is-over')})}),['dragleave','drop'].forEach(function(e){R.addEventListener(e,function(){R.classList.remove('is-over')})}),R.addEventListener('drop',function(e){e.preventDefault(),e.dataTransfer.files[0]&&Q(e.dataTransfer.files[0])}),G.addEventListener('change',function(){G.files[0]&&Q(G.files[0])});var O='https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/';function V(e){return(window.pdfjsLib?Promise.resolve(window.pdfjsLib):new Promise(function(e,t){var n=document.createElement('script');n.src=O+'pdf.min.js',n.async=!0,n.onload=function(){window.pdfjsLib.GlobalWorkerOptions.workerSrc=O+'pdf.worker.min.js',e(window.pdfjsLib)},n.onerror=t,document.head.appendChild(n)})).then(function(t){return t.getDocument({data:e}).promise}).then(function(e){for(var t=Math.min(e.numPages,4),n=[],a=1;a<=t;a++)n.push(e.getPage(a).then(function(e){return e.getTextContent()}).then(function(e){return e.items.map(function(e){return e.str}).join(' ')}));return Promise.all(n).then(function(e){return e.join(' \n ')})})}function N(e){return parseFloat(String(e).replace(/\.(?=\d{3}\b)/g,'').replace(',','.'))}function U(t){var n,a={};if(n=(t=t.replace(/\s+/g,' ')).match(/primair\s+fossiel\s+energiegebruik[^0-9]{0,80}?(\d{1,4}(?:[.,]\d{1,2})?)\s*kwh/i)||t.match(/EP\s?2[^0-9]{0,40}?(\d{1,4}(?:[.,]\d{1,2})?)\s*kwh/i)){var r=N(n[1]);r>=0&&r<1e3&&(a.ep=r)}if((n=t.match(/(?:energielabel|energieklasse|labelklasse)\s*(?:woning|klasse)?\s*:?\s*(A\+{1,4}|[A-G])(?![a-z])/i))&&(a.l=n[1].toUpperCase()),(n=t.match(/bouwjaar\s*:?\s*(1[5-9]\d\d|20[0-3]\d)/i))&&(a.bj=+n[1]),(n=t.match(/gebruiksoppervlak(?:te)?\s*:?\s*(\d{2,4}(?:[.,]\d{1,2})?)\s*m/i))&&(a.ag=Math.round(N(n[1]))),n=t.match(/\b([1-9]\d{3})\s?([A-Z]{2})\b/)){a.pc=n[1]+n[2];var i=t.slice(Math.max(0,n.index-60),n.index).match(/(\d{1,5})\s*([A-Za-z])?(?:[\s-]*(\w{1,4}))?\s*,?\s*$/);i&&(a.nr=i[1],a.tv=(i[2]||'')+(i[3]&&!/^\d{4}$/.test(i[3])?i[3]:''))}if(n=t.match(/\b(vrijstaande woning|twee-onder-een-kap|hoekwoning|tussenwoning|rijwoning|appartement|galerijflat|portiekflat|maisonnette|bovenwoning|benedenwoning)/i)){var o=n[1].toLowerCase();a.type=0===o.indexOf('vrij')?'vrijstaand':0===o.indexOf('twee')?'twee':'hoekwoning'===o?'hoek':/tussen|rij/.test(o)?'tussen':'app'}return null==a.ep&&a.l&&(a.ep=e.midEp(a.l)),a.l||null==a.ep||(a.l=e.label(a.ep)),a}function Q(e){/pdf$/i.test(e.type)||/\.pdf$/i.test(e.name)?(A('Uw label wordt uitgelezen…',1),o('Quickscan label-pdf'),e.arrayBuffer().then(V).then(function(e){var t=U(e);if(null!=t.ep){if(k.anker=t.ep,k.labBron='pdf',k.labReg=t.l,k.bron='pdf',t.bj&&(k.bj=t.bj,k.bjPdf=1),t.ag&&(k.ag=t.ag,k.agPdf=1),t.type&&(k.gok=t.type),t.pc&&t.nr)return A('Label '+t.l+' gevonden. We zoeken de woning erbij op…',1),D(t.pc,t.nr,t.tv).then(function(e){if(1===e.length)return W(e[0]);if(e.length>1)return F(e,'Label '+t.l+' gevonden. Welk adres hoort erbij?');throw 0}).catch(function(){K(t)});K(t)}else A('We konden het label niet automatisch uitlezen. Kies hieronder uw labelletter, of start met uw postcode.')}).catch(function(){A('Dit bestand kunnen we niet openen. Kies hieronder uw labelletter of start met uw postcode.')})):A('Kies een pdf-bestand van uw energielabel.')}function K(e){if(k.bj&&k.ag)return k.adres='Woning met label '+e.l,void J();S('adres'),A('Label '+e.l+' gevonden. Vul nog uw postcode en huisnummer in, dan halen we bouwjaar en oppervlakte erbij.',1)}function Z(){return f.filter(function(e){return('app'!==h.type||'dak'!==e||'boven'===h.pos)&&('app'!==h.type||'vloer'!==e||'onder'===h.pos)})}function $(){var e={};for(var t in h)e[t]=h[t];return e.bj=k.bj,e.ag=k.ag,e}function J(){o('Quickscan adres gevonden',{bron:k.bron}),E(n(c,'[data-step="start"]'),!1),E(n(c,'[data-step="vragen"]'),!0),E(n(c,'[data-bzs-edit]'),!0),n(c,'[data-edit="bj"]').value=k.bj||'',n(c,'[data-edit="ag"]').value=k.ag||'',Y(0),X();var e=j.getBoundingClientRect().top;(e<0||e>.5*window.innerHeight)&&j.scrollIntoView({behavior:'smooth',block:'start'})}function Y(e){var t=Z();w=Math.max(0,Math.min(e,t.length-1)),a(c,'.bzs-q').forEach(function(e){E(e,e.getAttribute('data-q')===t[w])});var r=n(c,'.bzs-q[data-q="'+t[w]+'"]');a(r,'[data-bzs-qnr]').forEach(function(e){e.textContent=w+1}),a(r,'[data-bzs-qtot]').forEach(function(e){e.textContent=t.length});var i=t[w];a(r,'.bzs-tile').forEach(function(e){var t,n=e.getAttribute('data-v'),a='zon'===i?null!=h.pv&&String((t=h.pv)>=14?16:t>=8?11:t>0?6:0)===n:h[i]===n;e.classList.toggle('is-on',a),e.classList.toggle('is-guess',!a&&null==h[i]&&'type'===i&&k.gok===n)}),'type'===i&&E(n(r,'[data-sub="pos"]'),'app'===h.type),n(c,'[data-bzs-prog]').style.width=Math.round((w+1)/(t.length+1)*100)+'%',E(n(c,'[data-bzs-back]'),!0);var o=n(c,'.bzs-main').getBoundingClientRect().top;window.innerWidth<820&&o<0&&n(c,'.bzs-main').scrollIntoView({behavior:'smooth',block:'start'});var s=n(c,'.bzs-done');s&&s.remove()}function X(){var t=e.staat($()),a=e.reken(t),r=null!=k.anker?k.anker:a.ep,o=k.labReg&&null!=k.anker?k.labReg:e.label(r);L.querySelector('.bzs-g__n')||(L.innerHTML=b({ep:460})),requestAnimationFrame(function(){!function(e,t){var n=e.querySelector('.bzs-g__n.is-nu');n?n.style.transform='rotate('+p(d(t)/8*180-90)+'deg)':e.innerHTML=b({ep:t})}(L,r)}),n(c,'[data-bzs-adresregel]').textContent=k.adres||'Uw woning';var s=[];k.bj&&s.push('Bouwjaar '+k.bj),k.ag&&s.push(k.ag+' m²'),h.type&&s.push(m.type[h.type]),n(c,'[data-bzs-feiten]').innerHTML=s.map(function(e){return''+i(e)+' '}).join('');var u='register'===k.labBron?k.reg:null;n(c,'[data-bzs-labtype]').textContent='pdf'===k.labBron||u?'Geregistreerd label':'letter'===k.labBron?'Uw label':'Geschat label';var g=n(c,'[data-bzs-lab]');g.innerHTML=l(o,'bzs-lab--lg'),g.style.fontSize='0';var v=u&&u.geldig&&u.geldig<(new Date).toISOString().slice(0,10);n(c,'[data-bzs-ep]').textContent='letter'===k.labBron?'':u?(null!=u.ep?'EP2 '+Math.round(u.ep)+' kWh/m² · ':'Oude rekenmethode · ')+'EP-Online '+I(u.datum)+(v?' (verlopen)':''):'≈ '+Math.round(r)+' kWh/m² per jaar (EP2)',n(c,'.bzs-side__note').textContent=u?'Vertrekpunt is het geregistreerde energielabel uit EP-Online. De routes zijn een indicatie op basis van uw antwoorden.':'Een schatting op basis van openbare gegevens en uw antwoorden. Geen officieel energielabel.';var w=f.filter(function(e){return'zon'===e?null!=h.pv:null!=h[e]&&'onb'!==h[e]}).length,z=u?(null!=u.ep?60:42)+4*w:'pdf'===k.labBron?55+5*w:'letter'===k.labBron?35+6*w:18+8*w;n(c,'[data-bzs-zeker]').style.width=Math.min(96,z)+'%'}function ee(e){var t=e.m.map(function(e){return e.k}),n='app'===h.type;return 1===e.nr?['Snelle stap','De meeste labelwinst per euro, zonder grote verbouwing']:2===e.nr?['Naar label '+e.l1,t.indexOf('hybride')>=0?'Isoleren en een hybride warmtepomp':t.indexOf('pv')>=0?'Isoleren en zonnepanelen':'Isoleren en beter ventileren']:['ketel'===e.S0.heat||'hybride'===e.S0.heat||'combi'===e.S0.tap||'geiser'===e.S0.tap?'Aardgasvrij':'Alles eruit',n?'Volledig elektrisch binnen uw appartement':'Volledig elektrisch, met zon en opslag']}function te(t){_=!0;var a=e.alles($(),k.anker);z=(z=a.routes.filter(function(e){return e.m.length})).filter(function(e,t){return!z.slice(0,t).some(function(t){return n=e,t.m.map(function(e){return e.k}).join()===n.m.map(function(e){return e.k}).join();var n})}),y=Math.min(y,z.length-1),z.length>1&&y<0&&(y=1);var r=n(c,'.bzs-main'),s=n(c,'.bzs-done');E(n(c,'[data-step="vragen"]'),!1),s||((s=document.createElement('div')).className='bzs-step bzs-done',r.appendChild(s)),s.innerHTML='Klaar
Uw routes staan hieronder Gebaseerd op deze antwoorden. Klik op een antwoord om het aan te passen.
'+Z().filter(function(e){return'zon'!==e}).map(function(e,t){return''+i(m[e][h[e]||'onb']||'')+' '}).join('')+''+(h.pv?'zonnepanelen':'geen zonnepanelen')+(h.batt?', thuisbatterij':'')+'
Bekijk de routes ↓
',s.onclick=function(e){var t=e.target.closest('[data-naar]');t&&(E(n(c,'[data-step="vragen"]'),!0),Y(+t.getAttribute('data-naar'))),e.target.closest('[data-bzs-naarres]')&&M.scrollIntoView({behavior:'smooth',block:'start'})},n(c,'[data-bzs-prog]').style.width='100%',z.length?(ne(),re(),E(n(c,'[data-bzs-detail]'),!0)):(n(c,'[data-bzs-routes]').innerHTML='Uw woning is al erg zuinig. Grote stappen zien we op basis van deze gegevens niet; in een intake kijken we graag naar de details.
',n(c,'[data-bzs-detail]').innerHTML='',E(n(c,'[data-bzs-detail]'),!1)),oe(),n(c,'[data-bzs-reskop]').textContent=z.length+(1===z.length?' route voor ':' routes voor ')+(k.adres&&'Uw woning'!==k.adres?k.adres.split(',')[0]:'uw woning'),E(M,!0),t&&(o('Quickscan resultaat',{routes:String(z.length),label:z[0]?z[0].l0:''}),setTimeout(function(){M.scrollIntoView({behavior:'smooth',block:'start'})},60))}function ne(){var e=n(c,'[data-bzs-routes]');if(e.style.gridTemplateColumns=window.innerWidth>1100?'repeat('+z.length+', minmax(0, 1fr))':'',e.innerHTML=z.map(function(e,t){var n=ee(e),a=e.m.filter(function(e){return!e.nul||!0}),o=a.slice(0,4).map(function(e){return' '+i(g[e.k]||e.n)+' '}).join('')+(a.length>4?'+'+(a.length-4)+' meer ':'');return'Route '+(t+1)+(2===e.nr?'Aanbevolen ':'')+'
'+i(n[0])+' '+i(n[1])+'
'+b({ep:e.ep1,ep0:e.ep0,klein:1})+'
Nu '+l(e.l0)+'
Straks '+l(e.l1)+'
'+(e.stappen>0?'+'+e.stappen+(1===e.stappen?' labelstap':' labelstappen'):'Lager energieverbruik')+'
Besparing per jaar '+r(e.bmin)+' – '+r(e.bmax).slice(2)+'
Investering na subsidie '+r(e.nmin)+' – '+r(e.nmax).slice(2)+'
Waarvan subsidie '+(e.sub?'ca. '+r(e.sub):'–')+' '+(t===y?'Deze route bekijkt u hieronder':'Bekijk deze route →')+'
'}).join('')+('app'===h.type?'':''),e.scrollWidth>e.clientWidth+4){var t=e.children[y];t&&(e.scrollLeft=t.offsetLeft-e.offsetLeft-16)}e.onclick=function(e){var t=e.target.closest('[data-r]');t&&ae(+t.getAttribute('data-r'))},e.onkeydown=function(e){var t=e.target.closest('[data-r]');!t||'Enter'!==e.key&&' '!==e.key||(e.preventDefault(),ae(+t.getAttribute('data-r')))}}function ae(e){e!==y&&(y=e,ne(),re(),oe(),o('Quickscan route gekozen',{route:ee(z[e])[0]}))}function re(){var e=z[y],t=n(c,'[data-bzs-detail]'),a=ee(e),r=e.m.filter(function(e){return e.d>0}).sort(function(e,t){return t.d-e.d}),o={};e.m.forEach(function(e){o[e.c]=1});var s=function(e){return 0===e.indexOf('A+')?'A+':e},l=e.m.filter(function(e){return e.nul}).map(function(e){return g[e.k].toLowerCase()}),d=0;r.forEach(function(e){d+=e.d});var b=r.slice(0,2).map(function(e){return(g[e.k]||e.n).toLowerCase()+' ('+Math.round(e.d/d*100)+'%)'});t.innerHTML='Van investering naar labelwinst
'+function(e){e=e.filter(function(e){return e.d>0});var t=n(c,'.bzs__in').clientWidth-(window.innerWidth<820?40:70),a=Math.max(330,Math.min(560,t)),r=e.length,o=Math.max(180,30*r),s=a-(a<420?172:200),l=34+o+6,u=-99,d=['
','INVESTERING LABELWINST '];function b(t){var n=0;e.forEach(function(e){n+=t(e)});var a=o-5*(r-1),i=34;return e.map(function(e){var r=Math.max(5,t(e)/n*a),o=[i,r,t(e)/n*100];return i+=r+5,o})}var f=b(function(e){return Math.max(1,(e.min+e.max)/2-e.sub)}),m=b(function(e){return e.d});return e.forEach(function(e,t){var n=f[t],a=m[t],r=s,o=(r-54)/2,l=v[e.c][0];d.push(' '+(n[1]>12?''+Math.round(n[2])+'% ':'')+''+i(g[e.k]||e.n)+' '+Math.round(a[2])+'% ')}),d.push(' '),d[0]='
',d.join('')}(e.m)+' Route '+(y+1)+' · '+i(a[0])+'
Van label '+e.l0+' naar '+e.l1+' '+['A+','A','B','C','D','E','F','G'].map(function(t,n){var a=u[n][3];return''+t+' '}).join('')+'
Links ziet u welk deel van de investering naar elke maatregel gaat, rechts hoeveel die bijdraagt aan het betere label.'+(b.length?' De meeste winst zit in '+b.join(' en ')+'.':'')+'
'+Object.keys(v).filter(function(e){return o[e]}).map(function(e){return' '+v[e][1]+' '}).join('')+' '+(l.length?'
De '+l.join(' en de ')+' leveren geen labelwinst op, maar wel extra besparing: u gebruikt meer van uw eigen zonnestroom en verwarmt slimmer.
':'')+'
'}function ie(e,t){var n=String(Math.round(e)).length,a=String(Math.round(t)).length;function r(e){var t=function(e){for(var t='',n=0;n3?t.slice(0,t.length-3)+'.'+t.slice(-3):t}return'€ '+r(Math.max(3,n))+' – '+r(Math.max(3,a))}function oe(){var e=z[y]||{m:[]},t=n(c,'[data-bzs-lock]'),a=function(e,t,n,a){return' '+i(e)+''+n+' '+a+'
'},r=1,o=[a('Definitief labeladvies (Energielabel Booster, NoGasCo)','#8b8279',ie(100,999),'week 1')];e.m.forEach(function(e){var t=r+1,n=t+1+Math.floor(3*Math.random());r=n-1,o.push(a(e.n,v[e.c][0],ie(e.min,e.max),'week '+t+' – '+n))}),o.push(a('Terugverdientijd','#1f2221','± '+(5+Math.floor(12*Math.random()))+' jaar','')),o.push(a('Oplevering met nieuw energielabel','#00a693','inbegrepen','week '+(r+2))),t.innerHTML='Maatregel Benger-prijs Planning
'+o.join('')+'
Alle maatregelen, Benger-prijzen en planning Tijdens een vrijblijvende intake lopen we deze route met u door, meten we op en maken we er een vaste prijs van. Uw antwoorden sturen we mee, dan hoeft u niets opnieuw te vertellen.
Plan een intake voor uw mogelijkheden → Gratis en vrijblijvend · reactie binnen één werkdag ',n(t,'[data-bzs-cta]').addEventListener('click',se)}function se(){var e=z[y],n=e?ee(e):['',''],a=Z().filter(function(e){return'zon'!==e}).map(function(e){return m[e][h[e]||'onb']});a.push(h.pv?'zonnepanelen aanwezig':'geen zonnepanelen'),h.batt&&a.push('thuisbatterij'),h.buffer&&a.push('warmteopslag');var i='pdf'===k.labBron?'geregistreerd label (pdf)':'register'===k.labBron?'geregistreerd label EP-Online '+I(k.reg.datum)+(null==k.reg.ep?', oude rekenmethode':''):'letter'===k.labBron?'opgegeven label':'geschat',s=['Ik heb de quickscan op de website gedaan.','Adres: '+(k.adres||'-'),'Bouwjaar '+(k.bj||'?')+', '+(k.ag||'?')+' m², '+(m.type[h.type]||'woningtype onbekend'),'Huidig label: '+(e?e.l0:'?')+' ('+i+')'];e&&s.push('Gekozen route: '+n[0]+' ('+e.l0+' → '+e.l1+'), investering na subsidie '+r(e.nmin)+' – '+r(e.nmax).slice(2)+', besparing '+r(e.bmin)+' – '+r(e.bmax).slice(2)+' per jaar','Maatregelen: '+e.m.map(function(e){return g[e.k]||e.n}).join(', ')),s.push('Antwoorden: '+a.join(', '));var l={v:1,pc:k.pc?k.pc.replace(/^(\d{4})/,'$1 '):'',tekst:s.join('\n'),kort:s.slice(1).join(' | '),banner:(k.adres?k.adres.split(',')[0]+' · ':'')+(e?'label '+e.l0+' → '+e.l1+' · '+n[0]:'')};try{sessionStorage.setItem(t,JSON.stringify(l))}catch(e){}o('Quickscan intake-klik',{route:n[0]})}if(n(c,'[data-step="vragen"]').addEventListener('click',function(e){var t=e.target.closest('.bzs-tile'),r=e.target.closest('.bzs-chip'),i=e.target.closest('.bzs-q');if(i){var o=i.getAttribute('data-q');if(r){var s=r.closest('[data-chips]'),l=s.getAttribute('data-chips');return a(s,'.bzs-chip').forEach(function(e){e.classList.toggle('is-on',e===r)}),h[l]=r.getAttribute('data-v'),X(),void('pos'===l&&setTimeout(function(){Y(w+1)},260))}if(t){var u=t.getAttribute('data-v');if(a(i,'.bzs-tile').forEach(function(e){e.classList.toggle('is-on',e===t),e.classList.remove('is-guess')}),'zon'===o)return h.pv=+u,void X();if(h[o]=u,'dak'!==o||h.daksoort||(h.daksoort='hellend'),X(),'type'===o&&'app'===u){if(E(n(i,'[data-sub="pos"]'),!0),!h.pos)return}else'type'===o&&(E(n(i,'[data-sub="pos"]'),!1),delete h.pos);setTimeout(function(){Y(w+1)},260)}}}),a(c,'[data-tog]').forEach(function(e){e.addEventListener('change',function(){h[e.getAttribute('data-tog')]=e.checked?1:0,X()})}),n(c,'[data-bzs-back]').addEventListener('click',function(){if(w<=0)return E(n(c,'[data-step="vragen"]'),!1),E(n(c,'[data-step="start"]'),!0),E(n(c,'[data-bzs-back]'),!1),n(c,'[data-bzs-prog]').style.width='4%',void(w=-1);Y(w-1)}),['bj','ag'].forEach(function(e){n(c,'[data-edit="'+e+'"]').addEventListener('change',function(t){var n=+t.target.value;'bj'===e&&n>1500&&n<=(new Date).getFullYear()&&(k.bj=n),'ag'===e&&n>=20&&n<2e3&&(k.ag=n),X(),_&&te(!1)})}),n(c,'[data-bzs-klaar]').addEventListener('click',function(){te(!0)}),n(c,'[data-bzs-opnieuw]').addEventListener('click',function(){E(n(c,'[data-step="vragen"]'),!0),Y(0),j.scrollIntoView({behavior:'smooth',block:'start'})}),window.addEventListener('resize',function(){_&&z.length&&(n(c,'[data-bzs-routes]').style.gridTemplateColumns=window.innerWidth>1100?'repeat('+z.length+', minmax(0, 1fr))':'')}),window.IntersectionObserver){var le=new IntersectionObserver(function(e){e[0].isIntersecting&&(o('Quickscan gezien'),le.disconnect())},{threshold:.4});le.observe(j)}c.__bzs={A:h,info:k,uitlezen:U,lees:Q}}function ge(){if(/[?&](enable_editor|edit_translations)=/.test(location.search))return!0;if(document.body&&document.body.classList.contains('editor_enable'))return!0;if(window.self===window.top)return!1;try{return/^\/(odoo|web|@)/.test(window.top.location.pathname)}catch(e){return!0}}function k(){if(ge())return;var e=document.querySelector('[data-bzs]');e&&!e.__bzs&&h(e),function(){var e,n=document.querySelector('.benger-contact form[data-model_name]');try{e=sessionStorage.getItem(t)}catch(e){return}if(n&&e){try{sessionStorage.removeItem(t)}catch(e){}var a,c=!1;try{a=JSON.parse(e)}catch(e){return}u(),setTimeout(u,400),window.addEventListener('load',function(){setTimeout(u,50)});var r=document.createElement('div');r.setAttribute('style','display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;background:#eef8f6;border-left:3px solid #00a693;font:400 15px/1.45 \'Hanken Grotesk\',system-ui,sans-serif;color:#1f2221'),r.innerHTML='✓ Uw quickscan gaat mee. '+i(a.banner)+'Niet meesturen ';var s=n.closest('.benger-form-slot')||n.parentNode;s.insertBefore(r,s.firstChild),r.querySelector('button').addEventListener('click',d),window.addEventListener('pageshow',function(e){e.persisted&&d()});var l=n.querySelector('.s_website_form_send');l&&l.addEventListener('click',function(){o('Quickscan intake verstuurd')})}function d(){c=!0;var e=n.querySelector('input[name="Quickscan"]');e&&e.closest('.s_website_form_field').remove();var t=n.querySelector('textarea[name="description"]');t&&0===t.value.indexOf(a.tekst)&&(t.value=''),r.parentNode&&r.parentNode.removeChild(r)}function u(){if(!c){var e=n.querySelector('select[name="Ik ben"]');e&&(e.value='Particulier');var t=n.querySelector('input[name="Postcode"]');t&&!t.value&&(t.value=a.pc||'');var r=n.querySelector('textarea[name="description"]');if(r&&!r.value&&(r.value=a.tekst+'\n\nMijn vraag of opmerking: '),!n.querySelector('input[name="Quickscan"]')){var i=document.createElement('div');i.className='s_website_form_field s_website_form_dnone',i.innerHTML='
',i.querySelector('input').value=a.kort;var o=n.querySelector('.s_website_form_submit');o.parentNode.insertBefore(i,o)}}}}()}'loading'===document.readyState?document.addEventListener('DOMContentLoaded',k):k()}();