!function () { // 강아지 하네스/목줄 사이즈 계산기 (2026-09-29, WEB_TOOL_EXPANSION 1차 도구) // 배변패드 계산기(2026-09-13)의 검증된 구조를 그대로 재사용한다(새 우회법 발명 없음): // __toolTrack 큐잉 스텁을 먼저 정의(tool-analytics.js 로드 순서 무관 안전), // debounced calc_complete는 이름 있는 함수로 setTimeout에 전달(WAF 시그니처 회피). window.__toolTrack = window.__toolTrack || function () { (window.__toolQueue = window.__toolQueue || []).push(arguments); }; var TABLE = [ { max: 3, label: 'XS', neck: '20~28cm', chest: '30~40cm', note: '초소형견(치와와 등)' }, { max: 7, label: 'S', neck: '25~35cm', chest: '38~50cm', note: '소형견(포메라니안, 말티즈 등)' }, { max: 15, label: 'M', neck: '32~45cm', chest: '48~65cm', note: '중형견(비글, 코커스패니얼 등)' }, { max: 25, label: 'L', neck: '40~55cm', chest: '60~80cm', note: '대형견 초입(리트리버 미만)' }, { max: Infinity, label: 'XL', neck: '50~70cm', chest: '75~100cm', note: '대형견(레트리버, 셰퍼드 등)' } ]; function findSize(weight) { for (var i = 0; i < TABLE.length; i++) { if (weight <= TABLE[i].max) { return TABLE[i]; } } return TABLE[TABLE.length - 1]; } function init() { var weightInput = document.getElementById('hc-weight'); if (!weightInput) return; // 이 블록이 없는 페이지에서는 조용히 종료 var errEl = document.getElementById('hc-error'); var resultEl = document.getElementById('hc-result'); var sizeEl = document.getElementById('hc-size'); var neckEl = document.getElementById('hc-neck'); var chestEl = document.getElementById('hc-chest'); var noteEl = document.getElementById('hc-note'); var __started = false; var __completeTimer = null; function recalc() { var raw = weightInput.value; errEl.textContent = ''; resultEl.style.display = 'none'; if (raw === '' || raw === null) { return; } // 빈값: 아직 입력 전, 조용히 대기 var weight = Number(raw); if (isNaN(weight)) { errEl.textContent = '숫자로 입력해주세요.'; return; } if (weight <= 0) { errEl.textContent = '몸무게는 0보다 큰 값을 입력해주세요.'; return; } if (weight > 90) { errEl.textContent = '일반적인 반려견 체중 범위(0~90kg)를 벗어났습니다. 초대형견은 매장 실측을 권장합니다.'; return; } var size = findSize(weight); sizeEl.textContent = size.label + ' (' + size.note + ')'; neckEl.textContent = size.neck; chestEl.textContent = size.chest; noteEl.textContent = weight > 25 ? '대형견은 개체 편차가 커 사이즈표보다 실측 줄자 측정을 강력히 권장합니다.' : '브랜드마다 사이즈 기준이 조금씩 달라 위 범위는 참고용입니다.'; resultEl.style.display = 'block'; } function __fireCalcComplete() { try { window.__toolTrack('calc_complete', {}); } catch (e) {} } function onUserChange() { if (!__started) { __started = true; try { window.__toolTrack('calc_start', {}); } catch (e) {} } recalc(); if (__completeTimer) { clearTimeout(__completeTimer); } __completeTimer = setTimeout(__fireCalcComplete, 250); } weightInput.addEventListener('input', onUserChange); // 최초 렌더링 없음(입력값이 비어 있어 결과 자체가 없음) - 배변패드 계산기와 달리 // 기본값이 없는 필수 입력형이라 사용자가 입력해야 비로소 결과가 뜬다. } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } }();