{"id":7025,"date":"2026-02-27T23:08:30","date_gmt":"2026-02-27T22:08:30","guid":{"rendered":"https:\/\/bbtectools.com\/nl\/?page_id=7025"},"modified":"2026-03-10T15:57:30","modified_gmt":"2026-03-10T14:57:30","slug":"volume-calculator","status":"publish","type":"page","link":"https:\/\/bbtectools.com\/en\/volume-calculator\/","title":{"rendered":"Volume calculator"},"content":{"rendered":"\t<div class=\"vc-wrap\" id=\"vc-wrap\">\n\n\t\t<div class=\"vc-title\">\n\t\t\t<svg class=\"bbtec-icon bbtec-icon-calculator\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 9h-4v4h4v-4zm5-9v6h-6V3h6zm0 8h-6v6h6v-6z\"\/><\/svg>\t\t\tVolume Calculator\n\t\t<\/div>\n\n\t\t\n\t\t<!-- Sectie: Anker -->\n\t\t<div class=\"vc-section\">\n\t\t\t<div class=\"vc-section-label\">Anker<\/div>\n\t\t\t<div class=\"vc-row\">\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-anker-type\">Type<\/label>\n\t\t\t\t\t<select id=\"vc-anker-type\">\n\t\t\t\t\t\t<option value=\"wapening\">Wapening (\u00d8)<\/option>\n\t\t\t\t\t\t<option value=\"draadeind\">Draadeind (M)<\/option>\n\t\t\t\t\t<\/select>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-anker-maat\">Maat<\/label>\n\t\t\t\t\t<select id=\"vc-anker-maat\"><\/select>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<!-- Sectie: Boorgat -->\n\t\t<div class=\"vc-section\">\n\t\t\t<div class=\"vc-section-label\">Boorgat &amp; gaten<\/div>\n\t\t\t<div class=\"vc-row\">\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-boordiameter\">Boordiameter <span class=\"vc-auto-badge\">auto<\/span><\/label>\n\t\t\t\t\t<div class=\"vc-inline\">\n\t\t\t\t\t\t<input type=\"text\" id=\"vc-boordiameter\" readonly>\n\t\t\t\t\t\t<span class=\"vc-unit\">mm<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-hef\">Verankeringslengte<\/label>\n\t\t\t\t\t<div class=\"vc-inline\">\n\t\t\t\t\t\t<input type=\"number\" id=\"vc-hef\" value=\"250\" min=\"1\">\n\t\t\t\t\t\t<span class=\"vc-unit\">mm<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"vc-row\">\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-aantal\">Aantal gaten<\/label>\n\t\t\t\t\t<div class=\"vc-inline\">\n\t\t\t\t\t\t<input type=\"number\" id=\"vc-aantal\" value=\"1\" min=\"1\">\n\t\t\t\t\t\t<span class=\"vc-unit\">st<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-verspilling\">Verspilling<\/label>\n\t\t\t\t\t<select id=\"vc-verspilling\">\n\t\t\t\t\t\t<option value=\"0\">0%<\/option>\n\t\t\t\t\t\t<option value=\"10\">10%<\/option>\n\t\t\t\t\t\t<option value=\"20\" selected>20%<\/option>\n\t\t\t\t\t<\/select>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<!-- Sectie: Mortel -->\n\t\t<div class=\"vc-section\">\n\t\t\t<div class=\"vc-section-label\">Mortel<\/div>\n\t\t\t<div class=\"vc-row\">\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-mortel\">Type<\/label>\n\t\t\t\t\t<select id=\"vc-mortel\">\n\t\t\t\t\t\t<option value=\"BIS-HY\">BIS-HY<\/option>\n\t\t\t\t\t\t<option value=\"BIS-PE\">BIS-PE<\/option>\n\t\t\t\t\t\t<option value=\"BIS-V\">BIS-V<\/option>\n\t\t\t\t\t\t<option value=\"MIT-E\">MIT-E<\/option>\n\t\t\t\t\t<\/select>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vc-field\">\n\t\t\t\t\t<label for=\"vc-cartridge\">Cartridgegrootte<\/label>\n\t\t\t\t\t<select id=\"vc-cartridge\"><\/select>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<!-- Resultaat -->\n\t\t<div class=\"vc-result-stats\" id=\"vc-result\" style=\"display:none;\">\n\t\t\t<div class=\"vc-result-row\">\n\t\t\t\t<div class=\"vc-result-item\">\n\t\t\t\t\t<div class=\"vc-result-item-label\">Volume per gat<\/div>\n\t\t\t\t\t<div class=\"vc-result-item-value\"><span id=\"vc-vol-per-gat\">\u2013<\/span> <span class=\"vc-result-item-unit\">ml<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vc-result-item\">\n\t\t\t\t\t<div class=\"vc-result-item-label\">Totaal volume<\/div>\n\t\t\t\t\t<div class=\"vc-result-item-value\"><span id=\"vc-vol-totaal\">\u2013<\/span> <span class=\"vc-result-item-unit\">ml<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"vc-result-row\">\n\t\t\t\t<div class=\"vc-result-item vc-result-item--main\">\n\t\t\t\t\t<div class=\"vc-result-item-label\">Benodigde cartridges<\/div>\n\t\t\t\t\t<div class=\"vc-result-item-value\"><span id=\"vc-aantal-out\">\u2013<\/span> <span class=\"vc-result-item-unit\">stuks<\/span><\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<!-- Direct bestellen (helemaal onderaan) -->\n\t\t<div class=\"vc-bestel-wrap\" id=\"vc-bestel-wrap\" style=\"display:none;\">\n\t\t\t<a href=\"#\" id=\"vc-bestel-btn\" class=\"vc-bestel-btn\">\n\t\t\t\t<i class=\"fa-solid fa-cart-shopping\"><\/i>\n\t\t\t\t<span>Direct bestellen<\/span>\n\t\t\t<\/a>\n\t\t<\/div>\n\n\t<\/div>\n\n\t<style>\n\t\/* \u2500\u2500 Buitenste kaart \u2500\u2500 *\/\n\t#vc-wrap {\n\t\tfont-family: inherit;\n\t\tmax-width: 560px;\n\t\tbackground: #fff;\n\t\tborder: 1px solid #ddd;\n\t\tborder-radius: 12px;\n\t\tbox-shadow: 0 4px 24px rgba(0,0,0,.07);\n\t\tpadding: 28px 28px 24px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 0;\n\t}\n\n\t\/* \u2500\u2500 Titel \u2500\u2500 *\/\n\t.vc-title {\n\t\tfont-size: 16px;\n\t\tfont-weight: 700;\n\t\tcolor: #000;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tpadding-bottom: 16px;\n\t\tborder-bottom: 1px solid #e8e8e8;\n\t\tmargin-bottom: 2px;\n\t}\n\t.vc-title i {\n\t\tcolor: #028BCB;\n\t\tfont-size: 15px;\n\t}\n\n\t\/* \u2500\u2500 Productkaart (vanuit productpagina) \u2500\u2500 *\/\n\t.vc-product-card {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 12px;\n\t\tpadding: 10px 12px;\n\t\tbackground: #F4F4F4;\n\t\tborder-radius: 8px;\n\t\ttext-decoration: none;\n\t\tcolor: #000;\n\t\tmargin-top: 4px;\n\t\ttransition: background 0.15s ease;\n\t}\n\t.vc-product-card:hover {\n\t\tbackground: #eaeaea;\n\t\ttext-decoration: none;\n\t\tcolor: #000;\n\t}\n\t.vc-product-img {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tobject-fit: contain;\n\t\tborder-radius: 5px;\n\t\tflex-shrink: 0;\n\t\tbackground: #fff;\n\t}\n\t.vc-product-name {\n\t\tflex: 1;\n\t\tfont-size: 13px;\n\t\tfont-weight: 600;\n\t\tline-height: 1.3;\n\t}\n\t.vc-product-arrow {\n\t\tfont-size: 11px;\n\t\tcolor: #028BCB;\n\t\tflex-shrink: 0;\n\t}\n\n\t\/* \u2500\u2500 Secties \u2500\u2500 *\/\n\t.vc-section {\n\t\tpadding: 18px 0;\n\t\tborder-bottom: 1px solid #e8e8e8;\n\t}\n\t.vc-section:last-of-type {\n\t\tborder-bottom: none;\n\t}\n\t.vc-section-label {\n\t\tfont-size: 10px;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.08em;\n\t\ttext-transform: uppercase;\n\t\tcolor: #888;\n\t\tmargin-bottom: 12px;\n\t}\n\n\t\/* \u2500\u2500 2-koloms grid per rij \u2500\u2500 *\/\n\t.vc-row {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 1fr;\n\t\tgap: 12px;\n\t\tmargin-bottom: 10px;\n\t}\n\t.vc-row:last-child {\n\t\tmargin-bottom: 0;\n\t}\n\n\t\/* \u2500\u2500 Veld \u2500\u2500 *\/\n\t.vc-field {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 5px;\n\t}\n\t.vc-field label {\n\t\tfont-size: 12px;\n\t\tfont-weight: 600;\n\t\tcolor: #000;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 5px;\n\t}\n\n\t\/* \u2500\u2500 Inputs & selects \u2500\u2500 *\/\n\t.vc-field select,\n\t.vc-field input[type=\"number\"],\n\t.vc-field input[type=\"text\"] {\n\t\twidth: 100%;\n\t\tborder: 1px solid #ccc;\n\t\tborder-radius: 7px;\n\t\tfont-size: 14px;\n\t\tbackground: #fff;\n\t\tcolor: #000;\n\t\tbox-sizing: border-box;\n\t\ttransition: border-color 0.15s ease, box-shadow 0.15s ease;\n\t\tappearance: auto;\n\t}\n\t.vc-field select:focus,\n\t.vc-field input[type=\"number\"]:focus,\n\t.vc-field input[type=\"text\"]:focus {\n\t\toutline: none;\n\t\tborder-color: #028BCB;\n\t\tbox-shadow: 0 0 0 3px rgba(2,139,203,.15);\n\t}\n\t.vc-field input[readonly] {\n\t\tbackground: #F4F4F4;\n\t\tcolor: #666;\n\t\tcursor: default;\n\t}\n\n\t\/* \u2500\u2500 \"auto\" badge \u2500\u2500 *\/\n\t.vc-auto-badge {\n\t\tdisplay: inline-block;\n\t\tfont-size: 9px;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.06em;\n\t\ttext-transform: uppercase;\n\t\tbackground: #e0f4fc;\n\t\tcolor: #028BCB;\n\t\tborder-radius: 4px;\n\t\tpadding: 1px 5px;\n\t\tvertical-align: middle;\n\t}\n\n\t\/* \u2500\u2500 Inline input + eenheid \u2500\u2500 *\/\n\t.vc-inline {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 6px;\n\t}\n\t.vc-inline input {\n\t\tflex: 1;\n\t\tmin-width: 0;\n\t}\n\t.vc-unit {\n\t\tfont-size: 12px;\n\t\tcolor: #888;\n\t\twhite-space: nowrap;\n\t\tflex-shrink: 0;\n\t}\n\n\t\/* \u2500\u2500 Resultaat \u2500\u2500 *\/\n\t.vc-result-stats {\n\t\tmargin-top: 20px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 10px;\n\t}\n\t.vc-result-row {\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\t}\n\t.vc-result-item {\n\t\tflex: 1;\n\t\tbackground: #F4F4F4;\n\t\tborder-radius: 8px;\n\t\tpadding: 10px 14px;\n\t\ttext-align: center;\n\t}\n\t.vc-result-item--main {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\ttext-align: left;\n\t}\n\t.vc-result-item--main .vc-result-item-label {\n\t\tmargin-bottom: 0;\n\t\tfont-size: 11px;\n\t}\n\t.vc-result-item--main .vc-result-item-value {\n\t\tfont-size: 22px;\n\t}\n\t.vc-result-item-label {\n\t\tfont-size: 10px;\n\t\tcolor: #666;\n\t\tmargin-bottom: 3px;\n\t\ttext-transform: uppercase;\n\t\tletter-spacing: 0.05em;\n\t}\n\t.vc-result-item-value {\n\t\tfont-size: 20px;\n\t\tfont-weight: 700;\n\t\tcolor: #000;\n\t}\n\t.vc-result-item-unit {\n\t\tfont-size: 12px;\n\t\tfont-weight: 400;\n\t\tcolor: #555;\n\t}\n\n\t\/* \u2500\u2500 \"Direct bestellen\" knop \u2500\u2500 *\/\n\t.vc-bestel-wrap {\n\t\tmargin-top: 16px;\n\t\tpadding-top: 16px;\n\t\tborder-top: 1px solid #e8e8e8;\n\t}\n\t.vc-bestel-btn {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tgap: 9px;\n\t\twidth: 100%;\n\t\tpadding: 13px 16px;\n\t\tbackground: #028BCB;\n\t\tcolor: #fff;\n\t\tborder-radius: 7px;\n\t\tfont-size: 15px;\n\t\tfont-weight: 700;\n\t\ttext-decoration: none;\n\t\tborder: none;\n\t\tbox-sizing: border-box;\n\t\ttransition: background 0.15s ease;\n\t}\n\t.vc-bestel-btn:hover {\n\t\tbackground: #016fa2;\n\t\tcolor: #fff;\n\t\ttext-decoration: none;\n\t}\n\t.vc-bestel-btn i { font-size: 1em; }\n\n\t\/* \u2500\u2500 Vergrendeld morteltype \u2500\u2500 *\/\n\t.vc-field--locked select {\n\t\tbackground: #F4F4F4;\n\t\tcolor: #666;\n\t\tcursor: not-allowed;\n\t\topacity: 0.85;\n\t}\n\t.vc-lock-note {\n\t\tfont-size: 11px;\n\t\tcolor: #888;\n\t\tmargin: 3px 0 0;\n\t\tfont-style: italic;\n\t}\n\n\t\/* \u2500\u2500 Mobiel: 1 kolom \u2500\u2500 *\/\n\t@media (max-width: 420px) {\n\t\t#vc-wrap { padding: 20px 16px; }\n\t\t.vc-row { grid-template-columns: 1fr; gap: 10px; }\n\t}\n\t<\/style>\n\n\t<script>\n\t(function() {\n\n\t\t\/\/ Ankermaten: type \u2192 [{ label, As (mm\u00b2), d0 (mm), d1 (mm\u00b2) }]\n\t\t\/\/ d0 = boordiameter, d1 = PI*(d0\/2)^2 = booropp, As = anker doorsnede (trekvlak)\n\t\t\/\/ Ankermaten: type \u2192 [{ label, As (mm\u00b2), d0 (mm), d1 (mm\u00b2) }]\n\t\tconst ankers = {\n\t\t\tdraadeind: [\n\t\t\t\t{ label: 'M8',  As: 36.6,   d0: 10, d1: 78.54   },\n\t\t\t\t{ label: 'M10', As: 58,     d0: 12, d1: 113.10  },\n\t\t\t\t{ label: 'M12', As: 84.3,   d0: 14, d1: 153.94  },\n\t\t\t\t{ label: 'M14', As: 115,    d0: 16, d1: 201.06  },\n\t\t\t\t{ label: 'M16', As: 157,    d0: 18, d1: 254.47  },\n\t\t\t\t{ label: 'M20', As: 245,    d0: 22, d1: 380.13  },\n\t\t\t\t{ label: 'M22', As: 303,    d0: 24, d1: 452.39  },\n\t\t\t\t{ label: 'M24', As: 353,    d0: 28, d1: 615.75  },\n\t\t\t\t{ label: 'M27', As: 459,    d0: 30, d1: 706.86  },\n\t\t\t\t{ label: 'M30', As: 561,    d0: 33, d1: 855.30  },\n\t\t\t],\n\t\t\twapening: [\n\t\t\t\t{ label: '\u00d88',  As: 50.27,  d0: 12, d1: 113.10  },\n\t\t\t\t{ label: '\u00d810', As: 78.54,  d0: 14, d1: 153.94  },\n\t\t\t\t{ label: '\u00d812', As: 113.10, d0: 16, d1: 201.06  },\n\t\t\t\t{ label: '\u00d814', As: 153.94, d0: 18, d1: 254.47  },\n\t\t\t\t{ label: '\u00d816', As: 201.06, d0: 18, d1: 254.47  },\n\t\t\t\t{ label: '\u00d818', As: 254.47, d0: 20, d1: 314.16  },\n\t\t\t\t{ label: '\u00d820', As: 314.16, d0: 25, d1: 490.87  },\n\t\t\t\t{ label: '\u00d822', As: 380.13, d0: 28, d1: 615.75  },\n\t\t\t\t{ label: '\u00d824', As: 452.39, d0: 32, d1: 804.25  },\n\t\t\t\t{ label: '\u00d825', As: 490.87, d0: 32, d1: 804.25  },\n\t\t\t\t{ label: '\u00d828', As: 615.75, d0: 35, d1: 962.11  },\n\t\t\t\t{ label: '\u00d832', As: 804.25, d0: 40, d1: 1256.64 },\n\t\t\t\t{ label: '\u00d834', As: 907.92, d0: 40, d1: 1256.64 },\n\t\t\t\t{ label: '\u00d836', As: 1017.88,d0: 45, d1: 1590.43 },\n\t\t\t\t{ label: '\u00d840', As: 1256.64,d0: 55, d1: 2375.83 },\n\t\t\t]\n\t\t};\n\n\t\t\/\/ Morteltypen: name \u2192 [ { label, ml } ]\n\t\tconst mortels = {\n\t\t\t'BIS-HY': [ { label: '420 ml', ml: 420 } ],\n\t\t\t'BIS-PE': [ { label: '585 ml', ml: 585 } ],\n\t\t\t'BIS-V':  [ { label: '420 ml', ml: 420 }, { label: '300 ml', ml: 300 } ],\n\t\t\t'MIT-E':  [ { label: '400 ml', ml: 400 } ],\n\t\t};\n\n\t\tconst selType      = document.getElementById('vc-anker-type');\n\t\tconst selMaat      = document.getElementById('vc-anker-maat');\n\t\tconst inpBoor      = document.getElementById('vc-boordiameter');\n\t\tconst inpHef       = document.getElementById('vc-hef');\n\t\tconst inpVersp     = document.getElementById('vc-verspilling');\n\t\tconst inpAantal    = document.getElementById('vc-aantal');\n\t\tconst selMortel    = document.getElementById('vc-mortel');\n\t\tconst selCartridge = document.getElementById('vc-cartridge');\n\t\tconst divResult    = document.getElementById('vc-result');\n\t\tconst outAantal    = document.getElementById('vc-aantal-out');\n\t\tconst outVolPerGat   = document.getElementById('vc-vol-per-gat');\n\t\tconst outVolTotaal   = document.getElementById('vc-vol-totaal');\n\t\tconst vcBestelWrap   = document.getElementById('vc-bestel-wrap');\n\t\tconst vcBestelBtn  = document.getElementById('vc-bestel-btn');\n\t\tvar   vcRefUrl     = '';\n\n\t\tfunction populateMaten() {\n\t\t\tconst type = selType.value;\n\t\t\tselMaat.innerHTML = '';\n\t\t\tankers[type].forEach(function(a) {\n\t\t\t\tconst opt = document.createElement('option');\n\t\t\t\topt.value = a.label;\n\t\t\t\topt.textContent = a.label;\n\t\t\t\tselMaat.appendChild(opt);\n\t\t\t});\n\t\t\tupdateBoor();\n\t\t}\n\n\t\tfunction updateBoor() {\n\t\t\tconst type = selType.value;\n\t\t\tconst maat = selMaat.value;\n\t\t\tconst anker = ankers[type].find(a => a.label === maat);\n\t\t\tinpBoor.value = anker ? anker.d0 : '';\n\t\t\tcalculate();\n\t\t}\n\n\t\tfunction populateCartridges() {\n\t\t\tconst mortel = selMortel.value;\n\t\t\tselCartridge.innerHTML = '';\n\t\t\t(mortels[mortel] || []).forEach(function(c) {\n\t\t\t\tconst opt = document.createElement('option');\n\t\t\t\topt.value = c.ml;\n\t\t\t\topt.textContent = c.label;\n\t\t\t\tselCartridge.appendChild(opt);\n\t\t\t});\n\t\t\tcalculate();\n\t\t}\n\n\t\tfunction calculate() {\n\t\t\tconst type       = selType.value;\n\t\t\tconst maat       = selMaat.value;\n\t\t\tconst anker      = ankers[type].find(a => a.label === maat);\n\t\t\tconst hef        = parseFloat(inpHef.value);\n\t\t\tconst verspPct   = parseFloat(inpVersp.value);\n\t\t\tconst aantalGat  = parseInt(inpAantal.value, 10);\n\t\t\tconst cartML     = parseFloat(selCartridge.value);\n\n\t\t\tif (!anker || isNaN(hef) || isNaN(verspPct) || isNaN(aantalGat) || isNaN(cartML)\n\t\t\t\t|| hef <= 0 || aantalGat <= 0 || cartML <= 0) {\n\t\t\t\tdivResult.style.display = 'none';\n\t\t\t\tif (vcBestelWrap) vcBestelWrap.style.display = 'none';\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t\/\/ Volume per gat (ml): (d1 - As) \u00d7 hef \/ 1000 \u00d7 (1 + waste)\n\t\t\tconst waste       = verspPct \/ 100;\n\t\t\tconst volPerGat   = (anker.d1 - anker.As) * hef \/ 1000 * (1 + waste);\n\t\t\tconst totaalVol   = volPerGat * aantalGat;\n\t\t\tconst aantalCart  = Math.ceil(totaalVol \/ cartML);\n\n\t\t\toutAantal.textContent    = aantalCart;\n\t\t\toutVolPerGat.textContent = volPerGat.toFixed(1);\n\t\t\toutVolTotaal.textContent = totaalVol.toFixed(0);\n\n\t\t\tdivResult.style.display = 'flex';\n\n\t\t\t\/\/ Bijwerk \"Direct bestellen\" knop\n\t\t\tif (vcRefUrl && vcBestelWrap && vcBestelBtn) {\n\t\t\t\tconst sep = vcRefUrl.indexOf('?') !== -1 ? '&' : '?';\n\t\t\t\tvcBestelBtn.href = vcRefUrl + sep + 'auto_qty=' + aantalCart;\n\t\t\t\tvcBestelWrap.style.display = 'block';\n\t\t\t}\n\t\t}\n\n\t\t\/\/ Events\n\t\tselType.addEventListener('change', populateMaten);\n\t\tselMaat.addEventListener('change', updateBoor);\n\t\tinpHef.addEventListener('input', calculate);\n\t\tinpVersp.addEventListener('change', calculate);\n\t\tinpAantal.addEventListener('input', calculate);\n\t\tselMortel.addEventListener('change', populateCartridges);\n\t\tselCartridge.addEventListener('change', calculate);\n\n\t\t\/\/ Init\n\t\tpopulateMaten();\n\t\tpopulateCartridges();\n\n\t\t\/\/ Pre-fill en optioneel vergrendelen via URL-parameters\n\t\t(function() {\n\t\t\tvar allowed = ['BIS-HY', 'BIS-PE', 'BIS-V', 'MIT-E'];\n\t\t\tvar params  = new URLSearchParams(window.location.search);\n\t\t\tvar mortelParam = params.get('mortel');\n\t\t\tvar rawRef      = params.get('ref_url') || '';\n\n\t\t\t\/\/ Valideer ref_url: alleen zelfde origin toegestaan (voorkomt open redirect)\n\t\t\tif (rawRef) {\n\t\t\t\ttry {\n\t\t\t\t\tvar u = new URL(rawRef, window.location.origin);\n\t\t\t\t\tif (u.origin === window.location.origin) {\n\t\t\t\t\t\tvcRefUrl = u.pathname + (u.search || '') + (u.hash || '');\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { \/* ongeldige URL \u2013 negeer *\/ }\n\t\t\t}\n\n\t\t\tif (mortelParam && allowed.indexOf(mortelParam) !== -1) {\n\t\t\t\tselMortel.value = mortelParam;\n\t\t\t\tpopulateCartridges();\n\n\t\t\t\t\/\/ Vergrendel mortelkeuze wanneer doorgestuurd vanuit productpagina\n\t\t\t\tif (vcRefUrl) {\n\t\t\t\t\tselMortel.disabled = true;\n\t\t\t\t\tselMortel.closest('.vc-field').classList.add('vc-field--locked');\n\t\t\t\t\tvar note = document.createElement('p');\n\t\t\t\t\tnote.className = 'vc-lock-note';\n\t\t\t\t\tnote.textContent = 'Morteltype is vooringevuld op basis van uw geselecteerde product.';\n\t\t\t\t\tselMortel.parentNode.appendChild(note);\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\n\t})();\n\t<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-7025","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"_links":{"self":[{"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/pages\/7025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/comments?post=7025"}],"version-history":[{"count":0,"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/pages\/7025\/revisions"}],"wp:attachment":[{"href":"https:\/\/bbtectools.com\/en\/wp-json\/wp\/v2\/media?parent=7025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}