PageSourceSearch

http://d-mens.clinic/wp-content/themes/d_clinic/js/script.js?v=1789107188

js d-mens.clinic collected 2026-10-05 08:45:49 UTC 26,586 bytes, 762 lines download raw bytes

1// JavaScript Document
2//---------------- form validate ----------------
3
4// 定休日設定は holidays-config.js で一元管理
5
6// 曜日定数
7const DATE_IN_WEEK = {
8    SUNDAY: 0,
9    MONDAY: 1,
10    TUESDAY: 2,
11    WEDNESDAY: 3,
12    THURSDAY: 4,
13    FRIDAY: 5,
14    SATURDAY: 6,
15};
16
17// フォームで使う全時間帯リスト
18const ALL_TIMES = ['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00'];
19// ページ表示時の基準日時から共通リードタイムを確定
20const BOOKING_WINDOW = getBookingWindow('tokyo');
21
22document.addEventListener('DOMContentLoaded', function () {
23    // 初期表示
24    updateTimePicker({ className: 'time_firstchoise' });
25    updateTimePicker({ className: 'time_secondchoise' });
26
27    // 日付ピッカー設定(一元管理の設定を使用)
28    $('#day_firstchoise').datepicker({
29        minDate: 0,
30        beforeShowDay: createHolidayFilter('tokyo', {
31            forUI: true,
32            hasBookingTimes: hasBookingTimes,
33        }),
34        onSelect: function (dateText) {
35            onSelectDate(dateText, 'time_firstchoise');
36        },
37    });
38
39    $('#day_secondchoise').datepicker({
40        minDate: 0,
41        beforeShowDay: createHolidayFilter('tokyo', {
42            forUI: true,
43            hasBookingTimes: hasBookingTimes,
44        }),
45        onSelect: function (dateText) {
46            onSelectDate(dateText, 'time_secondchoise');
47        },
48    });
49});
50
51// 日付選択時に呼び出し
52function onSelectDate(dateText, className) {
53    updateTimePicker({ selectedDate: new Date(dateText), className });
54}
55
56function getTimesByWeekday(weekday) {
57    let openTime, closeTime;
58
59    switch (weekday) {
60        case DATE_IN_WEEK.MONDAY:
61        case DATE_IN_WEEK.SUNDAY:
62            // 休診日:何も表示しない
63            return [];
64
65        case DATE_IN_WEEK.TUESDAY:
66        case DATE_IN_WEEK.WEDNESDAY:
67        case DATE_IN_WEEK.THURSDAY:
68        case DATE_IN_WEEK.FRIDAY:
69            // 火水木金:10:00~19:00
70            openTime = '10:00';
71            closeTime = '19:00';
72            break;
73
74        case DATE_IN_WEEK.SATURDAY:
75            // 土:09:00~18:00
76            openTime = '09:00';
77            closeTime = '18:00';
78            break;
79
80        default:
81            return [];
82    }
83
84    // 受付は閉店1時間前まで
85    const lastBooking = oneHourBefore(closeTime);
86
87    // openTime~lastBooking の範囲でフィルタ
88    return ALL_TIMES.filter((t) => t >= openTime && t <= lastBooking);
89}
90
91function hasBookingTimes(date, bookingWindow) {
92    return getTimesByWeekday(date.getDay()).some((time) =>
93        isBookingTimeAllowed(date, time, bookingWindow)
94    );
95}
96
97// 時間選択肢を再構築
98function updateTimePicker({ selectedDate, className }) {
99    const tp = document.getElementById(className);
100    if (!tp) return;
101
102    // 既存の曜日別候補に共通リードタイムを最後に適用
103    const allowed = selectedDate
104        ? getTimesByWeekday(selectedDate.getDay()).filter((time) =>
105            isBookingTimeAllowed(selectedDate, time, BOOKING_WINDOW)
106        )
107        : [];
108
109    // <select>をクリアして再構築
110    tp.innerHTML = '';
111    allowed.forEach((time) => {
112        const opt = document.createElement('option');
113        opt.value = time;
114        opt.textContent = time;
115        tp.appendChild(opt);
116    });
117
118    // 最初の選択肢をデフォルトで選択
119    // CF7のバリデーションが反応するように change イベントを手動発火
120    if (allowed.length) {
121        tp.value = allowed[0];
122        tp.dispatchEvent(new Event('change', { bubbles: true }));
123    }
124}
125
126// "HH:MM" → 1時間前の "HH:MM" を返すヘルパー
127function oneHourBefore(timeStr) {
128    const [h, m] = timeStr.split(':').map(Number);
129    const dt = new Date();
130    dt.setHours(h, m);
131    dt.setHours(dt.getHours() - 1);
132    const hh = String(dt.getHours()).padStart(2, '0');
133    const mm = String(dt.getMinutes()).padStart(2, '0');
134    return hh + ':' + mm;
135}
136
137
138//----------------onload event----------------
139
140const onloads = document.querySelectorAll('.onload');
141const onloadsdelay = document.querySelectorAll('.onload_delay');
142
143window.addEventListener('load', () => {
144    setTimeout(() => {
145        onloads.forEach((onload) => {
146            onload.classList.add('open');
147        });
148        document.querySelector('body').classList.add('scroll_on');
149    }, 0);
150    setTimeout(() => {
151        onloadsdelay.forEach((onloaddelay) => {
152            onloaddelay.classList.add('open');
153        });
154    }, 1000);
155});
156
157//----------------web storage----------------
158const webStorage = function () {
159    const loadings = document.querySelectorAll('#op_anim');
160    const onloadsdelay = document.querySelectorAll('.onload_delay');
161    if (sessionStorage.getItem('access_opanimst')) {
162        loadings.forEach((loading) => {
163            loading.classList.remove('is_active');
164        });
165        window.addEventListener('load', () => {
166            onloadsdelay.forEach((onloaddelay) => {
167                onloaddelay.classList.add('open');
168            });
169        });
170    } else {
171        loadings.forEach((loading) => {
172            loading.classList.add('is_active');
173        });
174        sessionStorage.setItem('access_opanimst', 0);
175    }
176};
177webStorage();
178
179//---------------- vh ---------------
180const setFillHeight = () => {
181    const vh = window.innerHeight * 0.01;
182    document.documentElement.style.setProperty('--vh', `${vh}px`);
183};
184//window.addEventListener('resize', setFillHeight);
185setFillHeight();
186/*min-height: 100vh; min-height: calc(let(--vh, 1vh) * 100);*/
187
188//---------------- # scroll ---------------
189
190/* const smoothScrollTriggers = document.querySelectorAll('a[href^="#"]');
191
192smoothScrollTriggers.forEach((smoothScrollTrigger) => {
193  smoothScrollTrigger.addEventListener('click' , (e) => {
194    e.preventDefault();
195    let href = smoothScrollTrigger.getAttribute('href');
196    let targetElement = document.getElementById(href.replace('#', ''));
197    const rect = targetElement.getBoundingClientRect().top;
198    const offset = window.pageYOffset;
199    const gap = 150;
200    const target = rect + offset - gap;
201    window.scrollTo({
202      top: target,
203      behavior: 'smooth',
204    });
205    if (targetElement.querySelector('.accordion_trigger')) {
206      let acTrigger = targetElement.querySelector('.accordion_trigger');
207      if ( !(acTrigger.classList.contains('accordion_active')) ) {
208        acTrigger.click();
209      }
210    }
211  });
212}); */
213
214const smoothScrollTriggers = document.querySelectorAll('a[href^="#"]');
215
216smoothScrollTriggers.forEach((smoothScrollTrigger) => {
217    smoothScrollTrigger.addEventListener('click', (e) => {
218        e.preventDefault();
219        let href = smoothScrollTrigger.getAttribute('href');
220        let targetElement = document.getElementById(href.replace('#', ''));
221        const rect = targetElement.getBoundingClientRect().top;
222        const offset = window.pageYOffset;
223        const gap = 150;
224        let target;
225
226        if (targetElement.parentElement.classList.contains('scroll_box')) {
227            const scrollBox = targetElement.parentElement;
228            const scrollBoxRect = scrollBox.getBoundingClientRect().top;
229            const scrollBoxOffset = scrollBox.scrollTop;
230            target = rect + scrollBoxOffset - scrollBoxRect - gap;
231            scrollBox.scrollTo({
232                top: target,
233                behavior: 'smooth',
234            });
235        } else {
236            target = rect + offset - gap;
237            window.scrollTo({
238                top: target,
239                behavior: 'smooth',
240            });
241        }
242        if (targetElement.querySelector('.accordion_trigger')) {
243            let acTrigger = targetElement.querySelector('.accordion_trigger');
244            if (!acTrigger.classList.contains('accordion_active')) {
245                acTrigger.click();
246            }
247        }
248    });
249});
250
251//----------------scroll reveal---------------
252
253let targets = document.querySelectorAll('.reveal');
254let offset = 20;
255
256window.addEventListener('scroll', function () {
257    let scroll = window.scrollY;
258    let h = window.innerHeight;
259    targets.forEach((target) => {
260        let pos = target.getBoundingClientRect().top + scroll;
261        if (scroll > pos - h + offset) {
262            target.classList.add('scroll_in');
263        }
264    });
265});
266
267//---------------- menu tab---------------
268
269const menuTabSwitchBoxes = document.querySelectorAll('.menu_tab .menu_tab_switch_box');
270menuTabSwitchBoxes.forEach((menuTabSwitchBox) => {
271    const menuTabSwitches = menuTabSwitchBox.querySelectorAll('.switch');
272    let menuTabSwitchesArray = [].slice.call(menuTabSwitches);
273    menuTabSwitches.forEach((menuTabSwitch) => {
274        menuTabSwitch.addEventListener('click', () => {
275            menuTabSwitches.forEach((menuTabSwitch) => {
276                menuTabSwitch.classList.remove('active');
277            });
278            const menuTabMains = menuTabSwitch.parentNode.nextElementSibling.children;
279            Array.from(menuTabMains).forEach((menuTabMain) => {
280                menuTabMain.classList.remove('active');
281            });
282            menuTabSwitch.classList.add('active');
283            let menuTabSwitchIndex = menuTabSwitchesArray.indexOf(menuTabSwitch);
284            menuTabSwitch.parentNode.nextElementSibling.children[menuTabSwitchIndex].classList.add('active');
285        });
286    });
287});
288
289//---------------- menu tab---------------
290
291//---------------- access tab---------------
292const accessTabs = document.querySelectorAll('.access_tab_master');
293accessTabs.forEach((accessTab) => {
294    const accessTabSwitches = accessTab.querySelectorAll('.access_tab_switch');
295    let accessTabSwitchesArray = [].slice.call(accessTabSwitches);
296    const accessTabMaps = accessTab.querySelectorAll('.access_tab_map');
297    const accessTabRouts = accessTab.nextElementSibling.querySelectorAll('.access_tab_route');
298    accessTabSwitches.forEach((accessTabSwitch) => {
299        accessTabSwitch.addEventListener('click', () => {
300            accessTabSwitches.forEach((accessTabSwitch) => {
301                accessTabSwitch.classList.remove('active');
302            });
303            accessTabSwitch.classList.add('active');
304            accessTabMaps.forEach((accessTabMap) => {
305                accessTabMap.classList.remove('active');
306            });
307            accessTabRouts.forEach((accessTabRoute) => {
308                accessTabRoute.classList.remove('active');
309            });
310            let accessTabSwitchIndex = accessTabSwitchesArray.indexOf(accessTabSwitch);
311            accessTabMaps[accessTabSwitchIndex].classList.add('active');
312            accessTabRouts[accessTabSwitchIndex].classList.add('active');
313        });
314    });
315});
316//---------------- access tab---------------
317
318//---------------- accordion ---------------
319const accordionSlideDown = (el) => {
320    el.style.display = 'block';
321    el.style.height = 'auto';
322    let h = el.offsetHeight;
323    el.style.height = h + 'px';
324    el.animate([{ height: 0 }, { height: h + 'px' }], { duration: 400 });
325    el.style.height = 'auto';
326};
327const accordionSlideUp = (el) => {
328    let h = el.offsetHeight;
329    el.style.height = h + 'px';
330    el.animate([{ height: h + 'px' }, { height: 0 }], { duration: 400 });
331    el.style.height = 0;
332};
333const accordionSlideToggle = (el) => {
334    if (el.classList.contains('accordion_open') == true) {
335        return accordionSlideUp(el);
336    } else {
337        return accordionSlideDown(el);
338    }
339};
340const accordionBoxes = document.querySelectorAll('.accordion_box');
341accordionBoxes.forEach((accordion) => {
342    const accordionTriggers = accordion.querySelectorAll('.accordion_trigger');
343    const accordionContents = accordion.querySelectorAll('.accordion_content');
344    accordionTriggers.forEach((trigger) => {
345        trigger.addEventListener('click', () => {
346            accordionTriggers.forEach((trigger) => {
347                trigger.classList.toggle('accordion_active');
348            });
349            accordionContents.forEach((content) => {
350                slideToggle(content);
351                content.classList.toggle('accordion_open');
352            });
353        });
354    });
355});
356//---------------- accordion ---------------
357
358//----------------cursor drag---------------
359$(function () {
360    var cursor = $('#cursor_drag_img');
361
362    $(document).on('mousemove', function (e) {
363        var x = e.clientX;
364        var y = e.clientY;
365        cursor.css({
366            /* "opacity":"1", */
367            top: y + 'px',
368            left: x + 'px',
369        });
370    });
371    $('.cursor_drag').on({
372        mouseenter: function () {
373            cursor.addClass('active');
374        },
375        mouseleave: function () {
376            cursor.removeClass('active');
377        },
378    });
379});
380//----------------cursor drag---------------
381
382//----------------photo gallery----------------
383const photoGalleries = document.querySelectorAll('.photo-gallery');
384photoGalleries.forEach((photoGallery) => {
385    let photoGalleryMains = photoGallery.querySelectorAll('.photo-gallery_main li');
386    let photoGalleryThumbs = photoGallery.querySelectorAll('.photo-gallery_thumbs li');
387    let photoGalleryThumbsArray = [].slice.call(photoGalleryThumbs);
388    photoGalleryThumbs.forEach((photoGalleryThumb) => {
389        photoGalleryThumb.addEventListener('click', () => {
390            photoGalleryThumbs.forEach((photoGalleryThumb) => {
391                photoGalleryThumb.classList.remove('active');
392            });
393            photoGalleryMains.forEach((photoGalleryMains) => {
394                photoGalleryMains.classList.remove('active');
395            });
396            let photoGalleryThumbIndex = photoGalleryThumbsArray.indexOf(photoGalleryThumb);
397            photoGalleryMains[photoGalleryThumbIndex].classList.add('active');
398        });
399    });
400});
401//----------------photo gallery----------------
402
403/*-- mono modal open --*/
404const monoModalOpens = document.querySelectorAll('.mono_modal_open');
405monoModalOpens.forEach((monoModalOpen) => {
406    monoModalOpen.addEventListener('click', () => {
407        let monoModalOpenTarget = monoModalOpen.nextElementSibling;
408        monoModalOpenTarget.classList.add('visible');
409    });
410});
411/*-- mono modal --*/
412
413/*-- separate modal --*/
414
415const separateMonoModalOpenBoxes = document.querySelectorAll('.mono_separate_modal_open_box');
416const separateMonoModalBox = document.querySelector('.mono_separate_modal_box');
417separateMonoModalOpenBoxes.forEach((separateMonoModalOpenBox) => {
418    let separateMonoModalOpens = separateMonoModalOpenBox.querySelectorAll('.mono_separate_modal_open_box .mono_separate_modal_open');
419    let separateMonoModalOpensArray = [].slice.call(separateMonoModalOpens);
420    separateMonoModalOpens.forEach((separateMonoModalOpen) => {
421        separateMonoModalOpen.addEventListener('click', () => {
422            let separateMonoModalOpenIndex = separateMonoModalOpensArray.indexOf(separateMonoModalOpen);
423            separateMonoModalBox.children[separateMonoModalOpenIndex].classList.add('visible');
424        });
425    });
426});
427
428/*-- separate modal --*/
429
430//----------------slide modal----------------
431const slideModals = document.querySelectorAll('.slide_modal');
432slideModals.forEach((slideModal) => {
433    let slideModalLayer = slideModal.querySelector('.slide_modal_layer');
434    let slideModalOpens = slideModal.querySelectorAll('.slide_modal_open');
435    let slideModalOpensArray = [].slice.call(slideModalOpens);
436    let slideModalContents = slideModal.querySelectorAll('.slide_modal_content');
437    let slideModalContentsArray = [].slice.call(slideModalContents);
438    let slideModalContentsLength = slideModalContents.length;
439    let images = slideModal.querySelectorAll('img[data-src]');
440
441    slideModalOpens.forEach((slideModalOpen) => {
442        slideModalOpen.addEventListener('click', () => {
443            images.forEach((image) => {
444                image.setAttribute('src', image.getAttribute('data-src'));
445            });
446            slideModalLayer.classList.add('visible');
447            slideModalContents.forEach((slideModalContent) => {
448                slideModalContent.classList.remove('slide_visible');
449            });
450            let slideModalOpenIndex = slideModalOpensArray.indexOf(slideModalOpen);
451            slideModalContents[slideModalOpenIndex].classList.add('slide_visible');
452        });
453    });
454
455    function slideModalMoveRight() {
456        if (slideModal.querySelector('.slide_visible')) {
457            let visibleContent = slideModal.querySelector('.slide_visible');
458            let visibleContentIndex = slideModalContentsArray.indexOf(visibleContent);
459            slideModalContents.forEach((slideModalContent) => {
460                slideModalContent.classList.remove('slide_visible');
461            });
462            if (visibleContentIndex == slideModalContentsLength - 1) {
463                slideModalContents[0].classList.add('slide_visible');
464            } else {
465                slideModalContents[visibleContentIndex].nextElementSibling.classList.add('slide_visible');
466            }
467        }
468    }
469    function slideModalMoveLeft() {
470        if (slideModal.querySelector('.slide_visible')) {
471            let visibleContent = slideModal.querySelector('.slide_visible');
472            let visibleContentIndex = slideModalContentsArray.indexOf(visibleContent);
473            slideModalContents.forEach((slideModalContent) => {
474                slideModalContent.classList.remove('slide_visible');
475            });
476            if (visibleContentIndex == 0) {
477                slideModalContents[slideModalContentsLength - 1].classList.add('slide_visible');
478            } else {
479                slideModalContents[visibleContentIndex].previousElementSibling.classList.add('slide_visible');
480            }
481        }
482    }
483
484    let modalNextBtn = slideModal.querySelector('.modal_next_btn');
485    modalNextBtn.addEventListener('click', () => {
486        slideModalMoveRight();
487    });
488    let modalPrevBtn = slideModal.querySelector('.modal_prev_btn');
489    modalPrevBtn.addEventListener('click', () => {
490        slideModalMoveLeft();
491    });
492
493    document.addEventListener('keydown', (e) => {
494        if (e.code == 'ArrowLeft') {
495            slideModalMoveLeft();
496        } else if (e.code == 'ArrowRight') {
497            slideModalMoveRight();
498        }
499    });
500});
501//----------------slide modal----------------
502
503//----------------modal close----------------
504const modalCloseElements = document.querySelectorAll('.modal_close_element');
505const modalLayers = document.querySelectorAll('.modal_layer');
506modalCloseElements.forEach((modalCloseElement) => {
507    modalCloseElement.addEventListener('click', () => {
508        modalLayers.forEach((modalLayer) => {
509            modalLayer.classList.remove('visible');
510        });
511        const yt_video_boxs = document.querySelectorAll('.yt_video_box');
512        yt_video_boxs.forEach((yt_video_box) => {
513            YoutubeToImageReplace(yt_video_box);
514        });
515    });
516    return false;
517});
518//----------------modal close----------------
519
520//---------------- price link hover ----------------
521const priceLinkFigurePCs = document.querySelectorAll('.price_link_figure_pc');
522priceLinkFigurePCs.forEach((priceLinkFigurePC) => {
523    const facebox = priceLinkFigurePC.querySelector('.face');
524    const bodybox = priceLinkFigurePC.querySelector('.body');
525    const fukidashi = priceLinkFigurePC.querySelector('.fukidashi');
526    facebox.addEventListener('mouseover', () => {
527        facebox.classList.add('hover');
528        fukidashi.classList.add('positionleft');
529    });
530    facebox.addEventListener('mouseout', () => {
531        facebox.classList.remove('hover');
532        fukidashi.classList.remove('positionleft');
533    });
534    bodybox.addEventListener('mouseover', () => {
535        bodybox.classList.add('hover');
536        fukidashi.classList.add('positionright');
537    });
538    bodybox.addEventListener('mouseout', () => {
539        bodybox.classList.remove('hover');
540        fukidashi.classList.remove('positionright');
541    });
542});
543//---------------- price link hover ----------------
544
545//---------------- price link switch ----------------
546const priceLinkFigureSPs = document.querySelectorAll('.price_link_figure_sp');
547priceLinkFigureSPs.forEach((priceLinkFigureSP) => {
548    const faceSwitch = priceLinkFigureSP.querySelector('.sp_price_switch_face');
549    const bodySwitch = priceLinkFigureSP.querySelector('.sp_price_switch_body');
550    const faceBox = priceLinkFigureSP.querySelector('.face');
551    const bodyBox = priceLinkFigureSP.querySelector('.body');
552    faceSwitch.addEventListener('click', () => {
553        faceSwitch.classList.add('active');
554        faceBox.classList.add('active');
555        bodySwitch.classList.remove('active');
556        bodyBox.classList.remove('active');
557    });
558    bodySwitch.addEventListener('click', () => {
559        faceSwitch.classList.remove('active');
560        faceBox.classList.remove('active');
561        bodySwitch.classList.add('active');
562        bodyBox.classList.add('active');
563    });
564});
565
566//---------------- price link switch ----------------
567
568//---------------- toppage category bg ripples ---------------
569$('.category_bg').ripples();
570//---------------- toppage category bg ripples ---------------
571
572//------------ fv swiper ----------------
573
574let fvSwiperSet = {
575    slidesPerView: 1,
576    centeredSlides: true,
577    loop: true,
578    effect: 'fade',
579    fadeEffect: {
580        crossFade: true,
581    },
582    loopedSlides: 99,
583    pagination: {
584        el: '.fv-swiper-pagination',
585        clickable: true,
586    },
587    speed: 2000,
588    autoplay: {
589        delay: 3000,
590        disableOnInteraction: false,
591    },
592    spaceBetween: 0,
593    roundLengths: true,
594    watchOverflow: true,
595};
596const fvSwiperNum = document.querySelectorAll('.fv_swiper .swiper-slide').length;
597if (fvSwiperNum == 1) {
598    fvSwiperSet = { loop: false };
599}
600var fvSwiper = new Swiper('.fv_swiper', fvSwiperSet);
601
602/* thumbnails */
603var fvSwiperThumbnails = new Swiper('.fv_swiper_thumbnails', {
604    slidesPerView: 3,
605    centeredSlides: true,
606    loop: true,
607    effect: 'slide',
608    loopedSlides: 99,
609    spaceBetween: 10,
610    slideToClickedSlide: true,
611    breakpoints: {
612        768: {
613            spaceBetween: 10,
614        },
615    },
616});
617fvSwiper.controller.control = fvSwiperThumbnails;
618fvSwiperThumbnails.controller.control = fvSwiper;
619
620//------------ fv swiper ----------------
621//------------ recommend swiper ----------------
622let recommendSwiperSet = {
623    slidesPerView: 1.3,
624    centeredSlides: false,
625    loop: true,
626    effect: 'slide',
627    spaceBetween: 0,
628    roundLengths: true,
629    watchOverflow: true,
630    speed: 2000,
631    autoplay: {
632        delay: 3000,
633        disableOnInteraction: false,
634    },
635    breakpoints: {
636        835: {
637            slidesPerView: 3.3,
638            spaceBetween: 0,
639        },
640    },
641};
642/* const recommendSlideNum = document.querySelectorAll('.recommend_swiper .swiper-slide').length;
643  if (recommendSlideNum == 1 ) {
644    recommendSwiperSet = {loop: false}
645  } */
646var recommendSwiper = new Swiper('.recommend_swiper', recommendSwiperSet);
647//------------ recommend swiper ----------------
648
649//------------ gallery swiper ----------------
650let gallerySwiperSet = {
651    slidesPerView: 1.27,
652    centeredSlides: true,
653    loop: true,
654    effect: 'slide',
655    spaceBetween: 12,
656    roundLengths: true,
657    watchOverflow: true,
658    speed: 2000,
659    autoplay: {
660        delay: 1000,
661        disableOnInteraction: false,
662    },
663    breakpoints: {
664        550: {
665            slidesPerView: 1.8,
666        },
667        835: {
668            slidesPerView: 2.65,
669            spaceBetween: 24,
670        },
671    },
672};
673/* const gallerySlideNum = document.querySelectorAll('.gallery_swiper .swiper-slide').length;
674  if (gallerySlideNum == 1 ) {
675    gallerySwiperSet = {loop: false}
676  } */
677var gallerySwiper = new Swiper('.gallery_swiper', gallerySwiperSet);
678//------------ gallery swiper ----------------
679
680//------------ insta swiper ----------------
681// let instaSwiperSet = {
682//     slidesPerView: 1.5,
683//     centeredSlides: true,
684//     loop: true,
685//     effect: 'slide',
686//     spaceBetween: 10,
687//     roundLengths: true,
688//     watchOverflow: true,
689//     speed: 4000,
690//     autoplay: {
691//         delay: 1000,
692//         disableOnInteraction: false,
693//     },
694//     breakpoints: {
695//         835: {
696//             slidesPerView: 4,
697//             spaceBetween: 20,
698//         },
699//     },
700// };
701/* const instaSlideNum = document.querySelectorAll('.insta_swiper .swiper-slide').length;
702  if (instaSlideNum == 1 ) {
703    instaSwiperSet = {loop: false}
704  } */
705// var instaSwiper = new Swiper('.insta_swiper', instaSwiperSet);
706//------------ insta swiper ----------------
707
708//------------ in_treatmentpage_gallery swiper ----------------
709let inTreatmentPageGallerySwiperSet = {
710    slidesPerView: 1,
711    centeredSlides: false,
712    loop: false,
713    effect: 'slide',
714    spaceBetween: 10,
715    roundLengths: true,
716    watchOverflow: true,
717    breakpoints: {
718        835: {
719            slidesPerView: 3,
720            spaceBetween: 20,
721        },
722    },
723};
724/* const inTreatmentPageGallerySlideNum = document.querySelectorAll('.in_treatmentpage_swiper .swiper-slide').length;
725if (inTreatmentPageGallerySlideNum == 1 ) {
726  inTreatmentPageGallerySwiperSet = {loop: false}
727} */
728var inTreatmentPageGallerySwiper = new Swiper('.in_treatmentpage_gallery_swiper', inTreatmentPageGallerySwiperSet);
729//------------ in_treatmentpage_gallery swiper ----------------
730
731//------------ in_combination-menu_swiper ----------------
732let inCombinationMenuSwiperSet = {
733    slidesPerView: 1,
734    centeredSlides: false,
735    loop: false,
736    effect: 'slide',
737    spaceBetween: 10,
738    roundLengths: true,
739    watchOverflow: true,
740    breakpoints: {
741        835: {
742            slidesPerView: 3,
743            spaceBetween: 20,
744        },
745    },
746};
747/* const inCombinationMenuSlideNum = document.querySelectorAll('.in_combination-menu_swiper .swiper-slide').length;
748if (inCombinationMenuSlideNum == 1 ) {
749  inCombinationMenuSwiperSet = {loop: false}
750} */
751var inCombinationMenuSwiper = new Swiper('.in_combination-menu_swiper', inCombinationMenuSwiperSet);
752//------------ in_combination-menu_swiper ----------------
753
754// 初回のリファラーを sessionStorage に保存(1回だけ)
755document.addEventListener('DOMContentLoaded', function () {
756    var ref = document.referrer || '';
757    var inputs = document.querySelectorAll('input[name="remote_referer"]');
758    inputs.forEach(function (input) {
759        input.value = ref;
760        console.log('フォームにセットされたリファラー:', ref);
761    });
762});

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.