PageSourceSearch

https://www.beautifulsalalah.com/wp-content/themes/traveler/v3/js/form-search.js

js beautifulsalalah.com collected 2026-10-02 12:15:50 UTC 36,699 bytes, 734 lines download raw bytes

1;
2(function ($) {
3    "use strict";
4    //Search form
5    let SearchForm = {
6        $body: $('body'),
7        isValidated: {},
8        init: function () {
9            let base = this;
10            var advFacilities = [];
11            base._dropdownselect();
12            base._destinationSelect();
13            base._destinationSelectCarTransfer();
14            // base._scrollFormSearch();
15            base._dropdownselectDate();
16            base._addNextPreInput();
17            base._rangeSliderPrice();
18            base._chooseTaxonomy(advFacilities);
19            base._chooseTaxonomyChecked(advFacilities);
20            base._initSearchLocation();
21            base._initSearchLocationCarTransfer();
22        },
23
24        _initSearchLocation() {
25            var base = this;
26            $(".st-banner-search-form.style_2 .tab-pane").each(function (index) {
27                var input = $(this).find('[name="location_name"]');
28                var timer = null;
29                input.on('keydown', function () {
30                    clearTimeout(timer);
31                    timer = setTimeout(doStuff, 200)
32                });
33            });
34
35
36            function doStuff() {
37                let parent = input.closest('.destination-search'),
38                    ulEl = $('.dropdown-menu ul', parent),
39                    loader = $('.dropdown-menu .loader-wrapper', parent);
40
41                loader.show();
42                $.post(st_params.ajax_url, {
43                    action: 'st_get_list_location',
44                    _s: input.val(),
45                    post_type: input.data('post-type')
46                }, function (respon) {
47                    if (typeof respon === 'object') {
48                        ulEl.find('.item').remove();
49                        if (respon.options !== '') {
50                            $(respon.options).insertAfter($('.location-heading', ulEl));
51                            $('.location-heading', ulEl).hide();
52                            ulEl.removeClass('no-data');
53                        } else {
54                            $('.location-heading', ulEl).text(input.data('text-no')).show();
55                            ulEl.addClass('no-data');
56                        }
57                    } else {
58                        console.log('Can not get data');
59                    }
60                    $('#dropdown-destination').dropdown('show');
61                    base._destinationSelect();
62                    loader.hide();
63                }, 'json');
64            }
65        },
66
67        _initSearchLocationCarTransfer() {
68            var base = this;
69            var input_to = $('.st-banner-search-form.style_2 [name="location_name_to"]');
70            var timer = null;
71            input_to.on('keydown', function () {
72                clearTimeout(timer);
73                timer = setTimeout(doStuff, 200)
74            });
75
76            function doStuff() {
77                let parent = input.closest('.destination-search'),
78                    ulEl = $('.dropdown-menu ul', parent),
79                    loader = $('.dropdown-menu .loader-wrapper', parent);
80
81                loader.show();
82                $.post(st_params.ajax_url, {
83                    action: 'st_get_list_location',
84                    _s: input.val(),
85                    post_type: input.data('post-type')
86                }, function (respon) {
87                    if (typeof respon === 'object') {
88                        ulEl.find('.item').remove();
89                        if (respon.options !== '') {
90                            $(respon.options).insertAfter($('.location-heading', ulEl));
91                            $('.location-heading', ulEl).hide();
92                            ulEl.removeClass('no-data');
93                        } else {
94                            $('.location-heading', ulEl).text(input.data('text-no')).show();
95                            ulEl.addClass('no-data');
96                        }
97                    } else {
98                        console.log('Can not get data');
99                    }
100                    $('#dropdown-destination-to').dropdown('show');
101                    base._destinationSelectCarTransfer();
102                    loader.hide();
103                }, 'json');
104            }
105        },
106
107        _chooseTaxonomyChecked: function (advFacilities) {
108            $('.advance-item.facilities input[type="checkbox"]').each(function () {
109                var t = $(this);
110                if (t.is(':checked')) {
111                    advFacilities.push(t.val());
112                }
113            });
114        },
115        _chooseTaxonomy: function (advFacilities) {
116            $('.advance-item.facilities input[type="checkbox"]').on('change', function () {
117                var t = $(this);
118                if (t.is(':checked')) {
119                    advFacilities.push(t.val());
120                } else {
121                    var index = advFacilities.indexOf(t.val());
122                    if (index > -1) {
123                        advFacilities.splice(index, 1);
124                    }
125                }
126                t.closest('.facilities').find('.data_taxonomy').val(advFacilities.join(','));
127            });
128        },
129        //pure JS
130        scrollToBottom(id, name_item) {
131            $(id)
132                .on('click', function (event) {
133                    console.log();
134                    var target = $(id);
135                    if (target.length) {
136                        // Only prevent default if animation is actually gonna happen
137                        event.preventDefault();
138                        $('html, body').animate({
139                            scrollTop: target.offset().top - 30
140                        }, 300, function () {
141
142                        });
143                    }
144                });
145        },
146
147        _scrollFormSearch: function () {
148            $('.search-form-v2 .field-detination').each(function () {
149                SearchForm.scrollToBottom(this, '.field-detination');
150            });
151            $('.search-form-v2 .form-date-search').each(function () {
152                SearchForm.scrollToBottom(this, '.form-date-search');
153            });
154            $('.search-form-v2 .field-guest').each(function () {
155                SearchForm.scrollToBottom(this, '.field-guest');
156            });
157        },
158
159        _destinationSelect: function () {
160            /*Destination selection*/
161
162            $('.field-detination').each(function () {
163
164                var t = $(this),
165                    parent = $(this).closest('.border-right'),
166                    dropdown_menu = $('.dropdown-menu', parent);
167                if (parent.length < 1) {
168                    parent = $(this).closest('.destination-search');
169                    dropdown_menu = $('.dropdown-menu', parent);
170                }
171
172
173
174                $('li', dropdown_menu).on('click', function () {
175                    console.log(this);
176                    var target = $(this).closest('.dropdown-menu').attr('aria-labelledby');
177                    var focus = parent.find('#' + target);
178
179                    $('.destination', focus).text($(this).find('span').text());
180                    $('input[name="location_name"]', focus).val($(this).find('span').text());
181                    $('input.location_name', focus).val($(this).find('span').text());
182                    $('input[name="location_id"]', focus).val($(this).data('value'));
183                    $('input.location_id', focus).val($(this).data('value'));
184                    t.dropdown('hide');
185                });
186            });
187        },
188        _destinationSelectCarTransfer: function () {
189            /*Destination selection*/
190            //From
191            $('.field-detination-from').each(function () {
192
193                var t = $(this),
194                    parent = $(this).closest('.border-right'),
195                    dropdown_menu = $('.dropdown-menu', parent);
196                if (parent.length < 1) {
197                    parent = $(this).closest('.destination-search');
198                    dropdown_menu = $('.dropdown-menu', parent);
199                }
200
201
202
203                $('li', dropdown_menu).on('click', function () {
204                    console.log(this);
205                    var target = $(this).closest('.dropdown-menu').attr('aria-labelledby');
206                    var focus = parent.find('#' + target);
207
208                    $('.destination', focus).text($(this).find('span').text());
209                    $('input[name="transfer_from_name"]', focus).val($(this).find('span').text());
210                    $('input.transfer_from_name', focus).val($(this).find('span').text());
211                    $('input[name="transfer_from"]', focus).val($(this).data('value'));
212                    t.dropdown('hide');
213                });
214            });
215            //To
216            $('.field-detination-to').each(function () {
217
218                var t = $(this),
219                    parent = $(this).closest('.border-right'),
220                    dropdown_menu = $('.dropdown-menu', parent);
221                if (parent.length < 1) {
222                    parent = $(this).closest('.destination-search');
223                    dropdown_menu = $('.dropdown-menu', parent);
224                }
225
226
227
228                $('li', dropdown_menu).on('click', function () {
229                    console.log(this);
230                    var target = $(this).closest('.dropdown-menu').attr('aria-labelledby');
231                    var focus = parent.find('#' + target);
232
233                    $('.destination', focus).text($(this).find('span').text());
234                    $('input[name="transfer_to_name"]', focus).val($(this).find('span').text());
235                    $('input.transfer_to_name', focus).val($(this).find('span').text());
236                    $('input[name="transfer_to"]', focus).val($(this).data('value'));
237                    t.dropdown('hide');
238                });
239            });
240        },
241        _rangeSliderPrice: function () {
242            function format_money($money) {
243
244                $money = st_number_format($money, st_params.booking_currency_precision, st_params.decimal_separator, st_params.thousand_separator);
245                var $symbol = st_params.currency_symbol;
246                var $money_string = '';
247
248                switch (st_params.currency_position) {
249                    case "right":
250                        $money_string = $money + $symbol;
251                        break;
252                    case "left_space":
253                        $money_string = $symbol + " " + $money;
254                        break;
255
256                    case "right_space":
257                        $money_string = $money + " " + $symbol;
258                        break;
259                    case "left":
260                    default:
261                        $money_string = $symbol + $money;
262                        break;
263                }
264
265                return $money_string;
266            }
267
268            function st_number_format(number, decimals, dec_point, thousands_sep) {
269                number = (number + '')
270                    .replace(/[^0-9+\-Ee.]/g, '');
271                var n = !isFinite(+number) ? 0 : +number,
272                    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
273                    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
274                    dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
275                    s = '',
276                    toFixedFix = function (n, prec) {
277                        var k = Math.pow(10, prec);
278                        return '' + (Math.round(n * k) / k)
279                            .toFixed(prec);
280                    };
281                // Fix for IE parseFloat(0.55).toFixed(0) = 0;
282                s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
283                    .split('.');
284                if (s[0].length > 3) {
285                    s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
286                }
287                if ((s[1] || '')
288                    .length < prec) {
289                    s[1] = s[1] || '';
290                    s[1] += new Array(prec - s[1].length + 1)
291                        .join('0');
292                }
293                return s.join(dec);
294            }
295            $(".price_range").each(function () {
296                var t = $(this);
297                var min = $(this).data('min');
298                var max = $(this).data('max');
299                var step = $(this).data('step');
300                var value = $(this).val();
301                var from = value.split(';');
302                var prefix_symbol = $(this).data('symbol');
303                var to = from[1];
304                from = from[0];
305                $(this).ionRangeSlider({
306                    min: min,
307                    max: max,
308                    type: 'double',
309                    prefix: prefix_symbol,
310                    prettify: false,
311                    step: step,
312					onStart: function (data) {
313						t.trigger('st_ranger_price_change');
314                        set_price_range_val(data, $('input[name="price_range"]'));
315                        format_price_price_ranger(data, t);
316						update_value_input(t)
317					},
318                    onChange: function (data) {
319                        t.trigger('st_ranger_price_change');
320                        set_price_range_val(data, $('input[name="price_range"]'));
321                        format_price_price_ranger(data, t);
322						update_value_input(t)
323                    },
324					onFinish: function(data) {
325						t.trigger('st_ranger_price_change');
326                        set_price_range_val(data, $('input[name="price_range"]'));
327                        format_price_price_ranger(data, t);
328						update_value_input(t)
329					},
330					onUpdate: function(data) {
331						t.trigger('st_ranger_price_change');
332                        set_price_range_val(data, $('input[name="price_range"]'));
333                        format_price_price_ranger(data, t);
334						update_value_input(t)
335					},
336                    from: from,
337                    to: to,
338                    force_edges: true,
339                });
340
341				let priceRange = t.data("ionRangeSlider");
342				$('.price-action a.clear-price').on('click', function () {
343					if ( st_params.currency_position == 'right' || st_params.currency_position == 'right_space' ) {
344						priceRange.update( {
345							from: from,
346							to: to,
347							prefix: '',
348							postfix: prefix_symbol,
349                    		prettify: false,
350						} );
351					}
352					if ( st_params.currency_position == 'left' || st_params.currency_position == 'left_space' ) {
353						priceRange.update( {
354							from: from,
355							to: to,
356							prefix: prefix_symbol,
357							postfix: '',
358                    		prettify: false,
359						} );
360					}
361					// priceRange.reset();
362				});
363            });
364
365            function format_price_price_ranger(data, t) {
366                var convert_price_min = format_money(data.from);
367                var convert_price_max = format_money(data.to);
368                t.parents('.range-slider').find('.irs-from').text(convert_price_min);
369                t.parents('.range-slider').find('.irs-to').text(convert_price_max);
370            }
371
372            function set_price_range_val(data, element) {
373                var exchange = 1;
374                var from = Math.round(parseInt(data.from) / exchange);
375                var to = Math.round(parseInt(data.to) / exchange);
376                var text = from + ";" + to;
377                element.val(text);
378            }
379
380			function update_value_input(t) {
381				let parent = t.closest('.range-slider'),
382					from   = $('.irs-from', parent).text(),
383					to     = $('.irs-to', parent).text();
384				$('.min-max-value .item-value', parent).first().find('span').text(from);
385				$('.min-max-value .item-value', parent).last().find('span').text(to);
386			}
387        },
388        _addNextPreInput: function () {
389            $('.st-number-wrapper').each(function () {
390                var timeOut = 0;
391                var t = $(this);
392                var input = t.find('.st-input-number');
393                input.before('<span class="prev"><svg width="18px" height="2px" viewBox="0 0 18 2" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n' +
394                    '    <!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->\n' +
395                    '    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">\n' +
396                    '        <g id="Tour_Detail_1" transform="translate(-1180.000000, -1085.000000)" stroke="#5E6D77" stroke-width="1.5">\n' +
397                    '            <g id="check-avai" transform="translate(1034.000000, 867.000000)">\n' +
398                    '                <g id="adults" transform="translate(0.000000, 184.000000)">\n' +
399                    '                    <g id="ico_subtract" transform="translate(147.000000, 35.000000)">\n' +
400                    '                        <path d="M0.5,0.038 L15.5,0.038" id="Shape"></path>\n' +
401                    '                    </g>\n' +
402                    '                </g>\n' +
403                    '            </g>\n' +
404                    '        </g>\n' +
405                    '    </g>\n' +
406                    '</svg></span>');
407                input.after('<span class="next"><svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n' +
408                    '    <!-- Generator: Sketch 49 (51002) - http://www.bohemiancoding.com/sketch -->\n' +
409                    '    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">\n' +
410                    '        <g id="Tour_Detail_1" transform="translate(-1258.000000, -1077.000000)" stroke="#5E6D77" stroke-width="1.5">\n' +
411                    '            <g id="check-avai" transform="translate(1034.000000, 867.000000)">\n' +
412                    '                <g id="adults" transform="translate(0.000000, 184.000000)">\n' +
413                    '                    <g id="ico_add" transform="translate(225.000000, 27.000000)">\n' +
414                    '                        <path d="M0.5,8 L15.5,8" id="Shape"></path>\n' +
415                    '                        <path d="M8,0.5 L8,15.5" id="Shape"></path>\n' +
416                    '                    </g>\n' +
417                    '                </g>\n' +
418                    '            </g>\n' +
419                    '        </g>\n' +
420                    '    </g>\n' +
421                    '</svg></span>');
422
423                t.find('span').on("click", function () {
424                    var $button = $(this);
425                    var min = parseFloat( $button.closest('.st-number-wrapper').find('.st-input-number').attr('data-min') );
426                    var max = parseFloat( $button.closest('.st-number-wrapper').find('.st-input-number').attr('data-max') );
427					if ( $( 'body' ).hasClass( 'single-hotel_room' ) ) {
428						numberButtonFuncRoom($button, min, max);
429					} else {
430						numberButtonFunc($button, min, max);
431					}
432                });
433                t.find('span').on("touchstart", function (e) {
434                    $(this).trigger('click');
435                    e.preventDefault();
436                    var $button = $(this);
437                    timeOut = setInterval(function () {
438                        // numberButtonFunc($button);
439                    }, 150);
440                }).on('mouseup mouseleave touchend', function () {
441                    clearInterval(timeOut);
442                });
443
444                function numberButtonFunc($button, min = 0, max = 20) {
445                    var oldValue = $button.parent().find("input").val();
446                    if ($('.single-st_rental').length > 0) {
447                        var container = $button.closest('.st-number-wrapper');
448                    } else {
449                        var container = $button.closest('.form-guest-search');
450                    }
451
452                    var total = 0;
453                    $('input[type="text"]', container).each(function () {
454                        total += parseInt($(this).val());
455                    });
456                    var newVal = oldValue;
457                    if ($button.hasClass('next')) {
458                        if (total < max) {
459                            if (oldValue < max) {
460                                newVal = parseFloat(oldValue) + 1;
461                            } else {
462                                newVal = max;
463                            }
464                        } else {
465							let html = `<div class="alert alert-danger"> Max of people is ${total} people`;
466							$( '#form-booking-inpage .message-wrapper-2' ).append( html ).fadeTo( 5000, 1, () => {
467								$( '#form-booking-inpage .message-wrapper-2 .alert' ).remove();
468							} );
469						}
470                    } else {
471                        if (oldValue > min) {
472                            newVal = parseFloat(oldValue) - 1;
473                        } else {
474                            newVal = min;
475                        }
476                    }
477                    $button.parent().find("input").val(newVal);
478                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.search-form').trigger('change');
479                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.form-check-availability-hotel').trigger('change');
480                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.single-room-form').trigger('change');
481                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.activity-booking-form').trigger('change');
482                    if (window.matchMedia('(max-width: 767px)').matches) {
483                        $('#dropdown-1 label', $button.closest('.field-guest')).hide();
484                        $('#dropdown-1 .render', $button.closest('.field-guest')).show();
485                    }
486                };
487				function numberButtonFuncRoom($button, min = 0, max = 20) {
488                    var oldValue = $button.parent().find("input").val();
489					var container = $button.closest('.st-number-wrapper');
490
491                    var total = 0;
492                    $('input[type="text"]', container).each(function () {
493                        total += parseInt($(this).val());
494                    });
495                    var newVal = oldValue;
496                    if ($button.hasClass('next')) {
497                        if (total < max) {
498                            if (oldValue < max) {
499                                newVal = parseFloat(oldValue) + 1;
500                            } else {
501                                newVal = max;
502                            }
503                        } else {
504							let html = `<div class="alert alert-danger"> Max of people is ${total} people`;
505							$( '#form-booking-inpage .message-wrapper-2' ).append( html ).fadeTo( 2000, 1, () => {
506								$( '#form-booking-inpage .message-wrapper-2 .alert' ).remove();
507							} );
508						}
509                    } else {
510                        if (oldValue > min) {
511                            newVal = parseFloat(oldValue) - 1;
512                        } else {
513                            newVal = min;
514                        }
515                    }
516                    $button.parent().find("input").val(newVal);
517                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.search-form').trigger('change');
518                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.form-check-availability-hotel').trigger('change');
519                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.single-room-form').trigger('change');
520                    $('input[name="' + $button.parent().find("input").attr('name') + '"]', '.activity-booking-form').trigger('change');
521                    if (window.matchMedia('(max-width: 767px)').matches) {
522                        $('#dropdown-1 label', $button.closest('.field-guest')).hide();
523                        $('#dropdown-1 .render', $button.closest('.field-guest')).show();
524                    }
525                }
526            });
527        },
528        _dropdownselectDate: function () {
529            if (!$('body').hasClass("single-hotel_room") && !$('body').hasClass("single-st_hotel") && !$('body').hasClass("single-st_activity") && !$('body').hasClass("single-st_tours") &&
530                !$('body').hasClass("single-st_cars") && !$('body').hasClass("single-st_rental")
531            ) {
532
533                $('.form-date-search', 'body').each(function () {
534                    var parent = $(this),
535                        date_wrapper = $('.date-wrapper', parent),
536                        check_in_input = $('.check-in-input', parent),
537                        check_out_input = $('.check-out-input', parent),
538                        check_in_out = $('.check-in-out', parent),
539                        check_in_render = $('.check-in-render', parent),
540                        check_out_render = $('.check-out-render', parent);
541                    var timepicker = parent.data('timepicker');
542
543                    if (typeof timepicker == 'undefined' || timepicker == '') {
544                        timepicker = false;
545                    } else {
546                        timepicker = true;
547                    }
548                    var options = {
549                        singleDatePicker: false,
550                        sameDate: false,
551                        autoApply: true,
552                        minDate: new Date(),
553                        dateFormat: 'DD/MM/YYYY',
554                        customClass: '',
555                        widthSingle: 500,
556                        onlyShowCurrentMonth: true,
557                        timePicker: timepicker,
558                        timePicker24Hour: (st_params.time_format == '12h') ? false : true,
559                    };
560                    if (typeof locale_daterangepicker == 'object') {
561                        options.locale = locale_daterangepicker;
562                    }
563                    check_in_out.daterangepicker(options,
564                        function (start, end, label) {
565                            check_in_input.val(start.format(parent.data('format'))).trigger('change');
566                            $('#tp_hotel .form-date-search .check-in-input').val(start.format('YYYY-MM-DD')).trigger('change');
567                            check_in_render.html(start.format(parent.data('format'))).trigger('change');
568                            check_out_input.val(end.format(parent.data('format'))).trigger('change');
569                            $('#tp_hotel .form-date-search .check-out-input').val(end.format('YYYY-MM-DD')).trigger('change');
570                            check_out_render.html(end.format(parent.data('format'))).trigger('change');
571                            if (timepicker) {
572                                check_in_input.val(start.format(parent.data('date-format'))).trigger('change');
573                                $('.check-in-input-time', parent).val(start.format(parent.data('time-format'))).trigger('change');
574                                check_out_input.val(end.format(parent.data('date-format'))).trigger('change');
575                                $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
576                                $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
577                            }
578                            check_in_out.trigger('daterangepicker_change', [start, end]);
579                            if (window.matchMedia('(max-width: 767px)').matches) {
580                                $('label', parent).hide();
581                                $('.render', parent).show();
582                                $('.check-in-wrapper span', parent).show();
583                            }
584                        }
585                    );
586
587                    date_wrapper.on('click', function (e) {
588                        check_in_out.trigger('click');
589                    });
590                });
591                $('.form-date-search-v3', 'body').each(function () {
592
593                    var parent = $(this),
594                        date_wrapper = $('.date-wrapper', parent),
595                        check_in_input = $('.check-in-input', parent),
596                        check_out_input = $('.check-out-input', parent),
597                        check_in_out = $('.check-in-out', parent),
598                        check_in_render = $('.check-in-render', parent),
599                        check_out_render = $('.check-out-render', parent);
600                    var timepicker = parent.data('timepicker');
601                    if (typeof timepicker == 'undefined' || timepicker == '') {
602                        timepicker = false;
603                    } else {
604                        timepicker = true;
605                    }
606                    var customClass = parent.data('custom-class') || '';
607                    var options = {
608                        singleDatePicker: false,
609                        autoApply: true,
610                        disabledPast: true,
611                        dateFormat: 'DD/MM/YYYY',
612                        customClass: customClass,
613                        widthSingle: 500,
614                        onlyShowCurrentMonth: true,
615                        timePicker: timepicker,
616                        timePicker24Hour: (st_params.time_format == '12h') ? false : true,
617                    };
618                    if (typeof locale_daterangepicker == 'object') {
619                        options.locale = locale_daterangepicker;
620                    }
621                    check_in_out.daterangepicker(options,
622                        function (start, end, label) {
623                            check_in_input.val(start.format(parent.data('format'))).trigger('change');
624                            $('#tp_hotel .form-date-search .check-in-in
624put').val(start.format('YYYY-MM-DD')).trigger('change');
625                            var html = start.format(parent.data('format')) + ' - ';
626                            check_in_render.html(html).trigger('change');
627                            check_out_input.val(end.format(parent.data('format'))).trigger('change');
628                            $('#tp_hotel .form-date-search .check-out-input').val(end.format('YYYY-MM-DD')).trigger('change');
629                            check_out_render.html(end.format(parent.data('format'))).trigger('change');
630
631                            if (timepicker) {
632                                check_in_input.val(start.format(parent.data('date-format'))).trigger('change');
633                                $('.check-in-input-time', parent).val(start.format(parent.data('time-format'))).trigger('change');
634                                check_out_input.val(end.format(parent.data('date-format'))).trigger('change');
635                                $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
636                                $('.check-out-input-time', parent).val(end.format(parent.data('time-format'))).trigger('change');
637
638
639                            }
640                            check_in_out.trigger('daterangepicker_change', [start, end]);
641                            $('body').removeClass('st_overflow');
642                            if (window.matchMedia('(max-width: 767px)').matches) {
643                                $('label', parent).hide();
644                                $('.render', parent).show();
645                                $('.check-in-wrapper span', parent).show();
646                            }
647                        });
648                    date_wrapper.on('click', function (e) {
649                        console.log('ok đã click');
650                        check_in_out.trigger('click');
651                    });
652                });
653            }
654
655        },
656        _dropdownselect: function () {
657            $('.form-extra-field').each(function () {
658                let wrapper = $('.field-guest');
659                var parent = $(this).parent('.form-group');
660                parent.on('click', function (e) {
661                    console.log('ok');
662                    $(this).find('.arrow').toggleClass('fa-angle-down fa-angle-up');
663                });
664
665                $('.arrow', parent).on('click', function (e) {
666                    var drop_down = $(this).closest('.dropdown');
667                    var dropdown_menu = $('[aria-labelledby="' + drop_down.find('.dropdown-toggle').attr('id') + '"]', parent);
668                    $('.form-extra-field').find('.dropdown-menu').not(dropdown_menu).slideUp(50);
669                    dropdown_menu.slideToggle(50);
670                    $(this).toggleClass('fa-angle-down fa-angle-up');
671                });
672                $('input[name="adult_number"]', parent).on('change', function () {
673                    var adults = parseInt($(this).val());
674                    var html = adults;
675                    if (typeof adults == 'number') {
676                        if (adults < 2) {
677                            html = adults + ' ' + $('.render .adult', wrapper).data('text');
678                        } else {
679                            html = adults + ' ' + $('.render .adult', wrapper).data('text-multi');
680                        }
681                    }
682                    $('.render .adult', parent).html(html);
683                });
684                //$('input[name="adult_number"]', parent).trigger('change');
685                $('input[name="child_number"]', parent).on('change', function () {
686                    var children = parseInt($(this).val());
687                    var html = children;
688                    if (typeof children == 'number') {
689                        if (children < 2) {
690                            html = children + ' ' + $('.render .children', wrapper).data('text');
691                        } else {
692                            html = children + ' ' + $('.render .children', wrapper).data('text-multi');
693                        }
694                    }
695                    $('.render .children', parent).html(html);
696                });
697                //$('input[name="child_number"]', parent).trigger('change');
698            });
699
700            /*Travel Payout Hotel*/
701            $('#nav-tp_hotel .form-extra-field').each(function () {
702                var parent = $(this);
703                $('input[name="adults"]', parent).on('change', function () {
704
705                    var adults = parseInt($(this).val());
706                    var html = adults;
707                    if (typeof adults == 'number') {
708                        if (adults < 2) {
709                            html = adults + ' ' + $('.render .adult', parent).data('text');
710                        } else {
711                            html = adults + ' ' + $('.render .adult', parent).data('text-multi');
712                        }
713                    }
714                    $('.render .adult', parent).html(html);
715                });
716                $('input[name="children"]', parent).on('change', function () {
717                    var children = parseInt($(this).val());
718                    var html = children;
719                    if (typeof children == 'number') {
720                        if (children < 2) {
721                            html = children + ' ' + $('.render .children', parent).data('text');
722                        } else {
723                            html = children + ' ' + $('.render .children', parent).data('text-multi');
724                        }
725                    }
726                    $('.render .children', parent).html(html);
727                });
728            });
729
730
731        }
732    }
733    SearchForm.init();
734})(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.