1/* =========================================================== 2 ä»å°å 大å¦éçé£ç å ¬å¼ãµã¤ã å ±éã¹ã¯ãªãã 3 ------------------------------------------------------------ 4 â è¨å®ã¯ãã®2ãæã ãã§ãâ 5 6 â GAS_URL â¦ å ¬éãµã¤ãããã¼ã¿ãèªã¿è¾¼ãããã®URL 7 â¡ TOOL_URL ⦠éå¶ç¨ãã¼ã¸ï¼staff.htmlï¼ããéãæ´æ°ãã¼ã«ã®URL 8 ⢠GA_ID ⦠Googleã¢ããªãã£ã¯ã¹ï¼GA4ï¼ã®ã測å®IDãï¼ä»»æã2026-09-16 追å ï¼ 9 10 â â¡ã¯ãæ´æ°ãã¼ã«ã®ã管çãã¿ã âã05 ãµã¤ãã¨ã®æ¥ç¶è¨å®ãã§ 11 ã³ãã¼ã§ãã¾ãï¼åãURLã§ãï¼ã 12 ãããã¤ãããç´ãã¨URLãå¤ããã¾ãã®ã§ã 13 ãã®éã¯ãã®2ãæãæ¸ãæãã¦ãcommon.js ãåã¢ãããã¼ããã¦ãã ããã 14 15 â¢ã®å徿¹æ³ã¯ããã®ä¸ã®ãGoogleã¢ããªãã£ã¯ã¹ãã®èª¬æãã覧ãã ããã 16 空æ¬ã®ã¾ã¾ãªããã¢ã¯ã»ã¹è§£æã¯ä½ãéä¿¡ããã¾ããã 17 =========================================================== */ 18var GAS_URL = 'https://script.google.com/macros/s/AKfycbzEpvmHBbNxh4ivOMG9zlm8LNzZat0OggVLtHvXfzAgnNC03tviBy9PEbreUjgpSq6EaQ/exec'; 19var TOOL_URL = 'https://script.google.com/macros/s/AKfycbzEpvmHBbNxh4ivOMG9zlm8LNzZat0OggVLtHvXfzAgnNC03tviBy9PEbreUjgpSq6EaQ/exec'; 20var GA_ID = 'G-XPXB5VWL09'; // ä¾ï¼'G-XXXXXXXXXX'ï¼Googleã¢ããªãã£ã¯ã¹ã®ã測å®IDãï¼ 21 22/* =========================================================== 23 Googleã¢ããªãã£ã¯ã¹ï¼GA4ï¼2026-09-16 追å 24 ------------------------------------------------------------ 25 ä¸ã® GA_ID ã«æ¸¬å®IDï¼G-ããå§ã¾ãæååï¼ãå ¥ããã¨ã 26 訪åè æ°ã»ããè¦ããã¦ãããã¼ã¸ãªã©ã®ãã¼ã¿ãåããããã«ãªãã¾ãã 27 28 å徿¹æ³ã¯ 3_è³æ ã®æé æ¸ãã¾ãã¯ä¸è¨ã®è¦ç´ãã覧ãã ããï¼ 29 1. https://analytics.google.com ããé£çã§ä½¿ãGoogleã¢ã«ã¦ã³ãã§éã 30 2. ãããããã£ã使ãâ ååãä»å°å 大å¦éçé£çããã¿ã¤ã ã¾ã¼ã³æ¥æ¬ãé貨å 31 3. æ¥ç¨®ã»ãã¸ãã¹ã®ç®çã¯ãè¿ããã®ãé¸ãã§é²ããï¼ãã¨ã§å¤æ´å¯ï¼ 32 4. ãã¼ã¿ã¹ããªã¼ã ã§ãã¦ã§ãããé¸ã³ãURLã« https://www.sen6.jp ãå ¥å 33 5. 表示ããããæ¸¬å®IDãï¼G-XXXXXXXXXXï¼ãã³ãã¼ããä¸ã® GA_ID ã«è²¼ãä»ã㦠34 common.js ãã¢ãããã¼ããç´ã 35 36 ã»éå¶ç¨ãã¼ã¸ï¼staff.htmlã»manual.htmlï¼ã¯ãçããã®ä½æ¥ããã¼ã¿ã« 37 æ··ãããªããããè¨æ¸¬ã®å¯¾è±¡ããå¤ãã¦ãã¾ãã 38 ã»GA_ID ã空æ¬ã®ãã¡ã¯ãå¤é¨ã¸ã®éä¿¡ã¯ä¸åçºçãã¾ããã 39 =========================================================== */ 40(function(){ 41 if(!GA_ID) return; 42 var page = location.pathname.split('/').pop(); 43 if(page === 'staff.html' || page === 'manual.html') return; // éå¶ç¨ãã¼ã¸ã¯è¨æ¸¬ãã¾ãã 44 45 var s = document.createElement('script'); 46 s.async = true; 47 s.src = 'https://www.googletagmanager.com/gtag/js?id=' + GA_ID; 48 document.head.appendChild(s); 49 50 window.dataLayer = window.dataLayer || []; 51 function gtag(){ dataLayer.push(arguments); } 52 window.gtag = gtag; 53 gtag('js', new Date()); 54 gtag('config', GA_ID); 55 56 /* å種æ§å¼ï¼/forms/ ã®ãã¡ã¤ã«ï¼ããã¦ã³ãã¼ããããåæ°ãæ°ãã¾ãï¼2026-09-27ï¼ 57 Googleã¢ããªãã£ã¯ã¹ã«ãform_downloadãã¨ããååã§è¨é²ãããã©ã®æ§å¼ã㯠form_name ã§ãããã¾ãã 58 ã¢ããªãã£ã¯ã¹ã®ç®¡çç»é¢ã§ããã¼ã¤ãã³ããã«æå®ããã¨ãææã¨ãã¦ã¬ãã¼ãã«åºãã¾ãã */ 59 document.addEventListener('click', function(e){ 60 var a = e.target && e.target.closest ? e.target.closest('a[href*="/forms/"]') : null; 61 if(!a) return; 62 var file = a.getAttribute('href').split('/').pop(); 63 gtag('event', 'form_download', { form_name: file }); 64 }); 65})(); 66 67/* =========================================================== 68 ãã¶ã¤ã³ï¼ãã¼ãï¼ã¨è±ç¥èã®èªåèªã¿è¾¼ã¿ 69 ------------------------------------------------------------ 70 æ´æ°ãã¼ã«ã§è¨å®ããå 容ãåæ ãã¾ãã 71 72 â 表示ãå¾ ãããªã工夫â 73 ååè¦ããå 容ããã使ããææ°çã¯ãè£ã§ãåãã«è¡ãã¾ãã 74 ãã®ããããã®å¦çã§ç»é¢ã®è¡¨ç¤ºãé ããªããã¨ã¯ããã¾ããã 75 =========================================================== */ 76(function(){ 77 var THEMES = ['theme-aoba','theme-night','theme-tanabata']; 78 79 function apply(name){ 80 if(THEMES.indexOf(name) < 0) return; 81 var link = document.querySelector('link[href*="theme-"]'); 82 if(!link) return; 83 var want = name + '.css'; 84 if(link.getAttribute('href') === want) return; // ãã§ã«åããªãä½ããã¾ãã 85 link.setAttribute('href', want); 86 } 87 88 // â ååè¦ããè¨å®ãããåæ ãã¾ãï¼ç»é¢ã®ã¡ãã¤ããé²ãã¾ãï¼ 89 try{ 90 var saved = localStorage.getItem('sen6_theme'); 91 if(saved) apply(saved); 92 93 var savedTips = localStorage.getItem('sen6_tips'); 94 if(savedTips){ 95 var arr = JSON.parse(savedTips); 96 if(Array.isArray(arr) && arr.length) window.TIPS = arr; 97 } 98 }catch(e){} 99 100 // â¡ ææ°ã®è¨å®ããè£ã§ç¢ºèªãã«ããã¾ã 101 // 102 // â ãã¼ã¸ãéããç´å¾ã«ã¯å®è¡ãã¾ããâ 103 // æ¬ä½ã®ãã¼ã¿åå¾ã¨åæã«GASãå©ãã¨ãæ··ã¿åã£ãã¨ãã« 104 // ã©ã¡ããã失æãããã¨ãããã¾ãã表示ã«ä½¿ãã®ã¯â ã® 105 // è¦ãã¦ãããå 容ãªã®ã§ããã¡ãã¯å¾åãã§æ¯éããã¾ããã 106 if(!GAS_URL) return; 107 var url = GAS_URL + (GAS_URL.indexOf('?')>=0?'&':'?') + 'type=theme'; 108 var later = function(){ setTimeout(go, 2500); }; 109 if(document.readyState === 'complete') later(); 110 else window.addEventListener('load', later); 111 return; 112 113 function go(){ 114 fetch(url).then(function(r){ return r.json(); }).then(function(j){ 115 if(!j) return; 116 if(j.theme){ 117 apply(j.theme);
118 try{ localStorage.setItem('sen6_theme', j.theme); }catch(e){} 119 } 120 if(Array.isArray(j.tips) && j.tips.length){ 121 window.TIPS = j.tips; // 次åã®èªã¿è¾¼ã¿ããããã®å 容ã使ããã¾ã 122 try{ localStorage.setItem('sen6_tips', JSON.stringify(j.tips)); }catch(e){} 123 } 124 }).catch(function(){ /* åå¾ã§ããªããã°ããã¾æå ã«ããå 容ã®ã¾ã¾ã§ã */ }); 125 } 126})(); 127 128/* ========================================================= 129 éä¿¡ã¾ãã 130 ========================================================= */ 131var SEN6 = (function(){ 132'use strict'; 133 134var LASTERR = ''; 135var CACHE = {}; 136 137function $(s){ return document.querySelector(s); } 138/** å¤ãå ¥ã£ã¦ãããï¼0 ããå ¥ã£ã¦ãããã¨æ°ãã¾ãã空æ¬ã»æªå ¥åã ãã falseï¼*/ 139function filled(v){ return v !== null && v !== undefined && String(v).trim() !== ''; } 140 141/** PDFãªã©ã®URLï¼http(s):// ããpdf/ ãªã©ãµã¤ãå ã®å ´æã ãã許å¯ãã¾ãï¼ */ 142function pdfUrl(g){ 143 var u = String((g && g['詳細URL']) || '').trim(); 144 if(!u) return ''; 145 if(/^https?:\/\//i.test(u)) return u; 146 if(/^[\w\-\/.%]+$/.test(u) && !/^\/\//.test(u)) return u; 147 return ''; 148} 149/** 試å詳細ã¸ã®ãªã³ã¯å ï¼2026-09-13 第2段éï¼ 150 ã»æææç¸¾ãªã©ã®è©³ç´°ãç»é²ããã¦ãã試å â 試å詳細ãã¼ã¸ï¼game.htmlï¼ 151 ã»è©³ç´°ã¯ç¡ããPDFã®URLã ããã試å â ãã®PDF */ 152function detailUrl(g){ 153 if(g && g['詳細ãã'] === true && g.id) return 'game.html?id=' + encodeURIComponent(g.id); 154 return pdfUrl(g); 155} 156function detailLink(g){ 157 var u = detailUrl(g); 158 if(!u) return ''; 159 var inSite = u.indexOf('game.html?') === 0; 160 return '<a class="det" href="'+esc(u)+'"'+(inSite ? '' : ' target="_blank" rel="noopener"')+'>詳細 »</a>'; 161} 162 163/** åçã»æçãå°æ°ç¹ä»¥ä¸3æ¡ã§è¡¨ç¤ºãã¾ãï¼1 â 1.000 ï¼ 0.75 â 0.750 ï¼ 0 â 0.000 ï¼ .4 â 0.400ï¼ 164 2026-09-27ï¼é£çã®ãè¦æã«ãããé ã®0ãçããªã表è¨ã«å¤æ´ */ 165function pct(v){ return rate(v, 3); } 166/** çã®è¡¨ç¤ºããããã¾ãï¼digitsï¼å°æ°ç¹ä»¥ä¸ã®æ¡æ°ãæçã»åçã¯3ãé²å¾¡çã¯2ï¼ 167 ã.409ãã0.4ãã1ããªã©å ¥åã®æ¸ãæ¹ãéã£ã¦ããåãå½¢ã§è¡¨ç¤ºãã¾ããæ°åã§ãªããã°ãã®ã¾ã¾ */ 168function rate(v, digits){ 169 if(!filled(v)) return ''; 170 var t = String(v).trim().replace(/[ï¼-ï¼ï¼]/g, function(c){ return c === 'ï¼' ? '.' : String.fromCharCode(c.charCodeAt(0) - 0xFEE0); }); 171 if(!/^-?\d*\.?\d+$/.test(t)) return String(v); 172 return Number(t).toFixed(digits == null ? 3 : digits); 173} 174/** å¾ç¹ãæ°åã§èªã¿ã¾ãããµã¨ãã©ã®ã7xããªã©ã 7 ã¨ãã¦æ±ãã¾ãï¼èªããªããã° NaNï¼ */ 175function runs(v){ 176 var m = String(v == null ? '' : v).replace(/[ï¼-ï¼]/g, function(c){ return String.fromCharCode(c.charCodeAt(0) - 0xFEE0); }).match(/\d+/); 177 return m ? Number(m[0]) : NaN; 178} 179 180function esc(s){ 181 return String(s==null?'':s).replace(/[&<>"]/g, function(c){ 182 return {'&':'&','<':'<','>':'>','"':'"'}[c]; 183 }); 184} 185 186/** type=⦠ã®URLãçµã¿ç«ã¦ã¾ã */ 187function buildUrl(params){ 188 var u = GAS_URL + (GAS_URL.indexOf('?') >= 0 ? '&' : '?'); 189 var parts = []; 190 Object.keys(params||{}).forEach(function(k){ 191 if(params[k] !== undefined && params[k] !== null && params[k] !== '') 192 parts.push(k + '=' + encodeURIComponent(params[k])); 193 }); 194 return u + parts.join('&'); 195} 196 197/** 198 * JSONPã§åå¾ãã¾ãã 199 * ãã¡ã¤ã«ãç´æ¥éããå ´åï¼file://ï¼ã§ããã©ã¦ã¶ã®å¶éãåãã¾ããã 200 */ 201function viaJsonp(url, ms){ 202 return new Promise(function(resolve, reject){ 203 var cb = 'sen6cb_' + Date.now() + Math.floor(Math.random()*1000); 204 var sc = document.createElement('script'); 205 var done = false; 206 var timer = setTimeout(function(){ cleanup(); reject(new Error('ã¿ã¤ã ã¢ã¦ã')); }, ms || 12000); 207 function cleanup(){ 208 done = true; 209 clearTimeout(timer); 210 try{ delete window[cb]; }catch(e){ window[cb] = undefined; } 211 if(sc.parentNode) sc.parentNode.removeChild(sc); 212 } 213 window[cb] = function(data){ cleanup(); resolve(data); }; 214 sc.onerror = function(){ cleanup(); reject(new Error('ã¹ã¯ãªããèªã¿è¾¼ã¿å¤±æ')); }; 215 /* GASå´ã§ã¨ã©ã¼ãèµ·ããã¨JSONã§ã¯ãªãHTMLã®ã¨ã©ã¼ç»é¢ãè¿ãã¾ãã 216 ãã®å ´å onerror ã¯èµ·ãããã³ã¼ã«ããã¯ãå¼ã°ããªãããã 217 èªã¿è¾¼ã¿å®äºã ããæ¤ç¥ãã¦ããæ¬¡ã®æã«é²ã¿ã¾ãã */ 218 sc.onload = function(){ 219 if(done) return; 220 setTimeout(function(){ 221 if(!done){ cleanup(); reject(new Error('å¿çãJSONã§ã¯ããã¾ãã')); } 222 }, 300); 223 }; 224 sc.src = url + (url.indexOf('?')>=0?'&':'?') + 'callback=' + cb; 225 document.head.appendChild(sc); 226 }); 227} 228 229/** 230 * ãã¼ã¿ãåãã«è¡ãã¾ãã 231 * ã¾ãéå¸¸ã®æ¹æ³ï¼fetchï¼ã試ãã失æãããJSONPã§å試è¡ãã¾ãã 232 * @param {Object} params ä¾: {type:'data', season:'2026-spring'} 233 * @param {*} fallback åå¾ã§ããªãã£ãã¨ãã«ä½¿ããµã³ãã«ãã¼ã¿ 234 */ 235/* 失æããåå¾ãè¦ãã¦ããããã¨ã§ããç´ããããã«ãã¾ãã 236 ã¹ãã¼ããã©ã³ã§ã¯ãèªã¿è¾¼ã¿ä¸ã«ç»é¢ãããã¯ããããå¥ã®ã¢ããªã« 237 åãæ¿ãã£ããããã¨éä¿¡ãæ¢ãããã¾ããæ»ã£ã¦ããã¨ãã«
238 èªåã§ããç´ãã®ã¯ããã®ããã®ä»çµã¿ã§ãã */ 239var RETRYQ = []; 240 241/** 1åã¶ãã®åå¾ãfetch â ã ããªãJSONPã */ 242function fetchOnce(url, ms){ 243 var ctl = (typeof AbortController !== 'undefined') ? new AbortController() : null; 244 var t = ctl ? setTimeout(function(){ ctl.abort(); }, ms) : null; 245 var opt = {redirect:'follow'}; 246 if(ctl) opt.signal = ctl.signal; 247 248 return fetch(url, opt) 249 .then(function(r){ 250 if(t) clearTimeout(t); 251 if(!r.ok) throw new Error('HTTP ' + r.status); 252 return r.text(); 253 }) 254 .then(function(txt){ 255 /* GASãã¨ã©ã¼ç»é¢ï¼HTMLï¼ãè¿ããã¨ãã¯ãããã§æ°ã¥ãã¾ã */ 256 if(!txt || txt.charAt(0) === '<') throw new Error('å¿çãJSONã§ã¯ããã¾ãã'); 257 return JSON.parse(txt); 258 }) 259 .catch(function(e1){ 260 if(t) clearTimeout(t); 261 console.warn('é常ã®åå¾ã«å¤±æãJSONPã§è©¦ãã¾ãï¼', e1.message); 262 return viaJsonp(url, ms).catch(function(e2){ 263 throw new Error('fetch=' + e1.message + ' / jsonp=' + e2.message); 264 }); 265 }); 266} 267 268/** 269 * ãã¼ã¿ãåãã«è¡ãã¾ãã 270 * 1åç®ã§ã ããªããå°ãå¾ ã£ã¦2åç®ã»3åç®ã¾ã§èªåã§ããç´ãã¾ãã 271 * GASã¯ä¹ ãã¶ãã®å¼ã³åºãã ã¨èµ·åã«æ°ç§ãããããã 272 * 1åç®ã®å¤±æã¯ãè½ã¡ããã§ã¯ãªããéã«åããªãã£ãããã¨ãã»ã¨ãã©ã§ãã 273 * @param {Object} params ä¾: {type:'data', season:'2026-spring'} 274 * @param {*} fallback åå¾ã§ããªãã£ãã¨ãã«ä½¿ããµã³ãã«ãã¼ã¿ 275 */ 276function load(params, fallback){ 277 if(!GAS_URL){ 278 LASTERR = 'GAS_URL ã空æ¬ã§ã'; 279 return Promise.resolve(fallback); 280 } 281 var key = JSON.stringify(params); 282 if(CACHE[key]) return Promise.resolve(CACHE[key]); 283 284 // ããè¿ã£ã¦ããå ´åã«ç»é¢ãã¡ãã¤ããªãããã 285 // 350ããªç§ãã£ã¦ãè¿ã£ã¦ããªãã¨ãã ãèªã¿è¾¼ã¿ç»é¢ãåºãã¾ãã 286 var showTimer = setTimeout(bootShow, 350); 287 var finish = function(){ clearTimeout(showTimer); bootHide(); }; 288 289 var url = buildUrl(params); 290 var WAITS = [9000, 13000, 18000]; // 試ããã³ã«å¾ ã¤æéãå»¶ã°ãã¾ã 291 var errs = []; 292 293 function attempt(i){ 294 return fetchOnce(url, WAITS[i]).catch(function(e){ 295 errs.push('#' + (i+1) + ' ' + e.message); 296 if(i + 1 >= WAITS.length) throw new Error(errs.join(' / ')); 297 // å°ãéãããã¦ããããç´ãã¾ãï¼é£æããã¨GASå´ã®è² è·ã«ãªãã¾ãï¼ 298 return new Promise(function(r){ setTimeout(r, 900 * (i+1)); }) 299 .then(function(){ return attempt(i+1); }); 300 }); 301 } 302 303 return attempt(0) 304 .then(function(j){ 305 if(!j) throw new Error('ãã¼ã¿ã空ã§ã'); 306 CACHE[key] = j; 307 LASTERR = ''; 308 finish(); 309 return j; 310 }) 311 .catch(function(e){ 312 LASTERR = e.message; 313 console.error('ãã¼ã¿åå¾ã«å¤±æãã¾ããï¼', e); 314 RETRYQ.push(key); 315 finish(); 316 return fallback; 317 }); 318} 319 320/** 失æãããã¨ãããä¸åº¦ã ãåãã«è¡ã£ã¦ç»é¢ãä½ãç´ãã¾ã */ 321function retryAll(){ 322 if(!RETRYQ.length || !GAS_URL) return; 323 RETRYQ = []; 324 location.reload(); 325} 326 327/* ç»é¢ãæ»ã£ã¦ããã¨ããåå失æãã¦ãããèªåã§ããç´ãã¾ãã 328 ï¼iPhoneã§ã¯ç»é¢ããã¯ä¸ã«éä¿¡ãæ¢ã¾ããããããããªãã¨
329 æ»ã£ã¦ãã¦ããµã³ãã«è¡¨ç¤ºã®ã¾ã¾ã«ãªãã¾ãï¼ */ 330if(typeof document !== 'undefined'){ 331 document.addEventListener('visibilitychange', function(){ 332 if(document.visibilityState === 'visible' && RETRYQ.length) retryAll(); 333 }); 334 window.addEventListener('online', retryAll); 335} 336 337/** ãµã³ãã«è¡¨ç¤ºä¸ã§ãããã¨ãç»é¢ä¸ã«æç¤ºãã¾ã */ 338function showState(){ 339 var box = $('#datastate'); 340 if(!box) return; 341 if(!LASTERR){ box.classList.remove('on'); return; } 342 343 var local = location.protocol === 'file:'; 344 var msg; 345 if(!GAS_URL){ 346 msg = '<b>ãµã³ãã«ã表示ãã¦ãã¾ãã</b> common.js ã® <code>var GAS_URL</code> ã«ã' 347 + 'GASã®ã¦ã§ãã¢ããªURLï¼æ«å°¾ã /execï¼ãè²¼ãä»ãã¦ãã ããã'; 348 }else if(local){ 349 msg = '<b>ãµã³ãã«ã表示ãã¦ãã¾ãã</b> ãã®ãã¡ã¤ã«ã¯ãã½ã³ã³ä¸ã§ç´æ¥éããã¦ãããã' 350 + 'ï¼ã¢ãã¬ã¹ã <code>file://</code> ã«ãªã£ã¦ãã¾ãï¼ããã©ã¦ã¶ã®å¶éã§ãã¼ã¿ãåå¾ã§ãã¾ããã' 351 + 'ãµã¼ãã¼ã«ã¢ãããã¼ãããã¨è§£æ¶ãã¾ãã'; 352 }else{ 353 /* ä¸è¬ã®æ¥è¨ªè ã«ãæå³ãéãæã«ãã¦ãã¾ãã 354 åå ã®è©³ç´°ã¯ãéå¶ã®æ¹ã確èªã§ããããæ«å°¾ã«å°ããæ®ãã¾ãã */ 355 msg = '<b>ææ°ã®ãã¼ã¿ãèªã¿è¾¼ãã¾ããã§ããã</b> ' 356 + 'éä¿¡ã®ç¶æ³ã«ãã£ã¦ã¯æéãããããã¨ãããã¾ãã' 357 + '<button type="button" class="reload">ããä¸åº¦èªã¿è¾¼ã</button>' 358 + '<code>' + String(LASTERR).replace(/[<>&]/g,'') + '</code>'; 359 } 360 var inner = box.querySelector('.in'); 361 inner.innerHTML = msg; 362 var btn = inner.querySelector('.reload'); 363 if(btn) btn.onclick = function(){ location.reload(); }; 364 box.classList.add('on'); 365} 366 367/* ========================================================= 368 ãã¼ãã£ã³ã°ç»é¢ 369 --------------------------------------------------------- 370 èªã¿è¾¼ã¿ã«æ°ç§ããããã¨ãããããããã®éã®ç»é¢ãç¨æãã¾ãã 371 è±ç¥èãåãæ¿ããªãããå¾ ã¡ããã ãä½ãã§ãã 372 ========================================================= */ 373/* èªã¿è¾¼ã¿ä¸ã«è¡¨ç¤ºããè±ç¥èï¼åæã»ããï¼ 374 æ´æ°ãã¼ã«ã®ãè±ç¥èãã¿ãã§ç·¨éããå 容ãããå ´åã¯ããã¡ããåªå ããã¾ãã 375 ããã¯ãåãã¦ãµã¤ãã訪ããæ¹ã®1åç®ãã ãã«ä½¿ããã¾ãã */ 376window.TIPS = window.TIPS || [ 377 'ä»å°å 大å¦éçé£çã¯1970å¹´4æ1æ¥ã«åµç«ããã¾ãããå çã¯ä»å°å¤§å¦ãæ±åå¦é¢å¤§å¦ãæ±åç¦ç¥å¤§å¦ãæ±åå·¥æ¥å¤§å¦ãæ±å大å¦ãå®®åæè²å¤§å¦ã®6æ ¡ã§ãã', 378 'æ±åç¦ç¥å¤§å¦ã¯1991å¹´ãå ¨æ¥æ¬å¤§å¦éçé¸ææ¨©å¤§ä¼ã§åªåãæ±åã®ãªã¼ã°ã¨ãã¦å ¨å½ã«ãã®åãå±ããå¹´ã§ããã', 379 '観æ¦ãã±ããã¯å¤§äºº800åãå¦ç500åãã·ãã¢300åã§ããä¸å¦ç以ä¸ã¯ç¡æã§ã観æ¦ããã ãã¾ãã', 380 'é£çã§ã¯å¯©å¤å¡ã»éå¶å§å¡ã»é ä¿¡é¨å¡ãåéãã¦ãã¾ããéççµé¨ããªãæ¹ãæè¿ã§ãã', 381 'å ¨è©¦åãYouTubeã§ç¡æé ä¿¡ãã¦ãã¾ããçå ´ã«æ¥ãããªãæ¥ãã試åã®æ§åãã覧ããã ãã¾ãã', 382 'æçã®ã.333ãã¯ã3ææ°ã«1æ¬ã®å²åã§å®æãæã£ã¦ããã¨ããæå³ã§ãã3å²ãè¶ ããã¨å¥½æè ã¨è¨ããã¾ãã', 383 'é²å¾¡çã¯ã9ã¤ãã³ã°ãæããã¨ããå¹³åã§ä½ç¹åãããããã表ãã¾ããæ°åãå°ããã»ã©è¯ãææã§ãã', 384 'ã¤ãã³ã°ã¹ã³ã¢ã®ã-ãã¯ããã®åã«æ»æããªãã£ããã¨ã表ãã¾ãã徿»ãã¼ã ãåã£ã¦ããå ´åã9åè£ã¯è¡ããã¾ããã', 385 'åã¡ç¹å¶ã®ãªã¼ã°ã§ã¯ãåãç¸æã¨2åããã¨åã¡ç¹1ãå ¥ãã¾ãã1å1æã®å ´åã¯3忦ãè¡ãã¾ãã', 386 'ã¹ã³ã¢ãã¼ãã®ãRã㯠Runsï¼å¾ç¹ï¼ã®é æåã§ãã' 387]; 388 389var _bootTimer = null, _tipTimer = null, _slowTimer = null; 390 391/** èªã¿è¾¼ã¿ç»é¢ãåºãã¾ã */ 392function bootShow(){ 393 if(document.getElementById('boot')) return; 394 var el = document.createElement('div');
395 el.id = 'boot'; 396 el.setAttribute('role','status'); 397 el.setAttribute('aria-live','polite'); 398 el.innerHTML = 399 '<div class="title">SENDAI BIG-SIX</div>' 400 + '<div class="pitch" aria-hidden="true">' 401 + '<span class="plate"></span><span class="line"></span>' 402 + '<span class="ball"></span><span class="mitt"></span>' 403 + '</div>' 404 + '<div class="status">èªã¿è¾¼ãã§ãã¾ãâ¦</div>' 405 + '<div class="bar"><i></i></div>' 406 + '<div class="tips"><div class="lb">BASEBALL NOTES</div><div class="tx" id="bootTip"></div></div>' 407 + '<p class="slow" id="bootSlow">ææ°ã®ãã¼ã¿ãåãã«ãã£ã¦ãã¾ããããå°ãã ããå¾ ã¡ãã ããã</p>'; 408 document.body.appendChild(el); 409 410 // è±ç¥èãã©ã³ãã ãªé ã§åãæ¿ãã¾ã 411 // ï¼æ´æ°ãã¼ã«ã§ç·¨éãããææ°ã®å 容ããããã§ä½¿ããã¾ãï¼ 412 var src = (window.TIPS && window.TIPS.length) ? window.TIPS : []; 413 var pool = src.slice().sort(function(){ return Math.random() - 0.5; }); 414 if(!pool.length) pool = ['èªã¿è¾¼ãã§ãã¾ãâ¦']; 415 var i = 0; 416 var tip = document.getElementById('bootTip'); 417 function nextTip(){
418 tip.style.animation = 'none'; 419 void tip.offsetWidth; // ã¢ãã¡ã¼ã·ã§ã³ãåçãç´ãããã®æä½ã§ã 420 tip.style.animation = ''; 421 tip.textContent = pool[i % pool.length]; 422 i++; 423 } 424 nextTip(); 425 _tipTimer = setInterval(nextTip, 4200); 426 427 // 6ç§ä»¥ä¸ããã£ãããã²ã¨ãã¨æ·»ãã¾ã 428 _slowTimer = setTimeout(function(){ 429 var s = document.getElementById('bootSlow'); 430 if(s) s.classList.add('on'); 431 }, 6000); 432} 433 434/** èªã¿è¾¼ã¿ç»é¢ãæ¶ãã¾ã */ 435function bootHide(){ 436 var el = document.getElementById('boot'); 437 if(!el) return; 438 clearInterval(_tipTimer); clearTimeout(_slowTimer); clearTimeout(_bootTimer); 439 el.classList.add('done'); 440 setTimeout(function(){ if(el.parentNode) el.parentNode.removeChild(el); }, 600); 441} 442 443/* ========================================================= 444 å ±éã®æç»ãã¼ã 445 ========================================================= */ 446 447/** ç·æ¥åç¥ */ 448function drawAlert(settings){ 449 var a = $('#alert'); 450 if(!a) return; 451 var s = settings || {}; 452 if((s['ç·æ¥åç¥']||'').trim()){ 453 a.textContent = s['ç·æ¥åç¥']; 454 a.dataset.lv = s['ç·æ¥åç¥ã¬ãã«'] || 'info'; 455 a.classList.add('on'); 456 }else{ 457 a.classList.remove('on'); 458 } 459} 460 461/** ããã¿ã¼ */ 462function drawFooter(settings){ 463 var s = settings || {}; 464 var off = $('#office'); 465 if(off){ 466 off.innerHTML = 'ä»å°å 大å¦éçé£ç äºåå±<br>' + esc(s['äºåå±ä½æ']||'') 467 + (s['äºåå±TEL'] ? '<br>TEL / FAX ' + esc(s['äºåå±TEL']) : '') 468 + (s['äºåå±ã¡ã¼ã«'] ? '<br>' + esc(s['äºåå±ã¡ã¼ã«']) : ''); 469 } 470 var sns = $('#sns'); 471 if(sns){ 472 var out = []; 473 ['X','Instagram','YouTube'].forEach(function(k){ 474 if(s[k]) out.push('<li><a href="'+esc(s[k])+'" target="_blank" rel="noopener">'+k+'</a></li>'); 475 }); 476 sns.innerHTML = out.join(''); 477 } 478 var mail = $('#ctaMail'); 479 if(mail && s['äºåå±ã¡ã¼ã«']) mail.href = 'mailto:' + s['äºåå±ã¡ã¼ã«']; 480 481 /* åéã®å¿åå ï¼Instagramï¼ã 482 ãè¨å®ãã·ã¼ãã®URLã空æ¬ã®åºåã¯ããã¿ã³ãã¨åºãã¾ããã */ 483 var cta = $('#ctaLinks'); 484 if(cta){ 485 [['éå¶å§å¡','Instagram'],['審å¤é¨','審å¤é¨Instagram'],['é ä¿¡é¨','é ä¿¡é¨Instagram']] 486 .forEach(function(pair){ 487 if(!s[pair[1]]) return; 488 cta.insertAdjacentHTML('beforeend', 489 '<a href="'+esc(s[pair[1]])+'" target="_blank" rel="noopener">' 490 + esc(pair[0]) + '</a>'); 491 }); 492 } 493} 494 495/** åºå 496 * ãåºåãã·ã¼ãã«å ãã¦ããç»åãã·ã¼ãã§ç¨éï¼ã¹ãã³ãµã¼ã®ãã®ã表示ãã¾ãã 497 * ç»åã·ã¼ãå´ã¯æ²è¼æéãæããªãããã常æè¡¨ç¤ºã«ãªãã¾ãã */ 498function drawAds(list, images){ 499 var strip = $('#adStrip'); 500 if(!strip) return; 501 502 var items = (list||[]).slice(); 503 504 /* ã¹ãã³ãµã¼ã¯ãåºåãã·ã¼ãã ãã§ç®¡çãã¾ãï¼2026-09 夿´ï¼ 505 以åã¯ãç»åãã·ã¼ãã®ç¨é=ã¹ãã³ãµã¼ãæ¾ã£ã¦ãã¾ãããã 506 äºé管çã§åããã«ããã£ããããåºåã·ã¼ãã«ä¸æ¬åãã¾ããã */ 507 508 if(!items.length){ strip.style.display = 'none'; return; } 509 strip.style.display = ''; 510 $('#adGrid').innerHTML = items.map(function(a){ 511 var inner = a.img ? '<img src="'+esc(a.img)+'" alt="'+esc(a.name||'')+'" loading="lazy">' 512 : '<span class="noimg">'+esc(a.name||'')+'</span>'; 513 var ext = a.url && a.url !== '#'; 514 return '<a href="'+esc(a.url||'#')+'"'+(ext?' target="_blank" rel="noopener sponsored"':'')+'>'+inner+'</a>'; 515 }).join(''); 516} 517 518/** ã¢ãã¤ã«ã¡ãã¥ã¼ */ 519function initMenu(){ 520 var bg = document.getElementById('burger'), nv = document.getElementById('nav'); 521 if(!bg || !nv) return; 522 bg.onclick = function(){ 523 var open = nv.classList.toggle('open'); 524 bg.setAttribute('aria-expanded', String(open)); 525 bg.textContent = open ? 'CLOSE' : 'MENU'; 526 }; 527 nv.addEventListener('click', function(e){ 528 if(e.target.tagName === 'A'){ nv.classList.remove('open'); bg.textContent = 'MENU'; } 529 }); 530} 531 532/** æ´æ°æ¥æã®è¡¨ç¤º */ 533function drawGen(at){ 534 var g = $('#gen'); 535 if(g) g.textContent = 'DATA UPDATED ' + (at || ''); 536} 537 538/* ========================================================= 539 å°ç© 540 ========================================================= */ 541
542/** 543 * éå§æå»ãã10:00ãã®å½¢ã«æ´ãã¾ãã 544 * ã¹ãã¬ããã·ã¼ãã§æå»ã ããå ¥åãã㨠545 * ã1899-12-30 10:00ãã®ãããªæ¥æã¨ãã¦ä¿åãããããã 546 * ã©ããªå½¢ã§å ¥ã£ã¦ãã¦ãæå»é¨åã ããåãåºãã¾ãã 547 */ 548function htime(v){ 549 var s = String(v == null ? '' : v).trim(); 550 if(!s) return ''; 551 // æååã®ä¸ãããæ:åããæ¢ãã¾ãï¼1899-12-30 10:00 ãªã©ãæ¾ãã¾ãï¼ 552 var m = s.match(/(\d{1,2})\s*[:ï¼]\s*(\d{2})/); 553 if(m){ 554 var hh = String(Number(m[1])).padStart(2,'0'); 555 return hh + ':' + m[2]; 556 } 557 // ã1000ãã10æãã®ãããªæ¸ãæ¹ã«ãä¸å¿å¯¾å¿ãã¾ã 558 var m2 = s.match(/^(\d{1,2})\s*æ\s*(\d{1,2})?\s*å?$/); 559 if(m2) return String(Number(m2[1])).padStart(2,'0') + ':' + (m2[2] ? String(Number(m2[2])).padStart(2,'0') : '00'); 560 var m3 = s.match(/^(\d{1,2})(\d{2})$/); 561 if(m3) return String(Number(m3[1])).padStart(2,'0') + ':' + m3[2]; 562 return s; 563} 564 565/** 566 * ç¯ã®è¡¨è¨ãæ´ãã¾ãã 567 * ã2ãã¨ã ãå ¥åããã¦ãã¦ãã第2ç¯ãã¨è¡¨ç¤ºãã¾ãã 568 * ãæºæ±ºåããæ±ºåããªã©ã®æåã¯ãã®ã¾ã¾ã§ãã 569 */ 570function hround(v){ 571 var s = String(v == null ? '' : v).trim(); 572 if(!s) return ''; 573 if(/^\d+$/.test(s)) return '第' + s + 'ç¯'; // 2 â 第2ç¯ 574 if(/^第?\d+$/.test(s)) return '第' + s.replace(/^第/,'') + 'ç¯'; 575 return s; 576} 577 578/** 579 * æ¥ä»ããYYYY-MM-DDãã«æãã¾ãã 580 * ã¹ãã¬ããã·ã¼ãã«æã§å ¥åããã㨠581 * ã2026/8/30ãã2026.8.30ãã2026å¹´8æ30æ¥ããªã©æ¸ãæ¹ãæºãã¾ãã 582 * ã©ããåãæ¥ã¨ãã¦æ±ããããã«ããããã®é¢æ°ã§ãã 583 * å¤å¥ã§ããªãã¨ãã¯ç©ºæåãè¿ãã¾ãã 584 */ 585function ymd(v){ 586 var s = String(v==null?'':v).trim(); 587 if(!s) return ''; 588 var m = s.match(/(\d{4})\s*[-\/.å¹´]\s*(\d{1,2})\s*[-\/.æ]\s*(\d{1,2})/); 589 if(!m) return ''; 590 return m[1] + '-' 591 + ('0'+m[2]).slice(-2) + '-' 592 + ('0'+m[3]).slice(-2); 593} 594function fdate(v){ 595 var d = ymd(v); 596 return d ? d.replace(/-/g,'.') : String(v||''); 597} 598function md(v){ 599 var d = ymd(v); 600 return d ? Number(d.slice(5,7))+'/'+Number(d.slice(8,10)) : String(v||''); 601} 602/** ãããã®æ¥ä»ããYYYY-MM-DDãã§è¿ãã¾ã */ 603function todayYmd(){ 604 var t = new Date(); 605 return t.getFullYear() + '-' 606 + ('0'+(t.getMonth()+1)).slice(-2) + '-' 607 + ('0'+t.getDate()).slice(-2); 608} 609function byRank(a,b){ return (Number(a['é ä½'])||99)-(Number(b['é ä½'])||99); } 610 611/** ã¿ãã®åãæ¿ããæå¹ã«ãã¾ã */ 612function bindTabs(tabSel, scope){ 613 document.querySelectorAll(tabSel + ' button').forEach(function(b){ 614 b.onclick = function(){ 615 document.querySelectorAll(tabSel + ' button').forEach(function(x){ 616 x.setAttribute('aria-selected', String(x === b)); 617 }); 618 document.querySelectorAll(scope + ' .pane').forEach(function(p){ 619 p.classList.toggle('on', p.dataset.p === b.dataset.p); 620 }); 621 }; 622 }); 623} 624 625/** 626 * 1試ååã®ã¤ãã³ã°ã¹ã³ã¢ãæãã¾ãã 627 * åãã¨ã®å¾ç¹ãå ¥ã£ã¦ããªã試åã¯ãåè¨ã ãã®ã·ã³ãã«ãªè¡¨ç¤ºã«ãªãã¾ãã 628 * ã¹ãã¼ããã©ã³ã§ã¯å¤§å¦åãç¥ç§°ã«ãã¦ã9åï¼åè¨ãç»é¢ã«åã¾ãããã«ãã¦ãã¾ãã 629 * @param {Object} g 試åãã¼ã¿ 630 * @param {Object} short æ£å¼åç§°âç¥ç§°ã®å¯¾å¿è¡¨ï¼çç¥å¯ï¼ 631 */ 632/* ãã¼ã¸å ãªã³ã¯ï¼ã#ãã§å§ã¾ããªã³ã¯ï¼ãæ¼ããã¨ãã®ä½ç½®åããï¼2
632026-09-16ï¼ 633 åçãªã©ãå¾ããèªã¿è¾¼ã¾ãã¦é«ããå¤ããã¨ãæ¼ããç´å¾ã®ä½ç½®ããããã¦ãã¾ãããã 634 å°ãæéãããã¦2åãä½ç½®ãåããç´ãã¾ãã */ 635document.addEventListener('click', function(e){ 636 var a = e.target && e.target.closest ? e.target.closest('a[href^="#"]') : null; 637 if(!a) return; 638 var id = a.getAttribute('href'); 639 if(!id || id.length < 2) return; 640 var el; 641 try{ el = document.querySelector(id); }catch(err){ return; } 642 if(!el) return; 643 e.preventDefault(); 644 try{ history.replaceState(null, '', id); }catch(err){} 645 var go = function(){ el.scrollIntoView(); }; 646 go(); 647 setTimeout(go, 300); 648 setTimeout(go, 900); 649}); 650 651/** ã¤ãã³ã°ãã¨ã®è¡¨ç¤ºç¨ã®å¤ï¼2026-09-15ï¼ 652 0 ã空æ¬ã§ä¿åããã¦ãã¦ãã試åãé²ãã åã¯ã0ãã«ãã¾ãã 653 試åçµäºã§å¾æ»ãåã£ã¦ãã¦9åè£ã空æ¬ãªããxãã«ãã¾ããã¾ã è¡ã£ã¦ããªãåã¯ç©ºæ¬ã®ã¾ã¾ã */ 654function innings(g){ 655 var done = (g['ç¶æ '] === '試åçµäº'); 656 var hasEx = filled(g['å å»¶é·']) || filled(g['å¾å»¶é·']); 657 function lastOf(pre){ var l = 0; for(var i=1;i<=9;i++) if(filled(g[pre+i])) l = i; return l; } 658 var la = lastOf('å '), lb = lastOf('å¾'); 659 var both = Math.max(la, lb); 660 // 試åçµäºã¯9åã¾ã§ï¼åèã«ã7åã³ã¼ã«ãããªã©ã¨ããã°ããã®åã¾ã§ï¼ 661 if(done){ 662 var called = /(\d+)\s*å\s*ã³ã¼ã«ã/.exec(String(g['åè'] || '')); 663 both = called ? Math.max(both, Math.min(9, Number(called[1]))) : 9; 664 } 665 function row(pre, last){ 666 var out = []; 667 for(var i=1;i<=9;i++){ 668 var v = g[pre+i]; 669 if(filled(v)) out.push(String(v).trim()); 670 else if(i <= last){ 671 var homeWin = runs(g['徿»å¾ç¹']) > runs(g['å æ»å¾ç¹']); // ã7xããæ°ããï¼2026-09-27ï¼ 672 out.push(pre === 'å¾' && i === 9 && done && !hasEx && homeWin ? 'x' : '0'); 673 } 674 else out.push(''); 675 } 676 return out; 677 } 678 return { a: row('å ', done ? both : la), b: row('å¾', done ? both : lb), hasEx: hasEx }; 679} 680 681/** å»¶é·ã®è¡¨ç¤ºç¨ã®å¤ï¼2026-09-27ï¼ 682 ã0 1ãã®ããã«åãã¨ã«åºåã£ã¦å ¥åããã¦ããã°ã10åã»11åâ¦ã¨1åãã¤ã®åã«ãã¾ãã 683 æ°å1ã¤ã ãï¼ä»¥åã®å ¥åæ¹æ³ï¼ã®å ´åã¯ãããã¾ã§ã©ãããå»¶ãã®1åã«ã¾ã¨ãã¦è¡¨ç¤ºãã¾ãã 684 æ»ãå¤ï¼{ cols:['10','11'], a:['0','0'], b:['0','1'] }ï¼å»¶é·ãªã㯠cols ã空 */ 685function extras(g){ 686 function split(v){ 687 if(!filled(v)) return []; 688 return String(v).replace(/[ï¼-ï¼]/g, function(c){ return String.fromCharCode(c.charCodeAt(0) - 0xFEE0); }) 689 .trim().split(/[\s,ãï¼ã»\/]+/).filter(function(t){ return t !== ''; }); 690 } 691 var a = split(g['å å»¶é·']), b = split(g['å¾å»¶é·']); 692 var n = Math.max(a.length, b.length); 693 if(!n) return { cols: [], a: [], b: [] }; 694 if(n === 1) return { cols: ['å»¶'], a: [a[0] || '-'], b: [b[0] || '-'] }; 695 // 徿»ããµã¨ãã©åã¡ãã¦æçµåã®è£ããªãå ´åã¯ãxãã«ãã¾ã 696 var homeWin = g['ç¶æ '] === '試åçµäº' && runs(g['徿»å¾ç¹']) > runs(g['å æ»å¾ç¹']); 697 var cols = [], ra = [], rb = []; 698 for(var i = 0; i < n; i++){ 699 cols.push(String(10 + i)); 700 ra.push(i < a.length ? a[i] : ''); 701 rb.push(i < b.length ? b[i] : (homeWin && i === n - 1 ? 'x' : '')); 702 } 703 return { cols: cols, a: ra, b: rb }; 704} 705 706function lineScore(g, short, articles){ 707 short = short || {}; 708 709 /* ãã®è©¦åã«ç´ã¥ãæ°èè¨äºã®ãªã³ã¯ãçµã¿ç«ã¦ã¾ã */ 710 var press = ''; 711 if(articles && articles.length){ 712 var mine = articles.filter(function(a){ return String(a['試åID']||a.gameId||'') === String(g.id); }); 713 if(mine.length){ 714 press = '<div class="press">' + mine.map(function(a){ 715 var url = a['ãªã³ã¯'] || a.url || ''; 716 var md = a['åªä½'] || a.media || 'è¨äº'; 717 var tt = a['è¦åºã'] || a.title || 'é¢é£è¨äº'; 718 return '<a href="'+esc(url)+'" target="_blank" rel="noopener"'+(isPdf(url)?' data-pdf="'+esc(tt)+'"':'')+'>' 719 + '<span class="md">'+esc(md)+'</span>' 720 + '<span class="tt">'+esc(tt)+(isPdf(url)?' <b class="pdfTag">PDF</b>':'')+'</span></a>'; 721 }).join('') + '</div>'; 722 } 723 } 724 var st = g['ç¶æ '] || ''; 725 var isX = (st === '䏿¢' || st === 'é å»¶'); 726 var hasInnings = false;
727 for(var n=1;n<=9;n++){ 728 if(filled(g['å '+n]) || filled(g['å¾'+n])){ hasInnings = true; break; } 729 } 730 var hasEx = filled(g['å å»¶é·']) || filled(g['å¾å»¶é·']); 731 732 /* æ£å¼åç§°ã¨ç¥ç§°ã®ä¸¡æ¹ãæ¸ãåºããç»é¢å¹ ã§åãæ¿ãã¾ã */ 733 function teamName(name){ 734 var ab = short[name] || name; 735 return '<span class="tn"><span class="full">' + esc(name) + '</span>' 736 + '<span class="abbr">' + esc(ab) + '</span></span>'; 737 } 738 739 var head = '<div class="cap"><span class="st'+(isX?' x':'')+'">' 740 + esc(st) + ' ï¼ ' + esc(fdate(g['æ¥ä»'])) + (g['ç¯'] ? 'ï¼'+esc(hround(g['ç¯']))+'ï¼' : '') 741 + '</span><span>' + esc(g['çå ´']||'') + detailLink(g) + '</span></div>'; 742 743 if(isX || !hasInnings){ 744 var sc = (g['å æ»å¾ç¹'] !== '' && g['å æ»å¾ç¹'] != null) 745 ? esc(g['å æ»å¾ç¹']) + ' - ' + esc(g['徿»å¾ç¹']) : 'â'; 746 return '<div class="linescore">' + head 747 + '<div style="padding:18px 15px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap">' 748 + '<span style="font-weight:700;font-size:14px">'+esc(g['å æ»'])+' 対 '+esc(g['徿»'])+'</span>' 749 + '<span style="font-family:var(--cond);font-size:26px;color:'+(isX?'var(--ng)':'var(--amber)')+'">' 750 + (isX ? esc(st) : sc) + '</span></div>' 751 + (g['åè'] ? '<div class="pitchers">'+esc(g['åè'])+'</div>' : '') 752 + press 753 + '</div>'; 754 } 755 756 var cols = ''; 757 var EX = extras(g); 758 for(var i=1;i<=9;i++) cols += '<th>'+i+'</th>'; 759 EX.cols.forEach(function(c){ cols += '<th>'+esc(c)+'</th>'; }); 760 761 var INN = innings(g); 762 function rowFor(prefix, team, total){ 763 var tds = '', vals = prefix === 'å ' ? INN.a : INN.b; 764 for(var i=1;i<=9;i++){
765 // 空æ¬ã§ä¿åããã0ãã0ãã¨è¡¨ç¤ºãã¾ããè¡ã£ã¦ããªãåï¼ã³ã¼ã«ãã®8ã»9åãªã©ï¼ã¯ç©ºæ¬ 766 tds += '<td>' + esc(vals[i-1]) + '</td>'; 767 } 768 (prefix === 'å ' ? EX.a : EX.b).forEach(function(v){ tds += '<td>' + esc(v) + '</td>'; }); 769 return '<tr><td class="tmcell">'+teamName(team)+'</td>'+tds+'<td class="run">'+esc(total)+'</td></tr>'; 770 } 771 772 var pitchers = ''; 773 if(g['å æ»ææ'] || g['徿»ææ']){ 774 pitchers = '<div class="pitchers">' 775 + (g['å æ»ææ'] ? '<span>å çºï¼'+esc(short[g['å æ»']]||g['å æ»'])+'ï¼ï¼<b>'+esc(g['å æ»ææ'])+'</b></span>' : '') 776 + (g['徿»ææ'] ? '<span>å çºï¼'+esc(short[g['徿»']]||g['徿»'])+'ï¼ï¼<b>'+esc(g['徿»ææ'])+'</b></span>' : '') 777 + '</div>'; 778 } 779 780 return '<div class="linescore'+(hasEx?' hasEx':'')+'">' + head 781 + '<div class="scroll"><table><thead><tr><th class="tmcell"></th>'+cols+'<th class="run">R</th></tr></thead><tbody>' 782 + rowFor('å ', g['å æ»'], g['å æ»å¾ç¹']) 783 + rowFor('å¾', g['徿»'], g['徿»å¾ç¹']) 784 + '</tbody></table></div>' 785 + pitchers 786 + (g['åè'] ? '<div class="pitchers">'+esc(g['åè'])+'</div>' : '') 787 + press 788 + '</div>'; 789} 790 791/** ãªã³ã¯å ãPDFãï¼Googleãã©ã¤ãã«ç»é²ããPDFãå«ã¿ã¾ãï¼2026-09-27 */ 792function isPdf(u){ 793 var s = String(u||''); 794 return /\.pdf(\?|#|$)/i.test(s) || /drive\.google\.com\/file\/d\//.test(s); 795} 796 797/** 798 * æå表ï¼å¤§å¦ã©ããã®å¯¾æ¦çµæã®ä¸è¦§ï¼2026-09-27 799 * å çæ ¡ã©ããã®ã試åçµäºãã§å¾ç¹ãå ¥ã£ã¦ãã試åã ããæ°ãã¾ãã 800 * è¡ã®å¤§å¦ããè¦ã¦ âåã¡ âè² ã â³å¼ãåããåãç¸æã¨ã®è©¦åã¯æ¥ä»é ã«ä¸¦ã¹ã¾ãã 801 * å çæ ¡ä»¥å¤ã¨ã®è©¦åï¼å ¨æ¥æ¬é¸ææ¨©ãªã©ï¼ã¯å«ãã¾ããã 802 * @param {Array} games 試å 803 * @param {Array} teams å çæ ¡ï¼{name, short, order}ï¼ 804 * @param {Array} standings é ä½è¡¨ï¼ããã°ããã®é ã«ä¸¦ã¹ã¾ãï¼ 805 */ 806function hoshitori(games, teams, standings){ 807 var names = (teams||[]).slice().sort(function(a,b){ return (Number(a.order)||99)-(Number(b.order)||99); }) 808 .map(function(t){ return t.name; }); 809 var rank = (standings||[]).slice().sort(byRank).map(function(r){ return r['大å¦']; }) 810 .filter(function(n){ return names.indexOf(n) >= 0; }); 811 names = rank.concat(names.filter(function(n){ return rank.indexOf(n) < 0; })); 812 var short = {}; (teams||[]).forEach(function(t){ short[t.name] = t.short || t.name; }); 813 814 var cell = {}, win = {}, lose = {}, draw = {}, n = 0; 815 names.forEach(function(x){ win[x] = lose[x] = draw[x] = 0; }); 816 (games||[]).slice().sort(function(x,y){ 817 return String(ymd(x['æ¥ä»'])).localeCompare(String(ymd(y['æ¥ä»']))) 818 || String(x['éå§æå»']).localeCompare(String(y['éå§æå»'])); 819 }).forEach(function(g){ 820 var A = g['å æ»'], B = g['徿»']; 821 if(names.indexOf(A) < 0 || names.indexOf(B) < 0) return; 822 if(g['ç¶æ '] === '䏿¢' || g['ç¶æ '] === 'é å»¶') return; 823 if(!filled(g['å æ»å¾ç¹']) || !filled(g['徿»å¾ç¹'])) return; 824 // ãµã¨ãã©ã®ã7xãã®ãããªå¾ç¹ãæ°ãã¾ãï¼2026-09-27 ä¿®æ£ï¼ä»¥åã¯æ°ããã«é£ã°ãã¦ãã¾ããï¼ 825 var a = runs(g['å æ»å¾ç¹']), b = runs(g['徿»å¾ç¹']); 826 if(isNaN(a) || isNaN(b)) return; 827 var ra = a > b ? 'â' : a < b ? 'â' : 'â³', rb = a > b ? 'â' : a < b ? 'â' : 'â³'; 828 (cell[A+'|'+B] = cell[A+'|'+B] || []).push(ra); 829 (cell[B+'|'+A] = cell[B+'|'+A] || []).push(rb); 830 if(a > b){ win[A]++; lose[B]++; } else if(a < b){ win[B]++; lose[A]++; } else { draw[A]++; draw[B]++; } 831 n++; 832 }); 833 if(!n) return ''; 834 835 var mk = function(list){ 836 return (list||[]).map(function(m){ 837 return '<i class="'+(m==='â'?'w':m==='â'?'l':'d')+'">'+m+'</i>'; 838 }).join(''); 839 }; 840 return '<div class="tw"><table class="hoshi"><thead><tr><th class="l">大å¦</th>' 841 + names.map(function(x){ return '<th>'+esc(short[x])+'</th>'; }).join('') 842 + '<th>å</th><th>è² </th><th>å</th></tr></thead><tbody>' 843 + names.map(function(x){ 844 return '<tr><td class="l">'+esc(short[x])+'</td>' 845 + names.map(function(y){ 846 return x === y ? '<td class="self"></td>' : '<td>'+mk(cell[x+'|'+y])+'</td>'; 847 }).join('') 848 + '<td class="sm">'+win[x]+'</td><td class="sm">'+lose[x]+'</td><td class="sm">'+draw[x]+'</td></tr>'; 849 }).join('') 850 + '</tbody></table></div>' 851 + '<p class="hoshiNote">âåã¡ âè² ã â³å¼ãåãï¼è¡ã®å¤§å¦ããè¦ãçµæã»è©¦åé ï¼</p>'; 852} 853
854/** 855 * è¡¨å½°é¸æã®ä¸è¦§ 2026-09-27 856 * @param {Array} list ã表彰ãã·ã¼ãã®è¡ï¼å ¥åããé ã«ä¸¦ã¹ã¾ãï¼ 857 * @param {Object} short 大å¦å â ç¥ç§° 858 */ 859function awards(list, short){ 860 list = (list||[]).filter(function(r){ return String(r['è³']||'').trim() || String(r['æ°å']||'').trim(); }); 861 if(!list.length) return ''; 862 short = short || {}; 863 return '<div class="awGrid">' + list.map(function(r){ 864 var nm = r['鏿ID'] 865 ? '<a href="player.html?id='+encodeURIComponent(r['鏿ID'])+'">'+esc(r['æ°å'])+'</a>' 866 : esc(r['æ°å']); 867 return '<div class="awItem"><span class="aw">'+esc(r['è³']||'')+'</span>' 868 + '<span class="nm">'+nm+'</span>' 869 + '<span class="tm">'+esc(short[r['大å¦']]||r['大å¦']||'')+(r['åè']?' ï¼ '+esc(r['åè']):'')+'</span></div>'; 870 }).join('') + '</div>'; 871} 872 873/** 874 * PDFã®è¨äºããµã¤ãã®ä¸ã§å¤§ãã表示ãã¾ãï¼2026-09-27ï¼ 875 * Googleãã©ã¤ãã®ãã¡ã¤ã«ã¯ãä½è¨ãªãã¿ã³ã®ãªãã表示å°ç¨ãã®ç»é¢ã§éãã¾ãã 876 * data-pdf ã®ä»ãããªã³ã¯ãæ¼ãã¨ããã®ç»é¢ãéãã¾ãã 877 */ 878function pdfSrc(u){ 879 var m = String(u||'').match(/drive\.google\.com\/(?:file\/d\/|open\?id=|uc\?[^#]*id=)([\w-]{20,})/); 880 return m ? 'https://drive.google.com/file/d/' + m[1] + '/preview' : String(u||''); 881} 882function pdfView(url, title){ 883 var box = document.getElementById('pdfView'); 884 if(!box){ 885 box = document.createElement('div'); 886 box.id = 'pdfView'; 887 box.innerHTML = '<div class="pv-in" role="dialog" aria-modal="true">' 888 + '<div class="pv-hd"><span class="pv-t"></span>' 889 + '<a class="pv-open" target="_blank" rel="noopener">æ°ããã¿ãã§éã â</a>' 890 + '<button type="button" class="pv-x" aria-label="éãã">éãã â</button></div>' 891 + '<iframe class="pv-f" title="è¨äºPDF" allow="autoplay"></iframe></div>'; 892 document.body.appendChild(box); 893 box.addEventListener('click', function(e){ if(e.target === box) closePdf(); }); 894 box.querySelector('.pv-x').onclick = closePdf; 895 document.addEventListener('keydown', function(e){ if(e.key === 'Escape') closePdf(); }); 896 } 897 box.querySelector('.pv-t').textContent = title || 'è¨äº'; 898 box.querySelector('.pv-open').href = url; 899 box.querySelector('.pv-f').src = pdfSrc(url); 900 box.classList.add('on'); 901 document.documentElement.style.overflow = 'hidden'; 902} 903function closePdf(){ 904 var box = document.getElementById('pdfView'); if(!box) return; 905 box.classList.remove('on'); box.querySelector('.pv-f').src = 'about:blank'; 906 document.documentElement.style.overflow = ''; 907} 908/* PDFã®è¨äºãªã³ã¯ï¼data-pdfä»ãï¼ã¯ããã¼ã¸ãç§»åããã«ãã®ç»é¢ã§éãã¾ã */ 909document.addEventListener('click', function(e){ 910 var a = e.target && e.target.closest ? e.target.closest('a[data-pdf]') : null; 911 if(!a || e.ctrlKey || e.metaKey || e.shiftKey) return; 912 e.preventDefault(); 913 pdfView(a.getAttribute('href'), a.getAttribute('data-pdf')); 914}); 915 916/* è¦åºã帯ã®åçï¼2026-09-29ï¼ 917 åãã¼ã¸ä¸é¨ã®è¦åºã帯ã«ããµã¼ãã¼ã® img/up/ ãã©ã«ãã®åçãèæ¯ã¨ãã¦å ¥ãã¾ãã 918 img/up/ãã¼ã¸å.jpg ⦠ãã®ãã¼ã¸ã ãï¼ä¾ï¼éå»ã®å¤§ä¼ï¼img/up/archive.jpgï¼ 919 img/up/common.jpg ⦠ãã¼ã¸ãã¨ã®åçãç¡ãã¨ãã«ãå ¨ãã¼ã¸å ±éã§ä½¿ãã¾ã 920 ã©ã¡ããç¡ããã°ãããã¾ã§ã©ããã®è¦åºã帯ã®ã¾ã¾ã§ãã */ 921var HEAD_DIR = 'img/up/'; 922var HEAD_PAGES = ['archive','player','press','league','records','game','interview']; 923function pageHeadPhoto(){ 924 var ph = document.querySelector('.pagehead'); 925 var m = location.pathname.match(/([\w-]+)\.html$/); 926 if(!ph || !m || HEAD_PAGES.indexOf(m[1]) < 0) return; 927 var list = [HEAD_DIR + m[1] + '.jpg', HEAD_DIR + 'common.jpg']; 928 (function next(i){ 929 if(i >= list.length) return; 930 var im = new Image(); 931 im.onload = function(){ 932 ph.style.backgroundImage = 'linear-gradient(rgba(18,42,78,.74),rgba(18,42,78,.82)),url("' + list[i] + '")'; 933 ph.classList.add('hasPhoto'); 934 }; 935 im.onerror = function(){ next(i + 1); }; 936 im.src = list[i]; 937 })(0); 938} 939if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', pageHeadPhoto); 940else pageHeadPhoto(); 941 942/* å ¬éãã颿° */ 943return { 944 $: $, esc: esc, 945 load: load, showState: showState, viaJsonp: viaJsonp, buildUrl: buildUrl, 946 bootShow: bootShow, bootHide: bootHide, 947 drawAlert: drawAlert, drawFooter: drawFooter, drawAds: drawAds, 948 initMenu: initMenu, drawGen: drawGen, 949 fdate: fdate, md: md, pct: pct, filled: filled, innings: innings, extras: extras, detailLink: detailLink, pdfUrl: pdfUrl, htime: htime, hround: hround, 950 ymd: ymd, todayYmd: todayYmd, 951 byRank: byRank, bindTabs: bindTabs, lineScore: lineScore, 952 isPdf: isPdf, hoshitori: hoshitori, awards: awards, rate: rate, runs: runs, pdfView: pdfView, 953 get lastError(){ return LASTERR; } 954}; 955})();
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.