{"id":800,"date":"2026-07-10T17:07:39","date_gmt":"2026-07-10T17:07:39","guid":{"rendered":"https:\/\/printiteasy.eu\/boek-maken-be\/"},"modified":"2026-07-11T15:06:30","modified_gmt":"2026-07-11T15:06:30","slug":"boek-maken-be","status":"publish","type":"page","link":"https:\/\/printiteasy.eu\/nl-be\/boek-maken-be\/","title":{"rendered":"Boek maken"},"content":{"rendered":"\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n<style>\n.pie-omslag{--navy:#1F3A6E;--pan:#fff;--line:#e2e8f0;--muted:#64748b;color:#0f172a;font-family:Arial,Helvetica,sans-serif}\n.pie-omslag *{box-sizing:border-box}\n.pie-omslag .pieom-head{background:var(--navy);color:#fff;padding:14px 18px;border-radius:12px;margin-bottom:14px}\n.pie-omslag .pieom-head h1{margin:0;font-size:18px;color:#fff}\n.pie-omslag .pieom-head .sub{font-size:12px;color:#c7d2fe;margin-top:4px}\n.pie-omslag .wrap{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}\n.pie-omslag .panel{background:var(--pan);border:1px solid var(--line);border-radius:12px;padding:16px}\n.pie-omslag .controls{width:340px;flex:0 0 340px}\n.pie-omslag .stage{flex:1;min-width:360px}\n.pie-omslag h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin:0 0 10px}\n.pie-omslag label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}\n.pie-omslag input,.pie-omslag select{width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;background:#fff;color:#0f172a}\n.pie-omslag input[type=color]{height:38px;padding:4px}\n.pie-omslag .row{display:flex;gap:10px}\n.pie-omslag .row>div{flex:1}\n.pie-omslag .readout{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:12px;margin-top:14px;font-size:13px;line-height:1.6}\n.pie-omslag .readout b{color:var(--navy)}\n.pie-omslag .readout .big{font-size:20px;font-weight:bold;color:var(--navy)}\n.pie-omslag canvas{max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff}\n.pie-omslag .btns{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}\n.pie-omslag button{border:0;border-radius:8px;padding:11px 16px;font-size:14px;font-weight:bold;cursor:pointer}\n.pie-omslag .primary{background:var(--navy);color:#fff}\n.pie-omslag .note{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4}\n.pie-omslag .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}\n.pie-omslag .legend span{display:inline-flex;align-items:center;gap:6px}\n.pie-omslag .sw{width:14px;height:0;border-top-width:2px;border-top-style:solid;display:inline-block}\n.pie-omslag details{margin-top:12px}\n.pie-omslag summary{cursor:pointer;font-size:12px;color:var(--navy)}\n.bm-wrap{max-width:1120px;margin:0 auto}\n.bm-step{font-size:20px;font-weight:bold;color:#1F3A6E;margin:26px 0 12px;font-family:Arial,Helvetica,sans-serif}\n.bm-chooser{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}\n.bm-chooser button{border:2px solid #1F3A6E;background:#fff;color:#1F3A6E;border-radius:10px;padding:10px 18px;font-weight:bold;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:15px}\n.bm-chooser button.active{background:#1F3A6E;color:#fff}\n.bm-cal{display:none;margin-top:8px}\n.bm-cal.active{display:block}\n.bm-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:14px 16px;color:#1e3a8a;font-size:14px;margin-top:8px;font-family:Arial,Helvetica,sans-serif;line-height:1.5}\n<\/style>\n<div class=\"bm-wrap\">\n<div class=\"bm-step\">1. Kies je boeksoort &amp; configureer<\/div>\n<div class=\"bm-chooser\">\n  <button data-cat=\"hardcover\" class=\"active\">Hardcover<\/button>\n  <button data-cat=\"softcover\">Softcover<\/button>\n  <button data-cat=\"magazine\">Geniete boekjes<\/button>\n<\/div>\n<div class=\"bm-cal active\" data-cat=\"hardcover\"><div class=\"pie-calc\" data-config=\"{&quot;category&quot;:&quot;hardcover&quot;,&quot;label&quot;:&quot;Hardcover boeken&quot;,&quot;base_price&quot;:10,&quot;fields&quot;:[{&quot;key&quot;:&quot;format&quot;,&quot;label&quot;:&quot;Eindformaat&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;a4&quot;,&quot;label&quot;:&quot;A4 staand (210 x 297 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a5&quot;,&quot;label&quot;:&quot;A5 staand (148 x 210 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a4_liggend&quot;,&quot;label&quot;:&quot;A4 liggend (297 x 210 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a5_liggend&quot;,&quot;label&quot;:&quot;A5 liggend (210 x 148 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;v148&quot;,&quot;label&quot;:&quot;Vierkant (148 x 148 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;square21&quot;,&quot;label&quot;:&quot;Vierkant (210 x 210 mm)&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75},{&quot;key&quot;:&quot;f170x240&quot;,&quot;label&quot;:&quot;170 x 240 mm&quot;,&quot;sales_price&quot;:3.85,&quot;cost&quot;:2.2,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;pages&quot;,&quot;label&quot;:&quot;Aantal pagina&#039;s&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;unit&quot;:&quot;pag&quot;,&quot;default&quot;:48},{&quot;key&quot;:&quot;print&quot;,&quot;label&quot;:&quot;Printen&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;kleur&quot;,&quot;label&quot;:&quot;Kleur&quot;,&quot;sales_price&quot;:0.028,&quot;cost&quot;:0.016,&quot;marge&quot;:74.9},{&quot;key&quot;:&quot;zwart-wit&quot;,&quot;label&quot;:&quot;Zwart-wit&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;paperweight&quot;,&quot;label&quot;:&quot;Papier binnenwerk&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;ib1&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib2&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib3&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib4&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.012,&quot;cost&quot;:0.007,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib6&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib7&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib8&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.021,&quot;cost&quot;:0.012,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib9&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib10&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib14&quot;,&quot;label&quot;:&quot;70 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib16&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib18&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib20&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib21&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib22&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib28&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib29&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib30&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib31&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib32&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib33&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;cover_paper&quot;,&quot;label&quot;:&quot;Omslag papier&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;cp3&quot;,&quot;label&quot;:&quot;Mat 150 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.07,&quot;cost&quot;:0.04,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;cover_print&quot;,&quot;label&quot;:&quot;Bedrukking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;4-0&quot;,&quot;label&quot;:&quot;Full color voorkant (4\\\/0)&quot;,&quot;sales_price&quot;:0.158,&quot;cost&quot;:0.09,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;finish&quot;,&quot;label&quot;:&quot;Afwerking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;mat&quot;,&quot;label&quot;:&quot;Mat laminaat&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;glans&quot;,&quot;label&quot;:&quot;Glans laminaat&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;softtouch&quot;,&quot;label&quot;:&quot;Soft-touch laminaat&quot;,&quot;sales_price&quot;:0.438,&quot;cost&quot;:0.25,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;delivery_time&quot;,&quot;label&quot;:&quot;Levering&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;standaard&quot;,&quot;label&quot;:&quot;Standaard&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:75},{&quot;key&quot;:&quot;snel&quot;,&quot;label&quot;:&quot;Snel&quot;,&quot;sales_price&quot;:17.413,&quot;cost&quot;:9.95,&quot;marge&quot;:75},{&quot;key&quot;:&quot;spoed&quot;,&quot;label&quot;:&quot;Spoed&quot;,&quot;sales_price&quot;:34.913,&quot;cost&quot;:19.95,&quot;marge&quot;:75}],&quot;per_order&quot;:true},{&quot;key&quot;:&quot;endpaper&quot;,&quot;label&quot;:&quot;Schutbladen&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;none&quot;,&quot;label&quot;:&quot;Geen&quot;,&quot;sales_price&quot;:0.088,&quot;cost&quot;:0.05,&quot;marge&quot;:75},{&quot;key&quot;:&quot;white&quot;,&quot;label&quot;:&quot;Wit&quot;,&quot;sales_price&quot;:0.088,&quot;cost&quot;:0.05,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;headband&quot;,&quot;label&quot;:&quot;Kapitaalband&quot;,&quot;type&quot;:&quot;toggle&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;on&quot;,&quot;label&quot;:&quot;Met kapitaalband&quot;,&quot;sales_price&quot;:0.088,&quot;cost&quot;:0.05,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;genaaid&quot;,&quot;label&quot;:&quot;Genaaid gebonden&quot;,&quot;type&quot;:&quot;toggle&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;on&quot;,&quot;label&quot;:&quot;Met genaaide binding&quot;,&quot;sales_price&quot;:2.625,&quot;cost&quot;:1.5,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;oplage&quot;,&quot;label&quot;:&quot;Oplage&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;is_quantity&quot;:true,&quot;default&quot;:1}],&quot;staffels&quot;:[{&quot;min&quot;:1,&quot;mult&quot;:1},{&quot;min&quot;:5,&quot;mult&quot;:0.75},{&quot;min&quot;:10,&quot;mult&quot;:0.6},{&quot;min&quot;:25,&quot;mult&quot;:0.55},{&quot;min&quot;:50,&quot;mult&quot;:0.53},{&quot;min&quot;:100,&quot;mult&quot;:0.51},{&quot;min&quot;:150,&quot;mult&quot;:0.49},{&quot;min&quot;:200,&quot;mult&quot;:0.47},{&quot;min&quot;:250,&quot;mult&quot;:0.45},{&quot;min&quot;:500,&quot;mult&quot;:0.43},{&quot;min&quot;:750,&quot;mult&quot;:0.41},{&quot;min&quot;:1000,&quot;mult&quot;:0.4}],&quot;btw&quot;:21,&quot;cart_url&quot;:&quot;\\\/bestellen&quot;,&quot;delivery_days&quot;:{&quot;standaard&quot;:5,&quot;snel&quot;:4,&quot;spoed&quot;:3}}\"><div class=\"pie-calc-head\">Hardcover boeken configureren<\/div><div class=\"pie-calc-fields\"><\/div><div class=\"pie-calc-price\"><\/div><a class=\"pie-calc-order\" href=\"#\">Verder naar bestellen<\/a><div class=\"pie-calc-tiers\"><\/div><\/div><style>\n.pie-calc{border:1px solid #e5e7eb;border-radius:16px;padding:24px;max-width:560px;background:#fff;font-size:15px}\n.pie-calc-head{font-size:1.15rem;font-weight:700;color:#0f172a;margin-bottom:16px}\n.pie-calc-row{margin-bottom:12px}\n.pie-calc-row label{display:block;font-size:.85rem;color:#475569;margin-bottom:4px}\n.pie-calc-row select,.pie-calc-row input[type=number]{width:100%;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:15px;box-sizing:border-box}\n.pie-calc-toggle{display:flex;align-items:center;gap:8px}\n.pie-calc-toggle input{width:auto}\n.pie-calc-price{margin-top:18px;background:#f6f8fb;border-radius:12px;padding:16px}\n.pie-calc-price .r{display:flex;justify-content:space-between;padding:3px 0;color:#475569}\n.pie-calc-price .r.total{border-top:1px solid #dbe3ee;margin-top:6px;padding-top:8px;font-weight:800;color:#0f172a;font-size:1.15rem}\n.pie-calc-order{display:inline-block;margin-top:16px;background:#2563eb;color:#fff;text-decoration:none;padding:12px 20px;border-radius:8px;font-weight:600}\n.pie-calc-order:hover{background:#1d4ed8;color:#fff}\n.pie-calc-tiers{margin-top:20px}\n.pie-calc-tiers table{width:100%;border-collapse:collapse;font-size:.9rem}\n.pie-calc-tiers th,.pie-calc-tiers td{text-align:left;padding:6px 8px;border-bottom:1px solid #eef2f7}\n.pie-calc-tiers th{color:#64748b;font-weight:600}\n<\/style><script>(function(){\n  function euro(n){return '\u20ac ' + n.toLocaleString('nl-NL',{minimumFractionDigits:2,maximumFractionDigits:2});}\n  function tierMult(staffels, qty){\n    var m=1; for(var i=0;i<staffels.length;i++){ if(qty>=staffels[i].min) m=staffels[i].mult; } return m;\n  }\n  function build(el){\n    var cfg;\n    try{ cfg=JSON.parse(el.getAttribute('data-config')); }catch(e){ return; }\n    var fieldsWrap=el.querySelector('.pie-calc-fields');\n    var priceWrap=el.querySelector('.pie-calc-price');\n    var tiersWrap=el.querySelector('.pie-calc-tiers');\n    var orderBtn=el.querySelector('.pie-calc-order');\n\n    cfg.fields.forEach(function(f){\n      var row=document.createElement('div'); row.className='pie-calc-row'; row.setAttribute('data-key',f.key);\n      if(f.type==='select'){\n        var lab=document.createElement('label'); lab.textContent=f.label; row.appendChild(lab);\n        var sel=document.createElement('select');\n        f.options.forEach(function(o){var op=document.createElement('option');op.value=o.key;op.textContent=o.label;sel.appendChild(op);});\n        row.appendChild(sel);\n      } else if(f.type==='number'){\n        var lab2=document.createElement('label'); lab2.textContent=f.label+(f.unit?' ('+f.unit+')':''); row.appendChild(lab2);\n        var inp=document.createElement('input'); inp.type='number'; inp.min='1'; inp.value=(f['default']||1); row.appendChild(inp);\n      } else if(f.type==='toggle'){\n        row.className='pie-calc-row pie-calc-toggle';\n        var cb=document.createElement('input'); cb.type='checkbox';\n        var lab3=document.createElement('label'); lab3.textContent=f.label; lab3.style.margin='0';\n        row.appendChild(cb); row.appendChild(lab3);\n      }\n      fieldsWrap.appendChild(row);\n    });\n\n    function readVal(f){\n      var row=fieldsWrap.querySelector('[data-key=\"'+f.key+'\"]');\n      if(!row) return null;\n      if(f.type==='select') return row.querySelector('select').value;\n      if(f.type==='number') return parseFloat(row.querySelector('input').value)||0;\n      if(f.type==='toggle') return row.querySelector('input').checked;\n      return null;\n    }\n    function pages(){ var p=cfg.fields.filter(function(f){return f.key==='pages';})[0]; return p?readVal(p):0; }\n    function qty(){ var q=cfg.fields.filter(function(f){return f.is_quantity;})[0]; return q?Math.max(1,readVal(q)):1; }\n\n    function perCopyAndOrder(pg){\n      var perCopy=parseFloat(cfg.base_price)||0, orderExtra=0;\n      cfg.fields.forEach(function(f){\n        if(f.type==='number') return;\n        var v=readVal(f); if(v===null) return;\n        if(f.type==='select'){\n          var o=f.options.filter(function(x){return x.key===v;})[0]; if(!o) return;\n          var p=o.sales_price; if(f.per_page) p=p*pg;\n          if(f.per_order) orderExtra+=p; else perCopy+=p;\n        } else if(f.type==='toggle'){\n          if(v){ var o2=f.options[0]; if(o2){ var p2=o2.sales_price; if(f.per_page)p2=p2*pg; if(f.per_order)orderExtra+=p2; else perCopy+=p2; } }\n        }\n      });\n      return {perCopy:perCopy, orderExtra:orderExtra};\n    }\n    function calc(q){\n      var pg=pages(); var pc=perCopyAndOrder(pg);\n      var mult=tierMult(cfg.staffels,q);\n      var unit=pc.perCopy*mult;\n      var ex=unit*q + pc.orderExtra;\n      var inc=ex*(1+(parseFloat(cfg.btw)||0)\/100);\n      return {unit:unit, ex:ex, inc:inc, mult:mult, orderExtra:pc.orderExtra};\n    }\n\n    var pieVI=false;\n    function render(){\n      var _hl=(document.documentElement.lang||'').toLowerCase(); var PV=(_hl.indexOf('en')===0)?{unit:'Unit price',qty:'Quantity',ex:'Excl. VAT',in:'Incl. VAT',alt:'Alternative quantities'}:(_hl.indexOf('de')===0)?{unit:'St\u00fcckpreis',qty:'Menge',ex:'Exkl. MwSt.',in:'Inkl. MwSt.',alt:'Alternative Auflagen'}:(_hl.indexOf('fr')===0)?{unit:'Prix unitaire',qty:'Quantit\u00e9',ex:'Hors TVA',in:'TVA incl.',alt:'Autres quantit\u00e9s'}:(_hl.indexOf('es')===0)?{unit:'Precio unitario',qty:'Cantidad',ex:'Sin IVA',in:'Con IVA',alt:'Otras cantidades'}:{unit:'Stukprijs',qty:'Aantal',ex:'Excl. btw',in:'Incl. btw',alt:'Alternatieve oplages'}; \n      var q=qty(); var r=calc(q);\n      var vf=1+(parseFloat(cfg.btw)||0)\/100;\n      priceWrap.innerHTML='<div class=\"pie-vat-toggle\"><button type=\"button\" data-vat=\"ex\" class=\"pie-vat-seg'+(pieVI?'':' on')+'\">'+PV.ex+'<\/button><button type=\"button\" data-vat=\"in\" class=\"pie-vat-seg'+(pieVI?' on':'')+'\">'+PV.in+'<\/button><\/div>'+'<div class=\"r\"><span>'+PV.unit+'<\/span><span>'+euro(pieVI?r.unit*vf:r.unit)+'<\/span><\/div>'+'<div class=\"r\"><span>'+PV.qty+'<\/span><span>'+q+'<\/span><\/div>'+'<div class=\"r total\"><span>'+(pieVI?PV.in:PV.ex)+'<\/span><span>'+euro(pieVI?r.inc:r.ex)+'<\/span><\/div>';\n      [].forEach.call(priceWrap.querySelectorAll('.pie-vat-seg'),function(bn){bn.onclick=function(){pieVI=(this.getAttribute('data-vat')==='in');render();};});\n      var tiers=(cfg.staffels&&cfg.staffels.length?cfg.staffels.map(function(s){return s.min;}):[1,10,25,50,100,250,500]);\n      var rows='';\n      tiers.forEach(function(t){ var rr=calc(t); rows+='<tr><td>'+t+'<\/td><td>'+euro(pieVI?rr.unit*vf:rr.unit)+'<\/td><td>'+euro(pieVI?rr.inc:rr.ex)+'<\/td><\/tr>'; });\n      tiersWrap.innerHTML='<h4 style=\"margin:0 0 8px\">'+PV.alt+'<\/h4><table><thead><tr><th>'+PV.qty+'<\/th><th>'+PV.unit+'<\/th><th>'+(pieVI?PV.in:PV.ex)+'<\/th><\/tr><\/thead><tbody>'+rows+'<\/tbody><\/table>';\n\n    }\n\n    function lineItem(){\n      var q=qty(); var r=calc(q); var opts=[];\n      cfg.fields.forEach(function(f){\n        if(f.is_quantity) return;\n        var v=readVal(f);\n        if(f.type==='number'){ opts.push({label:f.label, value:String(v)}); }\n        else if(f.type==='select'){ var o=f.options.filter(function(x){return x.key===v;})[0]; opts.push({label:f.label, value:o?o.label:String(v)}); }\n        else if(f.type==='toggle'){ opts.push({label:f.label, value:v?'Ja':'Nee'}); }\n      });\n      return {category:cfg.category, label:cfg.label, qty:q, unit:r.unit, ex:r.ex, inc:r.inc, btw:cfg.btw, ship:((r.orderExtra||0)*(1+(parseFloat(cfg.btw)||0)\/100)), options:opts};\n    }\n\n    orderBtn.addEventListener('click', function(e){\n      e.preventDefault();\n      try{ localStorage.setItem('pie_cart', JSON.stringify(lineItem())); }catch(err){}\n      window.location.href = cfg.cart_url || '\/winkelwagen';\n    });\n\n    fieldsWrap.addEventListener('input', render);\n    fieldsWrap.addEventListener('change', render);\n    render();\n  }\n  document.addEventListener('DOMContentLoaded', function(){\n    document.querySelectorAll('.pie-calc').forEach(build);\n  });\n})();<\/script><\/div>\n<div class=\"bm-cal\" data-cat=\"softcover\"><div class=\"pie-calc\" data-config=\"{&quot;category&quot;:&quot;softcover&quot;,&quot;label&quot;:&quot;Softcover boeken&quot;,&quot;base_price&quot;:3.5,&quot;fields&quot;:[{&quot;key&quot;:&quot;format&quot;,&quot;label&quot;:&quot;Eindformaat&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;a4&quot;,&quot;label&quot;:&quot;A4 staand (210 x 297 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a5&quot;,&quot;label&quot;:&quot;A5 staand (148 x 210 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a4_liggend&quot;,&quot;label&quot;:&quot;A4 liggend (297 x 210 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;a5_liggend&quot;,&quot;label&quot;:&quot;A5 liggend (210 x 148 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;v148&quot;,&quot;label&quot;:&quot;Vierkant (148 x 148 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;square21&quot;,&quot;label&quot;:&quot;Vierkant (210 x 210 mm)&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75},{&quot;key&quot;:&quot;f170x240&quot;,&quot;label&quot;:&quot;170 x 240 mm&quot;,&quot;sales_price&quot;:1.05,&quot;cost&quot;:0.6,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;pages&quot;,&quot;label&quot;:&quot;Aantal pagina&#039;s&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;unit&quot;:&quot;pag&quot;,&quot;default&quot;:48},{&quot;key&quot;:&quot;print&quot;,&quot;label&quot;:&quot;Printen&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;kleur&quot;,&quot;label&quot;:&quot;Kleur&quot;,&quot;sales_price&quot;:0.028,&quot;cost&quot;:0.016,&quot;marge&quot;:75},{&quot;key&quot;:&quot;zwart-wit&quot;,&quot;label&quot;:&quot;Zwart-wit&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;paperweight&quot;,&quot;label&quot;:&quot;Papier binnenwerk&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;ib1&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib2&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib3&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib4&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.012,&quot;cost&quot;:0.007,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib6&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib7&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib8&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.021,&quot;cost&quot;:0.012,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib9&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib10&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib14&quot;,&quot;label&quot;:&quot;70 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib16&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib18&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib20&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib21&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib22&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib28&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib29&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib30&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib31&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib32&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib33&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;cover_paper&quot;,&quot;label&quot;:&quot;Omslag papier&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;cp1&quot;,&quot;label&quot;:&quot;Mat 300 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;cp2&quot;,&quot;label&quot;:&quot;Enkelzijdig sulfaatkarton 240 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;cover_print&quot;,&quot;label&quot;:&quot;Bedrukking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;4-0&quot;,&quot;label&quot;:&quot;Full color voorkant (4\\\/0)&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:0},{&quot;key&quot;:&quot;color&quot;,&quot;label&quot;:&quot;Kleur (4\\\/4)&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:0},{&quot;key&quot;:&quot;bw&quot;,&quot;label&quot;:&quot;Zwart-wit (1\\\/0)&quot;,&quot;sales_price&quot;:-2,&quot;cost&quot;:-2,&quot;marge&quot;:0}]},{&quot;key&quot;:&quot;finish&quot;,&quot;label&quot;:&quot;Afwerking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;mat&quot;,&quot;label&quot;:&quot;Mat laminaat&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:0},{&quot;key&quot;:&quot;glans&quot;,&quot;label&quot;:&quot;Glans laminaat&quot;,&quot;sales_price&quot;:2.625,&quot;cost&quot;:1.5,&quot;marge&quot;:75},{&quot;key&quot;:&quot;softtouch&quot;,&quot;label&quot;:&quot;Soft-touch laminaat&quot;,&quot;sales_price&quot;:6.125,&quot;cost&quot;:3.5,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;delivery_time&quot;,&quot;label&quot;:&quot;Levering&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;standaard&quot;,&quot;label&quot;:&quot;Standaard&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:0},{&quot;key&quot;:&quot;snel&quot;,&quot;label&quot;:&quot;Snel&quot;,&quot;sales_price&quot;:17.413,&quot;cost&quot;:9.95,&quot;marge&quot;:75},{&quot;key&quot;:&quot;spoed&quot;,&quot;label&quot;:&quot;Spoed&quot;,&quot;sales_price&quot;:34.913,&quot;cost&quot;:19.95,&quot;marge&quot;:75}],&quot;per_order&quot;:true},{&quot;key&quot;:&quot;genaaid&quot;,&quot;label&quot;:&quot;Genaaid gebonden&quot;,&quot;type&quot;:&quot;toggle&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;on&quot;,&quot;label&quot;:&quot;Met genaaide binding&quot;,&quot;sales_price&quot;:2.625,&quot;cost&quot;:1.5,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;oplage&quot;,&quot;label&quot;:&quot;Oplage&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;is_quantity&quot;:true,&quot;default&quot;:1}],&quot;staffels&quot;:[{&quot;min&quot;:1,&quot;mult&quot;:1},{&quot;min&quot;:5,&quot;mult&quot;:0.75},{&quot;min&quot;:10,&quot;mult&quot;:0.6},{&quot;min&quot;:25,&quot;mult&quot;:0.55},{&quot;min&quot;:50,&quot;mult&quot;:0.53},{&quot;min&quot;:100,&quot;mult&quot;:0.51},{&quot;min&quot;:150,&quot;mult&quot;:0.49},{&quot;min&quot;:200,&quot;mult&quot;:0.47},{&quot;min&quot;:250,&quot;mult&quot;:0.45},{&quot;min&quot;:500,&quot;mult&quot;:0.43},{&quot;min&quot;:750,&quot;mult&quot;:0.41},{&quot;min&quot;:1000,&quot;mult&quot;:0.4}],&quot;btw&quot;:21,&quot;cart_url&quot;:&quot;\\\/bestellen&quot;,&quot;delivery_days&quot;:{&quot;standaard&quot;:5,&quot;snel&quot;:4,&quot;spoed&quot;:3}}\"><div class=\"pie-calc-head\">Softcover boeken configureren<\/div><div class=\"pie-calc-fields\"><\/div><div class=\"pie-calc-price\"><\/div><a class=\"pie-calc-order\" href=\"#\">Verder naar bestellen<\/a><div class=\"pie-calc-tiers\"><\/div><\/div><\/div>\n<div class=\"bm-cal\" data-cat=\"magazine\"><div class=\"pie-calc\" data-config=\"{&quot;category&quot;:&quot;magazine&quot;,&quot;label&quot;:&quot;Tijdschriften \\\/ Magazines&quot;,&quot;base_price&quot;:10.13,&quot;fields&quot;:[{&quot;key&quot;:&quot;format&quot;,&quot;label&quot;:&quot;Eindformaat&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;a4&quot;,&quot;label&quot;:&quot;A4 staand (210 x 297 mm)&quot;,&quot;sales_price&quot;:0.215,&quot;cost&quot;:0.148,&quot;marge&quot;:45},{&quot;key&quot;:&quot;a5&quot;,&quot;label&quot;:&quot;A5 staand (148 x 210 mm)&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45},{&quot;key&quot;:&quot;a4_liggend&quot;,&quot;label&quot;:&quot;A4 liggend (297 x 210 mm)&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45},{&quot;key&quot;:&quot;a5_liggend&quot;,&quot;label&quot;:&quot;A5 liggend (210 x 148 mm)&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45},{&quot;key&quot;:&quot;v148&quot;,&quot;label&quot;:&quot;Vierkant (148 x 148 mm)&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45},{&quot;key&quot;:&quot;square21&quot;,&quot;label&quot;:&quot;Vierkant (210 x 210 mm)&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45},{&quot;key&quot;:&quot;f170x240&quot;,&quot;label&quot;:&quot;170 x 240 mm&quot;,&quot;sales_price&quot;:0.218,&quot;cost&quot;:0.15,&quot;marge&quot;:45}]},{&quot;key&quot;:&quot;pages&quot;,&quot;label&quot;:&quot;Aantal pagina&#039;s&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;unit&quot;:&quot;pag&quot;,&quot;default&quot;:48},{&quot;key&quot;:&quot;print&quot;,&quot;label&quot;:&quot;Printen&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;kleur&quot;,&quot;label&quot;:&quot;Kleur&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.012,&quot;marge&quot;:55},{&quot;key&quot;:&quot;zwart-wit&quot;,&quot;label&quot;:&quot;Zwart-wit&quot;,&quot;sales_price&quot;:0.012,&quot;cost&quot;:0.008,&quot;marge&quot;:55}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;paperweight&quot;,&quot;label&quot;:&quot;Papier binnenwerk&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;ib1&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib2&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib3&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib4&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 Houtvrij Offset&quot;,&quot;sales_price&quot;:0.012,&quot;cost&quot;:0.007,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib6&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.004,&quot;cost&quot;:0.002,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib7&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib8&quot;,&quot;label&quot;:&quot;120 g\\\/m\\u00b2 biotop&quot;,&quot;sales_price&quot;:0.021,&quot;cost&quot;:0.012,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib9&quot;,&quot;label&quot;:&quot;80 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib10&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 romandruk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib14&quot;,&quot;label&quot;:&quot;70 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.005,&quot;cost&quot;:0.003,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib16&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib18&quot;,&quot;label&quot;:&quot;100 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib20&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib21&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib22&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib28&quot;,&quot;label&quot;:&quot;90 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.007,&quot;cost&quot;:0.004,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib29&quot;,&quot;label&quot;:&quot;115 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.009,&quot;cost&quot;:0.005,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib30&quot;,&quot;label&quot;:&quot;130 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.014,&quot;cost&quot;:0.008,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib31&quot;,&quot;label&quot;:&quot;150 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.018,&quot;cost&quot;:0.01,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib32&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 MC Gloss&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75},{&quot;key&quot;:&quot;ib33&quot;,&quot;label&quot;:&quot;170 g\\\/m\\u00b2 mc silk&quot;,&quot;sales_price&quot;:0.019,&quot;cost&quot;:0.011,&quot;marge&quot;:75}],&quot;per_page&quot;:true},{&quot;key&quot;:&quot;cover_paper&quot;,&quot;label&quot;:&quot;Omslag papier&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;cp3&quot;,&quot;label&quot;:&quot;Mat 150 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.07,&quot;cost&quot;:0.04,&quot;marge&quot;:75},{&quot;key&quot;:&quot;cp1&quot;,&quot;label&quot;:&quot;Mat 300 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.07,&quot;cost&quot;:0.04,&quot;marge&quot;:75},{&quot;key&quot;:&quot;cp2&quot;,&quot;label&quot;:&quot;Enkelzijdig sulfaatkarton 240 g\\\/m\\u00b2&quot;,&quot;sales_price&quot;:0.07,&quot;cost&quot;:0.04,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;cover_print&quot;,&quot;label&quot;:&quot;Bedrukking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;4-0&quot;,&quot;label&quot;:&quot;Full color voorkant (4\\\/0)&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;color&quot;,&quot;label&quot;:&quot;Kleur (4\\\/4)&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;bw&quot;,&quot;label&quot;:&quot;Zwart-wit (1\\\/0)&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;finish&quot;,&quot;label&quot;:&quot;Afwerking omslag&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;mat&quot;,&quot;label&quot;:&quot;Mat laminaat&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;glans&quot;,&quot;label&quot;:&quot;Glans laminaat&quot;,&quot;sales_price&quot;:0.14,&quot;cost&quot;:0.08,&quot;marge&quot;:75},{&quot;key&quot;:&quot;softtouch&quot;,&quot;label&quot;:&quot;Soft-touch laminaat&quot;,&quot;sales_price&quot;:0.438,&quot;cost&quot;:0.25,&quot;marge&quot;:75}]},{&quot;key&quot;:&quot;delivery_time&quot;,&quot;label&quot;:&quot;Levering&quot;,&quot;type&quot;:&quot;select&quot;,&quot;options&quot;:[{&quot;key&quot;:&quot;standaard&quot;,&quot;label&quot;:&quot;Standaard&quot;,&quot;sales_price&quot;:0,&quot;cost&quot;:0,&quot;marge&quot;:0},{&quot;key&quot;:&quot;snel&quot;,&quot;label&quot;:&quot;Snel&quot;,&quot;sales_price&quot;:17.413,&quot;cost&quot;:9.95,&quot;marge&quot;:75},{&quot;key&quot;:&quot;spoed&quot;,&quot;label&quot;:&quot;Spoed&quot;,&quot;sales_price&quot;:34.913,&quot;cost&quot;:19.95,&quot;marge&quot;:75}],&quot;per_order&quot;:true},{&quot;key&quot;:&quot;oplage&quot;,&quot;label&quot;:&quot;Oplage&quot;,&quot;type&quot;:&quot;number&quot;,&quot;options&quot;:[],&quot;is_quantity&quot;:true,&quot;default&quot;:1}],&quot;staffels&quot;:[{&quot;min&quot;:1,&quot;mult&quot;:1},{&quot;min&quot;:5,&quot;mult&quot;:0.75},{&quot;min&quot;:10,&quot;mult&quot;:0.6},{&quot;min&quot;:25,&quot;mult&quot;:0.55},{&quot;min&quot;:50,&quot;mult&quot;:0.53},{&quot;min&quot;:100,&quot;mult&quot;:0.51},{&quot;min&quot;:150,&quot;mult&quot;:0.49},{&quot;min&quot;:200,&quot;mult&quot;:0.47},{&quot;min&quot;:250,&quot;mult&quot;:0.45},{&quot;min&quot;:500,&quot;mult&quot;:0.43},{&quot;min&quot;:750,&quot;mult&quot;:0.41},{&quot;min&quot;:1000,&quot;mult&quot;:0.4}],&quot;btw&quot;:21,&quot;cart_url&quot;:&quot;\\\/bestellen&quot;,&quot;delivery_days&quot;:{&quot;standaard&quot;:5,&quot;snel&quot;:4,&quot;spoed&quot;:3}}\"><div class=\"pie-calc-head\">Tijdschriften \/ Magazines configureren<\/div><div class=\"pie-calc-fields\"><\/div><div class=\"pie-calc-price\"><\/div><a class=\"pie-calc-order\" href=\"#\">Verder naar bestellen<\/a><div class=\"pie-calc-tiers\"><\/div><\/div><\/div>\n<div class=\"bm-step\">2. Ontwerp je omslag <span style=\"font-size:14px;font-weight:normal;color:#64748b\">(optioneel \u2014 formaat &amp; pagina&#8217;s worden automatisch overgenomen)<\/span><\/div>\n<div class=\"pie-omslag\">\n<div class=\"pieom-head\"><h1>Omslag-creator \u2014 brutoformaat<\/h1>\n  <div class=\"sub\">Berekent rugdikte + volledig omslagformaat (achterplat \u00b7 rug \u00b7 voorplat \u00b7 afloop \/ plakrand) op basis van de Printforce-specificaties.<\/div><\/div>\n<div class=\"wrap\">\n  <div class=\"panel controls\">\n    <h2>Boekspecificatie<\/h2>\n    <label>Bindwijze<\/label>\n    <select id=\"bind\">\n      <option value=\"soft\">Softcover (paperback)<\/option>\n      <option value=\"hard\">Hardcover<\/option>\n      <option value=\"saddle\">Geniet (saddle stitch)<\/option>\n    <\/select>\n    <label>Eindformaat (b \u00d7 h)<\/label>\n    <select id=\"fmt\">\n      <option value=\"148x210\">A5 staand \u2014 148 \u00d7 210 mm<\/option>\n      <option value=\"210x297\">A4 staand \u2014 210 \u00d7 297 mm<\/option>\n      <option value=\"210x148\">A5 liggend \u2014 210 \u00d7 148 mm<\/option>\n      <option value=\"297x210\">A4 liggend \u2014 297 \u00d7 210 mm<\/option>\n      <option value=\"148x148\">Vierkant \u2014 148 \u00d7 148 mm<\/option>\n      <option value=\"210x210\">Vierkant \u2014 210 \u00d7 210 mm<\/option>\n      <option value=\"280x280\">Vierkant \u2014 280 \u00d7 280 mm<\/option>\n      <option value=\"170x240\">170 \u00d7 240 mm<\/option>\n      <option value=\"custom\">Aangepast\u2026<\/option>\n    <\/select>\n    <div class=\"row\" id=\"customFmt\" style=\"display:none\">\n      <div><label>Breedte (mm)<\/label><input id=\"cw\" type=\"number\" value=\"155\"><\/div>\n      <div><label>Hoogte (mm)<\/label><input id=\"ch\" type=\"number\" value=\"235\"><\/div>\n    <\/div>\n    <div class=\"row\">\n      <div><label>Aantal pagina&#8217;s<\/label><input id=\"pages\" type=\"number\" value=\"120\" min=\"2\" step=\"2\"><\/div>\n      <div><label>Papier binnenwerk<\/label><select id=\"paper\"><\/select><\/div>\n    <\/div>\n    <details>\n      <summary>Rugdikte-instellingen (geavanceerd)<\/summary>\n      <div class=\"row\" style=\"align-items:flex-end\">\n        <div><label>Diktefactor<\/label><input id=\"factor\" type=\"number\" step=\"0.01\" value=\"1.34\"><\/div>\n        <div><label>Rug hardcover<\/label><select id=\"hcspine\"><option value=\"recht\">Recht (square)<\/option><option value=\"rond\">Rond (rounded)<\/option><\/select><\/div>\n      <\/div>\n      <div class=\"note\">Rugdikte = pagina&#8217;s \u00d7 grammage \u00d7 diktefactor \u00f7 2000. De diktefactoren komen rechtstreeks uit de Printforce cover-calculator (LT-BasicValues). Hardcover-rug = boekblok + 2\u00d7 kartondikte (2,25 mm); ronde rug \u00f7 0,91.<\/div>\n      <div class=\"row\">\n        <div><label>Afloop (mm)<\/label><input id=\"bleed\" type=\"number\" value=\"3\" step=\"0.5\"><\/div>\n        <div><label>Plakrand HC (mm)<\/label><input id=\"turnin\" type=\"number\" value=\"15\" step=\"1\"><\/div>\n      <\/div>\n    <\/details>\n    <h2 style=\"margin-top:18px\">Ontwerp<\/h2>\n    <label>Achtergrondkleur<\/label>\n    <input id=\"bg\" type=\"color\" value=\"#1F3A6E\">\n    <div class=\"row\">\n      <div><label>Voorkant-afbeelding<\/label><input id=\"imgFront\" type=\"file\" accept=\"image\/*\"><\/div>\n      <div><label>Achterkant-afbeelding<\/label><input id=\"imgBack\" type=\"file\" accept=\"image\/*\"><\/div>\n    <\/div>\n    <label>Titel (voorkant)<\/label>\n    <input id=\"title\" type=\"text\" placeholder=\"Titel van je boek\">\n    <label>Auteur (voorkant)<\/label>\n    <input id=\"author\" type=\"text\" placeholder=\"Auteur\">\n    <div class=\"row\">\n      <div><label>Tekstkleur<\/label><input id=\"txtcol\" type=\"color\" value=\"#ffffff\"><\/div>\n      <div><label>Rugtekst<\/label><input id=\"spinetext\" type=\"text\" placeholder=\"Titel \u00b7 Auteur\"><\/div>\n    <\/div>\n    <div class=\"btns\">\n      <button class=\"primary\" id=\"order\" style=\"width:100%\">Gebruik in bestelling \u2192<\/button>\n    <\/div>\n    <div class=\"note\">Deze knop neemt je gemaakte omslag straks automatisch mee de bestelling in (fase 3-koppeling volgt).<\/div>\n  <\/div>\n  <div class=\"panel stage\">\n    <h2>Voorbeeld op brutoformaat<\/h2>\n    <canvas id=\"cv\" width=\"900\" height=\"500\"><\/canvas>\n    <div class=\"legend\">\n      <span><i class=\"sw\" style=\"border-color:#e11d48\"><\/i> Afloop \/ snijrand<\/span>\n      <span><i class=\"sw\" style=\"border-color:#0ea5e9;border-top-style:dashed\"><\/i> Eindformaat (snijlijn)<\/span>\n      <span><i class=\"sw\" style=\"border-color:#f59e0b\"><\/i> Rug<\/span>\n      <span><i class=\"sw\" style=\"border-color:#10b981;border-top-style:dashed\"><\/i> Plakrand (hardcover)<\/span>\n    <\/div>\n    <div class=\"readout\" id=\"out\"><\/div>\n  <\/div>\n<\/div>\n<script>\nconst PAPERS = [\n  {name:\"80 g\/m\u00b2 Houtvrij Offset\", gram:80, factor:1.34},\n  {name:\"90 g\/m\u00b2 Houtvrij Offset\", gram:90, factor:1.34},\n  {name:\"100 g\/m\u00b2 Houtvrij Offset\", gram:100, factor:1.30},\n  {name:\"120 g\/m\u00b2 Houtvrij Offset\", gram:120, factor:1.30},\n  {name:\"80 g\/m\u00b2 biotop\", gram:80, factor:1.30},\n  {name:\"90 g\/m\u00b2 biotop\", gram:90, factor:1.30},\n  {name:\"120 g\/m\u00b2 biotop\", gram:120, factor:1.30},\n  {name:\"80 g\/m\u00b2 romandruk\", gram:80, factor:1.95},\n  {name:\"90 g\/m\u00b2 romandruk\", gram:90, factor:1.95},\n  {name:\"70 g\/m\u00b2 mc silk\", gram:70, factor:0.96},\n  {name:\"90 g\/m\u00b2 mc silk\", gram:90, factor:0.96},\n  {name:\"100 g\/m\u00b2 mc silk\", gram:100, factor:0.96},\n  {name:\"115 g\/m\u00b2 mc silk\", gram:115, factor:0.96},\n  {name:\"130 g\/m\u00b2 mc silk\", gram:130, factor:0.96},\n  {name:\"150 g\/m\u00b2 mc silk\", gram:150, factor:1.00},\n  {name:\"90 g\/m\u00b2 MC Gloss\", gram:90, factor:0.81},\n  {name:\"115 g\/m\u00b2 MC Gloss\", gram:115, factor:0.79},\n  {name:\"130 g\/m\u00b2 MC Gloss\", gram:130, factor:0.80},\n  {name:\"150 g\/m\u00b2 MC Gloss\", gram:150, factor:0.81},\n  {name:\"170 g\/m\u00b2 MC Gloss\", gram:170, factor:0.82},\n  {name:\"170 g\/m\u00b2 mc silk\", gram:170, factor:0.93},\n];\nconst $ = id => document.getElementById(id);\nconst paperSel = $('paper');\nPAPERS.forEach((p,i)=>{const o=document.createElement('option');o.value=i;o.textContent=p.name;paperSel.appendChild(o);});\nlet frontImg=null, backImg=null;\nfunction loadImg(input,set){ input.addEventListener('change',e=>{const f=e.target.files[0]; if(!f)return; const img=new Image(); img.onload=()=>{set(img);draw();}; img.src=URL.createObjectURL(f);});}\nloadImg($('imgFront'), i=>frontImg=i);\nloadImg($('imgBack'), i=>backImg=i);\n$('fmt').addEventListener('change',()=>{ $('customFmt').style.display = $('fmt').value==='custom'?'flex':'none'; draw();});\n$('paper').addEventListener('change',()=>{ $('factor').value = PAPERS[$('paper').value].factor; draw();});\n['bind','pages','factor','bleed','turnin','hcspine','bg','title','author','txtcol','spinetext','cw','ch'].forEach(id=>$(id).addEventListener('input',draw));\n$('hcspine').addEventListener('change',draw);\nfunction dims(){\n  const bind=$('bind').value;\n  let tw,th;\n  if($('fmt').value==='custom'){ tw=+$('cw').value; th=+$('ch').value; }\n  else { const parts=$('fmt').value.split('x').map(Number); tw=parts[0]; th=parts[1]; }\n  const pages=Math.max(2,+$('pages').value||2);\n  const gram=PAPERS[$('paper').value].gram;\n  const factor=+$('factor').value||1.34;\n  let spine = pages*gram*factor\/2000;\n  const bleed=+$('bleed').value||3;\n  const turnin=+$('turnin').value||15;\n  const boardThickness=2.25;\n  let margin=bleed, spineShown=spine, saddle=false, jointExtra=0, platExtraH=0;\n  if(bind==='hard'){ margin=18; jointExtra=8; platExtraH=6; const rounded=($('hcspine')&&$('hcspine').value==='rond'); spineShown = rounded ? (spine+2*boardThickness)\/0.91 : (spine+2*boardThickness); }\n  if(bind==='saddle'){ spineShown=0; saddle=true; }\n  const totalW = 2*tw + jointExtra + spineShown + 2*margin;\n  const totalH = th + platExtraH + 2*margin;\n  return {bind,tw,th,pages,gram,factor,spine,spineShown,bleed,turnin,margin,jointExtra,platExtraH,totalW,totalH,saddle};\n}\nfunction draw(){\n  const d=dims();\n  const cv=$('cv'), ctx=cv.getContext('2d');\n  const maxW=880, maxH=520;\n  const scale=Math.min(maxW\/d.totalW, maxH\/d.totalH);\n  cv.width=Math.round(d.totalW*scale); cv.height=Math.round(d.totalH*scale);\n  const S=v=>v*scale;\n  ctx.clearRect(0,0,cv.width,cv.height);\n  ctx.fillStyle=$('bg').value; ctx.fillRect(0,0,cv.width,cv.height);\n  const m=d.margin;\n  const je=d.jointExtra||0, sStrip=d.spineShown+je, platH=d.th+(d.platExtraH||0);\n  const backX=m, spineX=m+d.tw, frontX=m+d.tw+sStrip;\n  function cover(img,x,y,w,h){ if(!img)return; const ir=img.width\/img.height, r=w\/h; let sw,sh,sx,sy; if(ir>r){sh=img.height;sw=sh*r;sx=(img.width-sw)\/2;sy=0;}else{sw=img.width;sh=sw\/r;sx=0;sy=(img.height-sh)\/2;} ctx.drawImage(img,sx,sy,sw,sh,S(x),S(y),S(w),S(h)); }\n  cover(backImg, backX, m, d.tw, platH);\n  cover(frontImg, frontX, m, d.tw, platH);\n  if(!d.saddle && sStrip>0){ ctx.fillStyle='rgba(0,0,0,.12)'; ctx.fillRect(S(spineX),S(m),S(sStrip),S(platH)); }\n  const tc=$('txtcol').value;\n  ctx.fillStyle=tc; ctx.textAlign='center';\n  const cx=S(frontX+d.tw\/2);\n  if($('title').value){ ctx.font='bold '+S(d.th*0.06)+'px Arial'; ctx.fillText($('title').value, cx, S(m+platH*0.30), S(d.tw*0.9)); }\n  if($('author').value){ ctx.font=S(d.th*0.035)+'px Arial'; ctx.fillText($('author').value, cx, S(m+platH*0.85), S(d.tw*0.9)); }\n  const st=$('spinetext').value||$('title').value;\n  if(!d.saddle && d.spineShown>=7 && st){ ctx.save(); ctx.translate(S(spineX+sStrip\/2), S(m+platH\/2)); ctx.rotate(-Math.PI\/2); ctx.fillStyle=tc; ctx.font='bold '+S(Math.min(d.spineShown*0.5,4.5))+'px Arial'; ctx.textAlign='center'; ctx.fillText(st,0,S(d.spineShown*0.18)); ctx.restore(); }\n  ctx.lineWidth=1;\n  ctx.strokeStyle='#e11d48'; ctx.strokeRect(0.5,0.5,cv.width-1,cv.height-1);\n  ctx.strokeStyle='#0ea5e9'; ctx.setLineDash([6,4]);\n  ctx.strokeRect(S(m),S(m),S(2*d.tw+sStrip),S(platH));\n  ctx.setLineDash([]);\n  if(!d.saddle && sStrip>0){ ctx.strokeStyle='#f59e0b'; ctx.beginPath(); ctx.moveTo(S(spineX),S(m)); ctx.lineTo(S(spineX),S(m+platH)); ctx.moveTo(S(frontX),S(m)); ctx.lineTo(S(frontX),S(m+platH)); ctx.stroke(); }\n  if(d.bind==='hard'){ ctx.strokeStyle='#10b981'; ctx.setLineDash([4,4]); ctx.strokeRect(S(d.margin),S(d.margin),cv.width-S(2*d.margin),cv.height-S(2*d.margin)); ctx.setLineDash([]); }\n  $('out').innerHTML =\n    '<div class=\"big\">Rugdikte: '+d.spineShown.toFixed(2)+' mm'+(d.bind==='hard'?' <span style=\"font-size:12px;font-weight:normal\">(band, incl. 2\u00d7 karton)<\/span>':'')+'<\/div>'+\n    'Brutoformaat omslag: <b>'+d.totalW.toFixed(1)+' \u00d7 '+d.totalH.toFixed(1)+' mm<\/b><br>'+\n    'Eindformaat (per plat): '+d.tw+' \u00d7 '+d.th+' mm &nbsp;\u00b7&nbsp; '+(d.saddle?'geniet (geen rug)':'boekblok-rug '+d.spine.toFixed(2)+' mm')+'<br>'+\n    (d.bind==='hard'?'Plakrand (turn-in): '+d.margin+' mm rondom':'Afloop: '+d.bleed+' mm rondom')+\n    ' &nbsp;\u00b7&nbsp; '+d.pages+' pag \u00b7 '+d.gram+' g\/m\u00b2 \u00b7 factor '+d.factor;\n}\nfunction buildCoverPdf(){\n  const d=dims();\n  const { jsPDF } = window.jspdf;\n  const pdf=new jsPDF({unit:'mm',format:[d.totalW,d.totalH],orientation:d.totalW>=d.totalH?'landscape':'portrait'});\n  const je=d.jointExtra||0, sStrip=d.spineShown+je, platH=d.th+(d.platExtraH||0);\n  const m=d.margin, backX=m, spineX=m+d.tw, frontX=m+d.tw+sStrip;\n  const bg=$('bg').value; pdf.setFillColor(bg); pdf.rect(0,0,d.totalW,d.totalH,'F');\n  function addCover(img,x,w){ if(!img)return; const c=document.createElement('canvas'); const r=w\/platH; let sw,sh,sx,sy; if(img.width\/img.height>r){sh=img.height;sw=sh*r;sx=(img.width-sw)\/2;sy=0;}else{sw=img.width;sh=sw\/r;sx=0;sy=(img.height-sh)\/2;} c.width=sw;c.height=sh; c.getContext('2d').drawImage(img,sx,sy,sw,sh,0,0,sw,sh); pdf.addImage(c.toDataURL('image\/jpeg',0.92),'JPEG',x,m,w,platH); }\n  addCover(backImg, backX, d.tw);\n  addCover(frontImg, frontX, d.tw);\n  const tc=$('txtcol').value; pdf.setTextColor(tc);\n  if($('title').value){ pdf.setFont('helvetica','bold'); pdf.setFontSize(d.th*0.06*2.83); pdf.text($('title').value, frontX+d.tw\/2, m+platH*0.30, {align:'center',maxWidth:d.tw*0.9}); }\n  if($('author').value){ pdf.setFont('helvetica','normal'); pdf.setFontSize(d.th*0.035*2.83); pdf.text($('author').value, frontX+d.tw\/2, m+platH*0.85, {align:'center',maxWidth:d.tw*0.9}); }\n  const st=$('spinetext').value||$('title').value;\n  if(!d.saddle && d.spineShown>=7 && st){ pdf.setFont('helvetica','bold'); pdf.setFontSize(Math.min(d.spineShown*0.5,4.5)*2.83); pdf.text(st, spineX+sStrip*0.5, m+platH\/2, {align:'center',angle:90}); }\n  return pdf;\n}\n$('order').addEventListener('click',()=>alert('In fase 3 gaat deze knop de gemaakte omslag automatisch in je bestelling zetten. In dit prototype is dat nog niet gekoppeld.'));\n$('factor').value=PAPERS[0].factor;\ndraw();\n<\/script>\n<\/div>\n<div class=\"bm-step\">3. Binnenwerk &amp; afronden<\/div>\n<div class=\"bm-note\">Je binnenwerk-PDF upload je in de volgende stap. Klik hierboven in de calculator op <b>\u201cVerder naar bestellen\u201d<\/b> om je configuratie in de winkelwagen te zetten; op de bestelpagina upload je je binnenwerk (en straks automatisch je gemaakte omslag).<\/div>\n<\/div>\n<script>\n(function(){\n  var chooser=document.querySelector('.bm-chooser'); if(!chooser) return;\n  function activate(cat){\n    document.querySelectorAll('.bm-cal').forEach(function(d){d.classList.toggle('active', d.getAttribute('data-cat')===cat);});\n    chooser.querySelectorAll('button').forEach(function(b){b.classList.toggle('active', b.getAttribute('data-cat')===cat);});\n    var bind = cat==='hardcover'?'hard':(cat==='magazine'?'saddle':'soft');\n    var bs=document.getElementById('bind'); if(bs){bs.value=bind;}\n    syncFromCalc();\n  }\n  chooser.addEventListener('click',function(e){var b=e.target.closest('button'); if(b) activate(b.getAttribute('data-cat'));});\n  function syncFromCalc(){\n    var active=document.querySelector('.bm-cal.active'); if(!active) return;\n    var fsel=active.querySelector('[data-key=\"format\"] select')||active.querySelector('select');\n    if(fsel){var txt=fsel.options[fsel.selectedIndex]?fsel.options[fsel.selectedIndex].text:''; var m=txt.match(\/(\\d{2,3})\\s*[x\u00d7]\\s*(\\d{2,3})\/);\n      if(m){var fmt=document.getElementById('fmt'); if(fmt){fmt.value='custom'; var cf=document.getElementById('customFmt'); if(cf) cf.style.display='flex'; var cw=document.getElementById('cw'),ch=document.getElementById('ch'); if(cw) cw.value=m[1]; if(ch) ch.value=m[2];}}}\n    var pin=active.querySelector('[data-key=\"pages\"] input')||active.querySelector('input[type=number]');\n    if(pin){var pg=document.getElementById('pages'); if(pg && +pin.value>0) pg.value=pin.value;}\n    var psel=active.querySelector('[data-key=\"paperweight\"] select'); if(!psel){var ss=active.querySelectorAll('select'); psel=ss[3]||null;}\n    if(psel){var pt=psel.options[psel.selectedIndex]?psel.options[psel.selectedIndex].text:''; var pg2=parseInt(pt)||0;\n      var type=\/silk|zijde\/i.test(pt)?'zijdemat':(\/glans|gloss\/i.test(pt)?'glans':(\/ongestreken|offset|biotop|hvo\/i.test(pt)?'ongestreken':(\/mat\/i.test(pt)?'mat gestreken':null)));\n      var paper=document.getElementById('paper');\n      if(type&&paper){var best=-1,bd=1e9; for(var i=0;i<paper.options.length;i++){var o=paper.options[i].text.toLowerCase(); if(o.indexOf(type)>=0){var g=parseInt(o)||0; var diff=Math.abs(g-pg2); if(type==='mat gestreken'&&o.indexOf('behandeld')>=0) diff+=1000; if(diff<bd){bd=diff;best=i;}}} if(best>=0&&paper.selectedIndex!==best){paper.selectedIndex=best; paper.dispatchEvent(new Event('change',{bubbles:true}));}}\n    }\n    if(typeof draw==='function') draw();\n  }\n  document.addEventListener('change',function(e){if(e.target.closest && e.target.closest('.bm-cal.active')) syncFromCalc();});\n  document.addEventListener('input',function(e){if(e.target.closest && e.target.closest('.bm-cal.active')) syncFromCalc();});\n  activate('hardcover');\n  setTimeout(syncFromCalc,700); setTimeout(syncFromCalc,1800); setTimeout(syncFromCalc,3200);\n  window.addEventListener('load',function(){ setTimeout(syncFromCalc,400); });\n})();\n<\/script>\n\n\n\n<script>\n(function(){\nfunction _pdb(){return new Promise(function(res,rej){var r=indexedDB.open('pie_db',1);r.onupgradeneeded=function(){r.result.createObjectStore('kv');};r.onsuccess=function(){res(r.result);};r.onerror=function(){rej(r.error);};});}\nfunction _pput(k,v){return _pdb().then(function(db){return new Promise(function(res,rej){var t=db.transaction('kv','readwrite');t.objectStore('kv').put(v,k);t.oncomplete=function(){res();};t.onerror=function(){rej(t.error);};});});}\nfunction _pget(k){return _pdb().then(function(db){return new Promise(function(res,rej){var t=db.transaction('kv','readonly');var q=t.objectStore('kv').get(k);q.onsuccess=function(){res(q.result);};q.onerror=function(){rej(q.error);};});});}\nfunction _pdel(k){return _pdb().then(function(db){return new Promise(function(res){var t=db.transaction('kv','readwrite');t.objectStore('kv').delete(k);t.oncomplete=function(){res();};});});}\nfunction ov(){\n  var b=document.getElementById('order'); if(!b||b.dataset.piebound) return; b.dataset.piebound='1';\n  var nb=b.cloneNode(true); b.parentNode.replaceChild(nb,b);\n  nb.textContent='Omslag gebruiken & verder naar bestellen \\u2192';\n  nb.addEventListener('click',function(){\n    var run=function(){\n      var active=document.querySelector('.bm-cal.active');\n      var ob=active?[].slice.call(active.querySelectorAll('button,a')).find(function(x){return \/verder naar bestellen\/i.test(x.textContent);}):null;\n      if(ob){ob.click();}else{location.href='\/bestellen\/';}\n    };\n    try{\n      if(typeof buildCoverPdf==='function'){\n        var blob=buildCoverPdf().output('blob');\n        _pput('pie_pending_cover',blob).then(function(){localStorage.setItem('pie_pending_cover','1');run();},run);\n        return;\n      }\n    }catch(e){}\n    run();\n  });\n}\nvar t=0,iv=setInterval(function(){ if(document.getElementById('order')||t++>60){clearInterval(iv);ov();} },200);\n})();\n<\/script>\n\n\n\n<script>\n(function(){\n  if(localStorage.getItem('pie_pending_cover')!=='1') return;\n  function show(){\n    var w=document.querySelector('.bm-wrap'); if(!w) return false;\n    if(document.getElementById('bm-pending-banner')) return true;\n    var d=document.createElement('div'); d.id='bm-pending-banner';\n    d.style.cssText='background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;border-radius:10px;padding:14px 16px;margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.5';\n    d.innerHTML='\\u2705 Je ontworpen omslag is meegenomen. Kies hieronder je boeksoort, configureer je boek en klik in de calculator op <b>\\u201cVerder naar bestellen\\u201d<\/b> \\u2014 je omslag wordt automatisch toegevoegd.';\n    w.insertBefore(d, w.firstChild); return true;\n  }\n  var t=0,iv=setInterval(function(){ if(show()||t++>60) clearInterval(iv); },200);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>1. Kies je boeksoort &amp; configureer Hardcover Softcover Geniete boekjes 2. Ontwerp je omslag (optioneel \u2014 formaat &amp; pagina&#8217;s worden automatisch overgenomen) Omslag-creator \u2014 brutoformaat Berekent rugdikte + volledig omslagformaat (achterplat \u00b7 rug \u00b7 voorplat \u00b7 afloop \/ plakrand) op basis van de Printforce-specificaties. Boekspecificatie Bindwijze Softcover (paperback)HardcoverGeniet (saddle stitch) Eindformaat (b \u00d7 h) A5&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-800","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/pages\/800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/comments?post=800"}],"version-history":[{"count":0,"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/pages\/800\/revisions"}],"wp:attachment":[{"href":"https:\/\/printiteasy.eu\/nl-be\/wp-json\/wp\/v2\/media?parent=800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}