PageSourceSearch

https://turismobotanico.es/wp-content/themes/traveler/inc/modules/…/elementorv2/assets/js/main.js?ver=7.1.2

js turismobotanico.es collected 2026-10-02 05:51:23 UTC 28,921 bytes, 609 lines download raw bytes

1;
2(function ($) {
3    'use-strict';
4
5    var HotelV2Action = {
6        isCalendarShown: false,
7        wrapper: $(".search-result-page.layout5, .search-result-page.layout6 , .st-style-4.st-style-elementor, .search-result-page.tour-layout6,.search-result-page.tour-layout7,.search-result-page.activity-layout4,.search-result-page.activity-layout5,.search-result-page.car-layout3,.search-result-page.car-layout4 , .search-result-page.layout-rental-4 , .search-result-page.layout-rental-5, .page-template-template-transfer-search .st-style-elementor.search-result-page"),
8        init() {
9            let base = this;
10            this.initGuestDropdown();
11            this.initDateDropdown();
12            this.initAccountPopup();
13            this.initPasswordField();
14            this.initSearchFieldFocus();
15            this.initElementor();
16            this.initSearchByMoveMap();
17            this.initPriceSlider();
18            this.initCheckboxFilter();
19            this.initTriggers();
20            this.initMapToggle();
21            this.initMenu();
22            this.initTopbar();
23            this.initCalendarAvailability();
24            this.initCalendarAvailabilityRental();
25            this.initItemHover();
26            this.initGoToTop();
27            jQuery(function () {
28                base.initGallery();
29            });
30
31            $(window).on('resize', function () {
32                base.calcPositionArrowSlider();
33            });
34
35            jQuery(function () {
36                setTimeout(function () {
37                    base.calcPositionArrowSlider();
38                }, 700);
39            });
40        },
41
42        initItemHover() {
43            $(document).on('mouseover', '.item-elementor', function () {
44                let postID = $(this).data('id');
45                $('.stt-price-label .inner[data-marker-id="' + postID + '"]').parent().addClass('hover');
46            });
47            $(document).on('mouseleave', '.item-elementor', function () {
48                let postID = $(this).data('id');
49                $('.stt-price-label .inner[data-marker-id="' + postID + '"]').parent().removeClass('hover');
50            });
51        },
52        counterSlider(event) {
53            var element = event.target; // DOM element, in this example .owl-carousel
54            var items = event.item.count; // Number of items
55            var item = event.item.index + 1; // Position of the current item
56
57            // it loop is true then reset counter from 1
58            if (item > items) {
59                item = item - items
60            }
61            $('.count', sliderEl).text(item + ' / ' + items);
62        },
63
64        initGallery() {
65            let sliderEl = $('.st-gallery.style-slider');
66            if (sliderEl.length) {
67				let rtl = sliderEl.data('rtl');
68                let sliderItems = 2;
69                $('.owl-carousel', sliderEl).on('initialized.owl.carousel changed.owl.carousel', function (e) {
70                    if (!e.namespace) {
71                        return;
72                    }
73                    var carousel = e.relatedTarget;
74                    $('.count', sliderEl).text(carousel.relative(carousel.current()) + 1 + ' / ' + carousel.items().length);
75                }).owlCarousel({
76                    center: true,
77                    items: sliderItems,
78                    loop: true,
79                    margin: 10,
80                    dots: false,
81                    nav: true,
82					rtl: rtl == 'on' ? true : false,
83                    responsive: {
84                        768: {
85                            center: true,
86                            items: sliderItems
87                        },
88                        0: {
89                            center: false,
90                            items: 1
91                        }
92                    },
93
94                });
95            }
96
97            let owlSliderEl = $('.st-owl-slider');
98            if (owlSliderEl.length) {
99                let items = owlSliderEl.data('items') || 3;
100                let loop = owlSliderEl.data('loop') === undefined ? true : owlSliderEl.data('loop');
101                let margin = owlSliderEl.data('margin') || 20;
102                let dots = owlSliderEl.data('dots') === undefined ? true : owlSliderEl.data('dots');
103                let nav = owlSliderEl.data('nav') === undefined ? true : owlSliderEl.data('nav');
104                let responsive = owlSliderEl.data('responsive') === undefined ? false : owlSliderEl.data('responsive');
105                let args = {
106                    items: items,
107                    //loop: loop,
108                    margin: margin,
109                    dots: dots,
110                    nav: nav
111                }
112                if (responsive) {
113                    args.responsive = responsive;
114                }
115                owlSliderEl.owlCarousel(args);
116            }
117        },
118
119        initCalendarAvailability() {
120            $('.rate-calendar').each(function () {
121                let t = $(this);
122                let inputCalendar = $('.st-room-availability-input', t);
123                if (inputCalendar.length > 0) {
124                    if (window.matchMedia('(max-width: 767px)').matches) {
125                        var singleDatePicker = true;
126                    } else {
127                        var singleDatePicker = false;
128                    }
129                    let options = {
130                        parentEl: t,
131                        singleDatePicker: singleDatePicker,
132                        showCalendar: true,
133                        alwaysShow: true,
134                        autoApply: true,
135                        disabledPast: true,
136                        classNotAvailable: ['disabled', 'off'],
137                        enableLoading: true,
138                        showEventTooltip: true,
139                        sameDate: false,
140                        minDate: new Date(),
141                        dateFormat: 'DD/MM/YYYY',
142                        customClass: 'st-availability-calendar-wrapper',
143                        widthSingle: 500,
144                    };
145
146                    if (t.hasClass('style-2')) {
147                        options.singleDatePicker = true;
148                    }
149
150                    options.fetchEvents = function (start, end, el, callback) {
151                        var events = [];
152                        if (el.flag_get_events) {
153                            return false;
154                        }
155                        el.flag_get_events = true;
156                        el.container.find('.loader-wrapper').show();
157                        var data = {
158                            action: 'st_get_availability_hotel_room',
159                            start: start.format('YYYY-MM-DD'),
160                            end: end.format('YYYY-MM-DD'),
161                            post_id: inputCalendar.data('room-id'),
162                            security: st_params._s
163                        };
164                        $.post(st_params.ajax_url, data, function (respon) {
165                            if (typeof respon === 'object') {
166                                if (typeof respon.events === 'object') {
167                                    events = respon.events;
168                                } else {
169                                    events = respon;
170                                }
171                            } else {
172                                console.log('Can not get data');
173                            }
174                            callback(events, el);
175                            el.flag_get_events = false;
176                            el.container.find('.loader-wrapper').hide();
177                        }, 'json');
178                    }
179
180                    if (typeof locale_daterangepicker == 'object') {
181                        options.locale = locale_daterangepicker;
182                    }
183                    inputCalendar.daterangepicker(options, function (start, end, label) {});
184                    var dp = inputCalendar.data('daterangepicker');
185                    dp.show();
186                }
187
188            });
189        },
190
191        initCalendarAvailabilityRental() {
192            $('.rate-calendar').each(function () {
193                let t = $(this);
194                let inputCalendar = $('.calendar_input', t);
195
196                let options = {
197                    parentEl: t,
198                    showCalendar: true,
199                    alwaysShow: true,
200                    autoApply: true,
201                    disabledPast: true,
202                    classNotAvailable: ['disabled', 'off'],
203                    enableLoading: true,
204                    showEventTooltip: true,
205                    sameDate: false,
206                    minDate: new Date(),
207                    dateFormat: 'DD/MM/YYYY',
208                    customClass: 'st-availability-calendar-wrapper',
209                    widthSingle: 500,
210                };
211
212                if (t.hasClass('style-2')) {
213                    options.singleDatePicker = true;
214                }
215
216                options.fetchEvents = function (start, end, el, callback) {
217                    var events = [];
218                    if (el.flag_get_events) {
219                        return false;
220                    }
221                    el.flag_get_events = true;
222                    el.container.find('.loader-wrapper').show();
223                    var data = {
224                        action: 'st_get_availability_rental_single',
225                        start: start.format('YYYY-MM-DD'),
226                        end: end.format('YYYY-MM-DD'),
227                        post_id: inputCalendar.data('room-id'),
228                        security: st_params._s
229                    };
230                    $.post(st_params.ajax_url, data, function (respon) {
231                        if (typeof respon === 'object') {
232                            if (typeof respon.events === 'object') {
233                                events = respon.events;
234                            } else {
235                                events = respon;
236                            }
237                        } else {
238                            console.log('Can not get data');
239                        }
240                        callback(events, el);
241                        el.flag_get_events = false;
242                        el.container.find('.loader-wrapper').hide();
243                    }, 'json');
244                }
245
246                if (typeof locale_daterangepicker == 'object') {
247                    options.locale = locale_daterangepicker;
248                }
249                inputCalendar.daterangepicker(options, function (start, end, label) {});
250                var dp = inputCalendar.data('daterangepicker');
251                if (dp) {
252                    dp.show();
253                }
254
255            });
256        },
257
258
259        initTopbar() {
260            var topbar = $('#topbar');
261            $('.cursor, .current_langs', topbar).on('click', function (e) {
262                e.preventDefault();
263                let dropdown = $(this).parent().find('.nav-drop-menu');
264                $('.nav-drop-menu', topbar).not(dropdown).hide();
265                dropdown.toggle();
266            })
267
268            $(document).mouseup(function (e) {
269                var container = $("#topbar .nav-drop");
270                if (!container.is(e.target) && container.has(e.target).length === 0) {
271                    container.find('.nav-drop-menu').hide();
272                }
273            });
274        },
275
276        initMenu() {
277            $('.header__left .menu-toggle').on('click', function () {
278                $('#st-main-menu').toggleClass('open');
279                $('.header__center .overlay').show();
280                $('body').css({
281                    'overflow': 'hidden'
282                })
283            });
284
285            $('#st-main-menu .back-menu, .header__center .overlay').on('click', function (e) {
286                e.preventDefault();
287                $('#st-main-menu').removeClass('open');
288                $('.header__center .overlay').hide();
289                $('body').css({
290                    'overflow': ''
291                })
292            });
293
294            $('#st-main-menu a .fa').on('click', function (e) {
295                e.preventDefault();
296                //$(this).closest('.menu-item ').find('.menu-dropdown').first().slideToggle();
297            });
298        },
299
300        initMapToggle() {
301            let base = this;
302            $('.toggle-map', base.wrapper).on('click', function () {
303                let t = $(this);
304                let pageWrapper = $('.st-results', base.wrapper);
305                if (!t.hasClass('open')) {
306                    $('.maparea').addClass('to-full');
307                    pageWrapper.addClass('nomap');
308                    t.addClass('open');
309                } else {
310                    setTimeout(function () {
311                        $('.maparea').removeClass('to-full');
312                    }, 400)
313                    pageWrapper.removeClass('nomap');
314                    t.removeClass('open');
315                }
316            });
317
318            $('.map-view-popup.style-2 .close').on('click', function () {
319                $(this).parent().fadeOut();
320            });
321        },
322
323        initTriggers() {
324            let base = this;
325            $(document).on('st_clear_filter_action', function (event) {
326                $('.top-filter .dropdown-toggle.active .count', base.wrapper).empty();
327                $('.top-filter .dropdown-toggle.active', base.wrapper).removeClass('active');
328                let filterPrice = $('.filter-price .dropdown.active', base.wrapper);
329                $('span[data-text]', filterPrice).text($('span[data-text]', filterPrice).data('text'));
330                filterPrice.removeClass('active');
331            });
332        },
333
334        initCheckboxFilter() {
335            let base = this;
336            $('.top-filter input[type="checkbox"]', base.wrapper).on('change', function () {
337                let parent = $(this).closest('.form-extra-field'),
338                    countChecked = $('input[type="checkbox"]:checked', parent).length,
339                    dropdown = $('.dropdown-toggle', parent);
340
341                countChecked > 0 ? $('.count', dropdown).text(' (' + countChecked + ') ') : $('.count', dropdown).empty();
342                countChecked > 0 ? dropdown.addClass('active') : dropdown.removeClass('active');
343            });
344        },
345
346        initPriceSlider() {
347            let base = this;
348            $('.filter-price .btn-apply-price-range', base.wrapper).on('click', function () {
349                let parent = $(this).closest('.dropdown-menu'),
350                    from = $('.irs-from', parent).text(),
351                    to = $('.irs-to', parent).text();
352
353                let textRender = from + ' - ' + to,
354                    elRender = $('.filter-price .dropdown', base.wrapper);
355                elRender.find('span').first().text(textRender);
356                if (!elRender.hasClass('active'))
357                    elRender.addClass('active');
358            })
359        },
360
361        initSearchByMoveMap() {
362            if ($('.page-half-map').length) {
363                if ($('#st-move-map').is(':checked')) {
364
365                }
366            }
367        },
368
369        calcPositionArrowSlider() {
370            $('.st-list-destination').each(function () {
371                let slide = $('.swiper-slide', $(this)).first(),
372                    arrow = $('.st-button-prev, .st-button-next', $(this));
373                let slideHeight = parseInt(slide.find('.thumbnail img').height()) / 2 - 20;
374                arrow.css({
375                    top: slideHeight + 'px'
376                });
377            });
378        },
379
380        initSearchFieldFocus() {
381            let fieldDestination = $('.field-detination');
382
383            fieldDestination.on('show.bs.dropdown', function () {
384                $(this).parent().addClass('st-focus');
385            }).on('hidden.bs.dropdown', function () {
386                $(this).parent().removeClass('st-focus');
387            });
388
389            let fieldGuest = $('.field-guest .dropdown');
390            fieldGuest.on('show.bs.dropdown', function () {
391                $(this).parent().addClass('st-focus');
392            }).on('hidden.bs.dropdown', function () {
393                $(this).parent().removeClass('st-focus');
394            });
395        },
396
397        initPasswordField() {
398            $('.field-password .stt-icon').on('click', function () {
399                let t = $(this),
400                    parent = t.parent();
401
402                if (t.hasClass('ic-view')) {
403                    parent.addClass('viewing').find('input').attr('type', 'text');
404                    t.removeClass('ic-view');
405                } else {
406                    parent.removeClass('viewing').find('input').attr('type', 'password');
407                    t.addClass('ic-view');
408                }
409            })
410        },
411
412        initAccountPopup() {
413            let wrapper = $('.login-regiter-popup.style-9');
414            if (wrapper.length) {
415                let accountTab = $('.account-tabs li', wrapper);
416                accountTab.on('click', function () {
417                    let t = $(this),
418                        target = t.data('target');
419                    if (!t.hasClass('active')) {
420                        accountTab.removeClass('active');
421                        t.addClass('active');
422                        $('.login-form-wrapper', wrapper).removeClass('active');
423                        $('.login-form-wrapper.' + target, wrapper).addClass('active');
424                    }
425                });
426
427                $('.create-account-action a').on('click', function (e) {
428                    if ($(this).closest('.modal ').length) {
429                        e.preventDefault();
430                        $('.account-tabs li:last-child', wrapper).trigger('click');
431                    }
432                });
433            }
434        },
435        formatDateDdMmYy(input) {
436            if (st_params.date_format == 'dd/mm/yyyy' || (st_params.date_format == 'dd-mm-yyyy')) {
437                var datePart = input.match(/\d+/g),
438                    day = datePart[0],
439                    month = datePart[1],
440                    year = datePart[2];
441                return month + '/' + day + '/' + year;
442            } else {
443                return input;
444            }
445        },
446
447        initDateDropdown() {
448            let base = this;
449
450            $('.form-date-search').each(function () {
451                var parent = $(this),
452                    dateWrapper = $('.date-item-wrapper', parent),
453                    checkInInput = $('.check-in-input', parent),
454                    checkOutInput = $('.check-out-input', parent),
455                    checkInOut = $('.check-in-out', parent),
456                    checkInRender = $('.check-in-render', parent),
457                    checkOutRender = $('.check-out-render', parent);
458                var timepicker = parent.data('timepicker');
459
460                if (typeof timepicker == 'undefined' || timepicker == '') {
461                    timepicker = false;
462                } else {
463                    timepicker = true;
464                    var start_at_text = parent.data('label-start-time');
465                    var end_at_text = parent.data('label-end-time');
466                }
467                var options = {
468                    singleDatePicker: false,
469                    sameDate: true,
470                    sameDateMulti: true,
471                    autoApply: true,
472                    disabledPast: true,
473                    dateFormat: 'DD/MM/YYYY',
474                    customClass: 'st-search-form-calendar',
475                    widthSingle: 500,
476                    onlyShowCurrentMonth: true,
477                    timePicker: timepicker,
478                    timePicker24Hour: (st_params.time_format == '12h') ? false : true,
479                };
480                if (checkInInput.val() != null && checkInInput.val() != '' && checkOutInput.val() != null && checkOutInput.val() != '') {
481                    options.startDate = base.formatDateDdMmYy(checkInInput.val());
482                    options.endDate = base.formatDateDdMmYy(checkOutInput.val());
483                }
484                var locale_daterangepicker_icon = {
485                    labelStartTime: '<svg height="20px" width="20px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">\n\n<g fill="#000000">\n\t<path d="M12,23.25C5.797,23.25,0.75,18.203,0.75,12C0.75,5.797,5.797,0.75,12,0.75c6.203,0,11.25,5.047,11.25,11.25\n\t\tC23.25,18.203,18.203,23.25,12,23.25z M12,2.25c-5.376,0-9.75,4.374-9.75,9.75s4.374,9.75,9.75,9.75s9.75-4.374,9.75-9.75\n\t\tS17.376,2.25,12,2.25z"/>\n\t<path d="M15.75,16.5c-0.2,0-0.389-0.078-0.53-0.22l-2.25-2.25c-0.302,0.145-0.632,0.22-0.969,0.22c-1.241,0-2.25-1.009-2.25-2.25\n\t\tc0-0.96,0.615-1.808,1.5-2.121V5.25c0-0.414,0.336-0.75,0.75-0.75s0.75,0.336,0.75,0.75v4.629c0.885,0.314,1.5,1.162,1.5,2.121\n\t\tc0,0.338-0.075,0.668-0.22,0.969l2.25,2.25c0.292,0.292,0.292,0.768,0,1.061C16.139,16.422,15.95,16.5,15.75,16.5z M12,11.25\n\t\tc-0.414,0-0.75,0.336-0.75,0.75s0.336,0.75,0.75,0.75s0.75-0.336,0.75-0.75S12.414,11.25,12,11.25z"/>\n</g>\n</svg>' + start_at_text,
486                    labelEndTime: '<svg height="20px" width="20px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n\t viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">\n\n<g fill="#000000">\n\t<path d="M12,23.25C5.797,23.25,0.75,18.203,0.75,12C0.75,5.797,5.797,0.75,12,0.75c6.203,0,11.25,5.047,11.25,11.25\n\t\tC23.25,18.203,18.203,23.25,12,23.25z M12,2.25c-5.376,0-9.75,4.374-9.75,9.75s4.374,9.75,9.75,9.75s9.75-4.374,9.75-9.75\n\t\tS17.376,2.25,12,2.25z"/>\n\t<path d="M15.75,16.5c-0.2,0-0.389-0.078-0.53-0.22l-2.25-2.25c-0.302,0.145-0.632,0.22-0.969,0.22c-1.241,0-2.25-1.009-2.25-2.25\n\t\tc0-0.96,0.615-1.808,1.5-2.121V5.25c0-0.414,0.336-0.75,0.75-0.75s0.75,0.336,0.75,0.75v4.629c0.885,0.314,1.5,1.162,1.5,2.121\n\t\tc0,0.338-0.075,0.668-0.22,0.969l2.25,2.25c0.292,0.292,0.292,0.768,0,1.061C16.139,16.422,15.95,16.5,15.75,16.5z M12,11.25\n\t\tc-0.414,0-0.75,0.336-0.75,0.75s0.336,0.75,0.75,0.75s0.75-0.336,0.75-0.75S12.414,11.25,12,11.25z"/>\n</g>\n</svg>
486' + end_at_text,
487                }
488                if (typeof locale_daterangepicker == 'object') {
489                    var setting_locale = {
490                        ...locale_daterangepicker_icon,
491                        ...locale_daterangepicker
492                    };
493                    options.locale = setting_locale;
494                }
495                checkInOut.on('blur');
496                checkInOut.daterangepicker(options, function (start, end, label) {
497                    if (parent.hasClass('form-date-travelpayout')) {
498                        checkInInput.val(start.format('YYYY-MM-DD')).trigger('change');
499                    } else {
500                        checkInInput.val(start.format(parent.data('format'))).trigger('change');
501
502                    }
503                    checkInRender.html(start.format(parent.data('format'))).trigger('change');
504                    if (parent.hasClass('form-date-travelpayout')) {
505                        checkOutInput.val(end.format('YYYY-MM-DD')).trigger('change');
506                    } else {
507                        checkOutInput.val(end.format(parent.data('format'))).trigger('change');
508
509                    }
510                    checkOutRender.html(end.format(parent.data('format'))).trigger('change');
511                    if (timepicker) {
512                        checkInInput.val(start.format(parent.data('date-format'))).trigger('change');
513                        $('.check-in-input-time', parent).val(start.format(parent.data('time-format'))).trigger('change');
514                        checkOutInput.val(end.format(parent.data('date-format'))).trigger('change');
515                        $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
516                        $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
517                    }
518                    checkInOut.trigger('daterangepicker_change', [start, end]);
519                });
520
521                checkInOut.on('click.start.daterangepicker', function () {
522                    if (base.isCalendarShown) {
523                        $('.date-item-wrapper.checkin').removeClass('st-focus');
524                        $('.date-item-wrapper.checkout').addClass('st-focus');
525                    }
526                    base.isCalendarShown = true;
527                });
528
529                checkInOut.on('show.daterangepicker', function () {
530                    $('.date-item-wrapper.checkin').addClass('st-focus');
531                    $('.date-item-wrapper.checkout').removeClass('st-focus');
532                    base.isCalendarShown = false;
533                });
534
535                checkInOut.on('hide.daterangepicker', function () {
536                    $('.date-item-wrapper').removeClass('st-focus');
537                    base.isCalendarShown = false;
538                });
539            });
540        },
541
542        initGuestDropdown() {
543
544            let search_v2 = $('.search-form-v2');
545            let search_v3 = $('.search-form-v3');
546            if (typeof search_v2 != 'undefined' || typeof search_v3 != 'undefined') {
547                $('input[name="room_num_search"], input[name="adult_number"], input[name="child_number"]', search_v2, search_v3 ).on('change', function () {
548                    let wrapper = $(this).parents('.field-guest');
549                    let renderEl = $('.render span', wrapper),
550                        inputRoom = $('input[name="room_num_search"]', wrapper),
551                        inputAdult = $('input[name="adult_number"]', wrapper),
552                        inputChild = $('input[name="child_number"]', wrapper),
553                        i108n = renderEl.data('text');
554
555                    let numberGuest = parseInt(inputAdult.val()) + parseInt(inputChild.val());
556                    let textRoom = '';
557                    let textComma = '';
558                    let numberRoom = '';
559                    if (typeof i108n.room !== 'undefined') {
560                        textRoom = (numberRoom === 1 ? i108n.room : i108n.rooms);
561                        numberRoom = inputRoom.val();
562                        textComma = (numberRoom !== '' ? ', ' : '');
563                        if(typeof numberRoom != 'undefined'){
564                            numberRoom = parseInt(inputRoom.val()) + ' ';
565                        } else {
566                            numberRoom = '';
567                            textRoom = '';
568                        }
569                    }
570                    if($('.render', wrapper).hasClass('hide')){
571                        $('.render', wrapper).removeClass('hide');
572                        $('.st-form-dropdown-icon label', wrapper).addClass('hide');
573                    }
574                    renderEl.text(numberGuest + ' ' + (numberGuest === 1 ? i108n.guest : i108n.guests) + textComma + numberRoom + '' + textRoom);
575                });
576            }
577        },
578
579        initElementor() {
580            let base = this;
581            $(window).on('elementor/frontend/init', function () {
582                elementorFrontend.hooks.addAction('frontend/element_ready/st_destination.default', function ($wrapper) {
583                    setTimeout(function () {
584                        base.calcPositionArrowSlider();
585                    }, 700);
586                });
587            });
588        },
589        initGoToTop() {
590            $('#gotop').on('click', function () {
591                $("body,html").animate({
592                    scrollTop: 0
593                }, 700, function () {
594                    $('#gotop').fadeOut()
595                })
596            });
597            $(window).on('scroll', function () {
598                var scrolltop = $(window).scrollTop();
599                if (scrolltop > 200) {
600                    $('#gotop').fadeIn()
601                } else {
602                    $('#gotop').fadeOut()
603                }
604            });
605        }
606    }
607
608    HotelV2Action.init();
609})(jQuery);

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.