PageSourceSearch

https://www.seibulions.jp/gourmet/js/changeTabClass.js

js seibulions.jp collected 2026-10-02 02:34:39 UTC 15,145 bytes, 504 lines download raw bytes

1const G_CURRENT_URL = new URL(window.location.href);
2//console.log(G_CURRENT_URL.pathname);
3const G_URL_ARRAY = G_CURRENT_URL.pathname.split('/');
4const G_NUMS = G_URL_ARRAY[(G_URL_ARRAY.length - 1)].split('.');
5const G_ID = G_NUMS[0];
6//console.log(G_CURRENT_URL.pathname)
7let G_NUM;
8const G_DETAILS = document.getElementsByClassName('shopDetail__menuList');
9const G_SEARCH = document.getElementsByClassName('shopList');
10
11const G_CAT_DIRECTORY = '/category/';
12
13const SHOP_CSV = '../tsv/shoplist.tsv';
14const MENU_CSV = '../tsv/menulist.tsv';
15const CAT_CSV = '../../tsv/category.tsv';
16
17const SESSION_SHOP = 'lionsGourmet2023Shop';
18const SESSION_MENU = 'lionsGourmet2023Menu';
19const SESSION_CAT = 'lionsGourmet2023Category';
20
21let G_SHOP = [];
22let G_MENU = [];
23let G_CAT = [];
24let S_SHOP;
25let S_MENU;
26let S_CAT;
27let CAT_l;
28let G_RELOAD;
29let O_SHOP = [];
30
31S_SHOP = sessionStorage.getItem(SESSION_SHOP);
32S_MENU = sessionStorage.getItem(SESSION_MENU);
33S_CAT = sessionStorage.getItem(SESSION_CAT);
34
35if (sessionStorage.getItem('isReloaded')  == G_CURRENT_URL.pathname) {
36    console.log('reload');
37    sessionStorage.removeItem('isReloaded');
38    G_RELOAD = 1;
39  } else {
40    //console.log('-');
41    sessionStorage.setItem('isReloaded', G_CURRENT_URL.pathname);
42    G_RELOAD = 0;
43  }
44  
45  // beforeunloadイベントでリロードされたかどうかの情報を保存
46  window.addEventListener('beforeunload', function() {
47    sessionStorage.setItem('isReloaded', G_CURRENT_URL.pathname);
48  });
49//カテゴリーページかどうか
50if (G_CURRENT_URL.pathname.match(G_CAT_DIRECTORY)) {
51    //console.log('category');
52    //console.log(G_NUMS[0])
53    switch (G_NUMS[0]) {
54        case 'side':
55          CAT_l = 7;
56          break;
57        case 'sweets':
58          CAT_l = 8;
59          break;
60        case 'alcohol':
61          CAT_l = 9;
62          break;
63        case 'non-alcohol':
64            CAT_l = 10;
65            break;
66        case 'softdrink':
67            CAT_l = 10;
68            break;
69        default:
70            CAT_l = 6;
71          // メイン
72      }
73    if(S_CAT == null || G_RELOAD == 1){
74        //console.log('セッションなし');
75        console.log('loading');
76        catListCsv();
77    }else{
78        //console.log(CAT_l);
79        if(S_CAT != ''){
80        G_CAT = JSON.parse(S_CAT);
81        DOM_catFunc(CAT_l);
82        }else{
83            catListCsv();
84        }
85    };
86 }else{
87    if(S_SHOP == null || G_RELOAD == 1){
88        //console.log('セッションなし');
89        console.log('loading');
90        shopListCsv();
91        menuListCsv();
92    }else{
93        //console.log('セッション有り');
94        if(S_SHOP != ''){
95        G_SHOP = JSON.parse(S_SHOP);
96        G_MENU = JSON.parse(S_MENU);
97        //console.log(G_SHOP)
98        
99        shopNum(G_SHOP);
100        DOM_SEARCH();
101        }else{
102            shopListCsv();
103            menuListCsv();   
104        }
105    };
106 }
107
108function shopNum(arr){
109    let flg = false;
110    for (let i = 0; i < arr.length; i++) {
111        for (let j = 0; j < arr[0].length; j++) {
112        if(arr[i][j] === G_ID){
113            G_NUM = i;
114            //console.log(i);
115            flg = true;
116            break;
117        };
118        }
119    }
120    /* 詳細ページ */
121    if(G_DETAILS.length){
122        //console.log('details');
123        DOM_titleFunc('head02');
124        DOM_areaFunc();
125        // DOM_menuFunc();
126    }
127}
128function DOM_SEARCH(){
129    if(document.getElementsByClassName('page--border').length && G_SEARCH.length && !document.getElementsByClassName('page--border--1st').length && !document.getElementsByClassName('page--border--outside').length){
130        console.log('3rd');
131        DOM_searchShop(3);
132    }
133    if(document.getElementsByClassName('page--border--1st').length && G_SEARCH.length){
134        console.log('1st');
135        DOM_searchShop(1);
136    }
137    if(document.getElementsByClassName('page--border--outside').length && G_SEARCH.length){
138        console.log('outside');
139        DOM_searchShop('outside');
140    }
141}
142
143/* 配列変換 */
144function shopListCsv(){
145    let csv = new XMLHttpRequest();
146    csv.open('GET',SHOP_CSV, false);
147    try {
148        csv.send(null);
149      } catch (err) {
150        console.log(err);
151      }
152        let lines = csv.responseText.split(/\r\n|\n/);
153        for (let i = 0; i < lines.length; ++i) {
154        let cells = lines[i].split('\t');
155            if (cells.length != 1) {
156                G_SHOP.push(cells);
157            }
158        }
159        //console.log(G_SHOP)
160
161
162        let json = JSON.stringify(G_SHOP, undefined, 1);
163        sessionStorage.setItem(SESSION_SHOP, json);
164
165        shopNum(G_SHOP);
166        DOM_SEARCH();
167}
168
169
170function menuListCsv(){
171    let csv = new XMLHttpRequest();
172    csv.open('GET',MENU_CSV, false);
173    try {
174        csv.send(null);
175      } catch (err) {
176        console.log(err);
177      }
178        let lines = csv.responseText.split(/\r\n|\n/);
179        
180        for (let i = 0; i < lines.length; ++i) {
181        let cells = lines[i].split('\t');
182            if (cells.length != 1) {
183                G_MENU.push(cells);
184            }
185        }
186        let json = JSON.stringify(G_MENU, undefined, 1);
187        sessionStorage.setItem(SESSION_MENU, json);
188        if(G_DETAILS.length){
189        // DOM_menuFunc();
190        }
191}
192
193function catListCsv(){
194    let csv = new XMLHttpRequest();
195    csv.open('GET',CAT_CSV, false);
196    try {
197        csv.send(null);
198      } catch (err) {
199        console.log(err);
200      }
201        let lines = csv.responseText.split(/\r\n|\n/);
202        
203        for (let i = 0; i < lines.length; ++i) {
204        let cells = lines[i].split('\t');
205            if (cells.length != 1) {
206                G_CAT.push(cells);
207            }
208        }
209        let json = JSON.stringify(G_CAT, undefined, 1);
210        sessionStorage.setItem(SESSION_CAT, json);
211        //console.log(G_CAT);
212        DOM_catFunc(CAT_l);
213}
214
215/* img */
216function DOM_imgFunc(elem,file){
217    let data = document.getElementsByClassName(elem);
218    for (value of data[0].children) {
219     
220        if(value['localName'] === 'img'){
221            value.src = '../img/shop/'+G_ID+'/'+file;
222        }
223     }
224}
225/* 画像表示 */
226if(G_DETAILS.length){
227DOM_imgFunc('shopDetail__img__main','top.jpg');
228DOM_imgFunc('shopDetail__img__logo','logo.jpg');
229DOM_imgFunc('shopDetail__img__map','map.jpg');
230}
231
232/* title */
233function DOM_titleFunc(elem){
234    let titleArray = document.getElementsByClassName(elem);
235    let title = titleArray[0].children;
236    document.querySelector('title').textContent = G_SHOP[G_NUM][1]+' / ライオンズグルメ|埼玉西武ライオンズ';
237    let html = '<span>'+G_SHOP[G_NUM][1];
238    if(G_SHOP[G_NUM][2].length){
239        html += '<small>('+G_SHOP[G_NUM][2]+')</small></span>';
240    }
241    title[0].innerHTML = html;
242
243    let blk = document.getElementsByClassName('grayBlk');
244    if(G_SHOP[G_NUM][9].length){
245        blk[0].innerHTML = '<p>'+G_SHOP[G_NUM][9]+'</p>';
246    }else{
247        blk[0].style.display = 'none';
248    }
249}
250/* area */
251function DOM_areaFunc(){
252    let count = 0;
253    let className;
254    let html = '';
255    for(let i = 3;i<=7;i++){
256        if(G_SHOP[G_NUM][i].length){
257            count++;
258        }
259    }
260    if(count == 1){
261        className = 'mb16';
262    }
263    if(count == 2){
264        className = 'mb16';
265    }
266    if(count >= 3){
267        className = 'mb8';
268    }
269
270    if(G_SHOP[G_NUM][3].length){
271        html += '<div class="shopDetail__img__third">'+G_SHOP[G_NUM][3]+'</div>';
272    }
273    if(G_SHOP[G_NUM][4].length){
274        html += '<div class="shopDetail__img__third">'+G_SHOP[G_NUM][4]+'</div>';
275    }
276    if(G_SHOP[G_NUM][5].length){
277        html += '<div class="shopDetail__img__first">'+G_SHOP[G_NUM][5]+'</div>';
278    }
279    if(G_SHOP[G_NUM][6].length){
280        html += '<div class="shopDetail__img__first">'+G_SHOP[G_NUM][6]+'</div>';
281    }
282    if(G_SHOP[G_NUM][7].length){
283        html += '<div class="shopDetail__img__outside">'+G_SHOP[G_NUM][7]+'</div>';
284    }
285
286    let area = document.getElementsByClassName('shopDetail__img__num');
287    
288    area[0].innerHTML = html;
289    if(count >= 2){
290        area[0].children[0].classList.add(className);
291    }
292    if(count >= 3){
293        area[0].children[0].classList.add(className);
294        area[0].children[1].classList.add(className);
295        area[0].classList.add("shopDetail__img__num--3row");
296    }
297}
298
299
300function DOM_loopMenu(num){
301    let html = '';
302    //menuElem[0].children[num];
303    //menu.insertBefore("Some text");
304    html = '<div class="shopDetail__menu">'
305            +'<div class="shopDetail__menu__img">'
306            +'<img src="../img/shop/'+G_ID+'/'+G_MENU[num][1]+'.jpg" alt="'+G_MENU[num][2]+'">'
307            +'</div>'
308            +'<dt>'+G_MENU[num][2];
309            if(G_MENU[num][4].length){
310                html +=' <small>※'+G_MENU[num][4]+'</small>';
311            }
312            html +='</dt>'
313            +'<dd>'+G_MENU[num][3]+'</dd>'
314            +'</div>';
315    return html;
316};
317
318
319/*一覧*/
320function DOM_searchShop(num){
321    O_SHOP = [];
322    let html = '';
323    let count = 0;
324    G_SHOP.forEach(function(elem,index) {
325        if(!elem[10].length){
326            if(num == 3){
327                if(elem[3].length || elem[4].length){
328                    //html += DOM_loopSearch(index);
329                    count ++;
330                    let p = G_SHOP[index][3].split('-');
331                    let P_SHOP = [index,G_SHOP[index][0],p[1]];
332                    O_SHOP.push(P_SHOP);
333                }
334            }
335            if(num == 1){
336                if(elem[5].length || elem[6].length){
337                    //html += DOM_loopSearch(index);
338                    count ++;
339                    let p = G_SHOP[index][5].split('-');
340                    let P_SHOP = [index,G_SHOP[index][0],p[1]];
341                    O_SHOP.push(P_SHOP);
342                }
343            }
344            if(num == 'outside'){
345                if(elem[7].length){
346                    //html += DOM_loopSearch(index);
347                    count ++;
348                    let p = G_SHOP[index][7].split('-');
349                    let P_SHOP = [index,G_SHOP[index][0],p[1]];
350                    O_SHOP.push(P_SHOP);
351                }
352            }
353        }
354    });
355    //console.log(O_SHOP)
356    O_SHOP.sort(function(a,b){return(a[2] - b[2]);});
357    //console.log(O_SHOP)
358    O_SHOP.forEach(function(elem,index) {
359        html += DOM_loopSearch(O_SHOP[index][0]);
360    });
361    //console.log(start+' '+ end);
362    //console.log(html);
363    let menuArray = document.getElementsByClassName('shopList');
364    let menu = menuArray[0];
365    menu.innerHTML = html;
366
367    let shopList = document.getElementsByClassName('shopList__menu');
368    shopList[count-1].classList.remove('mb16--pc')
369}
370function DOM_loopSearch(num){
371    let html = '';
372    //console.log(G_SHOP[num][9])
373    html = '<a href="./'+G_SHOP[num][0]+'.html">'
374        +'<div class="shopList__menu arrowLink mb16--pc">'
375        +'<div class="shopList__img">'
376        +'<img src="../img/shop/'+G_SHOP[num][0]+'/top.jpg" alt="'+G_SHOP[num][1]+'">'
377        +'</div>'
378        +'<div class="shopList__logo">'
379        +'<div><img src="../img/shop/'+G_SHOP[num][0]+'/logo.jpg" alt="'+G_SHOP[num][1]+'"></div>'
380        +'</div>'
381        +'<span class="shopList__place">';
382        if(G_SHOP[num][8].length){
383            html +='<span>'+G_SHOP[num][8]+'</span>';
384        }
385        html +='</span>'
386        +'<dl class="shopList__info">'
387        +'<dt>'+G_SHOP[num][1]+'</dt>';
388        if(G_SHOP[num][9].length){
389            html +='<dd>'+G_SHOP[num][9]+'</dd>';
390        }
391        html +='<span class="shopList__info__place">';
392        if(G_SHOP[num][8].length){
393            html +='<span>'+G_SHOP[num][8]+'</span>';
394        }
395        html +='</span>'
396        +'</dl>'
397        +'</div>'
398        +'</a>';
399    return html;
400};
401function DOM_loopCat(num){
402    let html = '';
403    let url = '';
404    switch (G_CAT[num][3]) {
405        case 'greenforest':
406            url = 'https://www.seibulions.jp/gourmet/greenforest/';
407        break;
408        case 'seller':
409            url = '../../seller/index.html';
410        break;
411        default:
412            url = '../'+String(G_CAT[num][3]).padStart(3, '0')+'.html';
413      }
414    html = '<a href="'+url+'">'
415            +'<div class="category__menu">'
416            +'<div class="category__menu__img">'
417            +'<img src="../../img/category/'+String(G_CAT[num][0]).padStart(3, '0')+'.jpg" alt='+G_CAT[num][1]+'>'
418            +'</div>'
419            +'<dt>'+G_CAT[num][1]+'</dt>'
420            +'<dd>Â¥'+G_CAT[num][2]+'</dd>'
421            +'<div class="category__shop">'
422            +'<span class="arrowLink category__shop__name">'+G_CAT[num][4]+'</span>'
423            +'<span class="category__shop__place">'
424            +G_CAT[num][5]
425            +'</span>'
426            +'</div>'
427            +'</div>'
428            +'</a>';
429  return html;
430}
431/* category一覧 */
432function DOM_catFunc(l){
433    O_SHOP = [];
434    let html = '';
435    let count = 0;
436    G_CAT.forEach(function(elem,index) {
437        if(elem[l] == 1 && elem[elem.length-1]==0){
438            //html += DOM_loopSearch(index);
439            count ++;
440            /*店舗ID順*/
441            let p = G_CAT[index][3];
442
443            /*ID順*/
444            //p = count;
445            //console.log(p)
446            let P_SHOP = [index,G_CAT[index][0],p];
447            O_SHOP.push(P_SHOP);
448        }
449    });
450    //console.log(O_SHOP)
451    O_SHOP.sort(function(a,b){return(a[2] - b[2]);});
452    //console.log(O_SHOP)
453    O_SHOP.forEach(function(elem,index) {
454       html += DOM_loopCat(O_SHOP[index][0]);
455    });
456    //console.log(start+' '+ end);
457    //console.log(html);
458    let menuArray = document.getElementsByClassName('category__list');
459    let menu = menuArray[0];
460    menu.innerHTML = html;
461}
462
463/* ページ表示時のタブ切り替え */
464function activateTabByPageClass() {
465    let tabEl = document.getElementsByClassName('tabList__tab');
466    let pageEl = document.getElementById('page');
467
468    for (i = 0; i < tabEl.length; i++) {
469        tabEl[i].classList.remove('--active');
470    }
471
472    if (pageEl.classList.contains('page--border--outside')) {
473        tabEl[2].classList.add('--active');
474        return;
475    } else if (pageEl.classList.contains('page--border--1st')) {
476        tabEl[1].classList.add('--active');
477        return;
478    } else if (pageEl.classList.contains('page--border')) {
479        tabEl[0].classList.add('--active');
480        return;
481    }
482}
483window.addEventListener('DOMContentLoaded', activateTabByPageClass());
484
485/* タブ切り替え */
486function changeTabClass(className) {
487    let tabEl = document.getElementsByClassName('tabList__tab');
488    for(i = 0; i < tabEl.length; i++) {
489        tabEl[i].classList.remove('--active');
490    }
491    if(className === 'page--border') {
492        tabEl[0].classList.add('--active');
493    } else if(className === 'page--border--1st') {
494        tabEl[1].classList.add('--active');
495    } else if(className === 'page--border--outside') {
496        tabEl[2].classList.add('--active');
497    }
498    
499    let pageEl = document.getElementById('page');
500    pageEl.classList.remove('page--border--1st');
501    pageEl.classList.remove('page--border--outside');
502    pageEl.classList.add(className);
503    DOM_SEARCH();
504}

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.