{"id":36814,"date":"2026-09-23T06:13:36","date_gmt":"2026-09-23T06:13:36","guid":{"rendered":"https:\/\/www.juweihammer.com\/?page_id=36814"},"modified":"2026-10-20T00:09:34","modified_gmt":"2026-10-20T00:09:34","slug":"hammer-size-calculator","status":"publish","type":"page","link":"https:\/\/www.juweihammer.com\/nl\/hammer-size-calculator\/","title":{"rendered":"Calculator voor hamergrootte"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"36814\" class=\"elementor elementor-36814\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7194091 e-con-full e-flex e-con e-parent\" data-id=\"7194091\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c2c8845 elementor-widget elementor-widget-html\" data-id=\"c2c8845\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Hammer Size Calculator<\/title><style>body{margin:0}#hammer-tool{font:16px\/1.6 Arial,Helvetica,sans-serif;color:#0c3058;background:linear-gradient(130deg,#eef5fb,#f7fafc);padding:80px 24px}#hammer-tool *{box-sizing:border-box}#hammer-tool .hc-wrap{max-width:1320px;margin:auto}#hammer-tool h2{font-size:clamp(32px,4vw,50px);line-height:1.15;letter-spacing:-1.6px;margin:12px 0 20px}#hammer-tool .hc-intro{color:#698298;max-width:830px;font-size:18px;margin:0 0 34px}#hammer-tool .hc-shell{border:2px solid #214c76;border-radius:22px;background:white;padding:22px 24px 24px;box-shadow:0 18px 35px #102f5014}#hammer-tool .hc-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}#hammer-tool .hc-toggle{display:flex;background:#edf4fa;padding:4px;border:1px solid #d9e5ef;border-radius:12px}#hammer-tool button{font:700 14px Arial;border:0;border-radius:8px;padding:12px 16px;cursor:pointer;background:transparent;color:#55748d}#hammer-tool button[aria-pressed=true]{color:white;background:#0c3058;box-shadow:0 2px 6px #1234}#hammer-tool .hc-grid{display:grid;grid-template-columns:2fr 1fr;gap:32px}#hammer-tool form{padding:12px 8px}#hammer-tool label{display:block;margin:0 0 20px}#hammer-tool label>span{display:block;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.5px;margin-bottom:6px}#hammer-tool select,#hammer-tool input{font:700 17px Arial;color:#12395e;background:#f8fbff;border:1px solid #d8e4ef;border-radius:10px;width:100%;height:50px;padding:12px 16px}#hammer-tool input{padding-right:65px}#hammer-tool input:focus,#hammer-tool select:focus,#hammer-tool button:focus-visible{outline:2px solid #2585c9;outline-offset:3px}#hammer-tool .hc-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}#hammer-tool .hc-input{position:relative}#hammer-tool em{position:absolute;right:14px;top:14px;font:700 13px\/22px Arial;color:#698298;pointer-events:none}#hammer-tool aside{background:#0b305d;color:white;border-radius:16px;padding:32px;min-width:0}#hammer-tool .hc-kicker{font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#99cef7}#hammer-tool .hc-total{display:block;font-size:clamp(30px,4vw,56px);line-height:1.2;letter-spacing:-1.5px;margin:10px 0}#hammer-tool .hc-secondary{display:block;font-size:23px;color:#99cef7}#hammer-tool .hc-rate{border-top:1px solid #ffffff1c;margin-top:26px;padding-top:18px;display:flex;justify-content:space-between;gap:12px;font-size:14px;color:#accae2}#hammer-tool .hc-rate b{color:white;white-space:nowrap}#hammer-tool .hc-match{background:#ffffff0d;border:1px solid #ffffff18;border-radius:12px;padding:18px;margin-top:20px}#hammer-tool .hc-model{display:block;font-size:32px;line-height:1.3}#hammer-tool small{display:block;color:#accae2;font-size:12px}#hammer-tool .hc-note{font-size:13px;color:#accae2;margin:20px 0 0}#hammer-tool [hidden]{display:none!important}@media(max-width:760px){#hammer-tool{padding:36px 16px}#hammer-tool .hc-grid{grid-template-columns:1fr;gap:8px}#hammer-tool .hc-shell{padding:16px}#hammer-tool .hc-intro{font-size:16px}#hammer-tool aside{padding:24px}#hammer-tool form{padding:12px 0}}@media(max-width:380px){#hammer-tool .hc-fields{grid-template-columns:1fr}}<\/style><\/head><body><section id=\"hammer-tool\" aria-labelledby=\"hc-title\"><div class=\"hc-wrap\">\n<h2 id=\"hc-title\">Hammer Size Calculator<\/h2>\n<p class=\"hc-intro\">Estimate pile weight and screen it against JuWei\u2019s published maximum pile weights. The same limits apply to steel and concrete. Final selection requires confirmation of minimum pile weight, ground conditions, required capacity and drivability.<\/p>\n<div class=\"hc-shell\"><div class=\"hc-toolbar\"><div class=\"hc-toggle\" role=\"group\" aria-label=\"Measurement units\"><button type=\"button\" data-unit=\"imperial\" aria-pressed=\"true\">Imperial<\/button><button type=\"button\" data-unit=\"metric\" aria-pressed=\"false\">Metric<\/button><\/div><\/div>\n<div class=\"hc-grid\"><form novalidate><label><span>Pile Type<\/span><select name=\"type\" aria-label=\"Pile Type\">\n<option value=\"pipe\">Steel Pipe Pile<\/option><option value=\"rect\">Square Concrete Pile<\/option><option value=\"round\">Solid Round Concrete Pile<\/option><option value=\"hollow\">Hollow Precast Concrete Pile<\/option><option value=\"section\">H-pile \/ Sheet pile<\/option><option value=\"custom\">Custom Weight per Length<\/option><option value=\"known\">Known Total Pile Weight<\/option><\/select><\/label><div class=\"hc-fields\"><\/div><\/form>\n<aside aria-live=\"polite\" aria-atomic=\"true\"><span class=\"hc-kicker\">Estimated Pile Weight<\/span><strong class=\"hc-total\"><\/strong><b class=\"hc-secondary\"><\/b><div class=\"hc-rate\"><span><\/span><b><\/b><\/div><div class=\"hc-match\"><span class=\"hc-kicker\">Preliminary Hammer Match<\/span><strong class=\"hc-model\"><\/strong><small><\/small><\/div><p class=\"hc-note\"><\/p><\/aside><\/div><\/div><\/div><\/section><script>\/* Independent implementation. Reference data: https:\/\/piledrivingie.com\/diesel-hammers\/ (2026-09-23). *\/\n(()=>{'use strict';\nconst root=document.querySelector('#hammer-tool');if(!root)return;\nconst models=[{\"model\": \"D19\", \"pileLimitLb\": 14550.50930420192}, {\"model\": \"D25\", \"pileLimitLb\": 16534.669663865818}, {\"model\": \"D30\", \"pileLimitLb\": 19841.603596638983}, {\"model\": \"D36\", \"pileLimitLb\": 26455.47146218531}, {\"model\": \"D46\", \"pileLimitLb\": 35273.961949580415}, {\"model\": \"D50\", \"pileLimitLb\": 44092.452436975516}, {\"model\": \"D62\", \"pileLimitLb\": 55115.56554621939}, {\"model\": \"D80\", \"pileLimitLb\": 66138.67865546327}, {\"model\": \"D100\", \"pileLimitLb\": 88184.90487395103}, {\"model\": \"D128\", \"pileLimitLb\": 110231.13109243878}, {\"model\": \"D138\", \"pileLimitLb\": 154323.5835294143}, {\"model\": \"D160\", \"pileLimitLb\": 198416.0359663898}, {\"model\": \"D180\", \"pileLimitLb\": 220462.26218487756}, {\"model\": \"D225\", \"pileLimitLb\": 396832.0719327796}, {\"model\": \"D320\", \"pileLimitLb\": 573201.8816806817}];\nconst LB_KG=0.45359237,FT_M=0.3048,RATE=LB_KG\/FT_M;\nconst specs=[\n ['od','Outside Diameter',36,25.4,'in','mm',['pipe','hollow']],\n ['wall','Wall Thickness',1,25.4,'in','mm',['pipe','hollow']],\n ['width','Pile Width',24,25.4,'in','mm',['rect']],\n ['height','Pile Height',24,25.4,'in','mm',['rect']],\n ['diameter','Diameter',24,25.4,'in','mm',['round']],\n ['rate','Weight per Foot',117,RATE,'lb\/ft','kg\/m',['section','custom']],\n ['weight','Known Total Pile Weight',20000,LB_KG,'lbs','kg',['known']],\n ['length','Pile Length',100,FT_M,'ft','m',['pipe','hollow','rect','round','section','custom']]\n];\nlet metric=false;const state=Object.fromEntries(specs.map(s=>[s[0],s[2]]));\nconst q=s=>root.querySelector(s),form=q('form'),type=q('[name=type]');\nfor(const [id,label,val] of specs){const el=document.createElement('label');el.dataset.field=id;el.innerHTML=`<span>${label}<\/span><div class=\"hc-input\"><input name=\"${id}\" aria-label=\"${label}\" type=\"number\" step=\"any\" min=\"0\" value=\"${val}\"><em><\/em><\/div>`;q('.hc-fields').append(el);}\nfunction drawFields(){for(const [id,label,,factor,imp,met,types] of specs){const el=q(`[data-field=${id}]`);el.hidden=!types.includes(type.value);el.querySelector('input').disabled=el.hidden;el.querySelector('span').textContent=id==='rate'&&metric?'Weight per Meter':label;el.querySelector('em').textContent=metric?met:imp;const v=state[id];el.querySelector('input').value=Number.isFinite(v)?Number((v*(metric?factor:1)).toPrecision(12)):'';}}\nconst fmt=n=>Math.round(n).toLocaleString('en-US');\nfunction calculate(){let total=NaN,rate=NaN,note='',error='';const t=type.value;\nconst needed=specs.filter(s=>s[6].includes(t));\nif(needed.some(s=>!Number.isFinite(state[s[0]])||state[s[0]]<=0))error='Enter a positive number in every visible field.';\nelse if(t==='known'){total=state.weight;note='Calculated from the total weight you entered.';}\nelse{let area,density=t==='pipe'?490:150;\nif(t==='pipe'||t==='hollow'){if(state.wall*2>state.od)error='Wall thickness cannot exceed half the outside diameter.';else area=Math.PI*state.wall*(state.od-state.wall)\/144;}\nif(t==='rect')area=state.width*state.height\/144;\nif(t==='round')area=Math.PI*state.diameter**2\/576;\nif(t==='custom'||t==='section'){rate=state.rate;note='Calculated from your entered weight per unit length.';}else{rate=area*density;note=`Nominal density used: ${density} lb\/ft\u00b3 (${Math.round(density*LB_KG\/FT_M**3).toLocaleString('en-US')} kg\/m\u00b3).`;}\ntotal=rate*state.length;}\nif(!error&&(!Number.isFinite(total)||total<=0))error='These values do not produce a valid pile weight.';\nconst valid=!error;const primary=metric?'kg':'lbs',secondary=metric?'lbs':'kg';\nq('.hc-total').textContent=(valid?fmt(total*(metric?LB_KG:1)):'\u2014')+' '+primary;\nq('.hc-secondary').textContent=(valid?fmt(total*(metric?1:LB_KG)):'\u2014')+' '+secondary;\nq('.hc-rate').hidden=t==='known';q('.hc-rate span').textContent=metric?'Weight per meter':'Weight per foot';q('.hc-rate b').textContent=(valid?(rate*(metric?RATE:1)).toFixed(1):'\u2014')+(metric?' kg\/m':' lb\/ft');\nconst match=valid?models.find(m=>m.pileLimitLb>=total):null;\nq('.hc-model').textContent=!valid?'\u2014':match?match.model:'Application review';\nq('.hc-match small').textContent=!valid?'Complete the inputs to view a preliminary match.':match?'Listed maximum pile weight: '+fmt(match.pileLimitLb*(metric?LB_KG:1))+' '+primary:'Weight exceeds the listed D320 limit. Contact your equipment supplier.';\nq('.hc-note').textContent=error||note;\n}\nform.addEventListener('submit',e=>e.preventDefault());\nform.addEventListener('input',e=>{const spec=specs.find(s=>s[0]===e.target.name);if(spec){state[spec[0]]=e.target.value===''?NaN:Number(e.target.value)\/(metric?spec[3]:1);calculate();}});\ntype.addEventListener('change',()=>{drawFields();calculate();});\nroot.querySelectorAll('[data-unit]').forEach(button=>button.addEventListener('click',()=>{metric=button.dataset.unit==='metric';root.querySelectorAll('[data-unit]').forEach(b=>b.setAttribute('aria-pressed',String((b.dataset.unit==='metric')===metric)));drawFields();calculate();}));\ndrawFields();calculate();\n})();<\/script><\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23c46ab elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"23c46ab\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"hc-project-quote-form\" data-settings=\"{&quot;step_next_label&quot;:&quot;Next&quot;,&quot;step_previous_label&quot;:&quot;Previous&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" name=\"JUWEI Calculator Quote\" aria-label=\"JUWEI Calculator Quote\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"36814\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"23c46ab\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"Hammer Size Calculator\" \/>\n\n\t\t\t\t\t\t\t<input type=\"hidden\" name=\"queried_id\" value=\"36814\"\/>\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-100 elementor-field-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-email\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tEmail\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[email]\" id=\"form-field-email\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" placeholder=\"Email\" required=\"required\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-message elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-message\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tMessage\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-sm\" name=\"form_fields[message]\" id=\"form-field-message\" rows=\"4\" placeholder=\"Message\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-configuration elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-configuration\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tConfiguration\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-sm\" name=\"form_fields[configuration]\" id=\"form-field-configuration\" rows=\"4\" placeholder=\"Configuration\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-recaptcha_v3 elementor-field-group elementor-column elementor-field-group-field_494248c elementor-col-100 recaptcha_v3-bottomleft\">\n\t\t\t\t\t<div class=\"elementor-field\" id=\"form-field-field_494248c\"><div class=\"elementor-g-recaptcha\" data-sitekey=\"6LchFH8sAAAAAJqHzZgZ2-2m3V3eaxP_WE5DFii5\" data-type=\"v3\" data-action=\"Form\" data-badge=\"bottomleft\" data-size=\"invisible\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Send Quote Request<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5043029 elementor-widget elementor-widget-html\" data-id=\"5043029\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- New HTML widget: paste this whole block, leaving the original calculator unchanged. -->\r\n<style>\r\n\/* The copied Elementor Form is shown only inside the quote dialog. *\/\r\nbody:not(.elementor-editor-active) #hc-project-quote-form:not([data-hc-ready]) { display:none !important; }\r\n#hammer-tool .hc-project-quote-button {\r\n  display:block; width:100%; max-width:470px; margin:22px 0 0; padding:18px 24px;\r\n  border:2px solid #0879dc; border-radius:12px; background:#0879dc; color:#fff;\r\n  font:800 18px\/1.35 Arial,Helvetica,sans-serif; text-align:center; cursor:pointer;\r\n}\r\n#hammer-tool .hc-project-quote-button:hover { background:#0565b8; border-color:#0565b8; }\r\n#hammer-tool .hc-quote-inline-error { color:#a32a26; margin:12px 0 0; font-size:15px; }\r\n#hc-project-dialog {\r\n  width:min(880px,calc(100% - 28px)); max-width:880px; max-height:90vh; max-height:90dvh;\r\n  padding:0; border:0; border-radius:18px; color:#0c3058; background:#f2f6fa;\r\n  box-shadow:0 24px 90px #071a3966; overflow:auto; overscroll-behavior:contain;\r\n  font:16px\/1.55 Arial,Helvetica,sans-serif;\r\n}\r\n#hc-project-dialog::backdrop { background:rgb(8 25 45 \/ 65%); }\r\n#hc-project-dialog * { box-sizing:border-box; }\r\n#hc-project-dialog .hc-quote-head { position:sticky; top:0; z-index:2; padding:28px 76px 28px 28px; background:#0b305d; color:#fff; }\r\n#hc-project-dialog .hc-quote-kicker { margin:0 0 6px; color:#99cef7; font-size:13px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }\r\n#hc-project-dialog h2 { margin:0; color:#fff; font-size:clamp(26px,4vw,36px); line-height:1.2; }\r\n#hc-project-dialog .hc-quote-close { position:absolute; top:24px; right:22px; width:44px; height:44px; padding:0; border:1px solid #91b2d1; border-radius:50%; background:transparent; color:#fff; font:32px\/1 Arial; cursor:pointer; }\r\n#hc-project-dialog .hc-quote-body { padding:24px; }\r\n#hc-project-dialog .hc-quote-card { padding:22px; margin-bottom:22px; border:1px solid #d6e1eb; border-radius:14px; background:#fff; }\r\n#hc-project-dialog h3 { color:#0c3058; margin:0 0 14px; font-size:24px; }\r\n#hc-project-dialog .hc-quote-summary { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font:15px\/1.75 Arial,Helvetica,sans-serif; color:#254b6e; }\r\n#hc-project-dialog .hc-quote-intro { margin:0 0 20px; color:#607c95; }\r\n#hc-project-dialog #hc-project-quote-form { width:100%; margin:0; }\r\n#hc-project-dialog #hc-project-quote-form .elementor-field-group-configuration { display:none !important; }\r\n#hc-project-dialog #hc-project-quote-form .elementor-field-group { width:100%; }\r\n#hc-project-dialog #hc-project-quote-form .elementor-field-label { color:#0c3058; font-size:16px; font-weight:700; }\r\n#hc-project-dialog #hc-project-quote-form input.elementor-field,\r\n#hc-project-dialog #hc-project-quote-form textarea.elementor-field { width:100%; background:#fff; color:#183c5e; border:1px solid #cbd9e5; border-radius:10px; padding:14px; font:16px\/1.5 Arial,Helvetica,sans-serif; }\r\n#hc-project-dialog #hc-project-quote-form .elementor-button { width:100%; padding:18px 22px; background:#0879dc; color:#fff; border-radius:12px; font-size:18px; font-weight:800; }\r\n#hc-project-dialog .hc-quote-status { margin:14px 0 0; color:#194d32; }\r\n#hc-project-dialog .hc-quote-status.is-error { color:#a32a26; }\r\n#hc-project-dialog :focus-visible { outline:3px solid #2b95ec; outline-offset:3px; }\r\n@media(max-width:600px) {\r\n  #hc-project-dialog .hc-quote-head { padding:24px 70px 24px 20px; }\r\n  #hc-project-dialog .hc-quote-body { padding:16px; }\r\n  #hc-project-dialog .hc-quote-card { padding:18px; }\r\n  #hammer-tool .hc-project-quote-button { max-width:none; }\r\n}\r\n<\/style>\r\n<script>\r\n(function () {\r\n  'use strict';\r\n  function initCalculatorQuote() {\r\n    if (window.elementorFrontend && window.elementorFrontend.isEditMode && window.elementorFrontend.isEditMode()) return;\r\n    var calculator = document.getElementById('hammer-tool');\r\n    if (!calculator || calculator.dataset.hcQuoteInstalled) return;\r\n    var calculatorForm = calculator.querySelector('.hc-grid > form');\r\n    var formWidget = document.getElementById('hc-project-quote-form');\r\n    var nativeForm = formWidget && formWidget.querySelector('form.elementor-form');\r\n    var configuration = nativeForm && nativeForm.querySelector('[name=\"form_fields[configuration]\"]');\r\n    var email = nativeForm && nativeForm.querySelector('[name=\"form_fields[email]\"]');\r\n    var message = nativeForm && nativeForm.querySelector('[name=\"form_fields[message]\"]');\r\n    if (!calculatorForm || !nativeForm || !configuration || !email || !message) {\r\n      console.warn('Calculator quote: copy the Elementor Form widget and check CSS ID hc-project-quote-form and field IDs email, message, configuration.');\r\n      return;\r\n    }\r\n    calculator.dataset.hcQuoteInstalled = 'true';\r\n    var button = document.createElement('button');\r\n    button.type = 'button';\r\n    button.className = 'hc-project-quote-button';\r\n    button.textContent = 'Get Your Project Quote!';\r\n    button.setAttribute('aria-haspopup', 'dialog');\r\n    button.setAttribute('aria-controls', 'hc-project-dialog');\r\n    var inlineError = document.createElement('p');\r\n    inlineError.className = 'hc-quote-inline-error';\r\n    inlineError.setAttribute('role', 'alert');\r\n    inlineError.hidden = true;\r\n    calculatorForm.append(button, inlineError);\r\n\r\n    var dialog = document.createElement('dialog');\r\n    dialog.id = 'hc-project-dialog';\r\n    \/\/ Keep the copied widget's page-specific Elementor styles working after moving it.\r\n    dialog.className = 'elementor elementor-36814';\r\n    dialog.setAttribute('aria-labelledby', 'hc-project-dialog-title');\r\n    dialog.innerHTML = '<header class=\"hc-quote-head\">' +\r\n      '<p class=\"hc-quote-kicker\">Project Quote<\/p>' +\r\n      '<h2 id=\"hc-project-dialog-title\">Your Project Quote<\/h2>' +\r\n      '<button type=\"button\" class=\"hc-quote-close\" aria-label=\"Close quote request\">&times;<\/button><\/header>' +\r\n      '<div class=\"hc-quote-body\"><section class=\"hc-quote-card\"><h3>Your Selected Project<\/h3>' +\r\n      '<pre class=\"hc-quote-summary\"><\/pre><\/section>' +\r\n      '<section class=\"hc-quote-card hc-quote-form-card\"><h3>Send Quote Request<\/h3>' +\r\n      '<p class=\"hc-quote-intro\">Enter your email and questions. Your selected project details will be included.<\/p>' +\r\n      '<p class=\"hc-quote-status\" role=\"status\" aria-live=\"polite\"><\/p><\/section><\/div>';\r\n    document.body.appendChild(dialog);\r\n    var formCard = dialog.querySelector('.hc-quote-form-card');\r\n    var status = dialog.querySelector('.hc-quote-status');\r\n    formCard.insertBefore(formWidget, status);\r\n    formWidget.setAttribute('data-hc-ready', 'true');\r\n    var summary = dialog.querySelector('.hc-quote-summary');\r\n    var previousFocus;\r\n    var previousOverflow;\r\n    var submitted = false;\r\n\r\n    function renderProject(details) {\r\n      summary.textContent = details;\r\n    }\r\n    function setConfiguration(value) {\r\n      configuration.value = value;\r\n      configuration.dispatchEvent(new Event('input', { bubbles:true }));\r\n      configuration.dispatchEvent(new Event('change', { bubbles:true }));\r\n    }\r\n    function currentProject() {\r\n      var type = calculator.querySelector('[name=\"type\"]');\r\n      \/\/ Use the original result only to check validity; do not include it in the inquiry.\r\n      var total = calculator.querySelector('.hc-total').textContent.trim();\r\n      var fields = Array.from(calculator.querySelectorAll('.hc-fields [data-field]')).filter(function (field) {\r\n        return !field.hidden;\r\n      });\r\n      var invalidField = fields.find(function (field) {\r\n        var input = field.querySelector('input');\r\n        return !input || !input.value.trim() || !Number.isFinite(Number(input.value)) || Number(input.value) <= 0;\r\n      });\r\n      if (invalidField || !\/\\d\/.test(total)) {\r\n        throw new Error('Please complete the calculator with valid positive values before requesting a quote.');\r\n      }\r\n      var lines = ['Pile Type: ' + type.options[type.selectedIndex].text];\r\n      fields.forEach(function (field) {\r\n        var label = field.querySelector('span').textContent.trim();\r\n        var input = field.querySelector('input');\r\n        var unitText = field.querySelector('em').textContent.trim();\r\n        lines.push(label + ': ' + input.value + ' ' + unitText);\r\n      });\r\n      return lines.join('\\n');\r\n    }\r\n    button.addEventListener('click', function () {\r\n      inlineError.hidden = true;\r\n      try {\r\n        if (typeof dialog.showModal !== 'function') throw new Error('Please use an up-to-date browser to open the quote request.');\r\n        var details = currentProject();\r\n        if (submitted) {\r\n          nativeForm.reset();\r\n          nativeForm.querySelectorAll('[type=\"submit\"]').forEach(function (submit) { submit.disabled = false; });\r\n          submitted = false;\r\n        }\r\n        nativeForm.querySelectorAll('.elementor-message').forEach(function (item) { item.remove(); });\r\n        renderProject(details);\r\n        setConfiguration(details);\r\n        status.textContent = '';\r\n        status.className = 'hc-quote-status';\r\n        previousFocus = button;\r\n        previousOverflow = document.documentElement.style.overflow;\r\n        dialog.showModal();\r\n        document.documentElement.style.overflow = 'hidden';\r\n        dialog.querySelector('.hc-quote-close').focus();\r\n      } catch (error) {\r\n        inlineError.textContent = error.message;\r\n        inlineError.hidden = false;\r\n      }\r\n    });\r\n    dialog.querySelector('.hc-quote-close').addEventListener('click', function () { dialog.close(); });\r\n    dialog.addEventListener('click', function (event) {\r\n      if (event.target !== dialog) return;\r\n      var box = dialog.getBoundingClientRect();\r\n      if (event.clientX < box.left || event.clientX > box.right || event.clientY < box.top || event.clientY > box.bottom) dialog.close();\r\n    });\r\n    dialog.addEventListener('close', function () {\r\n      document.documentElement.style.overflow = previousOverflow || '';\r\n      if (previousFocus && previousFocus.isConnected) previousFocus.focus();\r\n    });\r\n    \/\/ Fill Configuration before Elementor builds its submission. Do not replace its send handler.\r\n    nativeForm.addEventListener('submit', function (event) {\r\n      try {\r\n        if (submitted) throw new Error('This request has already been submitted. Close and reopen the window to start a new request.');\r\n        if (!window.elementorProFrontend || !window.jQuery) throw new Error('The request form is not ready. Please refresh this page and try again.');\r\n        var details = currentProject();\r\n        renderProject(details);\r\n        setConfiguration(details);\r\n      } catch (error) {\r\n        event.preventDefault();\r\n        event.stopImmediatePropagation();\r\n        status.textContent = error.message;\r\n        status.className = 'hc-quote-status is-error';\r\n      }\r\n    }, true);\r\n    if (window.jQuery) {\r\n      window.jQuery(nativeForm).on('submit_success.hcCalculatorQuote', function () {\r\n        submitted = true;\r\n        status.className = 'hc-quote-status';\r\n        status.textContent = 'Your request has been submitted to JUWEI. We will reply by email.';\r\n        nativeForm.querySelectorAll('[type=\"submit\"]').forEach(function (submit) { submit.disabled = true; });\r\n      });\r\n    }\r\n  }\r\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initCalculatorQuote, { once:true });\r\n  else initCalculatorQuote();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Hammer Size Calculator Hammer Size Calculator Estimate pile weight and screen it against JuWei\u2019s published maximum pile weights. The same [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-36814","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/pages\/36814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/comments?post=36814"}],"version-history":[{"count":26,"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/pages\/36814\/revisions"}],"predecessor-version":[{"id":40043,"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/pages\/36814\/revisions\/40043"}],"wp:attachment":[{"href":"https:\/\/www.juweihammer.com\/nl\/wp-json\/wp\/v2\/media?parent=36814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}