(function(){ var w=document.currentScript&&document.currentScript.closest('.berger-unas');if(!w)return; var calculate=function calculateBergerConsumption(schema, values = {}, optionIndex = 0) { const positive = (value) => { const number = Number(value); return Number.isFinite(number) && number > 0 ? number : 0; }; if (!schema || typeof schema !== "object") return 0; if (schema.kind === "coverage") { const rate = positive(schema.options?.[Number(optionIndex)]?.rate); const area = positive(values.primary); return rate > 0 ? area / rate : 0; } if (schema.kind === "addition") { const ratio = positive(schema.ratio); const amount = positive(values.primary); return ratio > 0 ? amount / ratio : 0; } if (schema.kind === "jointCartridges") { const divisor = positive(schema.divisor); const length = positive(values.length); const width = positive(values.width); const depth = positive(values.depth); return divisor > 0 ? (length * width * depth) / divisor : 0; } return 0; }; function numeric(input){if(!(input instanceof HTMLInputElement))return 0;var parsed=Number.parseFloat(String(input.value).replace(new RegExp(String.fromCharCode(92)+'s','g'),'').replace(',','.'));return Number.isFinite(parsed)&&parsed>0?parsed:0} var lastEdited=new WeakMap(); function updateRoot(root,target){if(!(root instanceof Element))return;var output=root.querySelector('[data-calculator-output="true"]');if(!(output instanceof HTMLInputElement))return;var encoded=root.getAttribute('data-calculator-schema-u1'),schema;try{schema=JSON.parse(decodeURIComponent(encoded||'null'))}catch(_){return}if(!schema)return;var values={};root.querySelectorAll('[data-calculator-value]').forEach(function(input){values[input.getAttribute('data-calculator-value')||'primary']=numeric(input)});var option=root.querySelector('[data-calculator-option="true"]'),optionIndex=option instanceof HTMLSelectElement?Number(option.value):0,result;if(schema.kind==='addition'){var primary=root.querySelector('[data-calculator-value="primary"]');if(target===output)lastEdited.set(root,'quantity');else if(target===primary)lastEdited.set(root,'amount');if(lastEdited.get(root)==='quantity'&&primary instanceof HTMLInputElement){var ratio=Number(schema.ratio)||0;primary.value=(numeric(output)*Math.max(0,ratio)).toLocaleString('hu-HU',{minimumFractionDigits:2,maximumFractionDigits:2});return}}result=calculate(schema,values,optionIndex);output.value=result.toLocaleString('hu-HU',{minimumFractionDigits:2,maximumFractionDigits:2})} function update(target){if(!(target instanceof Element))return;var root=target.closest('[data-berger-calculator="true"]');if(root)updateRoot(root,target)} w.addEventListener('input',function(event){update(event.target)});w.addEventListener('change',function(event){update(event.target)});w.querySelectorAll('[data-berger-calculator="true"]').forEach(updateRoot); })();