1(function(){var e=JSON.parse(document.getElementById(`gr-roi`).getAttribute(`data-i18n`));function t(e,t){return e.replace(/\{(\w+)\}/g,function(e,n){return n in t?t[n]:e})}var n=125,r={EUR:{code:`EUR`,symbol:`â¬`,position:`prefix`,rate:1},PLN:{code:`PLN`,symbol:`zÅ`,position:`suffix`,rate:4.3},USD:{code:`USD`,symbol:`$`,position:`prefix`,rate:1.08},SEK:{code:`SEK`,symbol:`kr`,position:`suffix`,rate:11.5}},i=`EUR`,a={general:{EUR:100,PLN:365,USD:140,SEK:1425},metal:{EUR:120,PLN:440,USD:170,SEK:1710},wood:{EUR:95,PLN:350,USD:135,SEK:1355},food:{EUR:180,PLN:660,USD:250,SEK:2565}},o={general:{label:`General manufacturing`,defaultOee:35,intercept:15,slope:.15,min:2,max:18,n:184},metal:{label:`Metal & machining`,defaultOee:38,intercept:11,slope:.12,min:2,max:12,n:35},wood:{label:`Wood & furniture`,defaultOee:39,intercept:13.5,slope:.12,min:2,max:16,n:76},food:{label:`Food & beverage`,defaultOee:25,intercept:20,slope:.2,min:2,max:22,n:21}},s=`general`;function c(e,t){var n=o[t]||o.general,r=n.intercept-n.slope*e;return r<n.min?n.min:r>n.max?n.max:r}function l(t,n){if(!isFinite(t))return`â`;var a=r[n||i],o=new Intl.NumberFormat(e.numberLocale,{maximumFractionDigits:0}).format(Math.round(t));return a.position===`prefix`&&!e.moneySuffix?a.symbol+o:o+` `+a.symbol}function u(t){return isFinite(t)?new Intl.NumberFormat(e.numberLocale,{maximumFractionDigits:0}).format(Math.round(t))+`%`:`â`}function d(t,n){return isFinite(t)?(n??=0,new Intl.NumberFormat(e.numberLocale,{minimumFractionDigits:n,maximumFractionDigits:n}).format(t)):`â`}function f(n){return!isFinite(n)||n<=0?`â`:n<1?e.paybackUnderOne:t(e.paybackDays,{n:d(n,+(n<10))})}function p(e){var t=Math.max(0,e.machines||0),a=Math.max(1,e.daysPerMonth||1),o=Math.max(0,e.hoursPerDay||0),l=Math.max(1,Math.min(95,e.currentOeePct||60)),u=Math.max(0,e.runningCostPerHour||0),d=r[i].rate,f=a*o,p=c(l,s),m=Math.min(95,l+p),h=m-l,g=h/100*f,_=g*t,v=g*u,y=v*t,b=t*n*d,x=b*12,S=y-b,C=S*12,w=a>0?y/a:0;return{currentOeePct:l,newOeePct:m,upliftPts:h,totalMonthlySavings:y,savingsPerMachineMonth:v,monthlyGRCost:b,netMonthlySavings:S,paybackDays:w>0?b/w:1/0,annualReturn:C,firstYearROI:x>0?C/x*100:0,totalHoursGainedMonth:_,machineEquivAdded:f>0?_/f:0}}var m={currency:document.getElementById(`gr-currency`),costUnit:document.getElementById(`gr-cost-unit`),industry:document.getElementById(`gr-industry`),shiftsHint:document.getElementById(`gr-shifts-hint`),daysHint:document.getElementById(`gr-days-hint`),machines:document.getElementById(`gr-machines`),machinesSlider:document.getElementById(`gr-machines-slider`),machinesErr:document.getElementById(`gr-machines-err`),daysMonth:document.getElementById(`gr-days-month`),customDaysWrap:document.getElementById(`gr-custom-days-wrap`),daysErr:document.getElementById(`gr-days-err`),oee:document.getElementById(`gr-oee`),oeeSlider:document.getElementById(`gr-oee-slider`),oeeErr:document.getElementById(`gr-oee-err`),runningCost:document.getElementById(`gr-running-cost`),runningCostErr:document.getElementById(`gr-running-cost-err`),shiftSegments:document.querySelectorAll(`[data-shifts]`),daySegments:document.querySelectorAll(`[data-days-preset]`),outHero:document.getElementById(`gr-out-hero`),outPerMachine:document.getElementById(`gr-out-per-machine`),outCost:document.getElementById(`gr-out-cost`),outNet:document.getElementById(`gr-out-net`),outPayback:document.getElementById(`gr-out-payback`),outAnnual:document.getElementById(`gr-out-annual`),outROI:document.getElementById(`gr-out-roi`),calloutBody:document.getElementById(`gr-callout-body`)},h={shifts:2,daysPreset:`weekday`};function g(e){return e*8}function _(e){return e===`weekday`?22:e===`all`?30:parseFloat(m.daysMonth.value)||22}function v(){var e=g(h.shifts),t=_(h.daysPreset);return{machines:parseFloat(m.machines.value)||0,daysPerMonth:t,hoursPerDay:e,currentOeePct:parseFloat(m.oee.value)||60,runningCostPerHour:parseFloat(m.runningCost.value)||0}}function y(e){var t=parseFloat(e.min)||0,n=parseFloat(e.max)||100,r=((parseFloat(e.value)||0)-t)/(n-t)*100;r<0&&(r=0),r>100&&(r=100),e.style.background=`linear-gradient(to right, var(--color-accent) 0%, var(--color-accent) `+r+`%, var(--border-line) `+r+`%, var(--border-line) 100%)`}function b(e,t,n){e.classList.add(`is-error`),t&&(n&&(t.textContent=n),t.classList.add(`is-visible`))}function x(e,t){e.classList.remove(`is-error`),t&&t.classList.remove(`is-visible`)}function S(n,r,i){var a=n.value,o=parseFloat(a),s=parseFloat(n.min),c=parseFloat(n.max);return a===``||isNaN(o)?(x(n,r),!1):!isNaN(s)&&o<s?(b(n,r,t(e.errMin,{label:i,min:d(s)})),!1):!isNaN(c)&&o>c?(b(n,r,t(e.errMax,{label:i,max:d(c)})),!1):(x(n,r),!0)}function C(e,t){var n=parseFloat(e.value),r=parseFloat(e.min),i=parseFloat(e.max);isNaN(n)?e.value=e.defaultValue:!isNaN(r)&&n<r?e.value=r:!isNaN(i)&&n>i&&(e.value=i),x(e,t)}function w(){var n=p(v());m.outHero.textContent=l(n.totalMonthlySavings),m.outPerMachine.textContent=l(n.savingsPerMachineMonth),m.outCost.textContent=l(n.monthlyGRCost)+e.perMonth,m.outNet.textContent=l(n.netMonthlySavings),m.outPayback.textContent=f(n.paybackDays),m.outAnnual.textContent=l(n.annualReturn),m.outROI.textContent=u(n.firstYearROI);var r=d(Math.round(n.totalHoursGainedMonth)),i=d(n.machineEquivAdded,1),a=d(Math.round(n.currentOeePct)),o=d(Math.round(n.newOeePct));m.calloutBody.textContent=t(e.callout,{from:a,to:o,hours:r,machines:i})}function T(){var e=o[s];m.oee.value=e.defaultOee,m.oeeSlider.value=e.defaultOee,y(m.oeeSlider);var t=a[s];t&&t[i]!=null&&(m.runningCost.value=t[i]),x(m.oee,m.oeeErr),x(m.runningCost,m.runningCostErr)}function E(){s=m.industry.value,T(),w()}m.industry.addEventListener(`change`,E);function D(){var e=m.currency.value;if(e!==i){i=e,m.costUnit.innerHTML=r[i].symbol;var t=a[s];t&&t[i]!=null&&(m.runningCost.value=t[i]),x(m.runningCost,m.runningCostErr),w()}}m.currency.addEventListener(`change`,D);function O(e,t,n,r){function i(){t.value=e.value,y(e),x(t,n),x(e,null),w()}function a(){var i=S(t,n,r),a=parseFloat(t.value),o=parseFloat(e.min),s=parseFloat(e.max);!isNaN(a)&&a>
1=o&&a<=s?(e.value=a,y(e)):isNaN(a)||(e.value=a<o?o:s,y(e)),i&&w()}e.addEventListener(`input`,i),t.addEventListener(`input`,a),t.addEventListener(`blur`,function(){C(t,n);var r=parseFloat(t.value);if(!isNaN(r)){var i=parseFloat(e.min),a=parseFloat(e.max);e.value=r<i?i:r>a?a:r,y(e)}w()})}O(m.machinesSlider,m.machines,m.machinesErr,e.labelMachines),O(m.oeeSlider,m.oee,m.oeeErr,e.labelOee);function k(n){h.shifts=n,m.shiftSegments.forEach(function(e){var t=parseInt(e.getAttribute(`data-shifts`),10)===n;e.classList.toggle(`is-active`,t),e.setAttribute(`aria-checked`,t?`true`:`false`)});var r=g(n),i=n===1?e.shiftOne:t(e.shiftMany,{n});m.shiftsHint.textContent=t(e.shiftsHint,{label:i,hours:r}),w()}m.shiftSegments.forEach(function(e){e.addEventListener(`click`,function(){k(parseInt(e.getAttribute(`data-shifts`),10))})});function A(n){h.daysPreset=n,m.daySegments.forEach(function(e){var t=e.getAttribute(`data-days-preset`)===n;e.classList.toggle(`is-active`,t),e.setAttribute(`aria-checked`,t?`true`:`false`)});var r=``;n===`weekday`?(r=e.daysWeekday,m.daysMonth.value=22,m.customDaysWrap.classList.remove(`is-visible`),x(m.daysMonth,m.daysErr)):n===`all`?(r=e.daysAll,m.daysMonth.value=30,m.customDaysWrap.classList.remove(`is-visible`),x(m.daysMonth,m.daysErr)):(r=t(e.daysCustom,{n:parseFloat(m.daysMonth.value)||22}),m.customDaysWrap.classList.add(`is-visible`)),m.daysHint.textContent=r,w()}m.daySegments.forEach(function(e){e.addEventListener(`click`,function(){A(e.getAttribute(`data-days-preset`))})}),m.daysMonth.addEventListener(`input`,function(){var n=S(m.daysMonth,m.daysErr,e.labelDays);h.daysPreset===`custom`&&(m.daysHint.textContent=t(e.daysCustom,{n:parseFloat(m.daysMonth.value)||0})),n&&w()}),m.daysMonth.addEventListener(`blur`,function(){C(m.daysMonth,m.daysErr),w()}),m.runningCost.addEventListener(`input`,function(){S(m.runningCost,m.runningCostErr,e.labelCost)&&w()}),m.runningCost.addEventListener(`blur`,function(){C(m.runningCost,m.runningCostErr),w()}),y(m.machinesSlider),y(m.oeeSlider),k(2),A(`weekday`),w()})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.