(function () { /* CSS注入 */ var style = document.createElement('style'); style.textContent = '#sim1_wrapper button:active{transform:scale(0.97);} #sim1_wrapper .sim1-q{transition:opacity 0.3s,max-height 0.3s;overflow:hidden;} #sim1_wrapper .sim1-q.hidden{opacity:0;max-height:0;padding:0;margin:0;} #sim1_wrapper .sim1-opt{transition:background 0.15s,border-color 0.15s;} #sim1_wrapper .sim1-opt.selected{background:#e8f0fe !important;border-color:#4a90d9 !important;} #sim2_wrapper .sim2-opt{transition:background 0.15s,border-color 0.15s;cursor:pointer;} #sim2_wrapper .sim2-opt:hover{background:#f0f0f0;} #sim2_wrapper .sim2-opt.selected{background:#e8f5e9 !important;border-color:#2ecc71 !important;}'; document.head.appendChild(style); function initSimulators() { function $(id) { return document.getElementById(id); } /* SIM1: バット選び診断(レガシー vs MM18) */ if ($('sim1_wrapper')) { var answers = [0, 0, 0]; /* 0=未回答, 1=レガシー, 2=MM18 */ var currentQ = 0; var questions = ['sim1_q1', 'sim1_q2', 'sim1_q3']; var progress = $('sim1_progress_fill'); var resultArea = $('sim1_result'); var retryBtn = $('sim1_retry'); function showQuestion(idx) { for (var i = 0; i < questions.length; i++) { var el = $(questions[i]); if (el) { if (i === idx) { el.style.display = 'block'; setTimeout(function(e){ e.style.opacity = '1'; e.style.maxHeight = '500px'; }.bind(null, el), 10); } else { el.style.opacity = '0'; el.style.maxHeight = '0'; setTimeout(function(e){ e.style.display = 'none'; }.bind(null, el), 300); } } } if (progress) progress.style.width = ((idx + 1) / 3 * 100) + '%'; } function selectOption(questionIdx, value, btnEl) { answers[questionIdx] = value; /* ハイライト */ var parent = btnEl.parentNode; var opts = parent.querySelectorAll('.sim1-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); btnEl.classList.add('selected'); /* 次の質問へ(0.4秒後) */ setTimeout(function() { if (questionIdx < 2) { currentQ = questionIdx + 1; showQuestion(currentQ); } else { showResult(); } }, 400); } function showResult() { var legacyCount = 0; var mm18Count = 0; for (var i = 0; i < answers.length; i++) { if (answers[i] === 1) legacyCount++; if (answers[i] === 2) mm18Count++; } var title, desc, link, color; if (legacyCount > mm18Count) { title = '⚾ ビヨンドマックスレガシー'; desc = 'お子さんには飛距離重視のレガシーがおすすめです!トップバランスの遠心力でフルスイングの威力を最大化できます。'; link = 'https://www.amazon.co.jp/s?k=%E3%83%9F%E3%82%BA%E3%83%8E%20%E3%83%93%E3%83%A8%E3%83%B3%E3%83%89%E3%83%9E%E3%83%83%E3%82%AF%E3%82%B9%E3%83%AC%E3%82%AC%E3%82%B7%E3%83%BC%20%E5%B0%91%E5%B9%B4%E8%BB%9F%E5%BC%8F&tag=baseball08a-22'; color = '#e74c3c'; } else if (mm18Count > legacyCount) { title = '⚾ SSK MM18'; desc = 'お子さんには操作性重視のMM18がおすすめです!ミドルバランスで広角に打ち分ける技術を最大限に活かせます。'; link = 'https://www.amazon.co.jp/s?k=SSK%20MM18%20%E5%B0%91%E5%B9%B4%E8%BB%9F%E5%BC%8F&tag=baseball08a-22'; color = '#4a90d9'; } else { title = '🤔 どちらも合う可能性あり!'; desc = 'スペックではどちらも合っています。必ず試打して打感の好みで決めてください。記事の詳細比較も参考にしてください。'; link = ''; color = '#f39c12'; } $('sim1_result_title').innerHTML = title; $('sim1_result_title').style.color = color; $('sim1_result_desc').innerHTML = desc; var linkArea = $('sim1_result_link'); if (link && linkArea) { linkArea.innerHTML = 'Amazonで価格をチェック →'; } else if (linkArea) { linkArea.innerHTML = ''; } /* 質問を全て非表示 */ for (var i = 0; i < questions.length; i++) { var el = $(questions[i]); if (el) { el.style.display = 'none'; } } if (progress) progress.style.width = '100%'; resultArea.style.display = 'block'; resultArea.style.opacity = '0'; setTimeout(function() { resultArea.style.opacity = '1'; }, 10); retryBtn.style.display = 'block'; } /* ボタンイベント登録 */ var allOpts = $('sim1_wrapper').querySelectorAll('.sim1-opt'); for (var i = 0; i < allOpts.length; i++) { allOpts[i].addEventListener('click', function() { var q = parseInt(this.getAttribute('data-q')); var v = parseInt(this.getAttribute('data-v')); selectOption(q, v, this); }); } /* リトライ */ if (retryBtn) { retryBtn.addEventListener('click', function() { answers = [0, 0, 0]; currentQ = 0; resultArea.style.display = 'none'; retryBtn.style.display = 'none'; showQuestion(0); /* 選択状態リセット */ var opts = $('sim1_wrapper').querySelectorAll('.sim1-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); }); } /* 初期表示 */ showQuestion(0); } /* SIM2: ジュニアプロテイン診断 */ if ($('sim2_wrapper')) { var s2answers = [0, 0, 0]; var s2currentQ = 0; var s2questions = ['sim2_q1', 'sim2_q2', 'sim2_q3']; var s2progress = $('sim2_progress_fill'); var s2resultArea = $('sim2_result'); var s2retryBtn = $('sim2_retry'); function s2showQ(idx) { for (var i = 0; i < s2questions.length; i++) { var el = $(s2questions[i]); if (el) { el.style.display = (i === idx) ? 'block' : 'none'; } } if (s2progress) s2progress.style.width = ((idx + 1) / 3 * 100) + '%'; } function s2selectOpt(qi, v, btn) { s2answers[qi] = v; var qDiv = $(s2questions[qi]); if (qDiv) { var opts = qDiv.querySelectorAll('.sim2-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); } btn.classList.add('selected'); setTimeout(function() { if (qi < 2) { s2currentQ = qi + 1; s2showQ(s2currentQ); } else { s2showResult(); } }, 400); } function s2showResult() { var milk = s2answers[0], priority = s2answers[1], taste = s2answers[2]; var title = '', desc = '', link = '', color = '#333'; if (milk === 2) { if (taste === 2) { title = '🍓 アストリション イチゴ味'; desc = '大豆由来でお腹に優しく、フルーツ味でスッキリ飲めます。'; link = 'https://www.amazon.co.jp/dp/B08PSP4Z1N?tag=baseball08a-22'; color = '#e74c3c'; } else { if (priority === 3) { title = '🌱 VITAS VINOBBY'; desc = 'ソイベースでボーンペップ・アルギニンも配合。成長サポート成分重視ならコレ。'; link = 'https://www.amazon.co.jp/dp/B0DMYQWGF2?tag=baseball08a-22'; color = '#8e44ad'; } else { title = '🫘 アストリション ココア味'; desc = '人工甘味料不使用の大豆プロテイン。牛乳NGの子の定番です。'; link = 'https://www.amazon.co.jp/dp/B098N3M5BZ?tag=baseball08a-22'; color = '#e67e22'; } } } else { if (priority === 1) { if (taste === 2) { title = '🍌 ザプロ バナナ風味'; desc = '1食約70円のコスパ最強。バナナ味で飲みやすい大容量1kg。'; link = 'https://www.amazon.co.jp/dp/B0BVR8ZB77?tag=baseball08a-22'; color = '#f1c40f'; } else { title = '🥇 ザバス ココア味'; desc = '1食約55円で定番の安心感。迷ったらまずコレから。'; link = 'https://www.amazon.co.jp/dp/B00IEA57NI?tag=baseball08a-22'; color = '#3498db'; } } else if (priority === 2) { title = '🌿 WINZONE ミルクココア味'; desc = '黒糖の自然な甘さ。着色料・香料不使用で品質重視の親御さんに。'; link = 'https://www.amazon.co.jp/dp/B0BLYH26VZ?tag=baseball08a-22'; color = '#27ae60'; } else { title = '⚡ MAJIDE ジュニアプロテイン'; desc = '26種の栄養素を配合した完全栄養食コンセプト。成長サポート全振り。'; link = 'https://www.amazon.co.jp/dp/B0CZHT6LWR?tag=baseball08a-22'; color = '#2c3e50'; } } $('sim2_result_title').innerHTML = title; $('sim2_result_title').style.color = color; $('sim2_result_desc').innerHTML = desc; var la = $('sim2_result_link'); if (la) { if (link) { la.innerHTML = 'Amazonで詳細をチェック →'; } else { la.innerHTML = ''; } } for (var i = 0; i < s2questions.length; i++) { var el = $(s2questions[i]); if (el) el.style.display = 'none'; } if (s2progress) s2progress.style.width = '100%'; s2resultArea.style.display = 'block'; s2retryBtn.style.display = 'block'; } /* ボタンイベント登録 */ var s2allOpts = $('sim2_wrapper').querySelectorAll('.sim2-opt'); for (var i = 0; i < s2allOpts.length; i++) { s2allOpts[i].addEventListener('click', function() { var q = parseInt(this.getAttribute('data-q')); var v = parseInt(this.getAttribute('data-v')); s2selectOpt(q, v, this); }); } /* リトライ */ if (s2retryBtn) { s2retryBtn.addEventListener('click', function() { s2answers = [0, 0, 0]; s2currentQ = 0; s2resultArea.style.display = 'none'; s2retryBtn.style.display = 'none'; s2showQ(0); var opts = $('sim2_wrapper').querySelectorAll('.sim2-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); }); } /* 初期表示 */ s2showQ(0); } /* SIM3: ウレタンバット診断 */ if ($('sim3_wrapper')) { var s3answers = [0, 0, 0]; var s3currentQ = 0; var s3questions = ['sim3_q1', 'sim3_q2', 'sim3_q3']; var s3progress = $('sim3_progress_fill'); var s3resultArea = $('sim3_result'); var s3retryBtn = $('sim3_retry'); function s3showQ(idx) { for (var i = 0; i < s3questions.length; i++) { var el = $(s3questions[i]); if (el) { el.style.display = (i === idx) ? 'block' : 'none'; } } if (s3progress) s3progress.style.width = ((idx + 1) / 3 * 100) + '%'; } function s3selectOpt(qi, v, btn) { s3answers[qi] = v; var qDiv = $(s3questions[qi]); if (qDiv) { var opts = qDiv.querySelectorAll('.sim3-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); } btn.classList.add('selected'); setTimeout(function() { if (qi < 2) { s3currentQ = qi + 1; s3showQ(s3currentQ); } else { s3showResult(); } }, 400); } function s3showResult() { var size = s3answers[0], style = s3answers[1], budget = s3answers[2]; var title = '', desc = '', link = '', color = '#333'; if (size === 1) { /* 小さい子 */ if (budget === 1) { title = '⚾ ビヨンドマックスEV2'; desc = '2万円台で軽量ミドルバランス。初めてのウレタンバットに最適。'; link = 'https://www.amazon.co.jp/dp/B0FD9LGPB3?tag=baseball08a-22'; color = '#3498db'; } else { if (style === 1) { title = '⚾ MM Junior'; desc = 'MM18の技術をジュニア体格に最適化。軽量で振りやすい。'; link = 'https://www.amazon.co.jp/dp/B0F2SZNML4?tag=baseball08a-22'; color = '#e74c3c'; } else { title = '⚾ ワニクラッシャー スーパーライト'; desc = '超軽量ミドルバランス。体が小さくても振り遅れない。'; link = 'https://www.amazon.co.jp/dp/B0FTVQ7GSN?tag=baseball08a-22'; color = '#27ae60'; } } } else { /* 大きい子 */ if (budget === 1) { if (style === 2) { title = '⚾ MM18 ミドルバランス'; desc = 'ウレタン18mm+ミドルバランス。操作性最強で打率UP。'; link = 'https://www.amazon.co.jp/dp/B09TS9BVG9?tag=baseball08a-22'; color = '#9b59b6'; } else { title = '⚾ ワニクラッシャー スピードブラック'; desc = 'マルーチのパワーモデル。トップバランスで飛距離◎。'; link = 'https://www.amazon.co.jp/dp/B0FDQPX52G?tag=baseball08a-22'; color = '#2c3e50'; } } else { if (style === 1) { title = '⚾ ビヨンドマックスレガシー'; desc = 'ウレタン18mmの絶対王者。芯を外しても飛ぶ安心感。'; link = 'https://www.amazon.co.jp/dp/B0DFY3C55H?tag=baseball08a-22'; color = '#e74c3c'; } else { title = '⚾ SSK MM18'; desc = 'ウレタン18mm+操作性。レガシーより安くて技術派向き。'; link = 'https://www.amazon.co.jp/dp/B084HRTKC6?tag=baseball08a-22'; color = '#f39c12'; } } } $('sim3_result_title').innerHTML = title; $('sim3_result_title').style.color = color; $('sim3_result_desc').innerHTML = desc; var la = $('sim3_result_link'); if (la) { if (link) { la.innerHTML = 'Amazonで詳細をチェック →'; } else { la.innerHTML = ''; } } for (var i = 0; i < s3questions.length; i++) { var el = $(s3questions[i]); if (el) el.style.display = 'none'; } if (s3progress) s3progress.style.width = '100%'; s3resultArea.style.display = 'block'; s3retryBtn.style.display = 'block'; } var s3allOpts = $('sim3_wrapper').querySelectorAll('.sim3-opt'); for (var i = 0; i < s3allOpts.length; i++) { s3allOpts[i].addEventListener('click', function() { var q = parseInt(this.getAttribute('data-q')); var v = parseInt(this.getAttribute('data-v')); s3selectOpt(q, v, this); }); } if (s3retryBtn) { s3retryBtn.addEventListener('click', function() { s3answers = [0, 0, 0]; s3currentQ = 0; s3resultArea.style.display = 'none'; s3retryBtn.style.display = 'none'; s3showQ(0); var opts = $('sim3_wrapper').querySelectorAll('.sim3-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); }); } s3showQ(0); } /* SIM4: スポーツドリンク診断 */ if ($('sim4_wrapper')) { var s4answers = [0, 0, 0]; var s4currentQ = 0; var s4questions = ['sim4_q1', 'sim4_q2', 'sim4_q3']; var s4progress = $('sim4_progress_fill'); var s4resultArea = $('sim4_result'); var s4retryBtn = $('sim4_retry'); function s4showQ(idx) { for (var i = 0; i < s4questions.length; i++) { var el = $(s4questions[i]); if (el) { el.style.display = (i === idx) ? 'block' : 'none'; } } if (s4progress) s4progress.style.width = ((idx + 1) / 3 * 100) + '%'; } function s4selectOpt(qi, v, btn) { s4answers[qi] = v; var qDiv = $(s4questions[qi]); if (qDiv) { var opts = qDiv.querySelectorAll('.sim4-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); } btn.classList.add('selected'); setTimeout(function() { if (qi < 2) { s4currentQ = qi + 1; s4showQ(s4currentQ); } else { s4showResult(); } }, 400); } function s4showResult() { var scene = s4answers[0], priority = s4answers[1], form = s4answers[2]; var title = '', desc = '', link = '', color = '#333'; if (scene === 2) { /* 真夏・終日 */ if (form === 1) { title = '💧 ポカリスエット 粉末'; desc = '医学的に最適な電解質バランス。終日練習の水分補給はポカリ粉末が最強。'; link = 'https://www.amazon.co.jp/dp/B0966B2WK3?tag=baseball08a-22'; color = '#3498db'; } else { title = '🧊 OS-1 オーエスワンゼリー'; desc = '医療レベルの経口補水液。真夏のクーラーボックスに必ず常備。'; link = 'https://www.amazon.co.jp/dp/B01C6LEE5M?tag=baseball08a-22'; color = '#e74c3c'; } } else { /* 通常練習 */ if (priority === 2) { if (form === 1) { title = '⚡ アミノバイタル 粉末'; desc = 'アミノ酸配合で水分補給+疲労回復の一石二鳥。レモン味でスッキリ。'; link = 'https://www.amazon.co.jp/dp/B0CWNBTSN5?tag=baseball08a-22'; color = '#27ae60'; } else { title = '🏃 ヴァーム ウォーター'; desc = 'アミノ酸1500mg配合+カロリーゼロ。体を絞りながら動ける。'; link = 'https://www.amazon.co.jp/dp/B08VNJKSQX?tag=baseball08a-22'; color = '#f39c12'; } } else { if (form === 1) { title = '💧 アクエリアス パウダー'; desc = 'クエン酸配合でスッキリ味。毎日の練習用にコスパ◎。'; link = 'https://www.amazon.co.jp/dp/B095MFNV6T?tag=baseball08a-22'; color = '#2980b9'; } else { title = '🥤 アクエリアス 500ml'; desc = 'そのまま飲める手軽さ。箱買い1本約80円で試合・遠征に。'; link = 'https://www.amazon.co.jp/dp/B003UTTPTK?tag=baseball08a-22'; color = '#16a085'; } } } $('sim4_result_title').innerHTML = title; $('sim4_result_title').style.color = color; $('sim4_result_desc').innerHTML = desc; var la = $('sim4_result_link'); if (la) { if (link) { la.innerHTML = 'Amazonで詳細をチェック →'; } else { la.innerHTML = ''; } } for (var i = 0; i < s4questions.length; i++) { var el = $(s4questions[i]); if (el) el.style.display = 'none'; } if (s4progress) s4progress.style.width = '100%'; s4resultArea.style.display = 'block'; s4retryBtn.style.display = 'block'; } var s4allOpts = $('sim4_wrapper').querySelectorAll('.sim4-opt'); for (var i = 0; i < s4allOpts.length; i++) { s4allOpts[i].addEventListener('click', function() { var q = parseInt(this.getAttribute('data-q')); var v = parseInt(this.getAttribute('data-v')); s4selectOpt(q, v, this); }); } if (s4retryBtn) { s4retryBtn.addEventListener('click', function() { s4answers = [0, 0, 0]; s4currentQ = 0; s4resultArea.style.display = 'none'; s4retryBtn.style.display = 'none'; s4showQ(0); var opts = $('sim4_wrapper').querySelectorAll('.sim4-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); }); } s4showQ(0); } /* SIM5: クーラーボックス診断 */ if ($('sim5_wrapper')) { var s5answers = [0, 0, 0]; var s5currentQ = 0; var s5questions = ['sim5_q1', 'sim5_q2', 'sim5_q3']; var s5progress = $('sim5_progress_fill'); var s5resultArea = $('sim5_result'); var s5retryBtn = $('sim5_retry'); function s5showQ(idx) { for (var i = 0; i < s5questions.length; i++) { var el = $(s5questions[i]); if (el) { el.style.display = (i === idx) ? 'block' : 'none'; } } if (s5progress) s5progress.style.width = ((idx + 1) / 3 * 100) + '%'; } function s5selectOpt(qi, v, btn) { s5answers[qi] = v; var qDiv = $(s5questions[qi]); if (qDiv) { var opts = qDiv.querySelectorAll('.sim5-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); } btn.classList.add('selected'); setTimeout(function() { if (qi < 2) { s5currentQ = qi + 1; s5showQ(s5currentQ); } else { s5showResult(); } }, 400); } function s5showResult() { var who = s5answers[0], transport = s5answers[1], budget = s5answers[2]; var title = '', desc = '', link = '', color = '#333'; if (who === 2) { /* チーム用 */ title = '🧊 コールマン ポリライト 45L'; desc = 'チーム全体のドリンクをまとめて冷やせる大容量45L。保冷力約3日。'; link = 'https://www.amazon.co.jp/dp/B07Z994ND9?tag=baseball08a-22'; color = '#2c3e50'; } else { /* 個人用 */ if (transport === 2) { /* 徒歩・自転車 */ if (budget === 1) { title = '🎒 キャプテンスタッグ 7L'; desc = 'ショルダー付きで持ち運びやすい。日本製で約2,000円のコスパ。'; link = 'https://www.amazon.co.jp/dp/B0BYRJTKKM?tag=baseball08a-22'; color = '#27ae60'; } else { title = '⚾ ゼット クーラーバッグ'; desc = '野球ブランドのショルダー付きソフトバッグ。軽くて持ち運びやすい。'; link = 'https://www.amazon.co.jp/dp/B0DRBLKGRP?tag=baseball08a-22'; color = '#e67e22'; } } else { /* 車移動 */ if (budget === 1) { title = '📦 コールマン エクスカーション 16QT'; desc = '約3,000円で14Lの保冷力。個人〜家族用のベストサイズ。'; link = 'https://www.amazon.co.jp/dp/B01ABDUMYY?tag=baseball08a-22'; color = '#3498db'; } else { title = '🏆 コールマン ホイールクーラー 28QT'; desc = 'キャスター付き26L。少年野球のベストバイ。保冷力約2日。'; link = 'https://www.amazon.co.jp/dp/B0CM62VG5H?tag=baseball08a-22'; color = '#e74c3c'; } } } $('sim5_result_title').innerHTML = title; $('sim5_result_title').style.color = color; $('sim5_result_desc').innerHTML = desc; var la = $('sim5_result_link'); if (la) { if (link) { la.innerHTML = 'Amazonで詳細をチェック →'; } else { la.innerHTML = ''; } } for (var i = 0; i < s5questions.length; i++) { var el = $(s5questions[i]); if (el) el.style.display = 'none'; } if (s5progress) s5progress.style.width = '100%'; s5resultArea.style.display = 'block'; s5retryBtn.style.display = 'block'; } var s5allOpts = $('sim5_wrapper').querySelectorAll('.sim5-opt'); for (var i = 0; i < s5allOpts.length; i++) { s5allOpts[i].addEventListener('click', function() { var q = parseInt(this.getAttribute('data-q')); var v = parseInt(this.getAttribute('data-v')); s5selectOpt(q, v, this); }); } if (s5retryBtn) { s5retryBtn.addEventListener('click', function() { s5answers = [0, 0, 0]; s5currentQ = 0; s5resultArea.style.display = 'none'; s5retryBtn.style.display = 'none'; s5showQ(0); var opts = $('sim5_wrapper').querySelectorAll('.sim5-opt'); for (var i = 0; i < opts.length; i++) opts[i].classList.remove('selected'); }); } s5showQ(0); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initSimulators); } else { initSimulators(); } })();