/* CCA FAQ page script v16 (2026-10-01) */ (function(){ function cfaqBoot(){ var root = document.getElementById('cfaq'); if (!root) return; if (root.className.indexOf(' js') >= 0) return; root.className += ' js'; var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; function addCls(el,c){ if (el && (' '+el.className+' ').indexOf(' '+c+' ') < 0) el.className += ' '+c; } function rmCls(el,c){ if (el) el.className = (' '+el.className+' ').replace(' '+c+' ', ' ').replace(/^ +| +$/g,''); } function track(name, params){ try { if (window.gtag) window.gtag('event', name, params || {}); } catch(e){} } function pushHash(h){ try { if (history.pushState) history.pushState(null,'',h); else location.hash = h; } catch(e){} } function replHash(h){ try { if (history.replaceState) history.replaceState(null,'',h); } catch(e){} } function norm(s){ s = String(s).toLowerCase(); try { s = s.normalize('NFKC'); } catch(e){} return s.replace(/[\s\u3000]+/g,' '); } function escH(t){ return String(t).replace(/[&<>"]/g, function(c){ return {'&':'&','<':'<','>':'>','"':'"'}[c]; }); } /* \u56fa\u5b9a\u30d8\u30c3\u30c0\u30fc\u306e\u9ad8\u3055\u3092\u5b9f\u6e2c\u3057\u3066\u3001\u898b\u51fa\u3057\u304c\u305d\u306e\u771f\u4e0b\u306b\u6765\u308b\u3088\u3046\u79fb\u52d5\u3059\u308b */ function headerH(){ if (!document.elementFromPoint) return 0; var h = 0, cx = Math.round((window.innerWidth||1000)/2), y = 1, guard = 0; try { while (guard++ < 6){ var el = document.elementFromPoint(cx, y); if (!el) break; var fixed = null, n = el; while (n && n !== document.body && n !== document.documentElement){ var pos = window.getComputedStyle(n).position; if (pos === 'fixed' || pos === 'sticky'){ fixed = n; break; } n = n.parentElement; } if (!fixed) break; var b = fixed.getBoundingClientRect().bottom; if (b <= h + 1) break; h = b; y = Math.ceil(b) + 1; } } catch(e){ return 0; } var max = (window.innerHeight || 800) * 0.4; if (!(h > 0)) return 0; return h > max ? max : h; } function goTo(el, gap){ if (!el) return; var y = (window.pageYOffset || document.documentElement.scrollTop || 0); var top = el.getBoundingClientRect().top + y - headerH() - (gap == null ? 18 : gap); if (top < 0) top = 0; try { window.scrollTo({top: top, behavior: reduce ? 'auto' : 'smooth'}); } catch(e){ window.scrollTo(0, top); } } var radios = [].slice.call(root.querySelectorAll('.cfaq-radio')); var cards = [].slice.call(root.querySelectorAll('.cfaq-cat')); var panels = [].slice.call(root.querySelectorAll('.cfaq-panel')); var nav = root.querySelector('.cfaq-nav'); function panelOf(c){ return root.querySelector('.cfaq-panel[data-c="'+c+'"]'); } function current(){ var on = root.querySelector('.cfaq-panel.on'); return on ? on.getAttribute('data-c') : '1'; } function baseHash(){ return '#c' + current(); } function showPanel(c){ c = String(c); var r = document.getElementById('cfaq-r'+c); if (r) r.checked = true; panels.forEach(function(p){ if (p.getAttribute('data-c') === c) addCls(p,'on'); else rmCls(p,'on'); }); cards.forEach(function(a){ if (a.getAttribute('data-c') === c) addCls(a,'on'); else rmCls(a,'on'); }); } function openItem(it, scroll){ var p = it.closest ? it.closest('.cfaq-panel') : null; if (p) showPanel(p.getAttribute('data-c')); it.open = true; if (scroll) setTimeout(function(){ goTo(it, 16); }, 30); } /* \u5206\u985e\u306e\u5207\u308a\u66ff\u3048\uff1a\u305d\u306e\u5206\u985e\u306e\u898b\u51fa\u3057\u3078\u306a\u3081\u3089\u304b\u306b\u79fb\u52d5 */ radios.forEach(function(r, i){ r.addEventListener('change', function(){ if (!r.checked) return; var c = String(i+1); showPanel(c); pushHash('#c'+c); var t = root.querySelector('label[for="cfaq-r'+c+'"] .cfaq-cat-t'); track('faq_category', {category: t ? t.textContent : c}); var p = panelOf(c), head = p && p.querySelector('.cfaq-head'); if (head) goTo(head, 20); }); }); /* \u8cea\u554f\u306e\u958b\u9589 */ [].forEach.call(root.querySelectorAll('.cfaq-item'), function(item){ item.addEventListener('toggle', function(){ if (item.open){ replHash('#' + item.id); track('faq_open', {question_id: item.id, question: item.querySelector('.cfaq-qt').textContent}); var rt = item.getBoundingClientRect().top, vh = window.innerHeight || 800; if (rt > vh * 0.62 || rt < headerH()) goTo(item, 16); } else if (location.hash === '#' + item.id){ replHash(baseHash()); } }); }); /* \u30da\u30fc\u30b8\u4e0a\u90e8\u306b\u623b\u308b */ [].forEach.call(root.querySelectorAll('.cfaq-backtop label, .cfaq-float label'), function(b){ b.addEventListener('click', function(e){ e.preventDefault(); goTo(nav, 18); }); }); if (window.IntersectionObserver && nav){ var floats = [].slice.call(root.querySelectorAll('.cfaq-float')); new IntersectionObserver(function(es){ var visible = es[0].isIntersecting; floats.forEach(function(f){ if (visible) rmCls(f,'show'); else addCls(f,'show'); }); }, {rootMargin: '-80px 0px 0px 0px'}).observe(nav); } /* \u53f3\u4e0b\u30dc\u30bf\u30f3\uff1a\u30b9\u30af\u30ed\u30fc\u30eb\u306b\u5c11\u3057\u9045\u308c\u3066\u3001\u306a\u3081\u3089\u304b\u306b\u8ffd\u3044\u3064\u304f\uff08\u6642\u9593\u57fa\u6e96\u306e\u6307\u6570\u7684\u306a\u8ffd\u5f93\uff09 */ var fabw = root.querySelector('.cfaq-fabw'); if (fabw && !reduce && window.requestAnimationFrame){ function scrollY(){ return window.pageYOffset || document.documentElement.scrollTop || 0; } var fPos = scrollY(), fRaf = null, fLast = 0; function fStep(ts){ var d = scrollY(); var dt = fLast ? Math.min(0.05, (ts - fLast) / 1000) : 1/60; fLast = ts; fPos += (d - fPos) * (1 - Math.exp(-dt / 0.14)); var raw = fPos - d, lim = 70, off = lim * Math.tanh(raw / lim); fabw.style.transform = 'translate3d(0,' + off.toFixed(2) + 'px,0)'; if (Math.abs(raw) < 0.2){ fabw.style.transform = ''; fPos = d; fRaf = null; fLast = 0; return; } fRaf = requestAnimationFrame(fStep); } window.addEventListener('scroll', function(){ if (!fRaf) fRaf = requestAnimationFrame(fStep); }, {passive: true}); } window.addEventListener('beforeprint', function(){ [].forEach.call(root.querySelectorAll('.cfaq-item'), function(it){ it.open = true; }); }); /* \u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22 */ var kw = document.getElementById('cfaq-kw'), res = document.getElementById('cfaq-res'); if (kw && res){ var box = kw.parentNode, xbtn = box.querySelector('.cfaq-search-x'); /* \u8a00\u3044\u63db\u3048\u8f9e\u66f8\uff08\u540c\u3058\u884c\u306e\u8a9e\u306f\u540c\u3058\u3082\u306e\u3068\u3057\u3066\u691c\u7d22\u3059\u308b\uff09*/ var SYN = [ ['\u9818\u53ce\u66f8','\u9818\u53ce\u8a3c','\u30ec\u30b7\u30fc\u30c8'], ['\u30ad\u30e3\u30f3\u30bb\u30eb','\u53d6\u308a\u6d88\u3057','\u53d6\u6d88','\u89e3\u7d04'], ['\u632f\u66ff','\u632f\u308a\u66ff\u3048','\u3075\u308a\u304b\u3048'], ['\u53d7\u8b1b\u6599','\u6599\u91d1','\u8cbb\u7528','\u5024\u6bb5','\u91d1\u984d'], ['\u4fee\u4e86\u8a3c','\u4fee\u4e86\u8a3c\u660e\u66f8','\u8a3c\u660e\u66f8'], ['CCA\u5b66\u7fd2\u30de\u30a4\u30da\u30fc\u30b8','\u30de\u30a4\u30da\u30fc\u30b8','\u30ed\u30b0\u30a4\u30f3','\u30d1\u30b9\u30ef\u30fc\u30c9'], ['\u5c02\u9580\u5b9f\u8df5\u6559\u80b2\u8a13\u7df4\u7d66\u4ed8\u91d1','\u7d66\u4ed8\u91d1','\u6559\u80b2\u8a13\u7df4','\u30cf\u30ed\u30fc\u30ef\u30fc\u30af'], ['\u898b\u7a4d\u66f8','\u898b\u7a4d','\u898b\u7a4d\u308a','\u898b\u7a4d\u3082\u308a'], ['\u8acb\u6c42\u66f8','\u8acb\u6c42'], ['\u304a\u554f\u3044\u5408\u308f\u305b','\u554f\u5408\u305b','\u554f\u3044\u5408\u308f\u305b','\u9023\u7d61\u5148'], ['\u6559\u6750','\u30c6\u30ad\u30b9\u30c8','\u8cc7\u6599'], ['\u652f\u6255','\u652f\u6255\u3044','\u6c7a\u6e08','\u632f\u8fbc','\u632f\u308a\u8fbc\u307f'], ['\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9','\u30ab\u30fc\u30c9'], ['\u5b9a\u54e1','\u6e80\u5e2d','\u7a7a\u304d','\u6b8b\u5e2d'], ['\u66f4\u65b0\u8b1b\u7fd2','\u66f4\u65b0','\u7d99\u7d9a\u5b66\u7fd2'], ['\u5c4a\u304b\u306a\u3044','\u5c4a\u304d\u307e\u305b\u3093','\u53d7\u4fe1\u3067\u304d\u306a\u3044','\u6765\u306a\u3044'], ['\u518d\u767a\u884c','\u518d\u4ea4\u4ed8','\u7d1b\u5931','\u306a\u304f\u3057\u305f'], ['\u4f1a\u5834','zoom','\u30ba\u30fc\u30e0'] ]; var index = []; panels.forEach(function(panel){ var cat = panel.getAttribute('data-name'); [].forEach.call(panel.querySelectorAll('.cfaq-item'), function(it){ var body = it.querySelector('.cfaq-a-body').cloneNode(true); [].forEach.call(body.querySelectorAll('.cfaq-rel'), function(n){ n.parentNode.removeChild(n); }); var q = it.querySelector('.cfaq-qt').textContent, a = body.textContent.replace(/\s+/g,' ').replace(/^ | $/g,''); index.push({id: it.id, q: q, a: a, cat: cat, text: norm(q + ' ' + a)}); }); }); function findIn(text, alts){ var low = norm(text), best = -1, len = 0; alts.forEach(function(a){ if (!a) return; var i = low.indexOf(a); if (i >= 0 && (best < 0 || i < best)){ best = i; len = a.length; } }); return {i: best, n: len}; } function mark(text, alts){ var f = findIn(text, alts); if (f.i < 0) return escH(text); return escH(text.slice(0, f.i)) + '' + escH(text.slice(f.i, f.i + f.n)) + '' + escH(text.slice(f.i + f.n)); } function snippet(text, alts){ var f = findIn(text, alts); if (f.i < 0) return escH(text.slice(0, 70)) + (text.length > 70 ? '\u2026' : ''); var st = Math.max(0, f.i - 22), en = Math.min(text.length, f.i + f.n + 48); return (st > 0 ? '\u2026' : '') + mark(text.slice(st, en), alts) + (en < text.length ? '\u2026' : ''); } var active = -1; function search(){ var v = norm(kw.value).replace(/^ +| +$/g,''); if (v) addCls(box,'has'); else rmCls(box,'has'); active = -1; if (!v){ res.hidden = true; res.innerHTML = ''; return; } var terms = v.split(' ').filter(Boolean).map(function(t){ var alts = [t]; SYN.forEach(function(g){ if (g.some(function(w){ var nw = norm(w); return nw.indexOf(t) >= 0 || t.indexOf(nw) >= 0; })) alts = alts.concat(g.map(norm)); }); return alts; }); var flat = []; terms.forEach(function(alts){ flat = flat.concat(alts); }); var hits = []; index.forEach(function(x){ var qn = norm(x.q); var ok = terms.every(function(alts){ return alts.some(function(a){ return x.text.indexOf(a) >= 0; }); }); if (!ok) return; var score = 0; terms.forEach(function(alts){ score += alts.some(function(a){ return qn.indexOf(a) >= 0; }) ? 2 : 1; }); hits.push({x: x, s: score}); }); hits.sort(function(p, q){ return q.s - p.s; }); var out = ''; if (!hits.length){ var cu = root.getAttribute('data-cross-url'), cl = root.getAttribute('data-cross-label'), cm = root.getAttribute('data-cross-lead'); out = '
\u300c' + escH(kw.value) + '\u300d\u306b\u5f53\u3066\u306f\u307e\u308b\u8cea\u554f\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5225\u306e\u8a00\u8449\u3067\u3082\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002
' + (cu ? '' + escH(cm) + '' + escH(cl) + '\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002
' : '') + '\u89e3\u6c7a\u3057\u306a\u3044\u5834\u5408\u306f\u304a\u554f\u3044\u5408\u308f\u305b\u30d5\u30a9\u30fc\u30e0\u304b\u3089\u3054\u9023\u7d61\u304f\u3060\u3055\u3044\u3002