<div id="gbt-tool" style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:#1b2733;max-width:820px;margin:0 auto;"> <style> #gbt-tool *{box-sizing:border-box} #gbt-tool h2{font-size:18px;font-weight:500;margin:0 0 4px} #gbt-tool h3{font-size:15px;font-weight:500;margin:0 0 12px;color:#0d5c4a} #gbt-tool .gbt-card{background:#fff;border:1px solid #e4e8ec;border-radius:12px;padding:18px 20px;margin-bottom:16px} #gbt-tool label{display:block;font-size:13px;font-weight:500;color:#3a4a58;margin:0 0 5px} #gbt-tool select,#gbt-tool input{width:100%;height:38px;padding:0 10px;font-size:14px;border:1px solid #cfd7de;border-radius:8px;background:#fff;color:#1b2733} #gbt-tool select:focus,#gbt-tool input:focus{outline:none;border-color:#0d8c6f;box-shadow:0 0 0 3px rgba(13,140,111,.15)} #gbt-tool .gbt-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px} #gbt-tool .gbt-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:12px} #gbt-tool .gbt-hint{font-size:12px;color:#7a8794;margin:3px 0 0;line-height:1.4} #gbt-tool .gbt-actions{display:flex;gap:12px;margin-top:4px} #gbt-tool .gbt-btn{height:44px;flex:1;background:#0d8c6f;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer} #gbt-tool .gbt-btn:hover{background:#0b7a61} #gbt-tool .gbt-btn2{height:44px;flex:0 0 auto;padding:0 22px;background:#fff;color:#3a4a58;border:1px solid #cfd7de;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer} #gbt-tool .gbt-btn2:hover{background:#f3f5f7} #gbt-tool .gbt-metric{background:#f3f7f5;border-radius:8px;padding:12px 14px} #gbt-tool .gbt-metric .l{font-size:12px;color:#6a7883} #gbt-tool .gbt-metric .v{font-size:22px;font-weight:500;color:#0d5c4a;margin-top:2px} #gbt-tool .gbt-banner{border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.5;margin-bottom:10px} #gbt-tool .gbt-b-warn{background:#fdf2e2;color:#7a4e07;border:1px solid #f5d9a8} #gbt-tool .gbt-b-info{background:#eaf1fb;color:#0c447c;border:1px solid #c2d8f2} #gbt-tool .gbt-b-err{background:#fceaea;color:#8a1f1f;border:1px solid #f0bcbc} #gbt-tool .gbt-opt{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;border:1px solid #e4e8ec;border-radius:8px;margin-bottom:8px} #gbt-tool .gbt-opt.fit{border-color:#b9e0cd;background:#f3faf6} #gbt-tool .gbt-opt.best{border:2px solid #0d8c6f;background:#eef8f3} #gbt-tool .gbt-opt .name{font-size:14px;font-weight:500} #gbt-tool .gbt-opt .sub{font-size:12px;color:#7a8794} #gbt-tool .gbt-opt .rt{display:flex;flex-direction:column;align-items:flex-end;gap:6px;white-space:nowrap} #gbt-tool .gbt-opt .max{font-size:13px} #gbt-tool .gbt-prod{display:inline-block;font-size:12.5px;font-weight:500;color:#0d8c6f;text-decoration:none;border:1px solid #b9e0cd;border-radius:7px;padding:5px 10px;background:#fff} #gbt-tool .gbt-prod:hover{background:#eef8f3} #gbt-tool .gbt-tag{display:inline-block;font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;margin-left:6px} #gbt-tool .tag-best{background:#0d8c6f;color:#fff} #gbt-tool .tag-no{background:#f3f0eb;color:#8a7a5f} #gbt-tool .gbt-more{height:38px;width:100%;background:#fff;border:1px dashed #b9c6cf;border-radius:8px;color:#3a4a58;font-size:13.5px;font-weight:500;cursor:pointer;margin-top:2px} #gbt-tool .gbt-more:hover{background:#f6f8f9} #gbt-tool .gbt-hidden{display:none} #gbt-tool .gbt-foot{font-size:11.5px;color:#9aa4ad;line-height:1.5;margin-top:6px} @media(max-width:560px){#gbt-tool .gbt-row,#gbt-tool .gbt-row3{grid-template-columns:1fr}} </style> <div class="gbt-card"> <h2>Glasadviestool — welk glas heb ik nodig?</h2> <p class="gbt-hint">Bepaal op basis van windbelasting (NEN 2608), letselveiligheid (NEN 3569) en doorvalveiligheid (NEN 2608) welke glasopbouw geschikt is voor uw ruit.</p> </div> <div class="gbt-card"> <h3>1 · Locatie & gebouw</h3> <div class="gbt-row"> <div> <label>Windgebied</label> <select id="gebied"> <option value="1">Gebied I — kust NH-noord, Waddeneilanden</option> <option value="2" selected>Gebied II — NH-rest, Gron, Frl, Flevo, ZH, Zld</option> <option value="3">Gebied III — overig Nederland (binnenland)</option> </select> <p class="gbt-hint">Twijfel? Kustprovincies = I/II, binnenland = III.</p> </div> <div> <label>Omgeving</label> <select id="omgeving"></select> <p class="gbt-hint">Bebouwd = stad/dorp, onbebouwd = open veld, kuststrook = <10× gebouwhoogte van open water.</p> </div> </div> <div class="gbt-row"> <div> <label>Gebouwhoogte (m)</label> <input id="hoogte" type="number" min="1" max="200" step="0.5" value="7"/> <p class="gbt-hint">Hoogte van het bouwwerk waar de ruit in zit.</p> </div> <div> <label>Windstuwdruk (kN/m²) — optioneel</label> <input id="druk" type="number" min="0.45" max="1.60" step="0.05" placeholder="auto o.b.v. hoogte"/> <p class="gbt-hint">Bekend uit een berekening? Anders leeg laten.</p> </div> </div> </div> <div class="gbt-card"> <h3>2 · Ruitmaat & uitvoering</h3> <div class="gbt-row"> <div><label>Breedte (mm)</label><input id="breedte" type="number" min="150" step="10" value="1200"/></div> <div><label>Hoogte (mm)</label><input id="ruithoogte" type="number" min="150" step="10" value="1500"/></div> </div> <div class="gbt-row"> <div> <label>Gewenste uitvoering (glassoort)</label> <select id="uitv"> <option value="hr++" selected>HR++</option> <option value="premium">HR++ Premium</option> <option value="zon">Zonwerend (HR++)</option> </select> <p class="gbt-hint">Bepaalt naar welke productpagina de knoppen verwijzen.</p> </div> <div></div> </div> </div> <div class="gbt-card"> <h3>3 · Letselveiligheid (NEN 3569)</h3> <div class="gbt-row"> <div> <label>Wat voor glasdeel is het?</label> <select id="positie"> <option value="deur">Glazen deur, tuindeur of schuifpui</option> <option value="zijlicht">Zij- of bovenlicht naast een deur (binnen 30 cm)</option> <option value="raam_open" selected>Draai-, kiep- of schuifraam (gaat open)</option> <option value="raam_vast">Vast raam of vaste pui (gaat niet open)</option> <option value="balustrade">Glazen balustrade / borstwering</option> <option value="onbereikbaar">Hoog of afgeschermd glas (buiten handbereik)</option> </select> <p class="gbt-hint">Kies het onderdeel dat het dichtst in de buurt komt.</p> </div> <div> <label>Gebruiksfunctie</label> <select id="functie"> <option value="woon" selected>Woning / logies (niet-gemeenschappelijk)</option> <option value="overig">Overig (kantoor, winkel, school, etc.)</option> </select> </div> </div> <div class="gbt-row" id="bereikRow"> <div id="onderkantWrap"> <label>Onderkant glas boven de vloer (m)</label> <input id="onderkant" type="number" min="0" step="0.05" value="0.5"/> <p class="gbt-hint">Van de vloer tot de onderkant van het glas.</p> </div> <div id="zijdenWrap"> <label>Kan men het glas aan beide zijden raken?</label> <select id="zijden"> <option value="beide">Ja — van binnen én buiten (of tussen 2 ruimtes)</option> <option value="een" selected>Nee — alleen aan één zijde</option> </select> </div> </div> <div class="gbt-row" id="vluchtRow"> <div> <label>Zit het glas langs een gemeenschappelijke gang of vluchtroute?</label> <select id="vlucht"><option value="nee" selected>Nee</option><option value="ja">Ja</option></select> <p class="gbt-hint">Zo ja, geldt een strengere hoogtegrens: 1,40 m in plaats van 0,85 m.</p> </div> </div> </div> <div class="gbt-card" id="doorvalCard"> <h3>4 · Doorvalveiligheid (NEN 2608)</h3> <div class="gbt-row"> <div id="niveauWrap"> <label>Niveauverschil / valhoogte aan de andere zijde?</label> <select id="niveau"> <option value="nee" selected>Nee — gelijkvloers / begane grond</option> <option value="ja">Ja — verdieping, (Frans) balkon of balustrade</option> </select> <p class="gbt-hint" id="niveauHint">Bij glasbreuk mag niemand naar beneden kunnen vallen.</p> </div> <div> <label>Bouwsituatie</label> <select id="bouw"> <option value="nieuw" selected>Nieuwbouw (grens 1 m, glas tot 0,85 m)</option> <option value="best">Bestaande bouw (grens 1,5 m, glas tot 0,60 m)</option> </select> </div> </div> </div> <div class="gbt-actions"> <button class="gbt-btn" id="gbtGo">Bereken glasadvies</button> <button class="gbt-btn2" id="gbtReset" type="button">Wissen</button> </div> <div id="gbtResult" style="margin-top:18px;display:none"></div> <script> (function(){ /* ===== Productpagina's per uitvoering en opbouwtype (hier eenvoudig aan te passen) ===== */ var BASE="https://www.glasboertje.nl"; var PRODUCTS={ "hr++":{label:"HR++", ongelaagd:BASE+"/isolatieglas/dubbel-glas/hrplusplus-glas/ongelaagd-hrplusplus-glas", gelaagd1:BASE+"/isolatieglas/dubbel-glas/hrplusplus-glas/gelaagd-buiten-hrplusplus-glas", gelaagd2:BASE+"/isolatieglas/dubbel-glas/hrplusplus-glas/dubbel-gelaagd-hrplusplus-glas"}, "premium":{label:"HR++ Premium",ongelaagd:"",gelaagd1:"",gelaagd2:""}, "zon":{label:"Zonwerend (HR++)",ongelaagd:"",gelaagd1:"",gelaagd2:""} }; var PRODUCT_FALLBACK=BASE+"/isolatieglas"; /* ====================================================================================== */ var D=[0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95,1.00,1.05,1.10,1.15,1.20,1.25,1.30,1.35,1.40,1.45,1.50,1.55,1.60]; var N=null; var H=[[N,N,N,N,N,N,N,N],[N,N,N,N,N,N,4,7],[N,N,N,N,N,N,5,9],[N,N,N,N,4,7,6,12],[N,N,N,N,5,9,8,14],[N,N,7,N,6,11,10,15],[N,4,8,1,7,13,12,20],[N,5,9,N,8,15,15,25],[N,6,10,N,10,18,18,30],[N,7,13,N,12,20,20,35],[N,8,15,2,14,24,25,40],[N,9,17,3,15,25,30,50],[N,12,20,N,19,30,37,60],[1,13,22,4,20,35,40,70],[N,15,25,5,25,40,50,80],[2,17,28,6,30,45,60,95],[3,20,30,7,35,55,70,110],[N,22,35,10,40,60,85,120],[4,25,40,12,45,70,100,150],[5,28,45,14,50,80,110,170],[6,32,50,17,60,90,130,190],[7,35,55,20,70,100,160,N],[9,40,60,24,80,120,180,N],[10,45,70,25,90,130,N,N]]; var COL={"1_kust":0,"1_onb":1,"1_beb":2,"2_kust":3,"2_onb":4,"2_beb":5,"3_onb":6,"3_beb":7}; var TABLES=[ {key:"ongelaagd",label:"2× float (ongelaagd)",cols:["4-4","5-4","6-4","6-5","6-6","8-5","8-6","10-6","8-8","10-8","12-8"], A:[[2.29,2.76,3.50,4.32,5.59,6.16,7.14,9.80,10.21,12.28,15.53],[2.05,2.48,3.14,3.88,5.03,5.54,6.42,8.82,9.17,11.04,13.95],[1.86,2.24,2.84,3.52,4.55,5.02,5.81,7.98,8.30,9.99,12.63],[1.69,2.04,2.59,3.20,4.14,4.57,5.29,7.27,7.56,9.10,11.50],[1.55,1.88,2.38,2.94,3.80,4.20,4.86,6.68,6.94,8.36,10.56],[1.44,1.74,2.21,2.72,3.52,3.89,4.50,6.19,6.42,7.74,9.78],[1.34,1.62,2.05,2.53,3.27,3.61,4.18,5.75,5.97,7.19,9.09],[1.25,1.51,1.92,2.36,3.05,3.37,3.91,5.37,5.57,6.71,8.49],[1.17,1.42,1.80,2.22,2.86,3.16,3.66,5.03,5.22,6.29,7.96],[1.10,1.33,1.69,2.09,2.69,2.98,3.45,4.74,4.91,5.92,7.49],[1.04,1.26,1.60,1.97,2.54,2.81,3.25,4.47,4.63,5.59,7.07],[0.98,1.19,1.51,1.87,2.41,2.67,3.08,4.24,4.39,5.30,6.70],[0.93,1.13,1.44,1.77,2.28,2.53,2.93,4.03,4.17,5.03,6.36],[0.89,1.08,1.37,1.69,2.17,2.41,2.79,3.83,3.96,4.79,6.06],[0.85,1.03,1.31,1.61,2.07,2.30,2.66,3.66,3.78,4.57,5.78],[0.81,0.98,1.25,1.54,1.98,2.20,2.54,3.50,3.61,4.36,5.52],[0.78,0.94,1.20,1.47,1.89,2.11,2.43,3.35,3.46,4.18,5.29],[0.75,0.90,1.15,1.41,1.81,2.02,2.33,3.21,3.31,4.01,5.07],[0.72,0.87,1.10,1.35,1.74,1.94,2.24,3.09,3.18,3.85,4.87],[0.69,0.84,1.06,1.30,1.67,1.87,2.16,2.97,3.06,3.70,4.69],[0.66,0.81,1.02,1.25,1.61,1.80,2.08,2.86,2.94,3.57,4.52],[0.64,0.78,0.99,1.21,1.55,1.74,2.00,2.76,2.84,3.44,4.36],[0.62,0.76,0.95,1.17,1.50,1.68,1.93,2.67,2.74,3.32,4.21],[0.60,0.73,0.92,1.13,1.45,1.62,1.87,2.58,2.65,3.21,4.07]]}, {key:"gelaagd1",label:"Isolatieglas met 1 gelaagde ruit",cols:["4-33.x","5-33.x","6-33.x","4-44.x","5-44.x","6-44.x","6-55.x","8-44.x","8-55.x","6-66.x","8-66.x"], A:[[3.56,4.49,5.28,5.74,6.46,7.52,10.30,9.97,13.01,14.11,16.38],[3.20,4.03,4.74,5.18,5.80,6.76,9.26,8.95,11.68,12.69,14.72],[2.90,3.65,4.29,4.69,5.25,6.12,8.39,8.10,10.57,11.49,13.33],[2.64,3.33,3.91,4.27,4.79,5.58,7.64,7.38,9.63,10.46,12.14],[2.43,3.06,3.58,3.92,4.40,5.13,7.02,6.77,8.85,9.61,11.15],[2.25,2.84,3.32,3.63,4.08,4.75,6.50,6.27,8.20,8.90,10.33],[2.09,2.64,3.08,3.38,3.79,4.42,6.05,5.82,7.62,8.27,9.60],[1.96,2.47,2.87,3.15,3.54,4.13,5.65,5.43,7.12,7.72,8.97],[1.84,2.31,2.69,2.96,3.32,3.87,5.30,5.09,6.68,7.24,8.41],[1.73,2.18,2.53,2.79,3.13,3.65,4.99,4.79,6.29,6.82,7.92],[1.64,2.06,2.39,2.63,2.96,3.45,4.71,4.51,5.94,6.44,7.48],[1.55,1.96,2.26,2.50,2.80,3.27,4.47,4.28,5.63,6.10,7.09],[1.48,1.86,2.15,2.37,2.66,3.11,4.24,4.06,5.35,5.79,6.73],[1.41,1.77,2.04,2.26,2.54,2.96,4.04,3.86,5.10,5.52,6.41],[1.34,1.69,1.94,2.15,2.42,2.83,3.86,3.68,4.87,5.26,6.12],[1.29,1.62,1.86,2.06,2.32,2.70,3.69,3.51,4.65,5.03,5.85],[1.23,1.55,1.78,1.97,2.22,2.59,3.53,3.36,4.46,4.82,5.61],[1.18,1.49,1.70,1.90,2.13,2.49,3.39,3.22,4.28,4.63,5.38],[1.14,1.44,1.63,1.82,2.05,2.39,3.26,3.09,4.12,4.44,5.17],[1.10,1.38,1.57,1.75,1.98,2.31,3.14,2.97,3.96,4.28,4.98],[1.06,1.34,1.51,1.69,1.91,2.22,3.03,2.86,3.82,4.12,4.80],[1.02,1.29,1.45,1.63,1.84,2.15,2.92,2.76,3.69,3.98,4.63],[0.99,1.25,1.40,1.58,1.78,2.08,2.82,2.66,3.57,3.85,4.48],[0.96,1.21,1.35,1.53,1.72,2.01,2.73,2.57,3.45,3.72,4.33]]}, {key:"gelaagd2",label:"Isolatieglas met 2 gelaagde ruiten",cols:["33.x-33.x","44.x-33.x","44.x-44.x","55.x-44.x","66.x-44.x","55.x-55.x","66.x-55.x","66.x-66.x","88.x-55.x","88.x-66.x"], A:[[5.53,7.25,10.58,12.78,16.22,17.40,N,N,N,N],[4.97,6.51,9.50,11.48,14.56,15.62,18.03,N,N,N],[4.50,5.90,8.60,10.39,13.18,14.13,16.32,N,N,N],[4.09,5.37,7.83,9.46,12.00,12.87,14.86,19.26,N,N],[3.76,4.93,7.19,8.68,11.02,11.81,13.64,17.67,N,N],[3.48,4.57,6.66,8.04,10.20,10.94,12.63,16.36,18.02,N],[3.23,4.24,6.18,7.47,9.48,10.16,11.73,15.19,16.74,N],[3.02,3.96,5.77,6.98,8.85,9.48,10.95,14.18,15.64,18.11],[2.83,3.72,5.41,6.54,8.30,8.89,10.27,13.29,14.66,16.99],[2.66,3.50,5.09,6.16,7.81,8.36,9.66,12.51,13.80,15.99],[2.51,3.30,4.80,5.81,7.37,7.89,9.12,11.80,13.02,15.09],[2.38,3.13,4.55,5.50,6.98,7.47,8.64,11.18,12.34,14.30],[2.25,2.97,4.31,5.22,6.63,7.09,8.20,10.61,11.71,13.57],[2.14,2.83,4.10,4.97,6.31,6.75,7.80,10.09,11.15,12.92],[2.04,2.69,3.91,4.74,6.02,6.43,7.44,9.62,10.63,12.32],[1.95,2.58,3.74,4.53,5.75,6.14,7.11,9.19,10.16,11.77],[1.87,2.47,3.58,4.34,5.51,5.88,6.81,8.80,9.73,11.27],[1.79,2.36,3.43,4.16,5.28,5.64,6.53,8.44,9.33,10.81],[1.72,2.27,3.29,4.00,5.07,5.41,6.27,8.10,8.96,10.38],[1.65,2.18,3.16,3.84,4.88,5.20,6.03,7.79,8.62,9.98],[1.59,2.11,3.05,3.70,4.70,5.01,5.81,7.50,8.31,9.62],[1.53,2.03,2.94,3.57,4.54,4.83,5.60,7.23,8.01,9.28],[1.48,1.96,2.83,3.45,4.38,4.66,5.41,6.98,7.74,8.96],[1.43,1.89,2.74,3.33,4.24,4.51,5.23,6.75,7.48,8.66]]} ]; var OMG={"1":[["kust","Kuststrook"],["onb","Onbebouwd"],["beb","Bebouwd"]],"2":[["kust","Kuststrook"],["onb","Onbebouwd"],["beb","Bebouwd"]],"3":[["onb","Onbebouwd"],["beb","Bebouwd"]]}; var $=function(id){return document.getElementById(id)}; function fillOmg(){var g=$("gebied").value,cur=$("omgeving").value,s=$("omgeving");s.innerHTML="";OMG[g].forEach(function(o){var op=document.createElement("option");op.value=o[0];op.textContent=o[1];if(o[0]==cur)op.selected=true;s.appendChild(op);});} function updateVis(){var p=$("positie").value; var win=(p=="raam_open"||p=="raam_vast"); $("bereikRow").style.display=(p=="onbereikbaar")?"none":""; $("onderkantWrap").style.display=(p=="onbereikbaar")?"none":""; $("zijdenWrap").style.display=(win||p=="balustrade")?"":"none"; $("vluchtRow").style.display=(p=="raam_vast")?"":"none"; $("doorvalCard").style.display=(p=="onbereikbaar")?"none":""; $("niveauWrap").style.display=(p=="balustrade")?"none":""; } function bouwHint(){$("niveauHint").textContent=$("bouw").value=="best"?"Bestaande bouw: doorvaleis vanaf 1,5 m niveauverschil.":"Nieuwbouw: doorvaleis vanaf 1 m niveauverschil.";} $("gebied").addEventListener("change",fillOmg); $("positie").addEventListener("change",updateVis); $("bouw").addEventListener("change",bouwHint); fillOmg();updateVis();bouwHint(); function drukForHeight(c,h){for(var i=0;i<D.length;i++){var v=H[i][c];if(v!==N&&v>=h)return{druk:D[i],idx:i};}return null;} function nl(x){return x.toFixed(2).replace(".",",");} function innerLam(code){var p=code.split("-");return p[1].indexOf(".")>-1;} function bothLam(code){var p=code.split("-");return p[0].indexOf(".")>-1&&p[1].indexOf(".")>-1;} function doorvalOk(code){var p=code.split("-"),b=p[1];if(b.indexOf(".")<0)return false;return parseInt(b,10)>=44;} function prodUrl(uitv,key){var u=PRODUCTS[uitv]&&PRODUCTS[uitv][key];return u?u:"";} function calc(){ var g=$("gebied").value,om=$("omgeving").value,col=COL[g+"_"+om]; var h=parseFloat($("hoogte").value)||0,manual=parseFloat($("druk").value); var b=parseFloat($("breedte").value)||0,rh=parseFloat($("ruithoogte").value)||0,area=(b*rh)/1e6; var uitv=$("uitv").value; var res=$("gbtResult");res.style.display="block"; if(!b||!rh){res.innerHTML='<div class="{{CROSS_LINK_ATTRIBUTE_120}}">Vul een geldige breedte en hoogte in.</div>';return;} var idx,drukVal,drukNote=""; if(!isNaN(manual)&&manual>=0.45&&manual<=1.60){idx=0;for(var i=0;i<D.length;i++){if(D[i]>=manual-1e-9){idx=i;break;}idx=i;}drukVal=D[idx];drukNote="handmatig ingevoerd";} else{var r=drukForHeight(col,h);if(!r){res.innerHTML='<div class="{{CROSS_LINK_ATTRIBUTE_123}}">Voor deze combinatie van gebied, omgeving en gebouwhoogte ('+h+' m) valt de windstuwdruk buiten de tabel. Neem contact op voor een specifieke berekening.</div>';return;}idx=r.idx;drukVal=r.druk;drukNote="berekend uit gebouwhoogte";} var pos=$("positie").value,func=$("functie").value,ok=parseFloat($("onderkant").value)||0; // ---- Letselveiligheid (NEN 3569) ---- var letsel="none",letselText=""; if(pos=="onbereikbaar"){letsel="none";letselText="Glas buiten handbereik (verder dan 0,85 m of afgeschermd door bijv. een borstwering ≥ 0,70 m): geen letseleis (NEN 3569).";} else if(pos=="deur"){if(ok<1.4){letsel="bothSides";letselText="Deur of schuifpui (deurconstructie): veiligheidsglas verplicht aan beide zijden.";}else{letsel="none";letselText="Deur, onderkant ≥ 1,40 m: geen letseleis.";}} else if(pos=="zijlicht"){if(ok<1.4){if(ok<0.70){letsel="bothSides";letselText="Zij-/bovenlicht met onderkant < 0,70 m: veiligheidsglas aan beide zijden.";}else{letsel="oneSide";letselText="Zij-/bovenlicht (onderkant ≥ 0,70 m): veiligheidsglas aan de bereikbare zijde.";}}else{letsel="none";letselText="Zij-/bovenlicht, onderkant ≥ 1,40 m: geen letseleis.";}} else{var zij=$("zijden").value,limit; if(pos=="raam_open"){limit=1.4;} else if(pos=="balustrade"){limit=0.85;} else{limit=($("vlucht").value=="ja")?1.4:0.85;} var soort=pos=="raam_open"?"Beweegbaar raamdeel (draai/kiep/schuif)":(pos=="balustrade"?"Glazen balustrade":"Vast raam/pui"); if(ok<limit){letsel=zij=="beide"?"bothSides":"oneSide";letselText=soort+", onderkant op "+nl(ok)+" m (grens "+nl(limit)+" m): veiligheidsglas aan "+(zij=="beide"?"beide zijden":"de bereikbare zijde")+".";} else{letsel="none";letselText=soort+", onderkant op "+nl(ok)+" m (≥ "+nl(limit)+" m): geen letseleis.";}} // ---- Doorvalveiligheid (NEN 2608) ---- var doorval=false,doorvalText=""; if(pos!="onbereikbaar"){ var niveau=(pos=="balustrade")?"ja":$("niveau").value,bouw=$("bouw").value; if(niveau=="ja"){ if(pos=="balustrade"){doorval=true;doorvalText="Glazen balustrade bij niveauverschil: doorvalveilig glas vereist (gelaagd binnenblad, min. 44.2).";} else{var dvH=bouw=="nieuw"?0.85:0.60,trig=bouw=="nieuw"?"1 m":"1,5 m"; if(ok<dvH){doorval=true;doorvalText="Niveauverschil ≥ "+trig+" en glas reikt tot < "+nl(dvH)+" m: doorvalveilig glas vereist (gelaagd binnenblad, min. 44.2).";} else{doorvalText="Niveauverschil aanwezig, maar glas begint op "+nl(ok)+" m (≥ "+nl(dvH)+" m): geen doorvaleis op dit glas.";}} } else {doorvalText="Geen relevant niveauverschil: geen doorvaleis.";} } // ---- Requirements ---- var needBoth=(letsel=="bothSides"),needInner=(letsel=="oneSide"||letsel=="bothSides"||doorval),needGrade=doorval; function qualifies(o){if(needBoth&&!o.both)return false;if(needInner&&!o.inner)return false;if(needGrade&&!o.dv)return false;return true;} var typeText=func=="woon"?"gelaagd veiligheidsglas (min. 2(B)2, bijv. 33.2)":"gelaagd óf thermisch gehard veiligheidsglas (min. 1(C)3)"; var all=[];TABLES.forEach(function(tb){tb.cols.forEach(function(c,ci){var mx=tb.A[idx][ci];if(mx!==N)all.push({tbl:tb.label,key:tb.key,code:c,max:mx,fit:mx>=area,inner:innerLam(c),both:bothLam(c),dv:doorvalOk(c)});});}); var fitting=all.filter(function(o){return o.fit&&qualifies(o);}).sort(function(a,b){return a.max-b.max;}); var notFit=all.filter(function(o){return qualifies(o)&&!o.fit;}).sort(function(a,b){return b.max-a.max;}); var html='<div class="{{CROSS_LINK_ATTRIBUTE_165}}"><h3>Resultaat</h3><div class="{{CROSS_LINK_ATTRIBUTE_166}}">'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_167}}"><div class="{{CROSS_LINK_ATTRIBUTE_168}}">Windstuwdruk</div><div class="{{CROSS_LINK_ATTRIBUTE_169}}">'+nl(drukVal)+'</div><div class="l">kN/m² · '+drukNote+'</div></div>'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_171}}"><div class="{{CROSS_LINK_ATTRIBUTE_172}}">Ruitoppervlak</div><div class="{{CROSS_LINK_ATTRIBUTE_173}}">'+nl(area)+'</div><div class="l">m² ('+b+'×'+rh+' mm)</div></div>'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_175}}"><div class="{{CROSS_LINK_ATTRIBUTE_176}}">Geschikte opties</div><div class="{{CROSS_LINK_ATTRIBUTE_177}}">'+fitting.length+'</div><div class="l">wind + veiligheid + doorval</div></div></div>'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_179}}"none"?"gbt-b-info":"gbt-b-warn")+'"><strong>Letselveiligheid (NEN 3569):</strong> '+letselText+(letsel!="none"?' Vereist type: '+typeText+'.':'')+'</div>'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_181}}"gbt-b-warn":"gbt-b-info")+'"><strong>Doorvalveiligheid (NEN 2608):</strong> '+doorvalText+(doorval?' Let op: de exacte gelaagde opbouw moet met een stootbelasting-berekening (NEN 2608) worden bevestigd.':'')+'</div>'; var warns=[];if(Math.min(b,rh)<500)warns.push("Kleinste maat < 500 mm: bij isolatieglas kan isochore druk een rol spelen — overleg met de glasleverancier.");if(area>10)warns.push("Oppervlak > 10 m²: neem contact op met de leverancier voor een specifieke berekening."); if(warns.length)html+='<div class="{{CROSS_LINK_ATTRIBUTE_182}}">'+warns.join("<br>")+'</div>'; html+='</div>'; html+='<div class="{{CROSS_LINK_ATTRIBUTE_183}}"><h3>Geschikte glasopbouw ('+nl(drukVal)+' kN/m²)</h3>'; if(!fitting.length)html+='<div class="{{CROSS_LINK_ATTRIBUTE_184}}">Geen enkele opbouw voldoet bij dit oppervlak, deze windstuwdruk en de veiligheidseisen. Kies een kleinere ruit of vraag een berekening aan.</div>'; fitting.forEach(function(o,i){ var tag=i==0?'<span class="gbt-tag tag-best">lichtste optie</span>':''; var url=prodUrl(uitv,o.key);var btn=url?'<a class="gbt-prod" href="'+url+'" target="_blank" rel="noopener">Bekijk product ↗</a>':'<a class="gbt-prod" href="'+PRODUCT_FALLBACK+'" target="_blank" rel="noopener" title="Deze uitvoering staat nog niet online">Bekijk isolatieglas ↗</a>'; var hide=i>=5?' gbt-hidden gbt-extra':''; html+='<div class="{{CROSS_LINK_ATTRIBUTE_195}}" best":"")+hide+'"><div><div class="name">'+o.code+' mm'+tag+'</div><div class="sub">'+o.tbl+'</div></div><div class="rt"><div class="max">max. <strong>'+nl(o.max)+' m²</strong></div>'+btn+'</div></div>'; }); if(fitting.length>5)html+='<button class="{{CROSS_LINK_ATTRIBUTE_200}}" id="{{CROSS_LINK_ATTRIBUTE_201}}">Meer weergeven ('+(fitting.length-5)+')</button>'; html+='</div>'; if(notFit.length){html+='<div class="{{CROSS_LINK_ATTRIBUTE_202}}"><h3>Niet toereikend bij dit oppervlak</h3>';notFit.slice(0,6).forEach(function(o){html+='<div class="{{CROSS_LINK_ATTRIBUTE_203}}"><div><div class="{{CROSS_LINK_ATTRIBUTE_204}}">'+o.code+' mm <span class="gbt-tag tag-no">te klein</span></div><div class="sub">'+o.tbl+'</div></div><div class="rt"><div class="max">max. '+nl(o.max)+' m²</div></div></div>';});html+='</div>';} html+='<div class="{{CROSS_LINK_ATTRIBUTE_209}}">Notatie: getallen = glasdikte buitenblad – binnenblad in mm; ‘33.x’/‘44.x’ = gelaagd (veiligheids)glas; de gelaagde ruit hoort aan de bereikbare/stootzijde (binnen). Voor een gewoon raam maakt draaien/schuiven vs. vast geen verschil voor de veiligheidseis; deuren, schuifpuien en zijlichten hebben eigen regels. Indicatieve maatstaf op basis van de KCG-windlasttabellen (NEN 2608 / NEN-EN 1991-1-4), NEN 3569 en de doorvaleisen uit het Bouwbesluit/NEN 2608. Een specifieke berekening kan tot een lichtere opbouw leiden. Aan de uitkomst kunnen geen rechten worden ontleend.</div>'; res.innerHTML=html; var mb=$("gbtMore");if(mb)mb.addEventListener("click",function(){var ex=res.querySelectorAll(".gbt-extra");for(var i=0;i<ex.length;i++)ex[i].classList.remove("gbt-hidden");mb.style.display="none";}); res.scrollIntoView({behavior:"smooth",block:"nearest"}); } function reset(){ $("gebied").value="2";$("omgeving").value="onb";fillOmg(); $("hoogte").value="7";$("druk").value="";$("breedte").value="1200";$("ruithoogte").value="1500";$("uitv").value="hr++"; $("positie").value="raam_open";$("functie").value="woon";$("onderkant").value="0.5";$("zijden").value="een";$("vlucht").value="nee"; $("niveau").value="nee";$("bouw").value="nieuw"; updateVis();bouwHint();var res=$("gbtResult");res.style.display="none";res.innerHTML=""; } $("gbtGo").addEventListener("click",calc); $("gbtReset").addEventListener("click",reset); })(); </script> </div>