PageSourceSearch

https://www.studio-marlmarl.com/styles/js/calendar.function.js?20261005194904

js studio-marlmarl.com collected 2026-10-05 10:49:28 UTC 31,077 bytes, 685 lines download raw bytes

1//check url has date_update
2if(window.location.href.indexOf("date_update") > -1) {
3    var getUrlConfirmData = window.location.href;
4    var stringUrlConvert = getUrlConfirmData.split('=');
5    var stringUrlConvertNew = stringUrlConvert[1].split('&');
6    var dateSelected = stringUrlConvertNew[0];
7    var timeSelected = stringUrlConvert[2];
8}
9
10//function calendar
11function cal() {
12    var $cal = $('#calendar'),
13        vp = 750,
14        pcH = 557,
15        spH = 337,
16        w = $(window).width(),
17        now = window.location.href.indexOf("date_update") > -1 ? new Date(dateSelected) : new Date(),
18        month = now.getMonth() + 1,
19        prev = (month - 1) == 0 ? 12 : (month - 1),
20        next = (month % 12) + 1;
21    if (w > vp) {
22        var H = pcH;
23    } else {
24        var H = spH;
25    }
26
27    // 要素が見つからない場合、処理終了
28    if ($cal.length == 0) return;
29
30    // 日程選択ページにおいては 衣装ID が設定されていると誤動作を引き起こすため、ローカルストレージから削除する
31    if (window.location.href.indexOf("reserve/date") > -1 ||
32        window.location.href.indexOf("reserve/edit/date") > -1) {
33        localStorage.removeItem("costume_id");
34    }
35
36    $cal.fullCalendar({
37        selectable: false,
38        dayClick: function(date) {
39            var costume_id = localStorage.getItem("costume_id");
40
41            var date = date.format();
42            //check today
43            var today = new Date().toJSON().slice(0, 10).replace(/-/g, '-');
44            var getUrl;
45            if (costume_id == null) {
46                getUrl = '/getInfoBookingDate/' + date;
47            } else {
48                getUrl = '/getInfoBookingDate/' + date + '/' + costume_id;
49                $("#dateCostume").val(date);
50            }
51            if (isEditPage()) {
52                if (costume_id == null) {
53                    getUrl = '/getInfoBookingDateForEdit/' + date;
54                } else {
55                    getUrl = '/getInfoBookingDateForEdit/' + date + '/' + costume_id;
56                    $("#dateCostume").val(date);
57                }
58            }
59            //get date in next 3 month
60            moment.addRealMonth = function addRealMonth(d) {
61                var fm = moment(d).add(3, 'M');
62                var fmEnd = moment(fm).endOf('month');
63                return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm;
64            }
65            var nextMonth = moment.addRealMonth(moment()).format('YYYY-MM-DD');
66            if (today <= date && date <= nextMonth) {
67
68                const studioId = $('#studioId').val();
69                if ((studioId ?? '') == '2' && date >= '2026-02-01' && date <= '2026-02-28') {
70                    // 芝公園スタジオで指定期間内の場合、同意モーダルを表示
71                    const modal = $.remodal.lookup[$('[data-remodal-id=shiba-notice]').data('remodal')];
72
73                    // イベント設定
74                    $('#shiba-notice').off('closing');
75                    $('#shiba-notice').on('closing', (e) => {
76                        // 同意
77                        if (e.reason == "confirmation") {
78                            selectedDateAction(date, getUrl);
79                            const $dayTop = $(`.fc-day-top[data-date="${date}"]`);
80                            if ($dayTop.length > 0) calendarClickEvent.call($dayTop);
81                        }
82                        // キャンセル or 閉じる
83                        else {
84                            // 予約変更など日付指定がある場合
85                            if (window.location.href.indexOf("date_update") > -1 ) {
86                                $('#calendar').fullCalendar('destroy');
87                                cal();
88                                setCalendarMonthEvents();
89                                setCalendarEvents();
90                            }
91                            // 新規予約など日付指定がない場合
92                            else {
93                                $("#dateBooking").val(null);
94                                $("#hourBooking").val(null);
95                                $("#hourBookingCostume").val(null);
96                                $('.js-2nd').removeClass('on');
97                                $('.js-3rd').removeClass('on');
98                                $('#calendar').find('.is-active').removeClass('is-active');
99                            }
100                        }
101                        // 日付ダイアログがある場合、表示する
102                        if ($('#modal001').length > 0) {
103                            const dateModal = $.remodal.lookup[$('[data-remodal-id=modal001]').data('remodal')];
104                            dateModal.open();
105                        }
106                    });
107                    modal.open();
108                } else {
109                    selectedDateAction(date, getUrl);
110                }
111            } else {
112                return false;
113            }
114
115            // 日付選択後の処理
116            function selectedDateAction(date, url) {
117                
118                // format date show reserve-time
119                var dateHeading = moment(date).format('LLLL');
120                var dateFormatLang = dateHeading.split(" ");
121                $('.today-click').html(dateFormatLang[0] + ' ' + dateFormatLang[2]);
122
123                $("#dateBooking").val(date);
124                $.ajax({
125                    headers: {
126                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
127                    },
128                    url: url,
129                    dataType: 'json',
130                    type: 'POST',
131                    data: {
132                        date: date
133                    },
134                    contentType: false,
135                    processData: false,
136                    success: function(response) {
137                        var data = response.resultPickingDate;
138                        var html = '';
139                        var messageBooking = '';
140
141                        $.each(data, function(i, item) {
142                            if (data[i].prop != '') {
143                                messageBooking = '空き枠なし';
144                            } else {
145                                messageBooking = '予約する';
146                            }
147                            if (data[i].isMyReserved) {
148                                messageBooking = '予約する';
149                                html += '<tr><th>' + data[i].time + '~' + '</th><td class="reserve-btn btn-reserve-time"><div class="btn is-active"><a href="javascript:void(0)" data-value="' + data[i].id + '" class="j_sans btn_hover btn_hover_red">' + messageBooking + '</a></div></td></tr>';
150                            } else {
151                                html += '<tr><th>' + data[i].time + '~' + '</th><td class="reserve-btn btn-reserve-time"><div class="btn ' + data[i].prop + '"><a href="javascript:void(0)" data-value="' + data[i].id + '" class="j_sans btn_hover btn_hover_red">' + messageBooking + '</a></div></td></tr>';
152                            }
153                        });
154
155                        $("#table-time").html(html);
156                        $(".btn-reserve-time a").click(function() {
157                            var hour = $(this).attr("data-value");
158                            $("#hourBooking").val(hour);
159                            $("#hourBookingCostume").val(hour);
160                        });
161                    },
162                    error: function(data) {
163                        if (isEditPage()) {
164                            console.log({ title: 'geteventsCalendarForEdit error', body: data });
165                            showRedirectUriDialog(
166                                'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度ログインからやり直してください。',
167                                'TOPページに戻る',
168                                '/'
169                            );    
170                        } else {
171                            console.log({ title: 'geteventsCalendar error', body: data });
172                            showRedirectUriDialog(
173                                'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度店舗選択からやり直してください。',
174                                '店舗選択画面に戻る',
175                                '/reserve'
176                            );    
177                        }
178                    }
179                }).done(function() {
180
181                    $('.js-2nd').find('.btn a').not('.is-disable').on('click', function() {
182                        //this
183                        $('.js-2nd').find('.btn').removeClass('is-active');
184                        $(this).parent().addClass('is-active');
185                        //next block
186                        $('.js-3rd').addClass('on');
187
188                        $('.js-3rd .reserve-box').delay(500).queue(function() {
189                            $(this).addClass('on');
190                        });
191                        $('.js-3rd .box_first_line').css('display', 'block').queue(function() {
192                            $(this).addClass('on');
193                        });
194                        //step
195                        $('.reserve-step li:nth-of-type(3)').addClass('is-before');
196                    });
197                    $('.btn a').click(function() {
198                        $('.box_first_line').addClass('on');
199                    });
200                });
201
202            }
203
204        },
205        header: {
206            left: 'prev',
207            center: 'title',
208            right: 'next',
209        },
210        firstDay: 1,
211        defaultView: 'month',
212        height: H,
213        aspectRatio: 1,
214        defaultDate: window.location.href.indexOf("date_update") > -1 ? dateSelected : null,
215        windowResize: function(view) {
216            var w = $(window).width();
217            if (w > vp) {
218                var H = pcH;
219                $cal.fullCalendar(
220                    'option', 'height', H
221                );
222            } else {
223                var H = spH;
224                $cal.fullCalendar(
225                    'option', 'height', H
226                );
227            }
228        },
229        customButtons: {
230            next: {
231                click: function(event) {
232                    if (next == 12) {
233                        next = 0;
234                    }
235                    if (prev == 12) {
236                        prev = 0;
237                    }
238                    $('#calendar').fullCalendar('incrementDate', {
239                        months: 1
240                    });
241                    $('.fc-next-button').html((++next) + '月');
242                    $('.fc-prev-button').html((++prev) + '月');
243                }
244            },
245            prev: {
246                click: function() {
247                    if (prev == 1) {
248                        prev = 13;
249                    }
250                    if (next == 1) {
251                        next = 13
252                    }
253                    $('#calendar').fullCalendar('incrementDate', {
254                        months: -1
255                    });
256                    $('.fc-prev-button').html((--prev) + '月');
257                    $('.fc-next-button').html((--next) + '月');
258                }
259            }
260        },
261        viewRender: function(currentView, cell) {
262            var minDate = moment().add(1, 'days');
263            var maxDate = moment().add(16, 'weeks');
264            parentCont = currentView.el.parent().prev(),
265                cantGoBefore = currentView.start <= minDate,
266                cantGoAfter = currentView.end >= maxDate;
267            // prev
268            $('.fc-prev-button', parentCont).prop('disabled', cantGoBefore);
269            $('.fc-prev-button', parentCont).toggleClass('fc-state-disabled', cantGoBefore);
270            $(".fc-past").prop('fc-state-disabled', cantGoBefore);
271            $(".fc-past").toggleClass('fc-state-disabled', cantGoBefore);
272            // today
273            $(".fc-today").prop('fc-state-disabled', cantGoBefore);
274            $(".fc-today").toggleClass('fc-state-disabled', cantGoBefore);
275
276            //next
277            $('.fc-next-button', parentCont).prop('disabled', cantGoAfter);
278            $('.fc-next-button', parentCont).toggleClass('fc-state-disabled', cantGoAfter);
279
280            //check item disable
281            var MapItem = Array.from($('.fc-body').find('td.fc-future'));
282            Checkitem(MapItem);
283        },
284
285        events: function(start, end, timezone, callback) {
286            // 新規予約 - 日程選択ページにおけるカレンダー情報ã
286®å–å¾—
287            // if (window.location.href.indexOf("reserve/date") > -1 || window.location.href.indexOf("reserve/payment") > -1) {
288            if (window.location.href.indexOf("reserve/date") > -1) {
289                var urlRequest = '/geteventsCalendar/';
290
291                $.ajax({
292                    headers: {
293                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
294                    },
295                    url: urlRequest,
296                    dataType: 'json',
297                    type: 'GET',
298                    contentType: false,
299                    processData: false,
300                    success: function(response) {
301                        var events = [];
302                        var data = response.resultDate;
303                        $.each(data, function(i, item) {
304                            if (data[i].prop != '') {
305                                events.push({
306                                    start: data[i].date, // will be parsed
307                                    overlap: false,
308                                    rendering: 'background'
309                                });
310                            } else {
311                                events.push({
312                                    start: data[i].date, // will be parsed
313                                    overlap: false,
314                                    rendering: ''
315                                });
316                            }
317                            if (data[i].hasOwnProperty('nation_holiday')) {
318                                $('td[data-date=' + data[i].date + ']').css('background', 'rgba(235, 102, 98, 0.03)');
319                            }
320                        });
321                        callback(events);
322
323                    },
324                    error: function(data) {
325                        console.log({ title: 'geteventsCalendar error', body: data });
326                        showRedirectUriDialog(
327                            'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度店舗選択からやり直してください。',
328                            '店舗選択画面に戻る',
329                            '/reserve'
330                        );
331                    }
332                });
333            }
334            // 新規予約 - 衣装選択ページの日程変更におけるカレンダー情報ã
334®å–å¾—
335            if (window.location.href.indexOf("reserve/costume") > -1) {
336                $('#calendar').fullCalendar('removeEvents');
337                var costume_id = localStorage.getItem("costume_id");
338                urlRequest = '/geteventsCalendar/' + costume_id;
339                $.ajax({
340                    headers: {
341                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
342                    },
343                    url: urlRequest,
344                    dataType: 'json',
345                    type: 'GET',
346                    contentType: false,
347                    processData: false,
348                    success: function(response) {
349                        var events = [];
350                        var data = response.resultDate;
351                        $.each(data, function(i, item) {
352                            if (data[i].prop != '') {
353                                events.push({
354                                    start: data[i].date, // will be parsed
355                                    overlap: false,
356                                    rendering: 'background'
357                                });
358                            }
359                        });
360                        callback(events);
361                        $('#calendar').fullCalendar('addEventSource', events);
362                    },
363                    error: function(data) {
364                        console.log({ title: 'geteventsCalendar error', body: data });
365                        showRedirectUriDialog(
366                            'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度店舗選択からやり直してください。',
367                            '店舗選択画面に戻る',
368                            '/reserve'
369                        );
370                    }
371                });
372
373                // $(".click-event-custome").click(function () {
374                //     console.log("test1");
375                //     $('#calendar').fullCalendar('removeEvents');
376                //     var costume_id = localStorage.getItem("costume_id");
377                //     urlRequest = '/geteventsCalendar/' + costume_id;
378                //     $.ajax({
379                //         headers: {
380                //             'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
381                //         },
382                //         url: urlRequest,
383                //         dataType: 'json',
384                //         type: 'GET',er
385                //         contentType: false,
386                //         processData: false,
387                //         success: function(response) {
388                //             var events = [];
389                //             var data = response.resultDate;
390                //             $.each(data, function(i, item) {
391                //                 if (data[i].prop != '') {
392                //                     events.push({
393                //                         start: data[i].date, // will be parsed
394                //                         overlap: false,
395                //                         rendering: 'background',
396                //                     });
397                //                 }
398                //             });
399                //             callback(events);
400                //             $('#calendar').fullCalendar('addEventSource', events);
401                //         },
402                //         error: function(data) {
403                //             //show error system red
404                //             messagePopup(data.responseJSON.message, true);
405                //         }
406                //     });
407                // });
408
409            }
410            // 予約変更 - 日程選択ページにおけるカレンダー情報ã
410®å–å¾—
411            if (window.location.href.indexOf("reserve/edit/date") > -1) {
412                var urlRequest = '/geteventsCalendarForEdit/';
413
414                $.ajax({
415                    headers: {
416                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
417                    },
418                    url: urlRequest,
419                    dataType: 'json',
420                    type: 'GET',
421                    contentType: false,
422                    processData: false,
423                    success: function(response) {
424                        var events = [];
425                        var data = response.resultDate;
426                        $.each(data, function(i, item) {
427                            if (data[i].prop != '') {
428                                events.push({
429                                    start: data[i].date, // will be parsed
430                                    overlap: false,
431                                    rendering: 'background'
432                                });
433                            } else {
434                                events.push({
435                                    start: data[i].date, // will be parsed
436                                    overlap: false,
437                                    rendering: ''
438                                });
439                            }
440                            if (data[i].hasOwnProperty('nation_holiday')) {
441                                $('td[data-date=' + data[i].date + ']').css('background', 'rgba(235, 102, 98, 0.03)');
442                            }
443                        });
444                        callback(events);
445
446                    },
447                    error: function(data) {
448                        console.log({ title: 'geteventsCalendarForEdit error', body: data });
449                        showRedirectUriDialog(
450                            'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度ログインからやり直してください。',
451                            'TOPページに戻る',
452                            '/'
453                        );
454                    }
455                });
456            }
457            // 予約変更 - 衣装選択ページの日程変更におけるカレンダー情報ã
457®å–å¾—
458            if (window.location.href.indexOf("reserve/edit/costume") > -1) {
459                $('#calendar').fullCalendar('removeEvents');
460                var costume_id = localStorage.getItem("costume_id");
461                urlRequest = '/geteventsCalendarForEdit/' + costume_id;
462                $.ajax({
463                    headers: {
464                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
465                    },
466                    url: urlRequest,
467                    dataType: 'json',
468                    type: 'GET',
469                    contentType: false,
470                    processData: false,
471                    success: function(response) {
472                        var events = [];
473                        var data = response.resultDate;
474                        $.each(data, function(i, item) {
475                            if (data[i].prop != '') {
476                                events.push({
477                                    start: data[i].date, // will be parsed
478                                    overlap: false,
479                                    rendering: 'background'
480                                });
481                            }
482                        });
483                        callback(events);
484                        $('#calendar').fullCalendar('addEventSource', events);
485                    },
486                    error: function(data) {
487                        console.log({ title: 'geteventsCalendarForEdit error', body: data });
488                        showRedirectUriDialog(
489                            'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度ログインからやり直してください。',
490                            'TOPページに戻る',
491                            '/'
492                        );
493                    }
494                });
495            }
496        },
497
498    });
499    $('.fc-prev-button').html(prev + '月');
500    $('.fc-next-button').html(next + '月');
501};
502
503//check Item date next 3 month
504function Checkitem(arr) {
505    if (arr && arr.length > 0) {
506        for (var i = 0; i < arr.length; i++) {
507            if ($(arr[i]).attr('data-date')) {
508                var Item = $(arr[i]).attr('data-date');
509                //get date in next 3 month
510                moment.addRealMonth = function addRealMonth(d) {
511                    var fm = moment(d).add(3, 'M');
512                    var fmEnd = moment(fm).endOf('month');
513                    return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm;
514                }
515                var nextMonth = moment.addRealMonth(moment());
516                var dateNext = moment(nextMonth).add(1, 'd').format('YYYY-MM-DD');
517                if (compareDate(Item, dateNext)) {
518                    $(arr[i]).addClass('fc-state-disabled')
519                }
520                //check date save session confirm page
521                if(window.location.href.indexOf("date_update") > -1) {
522                    if (Item ==  dateSelected) {
523                        $(arr[i]).addClass('is-active');
524                        selectDate(dateSelected, timeSelected );
525                    }
526                }
527            }
528        }
529    }
530}
531
532
533function selectDate(date, timeSelected) {
534    var costume_id = localStorage.getItem("costume_id");
535    //format date show reserve-time
536    var dateHeading = moment(date).format('LLLL');
537    var dateFormatLang = dateHeading.split(" ");
538    $('.today-click').html(dateFormatLang[0] + ' ' + dateFormatLang[2]);
539    //check today
540    var today = new Date().toJSON().slice(0, 10).replace(/-/g, '-');
541    var getUrl;
542    if (costume_id == null) {
543        getUrl = '/getInfoBookingDate/' + date;
544    } else {
545        getUrl = '/getInfoBookingDate/' + date + '/' + costume_id;
546        $("#dateCostume").val(date);
547    }
548    if (isEditPage()) {
549        if (costume_id == null) {
550            getUrl = '/getInfoBookingDateForEdit/' + date;
551        } else {
552            getUrl = '/getInfoBookingDateForEdit/' + date + '/' + costume_id;
553            $("#dateCostume").val(date);
554        }
555    }
556
557    //get date in next 3 month
558    moment.addRealMonth = function addRealMonth(d) {
559        var fm = moment(d).add(3, 'M');
560        var fmEnd = moment(fm).endOf('month');
561        return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm;
562    }
563    var nextMonth = moment.addRealMonth(moment()).format('YYYY-MM-DD');
564    if (today <= date && date <= nextMonth) {
565        $("#dateBooking").val(date);
566        $.ajax({
567            headers: {
568                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
569            },
570            // url: '/getInfoBookingDate/' + date + '/' + costume_id,
571            url: getUrl,
572            dataType: 'json',
573            type: 'POST',
574            data: {
575                date: date
576            },
577            contentType: false,
578            processData: false,
579            success: function(response) {
580                var data = response.resultPickingDate;
581
582                var html = '';
583                var messageBooking = '';
584
585                $.each(data, function(i, item) {
586                    if (data[i].prop != '') {
587                        messageBooking = '空き枠なし';
588                    } else {
589                        messageBooking = '予約する';
590                    }
591                    var activeTime = '';
592                    if(data[i].id == Number(timeSelected)) {
593                        activeTime = 'is-active'
594                    }
595                    if (data[i].isMyReserved) {
596                        messageBooking = '予約する';
597                        html += '<tr><th>' + data[i].time + '~' + '</th><td class="reserve-btn btn-reserve-time"><div class="btn is-active"><a href="javascript:void(0)" data-value="' + data[i].id + '" class="j_sans btn_hover btn_hover_red">' + messageBooking + '</a></div></td></tr>';
598                    } else {
599                        if (isEditPage()) {
600                            html += '<tr><th>' + data[i].time + '~' + '</th><td class="reserve-btn btn-reserve-time"><div class="btn ' + data[i].prop + ' '+ activeTime +'"><a href="javascript:void(0)" data-value="' + data[i].id + '" class="j_sans btn_hover btn_hover_red">' + messageBooking + '</a></div></td></tr>';
601                        } else {
602                            html += '<tr><th>' + data[i].time + '~' + '</th><td class="reserve-btn btn-reserve-time ' + data[i].time + '"><div class="btn ' + data[i].prop + ' '+ activeTime +'"><a href="javascript:void(0)" data-value="' + data[i].id + '" class="j_sans btn_hover btn_hover_red">' + messageBooking + '</a></div></td></tr>';
603                        }
604                    }
605                });
606
607                $("#table-time").html(html);
608                $(".btn-reserve-time a").click(function() {
609                    var hour = $(this).attr("data-value");
610                    $("#hourBooking").val(hour);
611                    $("#hourBookingCostume").val(hour);
612                });
613            },
614            error: function(data) {
615                if (isEditPage()) {
616                    console.log({ title: 'geteventsCalendarForEdit error', body: data });
617                    showRedirectUriDialog(
618                        'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度ログインからやり直してください。',
619                        'TOPページに戻る',
620                        '/'
621                    );    
622                } else {
623                    console.log({ title: 'geteventsCalendar error', body: data });
624                    showRedirectUriDialog(
625                        'セッションの有効期限が切れました。\nお手数をおかけしますが、もう一度店舗選択からやり直してください。',
626                        '店舗選択画面に戻る',
627                        '/reserve'
628                    );    
629                }
630            }
631        }).done(function() {
632
633            $('.js-2nd').find('.btn a').not('.is-disable').on('click', function() {
634                //this
635                $('.js-2nd').find('.btn').removeClass('is-active');
636                $(this).parent().addClass('is-active');
637                //next block
638                $('.js-3rd').addClass('on');
639
640                $('.js-3rd .reserve-box').delay(500).queue(function() {
641                    $(this).addClass('on');
642                });
643                $('.js-3rd .box_first_line').css('display', 'block').queue(function() {
644                    $(this).addClass('on');
645                });
646                //step
647                $('.reserve-step li:nth-of-type(3)').addClass('is-before');
648            });
649            $('.btn a').click(function() {
650                $('.box_first_line').addClass('on');
651            });
652        });
653
654    } else {
655        return false;
656    }
657
658}
659function isEditPage()
660{
661    let isEdit = $('#calendar').attr('data-editReserve');
662    if (isEdit) {
663        return true;
664    }
665    return false;
666}
667//check date item and date next 3 month
668function compareDate(date1, date2) {
669    var timeDate1 = moment(date1);
670    var timeDate2 = moment(date2);
671    if (timeDate1 >= timeDate2) {
672        return true
673    } else {
674        return false
675    }
676}
677
678//validate time
679$('.reserve-btn-date').click(function(event) {
680    if (!$(".btn-reserve-time .btn").hasClass('is-active')) {
681        //show error system black
682        messagePopup('撮影時間を選択してください', true);
683        event.preventDefault();
684    }
685});

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.