/* HBMIC request page v2: language picker, full menu, one question per screen, live estimate, sends through the Cafe24 form mail module (Anime.js loaded in ) */ /* Estimate: same arithmetic as HB244Finance.calculate (policy V246.1), 130-200kg manufacturing base 450,000 (11/9) */ function hbEstimate(p) { function num(v) { return Number(String(v == null ? '' : v).split(',').join('')) || 0; } function riskFor(q) { return q <= 3000 ? 2 : q <= 5000 ? 2 - 0.4 * (q - 3000) / 2000 : q <= 10000 ? 1.6 - 0.265 * (q - 5000) / 5000 : Math.max(1.1, 1.335 - 0.235 * (q - 10000) / 10000); } function manufacturingFor(w) { return w >= 130 && w <= 200 ? 450000 : w > 200 && w <= 320 ? 600000 : w > 320 && w <= 1000 ? 400000 : w > 1000 && w <= 2000 ? 800000 : w > 2000 ? Math.ceil(w / 1000) * 400000 : 0; } var quantity = num(p.quantity), capacity = num(p.capacity); var containerExtra = ['\uC0F4\uD478', '\uD38C\uD504', '\uD06C\uB9BC', '\uC2A4\uD3EC\uC774\uB4DC'].some(function (w) { return (p.container || '').indexOf(w) > -1; }) ? 1 : 0; var people = 4 + containerExtra + (p.processes || []).reduce(function (t, n) { return t + (n === '\uB2E8\uC0C1\uC790' || n === '\uC218\uCD95\uD544\uB984' ? 2 : 1); }, 0); var theoreticalWeight = capacity * quantity / 1000; var lossKg = theoreticalWeight > 0 ? 20 + theoreticalWeight * 0.04 : 0; var weight = theoreticalWeight + lossKg; var lossRatio = theoreticalWeight > 0 ? lossKg / theoreticalWeight : 0; var claims = p.claims || []; var baseG = { low: 1, mid: 3, high: 6 }[p.formulaGrade || 'low']; if (baseG == null) baseG = num(p.formulaUnitPrice); var claimAdd = (claims.indexOf('\uBE44\uAC74') > -1 ? 0.5 : 0) + (claims.indexOf('EWG\uADF8\uB9B0') > -1 ? 0.5 : 0) + (claims.indexOf('\uBBF8\uBC31') > -1 ? 0.3 : 0) + (claims.indexOf('\uC8FC\uB984') > -1 ? 0.3 : 0); var gPrice = baseG + claimAdd; var formulaTotal = quantity > 0 ? Math.round(gPrice * weight * 1000) : 0; var risk = riskFor(quantity), setup = 300000, hourly = 18700; var hours = quantity > 0 ? Math.max(4, Math.ceil(quantity / 1250)) : 0; var manufacturingCost = manufacturingFor(weight), productionCost = people * hourly * hours; var manufacturingCharge = quantity > 0 ? Math.round(manufacturingCost * risk + setup) : 0; var productionCharge = Math.round(productionCost * risk); var supplyTotal = formulaTotal + manufacturingCharge + productionCharge; return { quantity: quantity, capacity: capacity, theoreticalWeight: theoreticalWeight, lossKg: lossKg, weight: weight, gPrice: gPrice, formulaTotal: formulaTotal, formulaUnit: quantity > 0 ? formulaTotal / quantity : 0, risk: risk, hours: hours, people: people, manufacturingCost: manufacturingCost, productionCost: productionCost, manufacturingCharge: manufacturingCharge, productionCharge: productionCharge, manufacturingChargeEach: quantity ? manufacturingCharge / quantity : 0, productionChargeEach: quantity ? productionCharge / quantity : 0, supplyTotal: supplyTotal, supplyUnit: quantity ? supplyTotal / quantity : 0, ready: quantity > 0 && capacity > 0 && gPrice > 0 && Number.isSafeInteger(supplyTotal) }; } (function(){ 'use strict'; var root=document.getElementById('hbMain'); if(!root) return; var A=window.anime, RM=matchMedia('(prefers-reduced-motion: reduce)').matches||!A; /* ---------- language picker + menu (same as other pages) ---------- */ (function () { var box = root.querySelector('.hb-lang'); if (box) { var b = box.querySelector('.hb-lang__btn'), l = box.querySelector('.hb-lang__list'); b.addEventListener('click', function () { l.hidden = !l.hidden; b.setAttribute('aria-expanded', l.hidden ? 'false' : 'true'); }); window.addEventListener('click', function (e) { if (!box.contains(e.target)) { l.hidden = true; b.setAttribute('aria-expanded', 'false'); } }, true); } var mb = root.querySelector('.hb-menu-btn'), menu = root.querySelector('.hb-menu'); if (mb && menu) { var close = menu.querySelector('.hb-menu__close'); mb.addEventListener('click', function () { menu.hidden = false; document.documentElement.style.overflow = 'hidden'; if (!RM) A.animate(menu, { clipPath: ['inset(0% 0% 100% 0%)', 'inset(0% 0% 0% 0%)'], duration: 560, ease: 'inOutQuart' }); }); close.addEventListener('click', function () { document.documentElement.style.overflow = ''; menu.hidden = true; }); menu.addEventListener('keydown', function (e) { if (e.key === 'Escape') close.click(); }); } })(); function $(i){return document.getElementById(i)} var V={packs:[],claims:[]}; var COS={item:['\uc2a4\ud0a8/\ud1a0\ub108','\uc5d0\uba40\uc83c','\ud06c\ub9bc','\uc570\ud50c/\uc138\ub7fc','\ud074\ub80c\uc9d5','\ubc14\ub514/\ud5e4\uc5b4','\uae30\ud0c0','\uc544\uc9c1 \ubbf8\uc815'],claim:['\ubbf8\ubc31','\uc8fc\ub984\uac1c\uc120','\uc5ec\ub4dc\ub984\uc131 \ud53c\ubd80 \uc801\ud569','\ube44\uac74','EWG \uadf8\ub9b0','\uc800\uc790\uadf9']}; var AIR={item:['\ub514\ud4e8\uc800','\ub8f8\uc2a4\ud504\ub808\uc774','\uc12c\uc720\ud0c8\ucde8\uc81c','\uae30\ud0c0'],claim:['\ud0c8\ucde8\ub825','\ud56d\uade0\ub825','\ube44\uac74','EWG \uadf8\ub9b0']}; function L(){return V.kind==='\ubc29\ud5a5\u00b7\ud0c8\ucde8\uc81c'?AIR:COS} // packing: order and the two prices given by \ubd80\uc7a5\ub2d8 (others: no price shown) var PACK=[['\uc778\uc1c4'],['\ub77c\ubca8'],['\ub2e8\uc0c1\uc790'],['\ubd09\ud569\ub77c\ubca8'],['\uc640\ube14\ub7ec'],['\uc218\ucd95\ud544\ub984'],['\uace0\uc8fc\ud30c\uc2e4\ub9c1'],['\uac04\uc9c0'],['\uc5c6\uc74c']]; var CHAN=['\ucfe0\ud321','\ub124\uc774\ubc84','SNS','\ud648\uc1fc\ud551','\uae30\ud0c0']; var S=[ {ch:0,q:'\uc9c0\uae08 \uc0c1\ud669\uc744 \uc54c\ub824 \uc8fc\uc138\uc694.',h:'\uc0ac\uc5c5\uc790\ub4f1\ub85d\uc744 \ud55c \ub4a4\uc5d0 \uc758\ub8b0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.',biz:1}, {ch:1,q:'\uc5b4\ub5a4 \uc81c\ud488\uc744 \ub9cc\ub4e4\uace0 \uc2f6\uc73c\uc138\uc694?',h:'\ud558\ub098\ub97c \uace0\ub974\uba74 \ub2e4\uc74c\uc73c\ub85c \ub118\uc5b4\uac11\ub2c8\ub2e4.',k:'kind',t:'radio',cls:'one',o:function(){return [['\ud654\uc7a5\ud488','\uc2a4\ud0a8\u00b7\ub85c\uc158\u00b7\ud06c\ub9bc\u00b7\uc138\ub7fc\u00b7\ud074\ub80c\uc9d5 \ub4f1'],['\ubc29\ud5a5\u00b7\ud0c8\ucde8\uc81c','\ub8f8\uc2a4\ud504\ub808\uc774\u00b7\ub514\ud4e8\uc800\u00b7\ud0c8\ucde8\uc81c \ub4f1']]},auto:1}, {ch:1,q:'\uc138\ubd80 \ud488\ubaa9\uc744 \uace8\ub77c \uc8fc\uc138\uc694.',h:function(){return V.kind==='\ubc29\ud5a5\u00b7\ud0c8\ucde8\uc81c'?'\ubaa9\ub85d\uc5d0 \uc5c6\uc73c\uba74 "\uae30\ud0c0"\ub97c \uace0\ub974\uace0 \ud488\ubaa9\uba85\uc744 \uc801\uc5b4 \uc8fc\uc138\uc694.':'\uc815\ud574\uc9c0\uc9c0 \uc54a\uc558\uc73c\uba74 "\uc544\uc9c1 \ubbf8\uc815"\uc744 \uace0\ub974\uc138\uc694.'},k:'item',t:'radio',auto:1,o:function(){return L().item.map(function(x){return [x]})},etc:['\uae30\ud0c0','item_etc','\uae30\ud0c0 \ud488\ubaa9\uba85']}, {ch:1,q:'\uc5b4\ub290 \ub098\ub77c\uc5d0\uc11c \ud314 \uc608\uc815\uc778\uac00\uc694?',h:'\uc8fc\ub85c \ud314 \ub098\ub77c \ud55c \uacf3\uc744 \uace8\ub77c \uc8fc\uc138\uc694. \ud55c\uad6d\uc744 \uace0\ub974\uba74 \uba54\uc778 \ud310\ub9e4 \ucc44\ub110\ub3c4 \uace8\ub77c \uc8fc\uc138\uc694.',k:'where',t:'radio',cls:'three',o:function(){return ['\ud55c\uad6d','\ubbf8\uad6d','\uc911\uad6d','\uc77c\ubcf8','\ubca0\ud2b8\ub0a8','\uc720\ub7fd','\uc911\ub3d9','\uae30\ud0c0 \uad6d\uac00'].map(function(x){return [x]})},chan:1}, {ch:2,q:'\uc6a9\ub7c9\uacfc \uccab \uc8fc\ubb38 \uc218\ub7c9\uc740\uc694?',h:'\ub300\ub7b5\uc801\uc778 \uc22b\uc790\ub3c4 \uad1c\ucc2e\uc2b5\ub2c8\ub2e4.',fields:[['capacity','\uc6a9\ub7c9','50','ml'],['quantity','\uc218\ub7c9','3,000','\uac1c'],['target_price','\ubaa9\ud45c \uacf5\uae09\ub2e8\uac00 (\uac1c\ub2f9)','\uc608) 1,500','\uc6d0']],unknown:1}, {ch:2,q:'\uc5b4\ub290 \uc815\ub3c4 \uc218\uc900\uc744 \uc6d0\ud558\uc138\uc694?',h:'\uacac\uc801 \uae30\uc900\uc785\ub2c8\ub2e4. \uc2e4\uc81c \uc131\ubd84\uc740 \uc0c1\ub2f4\uc5d0\uc11c \uc815\ud569\ub2c8\ub2e4.',k:'grade',t:'radio',auto:1,o:function(){return [['\uae30\ubcf8','\uac00\uaca9\uc744 \uba3c\uc800 \uc0dd\uac01\ud560 \ub54c'],['\ud45c\uc900','\uac00\uaca9\uacfc \ud488\uc9c8\uc758 \uade0\ud615'],['\ud504\ub9ac\ubbf8\uc5c4','\uc6d0\ub8cc\uc640 \uc0ac\uc6a9\uac10\uc744 \uc6b0\uc120\ud560 \ub54c'],['\uae30\ud0c0','\uc6d0\ud558\ub294 \uc81c\ud615\uc744 \uc9c1\uc811 \uc801\uc744 \ub54c']]},etc:['\uae30\ud0c0','grade_etc','\uc6d0\ud558\ub294 \uc81c\ud615']}, {ch:3,q:'\uc6a9\uae30\uc640 \ud3ec\uc7a5\uc740 \uc5b4\ub5bb\uac8c \ud560\uae4c\uc694?',h:'\uc6a9\uae30\ub97c \uace0\ub974\uba74 \ud3ec\uc7a5\uc744 \ucc28\ub840\ub85c \uace0\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub354 \uc5c6\uc73c\uba74 "\uc5c6\uc74c"\uc744 \ub204\ub974\uc138\uc694.',pack:1}, {ch:3,q:'\uc6d0\ud558\ub294 \uae30\ub2a5\uc774\ub098 \ud45c\uc2dc\uac00 \uc788\ub098\uc694?',h:'\ucc28\ub840\ub85c \uace0\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5c6\uac70\ub098 \ub2e4 \uace8\ub790\uc73c\uba74 "\uc5c6\uc74c"\uc744 \ub204\ub974\uc138\uc694.',claimseq:1}, {ch:3,q:'\uc5b8\uc81c\ucbe4 \ucd9c\uc2dc\ud558\uace0 \uc2f6\uc73c\uc138\uc694?',h:'',k:'when',t:'radio',o:function(){return ['1~2\uac1c\uc6d4 \uc548','3~4\uac1c\uc6d4 \uc548','6\uac1c\uc6d4 \uc548','\uc544\uc9c1 \ubbf8\uc815'].map(function(x){return [x]})},auto:1}, {ch:4,q:'\uc5f0\ub77d\ubc1b\uc744 \ubd84\uc744 \uc54c\ub824 \uc8fc\uc138\uc694.',h:'*\ub294 \uaf2d \uc801\uc5b4 \uc8fc\uc138\uc694.',fields:[['company','\uc5c5\uccb4\uba85 *',''],['manager','\ub2f4\ub2f9\uc790 *',''],['phone','\ud734\ub300\ud3f0 *','010-0000-0000'],['email','\uc774\uba54\uc77c *','']],req:['company','manager','phone','email']}, {ch:4,q:'\ub354 \uc804\ud558\uace0 \uc2f6\uc740 \ub0b4\uc6a9\uc774 \uc788\ub098\uc694?',h:'\uae30\ud68d\uc11c, \ucc38\uace0 \uc0ac\uc9c4\uc744 \uc62c\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.',memo:1}, {ch:4,q:'\uc774\ub300\ub85c \ubcf4\ub0bc\uae4c\uc694?',h:'\uace0\uce60 \uacf3\uc774 \uc788\uc73c\uba74 \uc624\ub978\ucabd \ud56d\ubaa9\uc744 \ub20c\ub7ec \ub3cc\uc544\uac08 \uc218 \uc788\uc2b5\ub2c8\ub2e4.',review:1} ]; var cur=0,busy=false,busyAt=0,running=[],reached=0; function esc(t){return String(t).replace(/[&<>"]/g,function(c){return {'&':'&','<':'<','>':'>','"':'"'}[c]})} function optHTML(name,type,list,cls,isOn){ var inl=/inline/.test(cls||''); return '
'+list.map(function(o){var v=o[0],on=isOn?isOn(v):(type==='radio'?V[name]===v:(V[name]||[]).indexOf(v)>-1); return ''}).join('')+'
'} function fieldHTML(f,wide){return ''} /* step-by-step rows: \ud3ec\uc7a5 1, \ud3ec\uc7a5 2 ... / \uae30\ub2a5 1, \uae30\ub2a5 2 ... each row hides what was already picked */ function seqHTML(key,label,base,firstNoNone,active){ var picked=V[key], h=''; for(var i=0;i<=picked.length;i++){ if(i>0&&picked[i-1]==='\uc5c6\uc74c') break; var used=picked.slice(0,i), list=base.filter(function(o){return used.indexOf(o[0])<0&&!(i===0&&firstNoNone&&o[0]==='\uc5c6\uc74c')}); if(!list.filter(function(o){return o[0]!=='\uc5c6\uc74c'}).length) break; h+='

'+label+' '+(i+1)+'

'+optHTML(key+i,'radio',list,'inline',function(v){return picked[i]===v})+'
'; } return h; } function ansHTML(){ var s=S[cur], h=''; if(s.biz){ h+=[['\uc6b4\uc601 \uc911\uc778 \ube0c\ub79c\ub4dc\uac00 \uc788\ub098\uc694?','brand',['\uc788\uc74c','\uc5c6\uc74c']],['\ud654\uc7a5\ud488 \ucc45\uc784\ud310\ub9e4\uc5c5 \ub4f1\ub85d\uc744 \ud588\ub098\uc694?','registered',['\ub4f1\ub85d','\ubbf8\ub4f1\ub85d']],['\uc0ac\uc5c5\uc790\ub294 \uc6b4\uc601 \uc911\uc778\uac00\uc694?','active',['\uc6b4\uc601 \uc911','\uc900\ube44 \uc911']]].map(function(g){return '

'+g[0]+'

'+optHTML(g[1],'radio',g[2].map(function(x){return [x]}),'inline')+'
'}).join(''); if(V.active==='\uc6b4\uc601 \uc911') h+='
'+fieldHTML(['bizno','\uc0ac\uc5c5\uc790\ub4f1\ub85d\ubc88\ud638 *','000-00-00000'])+'
'; if(V.active==='\uc900\ube44 \uc911') h+='

\uc0ac\uc5c5\uc790\ub4f1\ub85d \ud6c4 \uc758\ub8b0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub4f1\ub85d\uc744 \ub9c8\uce5c \ub4a4 \ub2e4\uc2dc \ucc3e\uc544 \uc8fc\uc138\uc694.

'; } if(s.k) h+=optHTML(s.k,s.t,s.o(),s.cls); if(s.chan){var kr=V.where==='\ud55c\uad6d'; h+='

\ud55c\uad6d \ud310\ub9e4 \ucc44\ub110 (\uba54\uc778 \ucc44\ub110 1\uacf3)

'+optHTML('channel','radio',CHAN.map(function(x){return [x]}),'inline')+'
';} if(s.etc) h+='
'+fieldHTML([s.etc[1],s.etc[2],''])+'
'; if(s.fields) h+='
'+s.fields.map(function(f,i){return fieldHTML(f,s.fields.length===3&&i===2)}).join('')+'
'; if(s.req) h+=''; if(s.unknown) h+=''; if(s.pack){ h+='

\uc6a9\uae30

'+optHTML('container','radio',['\ud06c\ub9bc\uc6a9\uae30','\ud38c\ud504\ud615','\uc6d0\ud130\uce58\ucea1','\uc2a4\ud3ec\uc774\ub4dc','\ud29c\ube0c','\uc2a4\ud504\ub808\uc774'].map(function(x){return [x]}),'inline')+'
'; h+=seqHTML('packs','\ud3ec\uc7a5',PACK,true,!!V.container); } if(s.claimseq) h+=seqHTML('claims','\uae30\ub2a5',L().claim.map(function(x){return [x]}).concat([['\uc5c6\uc74c']]),false,true); if(s.memo) h+='
'+fieldHTML(['claim_etc','\uadf8 \ubc16\uc758 \uae30\ub2a5\u00b7\ud45c\uc2dc','\uc9c1\uc811 \uc785\ub825'])+fieldHTML(['ref_url','\ucc38\uace0\ud558\ub294 \uc81c\ud488 \uc8fc\uc18c','https://'])+'
\uae30\ud68d\uc11c\u00b7\ucc38\uace0 \uc0ac\uc9c4 \u00b7 PDF\u00b7JPG\u00b7PNG\u00b7ZIP \u00b7 \ud569\uacc4 10MB\uae4c\uc9c0
'; if(s.review) h+='

\uc624\ub978\ucabd\uc5d0 \uace0\ub978 \ub0b4\uc6a9\uacfc \uc608\uc0c1 \uacac\uc801\uc774 \uc815\ub9ac\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
\ubcf4\ub0b4\uae30\ub97c \ub204\ub974\uba74 \ub2f4\ub2f9\uc790\uac00 \ud655\uc778\ud558\uace0 \uc5f0\ub77d\ub4dc\ub9bd\ub2c8\ub2e4.

'; return h; } function render(){ var s=S[cur]; reached=Math.max(reached,cur); $('no').textContent=(cur<9?'0':'')+(cur+1); $('chap').textContent=['\uc2dc\uc791','\uc81c\ud488 \uc120\uc815','\uaddc\ubaa8\u00b7\uc218\uc900','\ud3ec\uc7a5\u00b7\uae30\ub2a5\u00b7\uc77c\uc815','\uc5f0\ub77d\u00b7\ud655\uc778'][s.ch]; var hh=typeof s.h==='function'?s.h():s.h; $('q').textContent=s.q; $('hint').textContent=hh; $('hint').hidden=!hh; $('ans').innerHTML=ansHTML(); $('ans').scrollTop=0; [].forEach.call($('prog').children,function(e,k){e.classList.toggle('on',k===s.ch)}); $('prog').style.setProperty('--p',cur+1); $('back').disabled=cur===0; $('next').innerHTML=(s.review?'\ubcf4\ub0b4\uae30':'\ub2e4\uc74c')+' '; check(); summary(); warn(); ill(); } /* picture per chapter: sits on the step bar, above the start of the current chapter; hidden if an answer would sit under it */ function ill(){var f=$('ill'); if(!f) return; var ch=S[cur]?S[cur].ch:0, sp=$('prog').children[ch]; [].forEach.call(f.querySelectorAll('img'),function(im,k){im.classList.toggle('on',k===ch)}); if(sp) f.style.left=sp.offsetLeft+'px'; fitIll(); setTimeout(fitIll,720)} function fitIll(){var f=$('ill'); if(!f) return; var r=f.getBoundingClientRect(), hit=false; [].forEach.call(document.querySelectorAll('#ans .opt, #ans .fld, #ans .grp > p, #ans .upl, #ans .agree, #ans > p, #ans .flist, #ans .warn'),function(e){if(hit)return;var b=e.getBoundingClientRect();if(b.height&&b.bottom>r.top+8&&b.topr.left&&b.left7?p.slice(0,3)+'-'+p.slice(3,p.length-4)+'-'+p.slice(-4):p.length>3?p.slice(0,3)+'-'+p.slice(3):p; if(t.value!==pf) t.value=pf; V.phone=pf; } else V.email=t.value.trim(); var pw=$('phoneWarn'), mw=$('mailWarn'); if(pw) pw.hidden=!(V.phone&&V.phone.replace(/\D/g,'').length>=10&&!phoneOK(V.phone)); if(mw) mw.hidden=!(V.email&&/@.+\./.test(V.email)&&!mailOK(V.email)); check(); summary(); return } if(n==='bizno'){ var d=t.value.replace(/\D/g,'').slice(0,10), f=d.length>5?d.slice(0,3)+'-'+d.slice(3,5)+'-'+d.slice(5):d.length>3?d.slice(0,3)+'-'+d.slice(3):d; if(t.value!==f) t.value=f; V.bizno=f; check(); summary(); var bw=$('bizWarn'); if(bw) bw.hidden=!(d.length===10&&!bizOK(f)); if(d.length===10&&ok()&&!t.dataset.sent){ t.dataset.sent='1'; t.blur(); next(); } if(d.length<10) delete t.dataset.sent; return } var box=$('etcBox'); if(box&&S[cur].etc) box.hidden=V[S[cur].k]!==S[cur].etc[0]; check(); summary(); warn(); if(t.type==='radio'&&S[cur].auto&&!(S[cur].etc&&t.value===S[cur].etc[0])) next(); } function ok(){ var s=S[cur]; if(s.biz) return !!V.brand&&!!V.registered&&V.active==='\uc6b4\uc601 \uc911'&&bizOK(V.bizno); if(s.k==='kind'||s.k==='item'||s.k==='grade') return !!V[s.k]; if(s.chan) return !!V.where && (V.where!=='\ud55c\uad6d' || !!V.channel); if(s.req) return s.req.every(function(k){return (V[k]||'').trim()})&&phoneOK(V.phone)&&mailOK(V.email); if(s.review) return !!V.agree; return true; } function check(){ $('next').disabled=!ok(); } var LB=[['biz','\uc0ac\uc5c5\uc790',0],['kind','\uc81c\ud488\uad70',1],['item','\uc138\ubd80 \ud488\ubaa9',2],['where','\ud310\ub9e4 \uad6d\uac00',3],['size','\uc6a9\ub7c9\u00b7\uc218\ub7c9',4],['grade','\uc218\uc900',5],['pack','\uc6a9\uae30\u00b7\ud3ec\uc7a5',6],['claim','\uae30\ub2a5\u00b7\ud45c\uc2dc',7],['when','\ucd9c\uc2dc \uc2dc\uae30',8],['company','\uc5c5\uccb4',9]]; function n0(v){return Number(String(v||'').split(',').join(''))||0} function realPacks(){return (V.packs||[]).filter(function(x){return x!=='\uc5c6\uc74c'})} function realClaims(){return (V.claims||[]).filter(function(x){return x!=='\uc5c6\uc74c'})} function l0(){return false} function phoneOK(v){return /^01[016789]-?\d{3,4}-?\d{4}$/.test(String(v||'').trim())} function mailOK(v){return /^[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}$/.test(String(v||'').trim())} function bizOK(v){var d=String(v||'').replace(/\D/g,'');if(d.length!==10)return false;var w=[1,3,7,1,3,7,1,3,5],t=0;for(var i=0;i<9;i++)t+=+d[i]*w[i];t+=Math.floor(+d[8]*5/10);return (10-t%10)%10===+d[9]} function warn(){var w=$('warn');if(!w)return;var kg=n0(V.capacity)*n0(V.quantity)/1000;if(!V.size_unknown&&n0(V.capacity)&&n0(V.quantity)&&kg<150){w.hidden=false;w.textContent='\uc6a9\ub7c9 \u00d7 \uc218\ub7c9\uc774 '+Math.round(kg).toLocaleString('ko-KR')+'kg\uc785\ub2c8\ub2e4. 150kg \ubbf8\ub9cc\uc740 \uc81c\uc870\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.'}else w.hidden=true} function fmt(n){return Math.round(n).toLocaleString('ko-KR')} function summary(){ var size=V.size_unknown?'\uc544\uc9c1 \ubbf8\uc815':[V.capacity&&V.capacity+'ml',V.quantity&&V.quantity+'\uac1c'].filter(Boolean).join(' \u00b7 '); var a={biz:V.bizno||'',kind:V.kind,item:[V.item,V.item==='\uae30\ud0c0'&&V.item_etc].filter(Boolean).join(' - '),where:(V.where||'')+(V.channel?' ('+V.channel+')':''),size:size,grade:[V.grade,V.grade==='\uae30\ud0c0'&&V.grade_etc].filter(Boolean).join(' - '), pack:[].concat(V.container||[],realPacks()).join(', '),claim:realClaims().join(', '),when:V.when,company:[V.company,V.manager].filter(Boolean).join(' \u00b7 ')}; var shown=$('sum').getAttribute('data-n')|0, rows=LB.filter(function(l){return l[2]
'+l[1]+'
'+(v?''+esc(v)+'':'\u2014')+'
'}).join(''); $('sum').setAttribute('data-n',rows.length); $('sumCap').hidden=!rows.length; if(!RM&&rows.length>shown){ A.animate([].slice.call($('sum').children,shown),{opacity:[0,1],x:[12,0],duration:460,ease:'outQuart',delay:A.stagger(50)}); } var G={'\uae30\ubcf8':'low','\ud45c\uc900':'mid','\ud504\ub9ac\ubbf8\uc5c4':'high'}; var claims=realClaims().map(function(c){return c==='EWG \uadf8\ub9b0'?'EWG\uadf8\ub9b0':c==='\uc8fc\ub984\uac1c\uc120'?'\uc8fc\ub984':c}); var r=hbEstimate({quantity:V.quantity,capacity:V.capacity,formulaGrade:G[V.grade]||'low',container:V.container||'',processes:realPacks(),claims:claims}); if(V.grade==='\uae30\ud0c0'){ $('estN').textContent='\uc0c1\ub2f4 \ud6c4 \uc548\ub0b4'; $('estS').textContent='\uc81c\ud615\uc744 \uc9c1\uc811 \uc801\uc73c\uc168\uc2b5\ub2c8\ub2e4. \uacac\uc801\uc740 \uc0c1\ub2f4 \ud6c4 \uc548\ub0b4\ub4dc\ub9bd\ub2c8\ub2e4.'; return } if(!r.ready||!V.grade){ $('estN').textContent='\u2014'; $('estS').textContent='\uc6a9\ub7c9\uacfc \uc218\ub7c9\uc744 \uc801\uace0 \uc218\uc900\uc744 \uace0\ub974\uba74 \uc608\uc0c1 \uae08\uc561\uc774 \ub098\uc635\ub2c8\ub2e4.'; return } if(n0(V.capacity)*n0(V.quantity)/1000<150){ $('estN').textContent='\uc81c\uc870 \ubd88\uac00'; $('estS').innerHTML='\uc6a9\ub7c9 \u00d7 \uc218\ub7c9\uc774 150kg \ubbf8\ub9cc\uc785\ub2c8\ub2e4. \uc218\ub7c9\uc744 \ub298\ub9ac\uba74 \uc608\uc0c1 \uae08\uc561\uc774 \ub098\uc635\ub2c8\ub2e4.'; return } $('estN').innerHTML=fmt(r.supplyUnit)+'\uc6d0/\uac1c'; var t=n0(V.target_price), extra=''; if(t) extra=r.supplyUnit>t?'
\ubaa9\ud45c \uacf5\uae09\ub2e8\uac00\ubcf4\ub2e4 \uac1c\ub2f9 '+fmt(r.supplyUnit-t)+'\uc6d0 \ub192\uc2b5\ub2c8\ub2e4.':'
\ubaa9\ud45c \uacf5\uae09\ub2e8\uac00 \uc774\ub0b4\uc785\ub2c8\ub2e4. \uac1c\ub2f9 '+fmt(t-r.supplyUnit)+'\uc6d0 \uc5ec\uc720\uac00 \uc788\uc2b5\ub2c8\ub2e4.'; $('estS').innerHTML='\uacf5\uae09\ucd1d\uc561 '+fmt(r.supplyTotal)+'\uc6d0 \u00b7 \ucd1d \uc81c\uc870\ub7c9 '+fmt(r.weight)+'kg'+extra; } function go(i){ if((busy&&Date.now()-busyAt<1200)||i<0||i>S.length) return; if(i>cur&&!ok()) return; if(i===S.length){ send(); return } var dir=i>cur?1:-1; if(RM){cur=i;render();return} busy=true; busyAt=Date.now(); var swapped=false; function swap(){ if(swapped) return; swapped=true; cur=i; render(); var parts=['#q','#hint','#ans']; stopAll(); parts.forEach(function(sel){var e=document.querySelector(sel);if(e){e.style.opacity='';e.style.transform=''}}); running.push(A.animate(['#q','#hint'],{opacity:[0,1],y:[20*dir,0],duration:620,ease:'outExpo',delay:A.stagger(60,{start:40})})); var items=document.querySelectorAll('#ans .opt, #ans .fld, #ans .grp > p, #ans .file, #ans .agree, #ans > p, #ans .upl'); if(items.length) running.push(A.animate(items,{opacity:[0,1],y:[16,0],duration:560,ease:'outQuart',delay:A.stagger(28,{start:120})})); busy=false; } clearTimeout(nextT); stopAll(); running.push(A.animate(['#q','#hint','#ans'],{opacity:0,y:-12*dir,duration:220,ease:'inQuad',onComplete:swap})); setTimeout(swap,320); // safety: never get stuck if the animation does not finish (background tab) } function setField(f,name,value){var el=f.querySelector('[name="'+name+'"]');if(!el){el=document.createElement('input');el.type='hidden';el.name=name;f.appendChild(el)}el.value=value} function phoneParts(v){var d=String(v).replace(/[^0-9]/g,'');return d.length===10?[d.slice(0,3),d.slice(3,6),d.slice(6)]:[d.slice(0,3),d.slice(3,7),d.slice(7)]} function send(){ var f=document.querySelector('#rqMailHost form[name="com_formmail"]'); if(!f||typeof window.com_formmail_formCheck!=='function'){ $('hint').textContent='\uc9c0\uae08\uc740 \uba54\uc77c \uc5f0\uacb0 \uc804 \uc2dc\ud5d8 \ud654\uba74\uc774\ub77c \ubcf4\ub0b4\uc9c0\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.'; $('hint').hidden=false; return } var G={'\uae30\ubcf8':'low','\ud45c\uc900':'mid','\ud504\ub9ac\ubbf8\uc5c4':'high'}, claims=realClaims().map(function(c){return c==='EWG \uadf8\ub9b0'?'EWG\uadf8\ub9b0':c==='\uc8fc\ub984\uac1c\uc120'?'\uc8fc\ub984':c}); var r=hbEstimate({quantity:V.quantity,capacity:V.capacity,formulaGrade:G[V.grade]||'low',container:V.container||'',processes:realPacks(),claims:claims}); var size=V.size_unknown?'\uc544\uc9c1 \ubbf8\uc815':[V.capacity&&V.capacity+'ml',V.quantity&&V.quantity+'\uac1c',V.target_price&&'\ubaa9\ud45c '+V.target_price+'\uc6d0'].filter(Boolean).join(' / '); var a={kind:V.kind||'',item:[V.item,V.item==='\uae30\ud0c0'&&V.item_etc].filter(Boolean).join(' - '),where:(V.where||'')+(V.channel?' ('+V.channel+')':''),size:size, grade:[V.grade,V.grade==='\uae30\ud0c0'&&V.grade_etc].filter(Boolean).join(' - '),pack:[].concat(V.container||[],realPacks()).join(', ')||'\uc5c6\uc74c',claim:[realClaims().join(', ')||'\uc5c6\uc74c',V.claim_etc,V.ref_url].filter(Boolean).join(' / '), when:V.when||'',biz:'\ube0c\ub79c\ub4dc '+(V.brand||'-')+' / \ucc45\uc784\ud310\ub9e4\uc5c5 '+(V.registered||'-')+' / \uc0ac\uc5c5\uc790 '+(V.active||'-')}; var files=$('fileIn')?[].slice.call($('fileIn').files):[]; var est=V.grade==='\uae30\ud0c0'?'\uc608\uc0c1 \uacac\uc801: \uc0c1\ub2f4 \ud6c4 \uc548\ub0b4':(r.ready&&V.grade?'\uc608\uc0c1 \uacf5\uae09\ub2e8\uac00: \uac1c\ub2f9 '+fmt(r.supplyUnit)+'\uc6d0 (\uacf5\uae09\ucd1d\uc561 '+fmt(r.supplyTotal)+'\uc6d0, \ucd1d \uc81c\uc870\ub7c9 '+fmt(r.weight)+'kg, \ubd80\uc790\uc7ac \uc81c\uc678)':'\uc608\uc0c1 \uacac\uc801: \uacc4\uc0b0 \uc815\ubcf4 \ubd80\uc871'); var f2=function(n,d){return Number(n).toLocaleString('ko-KR',{minimumFractionDigits:d||0,maximumFractionDigits:d||0})}; var now=new Date(), ymd=now.getFullYear()+('0'+(now.getMonth()+1)).slice(-2)+('0'+now.getDate()).slice(-2); var rno='HB-'+ymd+'-'+Math.random().toString(36).slice(2,6).toUpperCase(); var kg=n0(V.capacity)*n0(V.quantity)/1000, L=[]; L.push('[HBMIC \uac1c\ubc1c\uc758\ub8b0\uc11c] \uc811\uc218\ubc88\ud638 '+rno,'\uc791\uc131 \uc2dc\uac01: '+now.toLocaleString('ko-KR'),''); L.push('[ \uc811\uc218 \uc694\uc57d ]','\uc5c5\uccb4: '+(V.company||'-')+' / \ub2f4\ub2f9\uc790: '+(V.manager||'-'),'\uc5f0\ub77d\ucc98: '+(V.phone||'-')+' / \uc774\uba54\uc77c: '+(V.email||'-'),'\uc0ac\uc5c5\uc790\ubc88\ud638: '+(V.bizno||'-'),'\ud604\uc7ac \uc0c1\ud669: \ube0c\ub79c\ub4dc '+(V.brand||'-')+' / \ucc45\uc784\ud310\ub9e4\uc5c5 '+(V.registered||'-')+' / \uc0ac\uc5c5\uc790 '+(V.active||'-'),'\ucca8\ubd80: '+files.length+'\uac1c'+(files.length?' ('+files.map(function(x){return x.name}).join(', ')+')':''),''); L.push('[ \uc758\ub8b0 \uc0ac\uc591 ]','\uc81c\ud488\uad70: '+(a.kind||'-')+' / \uc138\ubd80 \ud488\ubaa9: '+(a.item||'-'),'\ud310\ub9e4 \uad6d\uac00: '+(a.where||'-'),(V.size_unknown?'\uc6a9\ub7c9\u00b7\uc218\ub7c9: \uc544\uc9c1 \ubbf8\uc815':'\uc6a9\ub7c9: '+(V.capacity||'-')+'ml / \uc218\ub7c9: '+(V.quantity||'-')+'\uac1c')+' / \ubaa9\ud45c \uacf5\uae09\ub2e8\uac00: '+(V.target_price?V.target_price+'\uc6d0/\uac1c':'-'),'\uc218\uc900: '+(a.grade||'-'),'\uc6a9\uae30\u00b7\ud3ec\uc7a5: '+a.pack,'\uae30\ub2a5\u00b7\ud45c\uc2dc: '+(realClaims().join(', ')||'\uc5c6\uc74c'),'\ucd9c\uc2dc \ud76c\ub9dd: '+(a.when||'-'),'\ucc38\uace0 \uc81c\ud488 \uc8fc\uc18c: '+(V.ref_url||'-'),'\uadf8 \ubc16\uc758 \uae30\ub2a5\u00b7\ud45c\uc2dc: '+(V.claim_etc||'-'),''); if(r.ready&&V.grade&&V.grade!=='\uae30\ud0c0'&&kg>=150){ var tp=n0(V.target_price), diff=tp?tp-r.supplyUnit:0, base={low:1,mid:3,high:6}[G[V.grade]||'low'], add=Math.round((r.gPrice-base)*10)/10; var cont=['\uc0f4\ud478','\ud38c\ud504','\ud06c\ub9bc','\uc2a4\ud3ec\uc774\ub4dc'].some(function(w){return (V.container||'').indexOf(w)>-1})?1:0; var parts=['\uae30\ubcf8 4\uba85'].concat(cont?[V.container+' 1\uba85']:[]).concat(realPacks().map(function(p){return p+' '+((p==='\ub2e8\uc0c1\uc790'||p==='\uc218\ucd95\ud544\ub984')?2:1)+'\uba85'})); L.push('[ \uc608\uc0c1 \uacac\uc801 (\ubd80\uc790\uc7ac \uc81c\uc678) ]','\uc608\uc0c1 \uacf5\uae09\ub2e8\uac00: '+f2(r.supplyUnit,2)+'\uc6d0/\uac1c','\uc608\uc0c1 \uacf5\uae09\ucd1d\uc561: '+f2(r.supplyTotal)+'\uc6d0', tp?'\ubaa9\ud45c \ub300\ube44 \ucc28\uc561: '+(diff>=0?'+':'-')+f2(Math.abs(diff),2)+'\uc6d0/\uac1c ('+(diff>=0?'\ubaa9\ud45c \uc774\ub0b4':'\ubaa9\ud45c\ubcf4\ub2e4 \ub192\uc74c')+')':'\ubaa9\ud45c \ub300\ube44 \ucc28\uc561: \ubaa9\ud45c \ub2e8\uac00 \uc5c6\uc74c', '\ucd1d \uc81c\uc870\ub7c9: '+f2(r.weight,1)+'kg (\uc774\ub860 '+f2(r.theoreticalWeight,1)+'kg + \uc190\uc2e4 '+f2(r.lossKg,1)+'kg)',''); L.push('[ \uc0ac\ub0b4 \uac80\ud1a0\uc6a9 \uc6d0\uac00 \ubc0f \ub9c8\uc9c4 ]', '\u25b6 \uc81c\ud615\ube44: '+f2(r.gPrice,1)+'\uc6d0/g (\uae30\ubcf8 '+f2(base,1)+' + \uae30\ub2a5 \ud560\uc99d '+f2(add,1)+') \u00d7 '+f2(Math.round(r.weight*1000))+'g = '+f2(r.formulaTotal)+'\uc6d0 (\ubcc4\ub3c4 \ub9c8\uc9c4 \uc5c6\uc74c)', '\u25b6 \uc81c\uc870','- \uccad\uad6c\uc561: (\uae30\ubcf8\uc81c\uc870\ube44 '+f2(r.manufacturingCost)+'\uc6d0 \u00d7 \uc704\ud5d8\uacc4\uc218 '+f2(r.risk,2)+') + \uc138\ud305\ube44 300,000\uc6d0 = '+f2(r.manufacturingCharge)+'\uc6d0', '- \uc2e4\uc81c \uc6d0\uac00: '+f2(r.manufacturingCost)+'\uc6d0 / \ub9c8\uc9c4: '+f2(r.manufacturingCharge-r.manufacturingCost)+'\uc6d0 / \uac1c\ub2f9 \uccad\uad6c '+f2(r.manufacturingChargeEach,2)+'\uc6d0', '\u25b6 \uc0dd\uc0b0','- \uc778\uc6d0: '+parts.join(' + ')+' = '+r.people+'\uba85', '- \uccad\uad6c\uc561: ('+r.people+'\uba85 \u00d7 \uc2dc\uae09 18,700\uc6d0 \u00d7 '+r.hours+'\uc2dc\uac04) \u00d7 \uc704\ud5d8\uacc4\uc218 '+f2(r.risk,2)+' = '+f2(r.productionCharge)+'\uc6d0', '- \uc2e4\uc81c \uc6d0\uac00: '+f2(r.productionCost)+'\uc6d0 / \ub9c8\uc9c4: '+f2(r.productionCharge-r.productionCost)+'\uc6d0 / \uac1c\ub2f9 \uccad\uad6c '+f2(r.productionChargeEach,2)+'\uc6d0', '\u25b6 \ud569\uacc4: \uc6d0\uac00 '+f2(r.manufacturingCost+r.productionCost)+'\uc6d0 / \ub9c8\uc9c4 '+f2(r.manufacturingCharge-r.manufacturingCost+r.productionCharge-r.productionCost)+'\uc6d0 / \uacf5\uae09\ucd1d\uc561 '+f2(r.supplyTotal)+'\uc6d0',''); L.push('[ \uc0b0\ucd9c \uae30\uc900\ud45c ]','1. \uc81c\uc870 \uae30\ubcf8\ube44: 130~200kg 45\ub9cc / 200~320kg 60\ub9cc / 320~1,000kg 40\ub9cc / 1,000~2,000kg 80\ub9cc / 2,000kg \ub118\uc73c\uba74 1,000kg\ub9c8\ub2e4 40\ub9cc (\uc9c0\uae08 '+f2(r.weight,1)+'kg \u2192 '+f2(r.manufacturingCost/10000)+'\ub9cc)', '2. \uc0dd\uc0b0 \uc778\uc6d0: \uae30\ubcf8 4\uba85 + \uc6a9\uae30(\ud06c\ub9bc\u00b7\ud38c\ud504\u00b7\uc2a4\ud3ec\uc774\ub4dc) 1\uba85 + \ud3ec\uc7a5\ub9c8\ub2e4 1\uba85(\ub2e8\uc0c1\uc790\u00b7\uc218\ucd95\ud544\ub984 2\uba85), \uc791\uc5c5\uc2dc\uac04 = \uc218\ub7c9 \u00f7 1,250 \uc62c\ub9bc, \ucd5c\uc18c 4\uc2dc\uac04 (\uc9c0\uae08 '+r.people+'\uba85 \u00b7 '+r.hours+'\uc2dc\uac04)', '3. \uc704\ud5d8\uacc4\uc218: 3,000\uac1c \uc774\ud558 2.0 / 3,000~5,000\uac1c 2.0\u21921.6 / 5,000~10,000\uac1c 1.6\u21921.335 / 10,000\uac1c \ub118\uc73c\uba74 1.335\uc5d0\uc11c \uc904\uc5b4 \ucd5c\uc800 1.1 (\uc9c0\uae08 '+f2(r.risk,2)+')', '4. \uc190\uc2e4\ub7c9: 20kg + \uc774\ub860 \uc81c\uc870\ub7c9 \u00d7 4%',''); }else{ L.push('[ \uc608\uc0c1 \uacac\uc801 ]',(kg&&kg<150)?'\uc81c\uc870 \ubd88\uac00 (\uc6a9\ub7c9 \u00d7 \uc218\ub7c9 150kg \ubbf8\ub9cc)':est,''); } L.push('[ \uace0\uac1d \uc694\uccad\uc0ac\ud56d ]',V.memo||'-'); var text=L.join('\n'); var ph=phoneParts(V.phone||''); setField(f,'title','[HBMIC \uac1c\ubc1c\uc758\ub8b0] '+(V.company||'')); setField(f,'name',V.manager||''); setField(f,'mobile_no1',ph[0]); setField(f,'mobile_no2',ph[1]); setField(f,'mobile_no3',ph[2]); setField(f,'receiver_email',V.email||''); setField(f,'add1',a.kind); setField(f,'add2',a.item); setField(f,'add3',a.where); setField(f,'add4',a.size); setField(f,'add5',a.grade); setField(f,'add6',a.pack); setField(f,'add7',a.claim); setField(f,'add8',a.when); setField(f,'add9',a.biz); setField(f,'add10',V.bizno||''); setField(f,'description',text.replace(//g,']')); var fi=f.querySelector('input[type=file][name="attachment[]"]'); if(fi&&files.length&&window.DataTransfer){var dt=new DataTransfer();files.forEach(function(x){dt.items.add(x)});fi.files=dt.files} var safe=f.querySelector('[name="com_formmail_check_safe"]'); if(safe) safe.checked=true; window.com_formmail_formCheck('com_formmail'); } function finish(){ $('f').innerHTML='

\uc811\uc218 \uc644\ub8cc

\uc758\ub8b0\uac00 \uc811\uc218\ub418\uc5c8\uc2b5\ub2c8\ub2e4.

\ub2f4\ub2f9\uc790\uac00 \ub0b4\uc6a9\uc744 \ud655\uc778\ud558\uace0 \uc5f0\ub77d\ub4dc\ub9bd\ub2c8\ub2e4.

\uac1c\ubc1c\uacfc\uc815 \ubcf4\uae30 \u2192

'; document.querySelector('.bar .nav').style.visibility='hidden'; $('prog').style.setProperty('--p',12); } $('f').addEventListener('change',function(e){ if(e.target.id==='fileIn'){ var fs=[].slice.call(e.target.files), tot=fs.reduce(function(t,f){return t+f.size},0); $('flist').innerHTML=fs.map(function(f){return ''+esc(f.name)+' \u00b7 '+(f.size/1048576).toFixed(1)+'MB'}).join('')+(tot>10485760?'

\ud569\uacc4\uac00 10MB\ub97c \ub118\uc2b5\ub2c8\ub2e4. \ud30c\uc77c\uc744 \uc904\uc5ec \uc8fc\uc138\uc694.

':''); return } }); $('f').addEventListener('change',read); function sizeDone(){var s=S[cur];if(!s.unknown)return false;return n0(V.capacity)>0&&n0(V.quantity)>0&&n0(V.target_price)>0&&n0(V.capacity)*n0(V.quantity)/1000>=150} var sizeT=0; $('f').addEventListener('input',function(e){if(!S[cur].unknown||!/capacity|quantity|target_price/.test(e.target.name))return;clearTimeout(sizeT);if(sizeDone())sizeT=setTimeout(function(){if(sizeDone()&&S[cur].unknown)next()},1500)}); $('f').addEventListener('focusout',function(e){if(!S[cur].unknown)return;setTimeout(function(){var a=document.activeElement;if(sizeDone()&&!(a&&a.matches&&a.matches('#ans input')))next()},60)}); $('f').addEventListener('input',function(e){var t=e.target;if(t.tagName==='TEXTAREA'||(t.tagName==='INPUT'&&!/radio|checkbox|file/.test(t.type)))read(e)}); /* clicking an answer that is already picked also moves on */ $('f').addEventListener('pointerdown',function(e){var lab=e.target.closest('.opt');if(!lab)return;var inp=lab.querySelector('input[type=radio]');lab.dataset.was=inp&&inp.checked?'1':'0'},true); $('f').addEventListener('click',function(e){var lab=e.target.closest('.opt');if(!lab||lab.dataset.was!=='1')return;var inp=lab.querySelector('input[type=radio]');if(!inp)return;lab.dataset.was='0'; var s=S[cur], n=inp.name, adv=(s.auto&&!(s.etc&&inp.value===s.etc[0]))||n==='channel'||(n==='where'&&inp.value!=='\ud55c\uad6d')||(/^(packs|claims)\d+$/.test(n)&&inp.value==='\uc5c6\uc74c'); if(adv&&ok()){e.preventDefault();next()}},true); $('next').addEventListener('click',function(){go(cur+1)}); $('back').addEventListener('click',function(){go(cur-1)}); $('sum').addEventListener('click',function(e){var a=e.target.closest('[data-go]');if(a){e.preventDefault();go(+a.getAttribute('data-go'))}}); document.addEventListener('keydown',function(e){if(e.key==='Enter'&&e.target.tagName!=='TEXTAREA'){e.preventDefault();if(!$('next').disabled)go(cur+1)}}); if(/[?&](sent=1|com_formmail_id=3)(&|$)/.test(location.search)){ finish(); return } render(); if(!RM){A.animate(['#q','#hint','#ans','.right'],{opacity:[0,1],y:[18,0],duration:800,ease:'outExpo',delay:A.stagger(70)})} })(); /* 11/9 21:05: two scroll stops (first screen / footer) with a fast glide. Replaces CSS scroll-snap, whose speed cannot be set. Used only when the page is one screen + a footer shorter than the screen. */ (function () { 'use strict'; var H = document.documentElement; var isProc = !!document.querySelector('.hb-proc, .hb-req'); var RMs = matchMedia('(prefers-reduced-motion: reduce)').matches; var DUR = 360, raf = 0, lock = 0, ty = 0; function max() { return Math.max(0, H.scrollHeight - innerHeight); } function on() { var m = max(); return m > 0 && m < innerHeight && (!isProc || innerWidth > 900); } function busyUI(t) { if (!t || !t.closest) return false; if (t.closest('.pp-sheet, .hb-menu, .hb-lang__list, input, textarea, select')) return true; return false; } function inner(t, dir) { // a scrollable box under the pointer that can still scroll that way keeps the wheel var r = t && t.closest ? t.closest('.pp-r') : null; if (!r || r.scrollHeight <= r.clientHeight + 1) return false; return dir > 0 ? r.scrollTop + r.clientHeight < r.scrollHeight - 1 : r.scrollTop > 0; } function go(to) { cancelAnimationFrame(raf); var from = window.pageYOffset, d = to - from; if (Math.abs(d) < 1) return; if (RMs) { window.scrollTo(0, to); return; } var t0 = performance.now(); (function step(t) { var p = Math.min(1, (t - t0) / DUR), e = 1 - Math.pow(1 - p, 3); window.scrollTo(0, from + d * e); if (p < 1) raf = requestAnimationFrame(step); else raf = 0; })(t0); } function toward(dir) { var now = Date.now(); if (now < lock) return; var target = dir > 0 ? max() : 0; if (Math.abs(target - window.pageYOffset) < 1) return; lock = now + DUR + 120; go(target); } window.addEventListener('wheel', function (e) { if (!on() || e.ctrlKey || busyUI(e.target) || Math.abs(e.deltaY) < Math.abs(e.deltaX)) return; var dir = e.deltaY > 0 ? 1 : -1; if (inner(e.target, dir)) return; e.preventDefault(); toward(dir); }, { passive: false }); window.addEventListener('touchstart', function (e) { ty = e.touches[0].clientY; }, { passive: true }); window.addEventListener('touchmove', function (e) { if (!on() || busyUI(e.target)) return; e.preventDefault(); }, { passive: false }); window.addEventListener('touchend', function (e) { if (!on() || busyUI(e.target)) return; var dy = ty - e.changedTouches[0].clientY; if (Math.abs(dy) > 24) toward(dy > 0 ? 1 : -1); }, { passive: true }); window.addEventListener('keydown', function (e) { if (!on() || busyUI(e.target) || busyUI(document.activeElement)) return; var k = e.key, dir = 0; if (k === 'PageDown' || k === 'ArrowDown' || k === 'End' || (k === ' ' && !e.shiftKey)) dir = 1; if (k === 'PageUp' || k === 'ArrowUp' || k === 'Home' || (k === ' ' && e.shiftKey)) dir = -1; if (!dir) return; if (k === ' ' && /BUTTON|A/.test((document.activeElement || {}).tagName || '')) return; e.preventDefault(); toward(dir); }); // scrollbar drag or anything else: settle on the nearer stop var st = 0; window.addEventListener('scroll', function () { if (!on() || raf) return; clearTimeout(st); st = setTimeout(function () { if (raf) return; var y = window.pageYOffset, m = max(); if (y > 0 && y < m) go(y > m / 2 ? m : 0); }, 160); }, { passive: true }); })(); /* 2026-11-10 hide the estimate box until there is a number (moved from inline page script) */ (function(){var n=document.getElementById("estN"),e=document.getElementById("est");if(!n||!e)return;var D=String.fromCharCode(8212);function u(){var t=(n.textContent||"").trim();e.classList.toggle("is-empty",t===""||t===D||t==="-")}u();new MutationObserver(u).observe(n,{childList:true,characterData:true,subtree:true})})();