PageSourceSearch

https://vietnamtravel.com/wp-content/plugins/vietnamtravel-require…/js/bas-custom-tour-frontend.js?ver=9953

js vietnamtravel.com collected 2026-09-29 12:11:48 UTC 64,128 bytes, 1,223 lines download raw bytes

1var __extends = (this && this.__extends) || (function () {
2    var extendStatics = Object.setPrototypeOf ||
3        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
4        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
5    return function (d, b) {
6        extendStatics(d, b);
7        function __() { this.constructor = d; }
8        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9    };
10})();
11var BAS_FRONTEND_CUSTOM_TOUR;
12(function (BAS_FRONTEND_CUSTOM_TOUR) {
13    /**
14
15     * Site modules that do not accept a request for a single traveller
16
17     * (Theme Settings > General > Config > Site Module)
18
19     */
20    function atlSingleGuestRestricted() {
21        var settings = atlThemeSettings();
22        var project = settings.atl_general_project ? settings.atl_general_project : 'vietnam';
23        return -1 !== ['laos', 'cambodia'].indexOf(project);
24    }
25    BAS_FRONTEND_CUSTOM_TOUR.atlSingleGuestRestricted = atlSingleGuestRestricted;
26    /**
27
28     * Theme settings shared with the frontend scripts
29
30     */
31    function atlThemeSettings() {
32        return window.bas_admin && window.bas_admin.themeSettings
33            ? window.bas_admin.themeSettings
34            : {};
35    }
36    BAS_FRONTEND_CUSTOM_TOUR.atlThemeSettings = atlThemeSettings;
37    /**
38
39     * Theme Settings > General > Config > Submission Blocked Message
40
41     */
42    function atlSingleGuestMessage() {
43        var settings = atlThemeSettings();
44        return settings.atl_single_guest_block_message
45            ? settings.atl_single_guest_block_message
46            : 'We couldn’t complete your request right now. Please try again later.';
47    }
48    BAS_FRONTEND_CUSTOM_TOUR.atlSingleGuestMessage = atlSingleGuestMessage;
49    /**
50
51     * The guest select stores "1 Person", "2 Persons", "999" ...
52
53     */
54    function atlIsSingleGuest(capacity) {
55        if (capacity === null || capacity === undefined || '' === String(capacity).trim()) {
56            return false;
57        }
58        return 1 === parseInt(String(capacity).trim(), 10);
59    }
60    BAS_FRONTEND_CUSTOM_TOUR.atlIsSingleGuest = atlIsSingleGuest;
61    /**
62
63     * Stop the submit when the current site module does not allow a single guest.
64
65     * Returns true when the form must not be sent.
66
67     */
68    function atlBlockSingleGuest(capacity) {
69        if (!atlSingleGuestRestricted() || !atlIsSingleGuest(capacity)) {
70            return false;
71        }
72        var message = atlSingleGuestMessage();
73        if (-1 === message.indexOf('<')) {
74            message = '<p style="font-size: 17px; margin-bottom: 5px;">' + message + '</p>';
75        }
76        var output = "\n\n            <div class=\"mfp-bg mfp-fade mfp-ready bas-mfp-ready\"></div>\n\n            <div class=\"mfp-wrap mfp-close-btn-in mfp-auto-cursor mfp-fade mfp-ready bas-mfp-wrap\"><div class=\"mfp-container mfp-s-ready mfp-inline-holder\"><div class=\"mfp-content\">\n\n            <div class=\"las-download-popup las-popup\" style=\"padding-left: 10px;padding-right: 10px\">\n\n                " + message + "\n\n            <button title=\"Close (Esc)\" type=\"button\" class=\"mfp-close bas-mfp-close\">\u00D7</button></div></div><div class=\"mfp-preloader\">Loading...</div></div></div>\n\n        ";
77        jQuery('.mfp-close').click();
78        jQuery('body').prepend(output);
79        jQuery('html').css({ "margin-right": "15px", "overflow": "hidden" });
80        return true;
81    }
82    BAS_FRONTEND_CUSTOM_TOUR.atlBlockSingleGuest = atlBlockSingleGuest;
83    /// <reference path="../../../../typings/globals/backbone-global/index.d.ts" />
84    var CUSTOM_TOUR_SINGLE = /** @class */ (function (_super) {
85        __extends(CUSTOM_TOUR_SINGLE, _super);
86        function CUSTOM_TOUR_SINGLE() {
87            var _this = this;
88            _this.el = '#bas-customizes-tour';
89            _this = _super.call(this) || this;
90            return _this;
91        }
92        CUSTOM_TOUR_SINGLE.prototype.initialize = function () {
93            this._$ = jQuery;
94            this.error = 'error';
95            this.valid = 'valid';
96            this.render();
97            var self = this;
98        };
99        CUSTOM_TOUR_SINGLE.prototype.events = function () {
100            return {
101                'click .bas-booking-check-agree': 'checkAgree',
102                'focusout .bas-required-js': 'checkFormValid',
103                'change .bas-required-select-js': 'checkSelectFormValid',
104                'click .bas-custom-tour-send': 'handleForm',
105                'click .bas-custom-tour-country-check': 'checkChooseCountry',
106                'click .bas-custom-tour-check-yourself': 'checkSendYour',
107                'click .bas-custom-tour-city-check': 'checkChooseCity',
108                'click .bas-custom-tour-l-name': 'handleClickLabel'
109            };
110        };
111        CUSTOM_TOUR_SINGLE.prototype.render = function () {
112            this.loadDatepicker();
113        };
114        /**
115         * tempate notify
116         */
117        CUSTOM_TOUR_SINGLE.prototype.tplNotify = function (message) {
118            return "\n    \t\t\t<div class=\"mfp-bg mfp-fade mfp-ready bas-mfp-ready\"></div>\n    \t\t\t<div class=\"mfp-wrap mfp-close-btn-in mfp-auto-cursor mfp-fade mfp-ready bas-mfp-wrap\"><div class=\"mfp-container mfp-s-ready mfp-inline-holder\"><div class=\"mfp-content\"><div class=\"las-download-popup las-popup\">\n                        <form>\n                            <h5 class=\"las-download-popup__text\">" + message + "</h5>\n                        </form>\n                    <button title=\"Close (Esc)\" type=\"button\" class=\"mfp-close bas-mfp-close\">\u00D7</button></div></div><div class=\"mfp-preloader\">Loading...</div></div></div>\n            ";
119        };
120        /**
121     * handle check select form vaild
122     */
123        CUSTOM_TOUR_SINGLE.prototype.checkAgree = function (e) {
124            var item = this._$(e.currentTarget);
125            var wrap = item.closest(".bas-booking-agree-wrap");
126            var agreeWrap = wrap.find(".bas-booking-agree");
127            var val = agreeWrap.val();
128            if (0 == val) {
129                agreeWrap.val(1);
130                wrap.find(".bas-booking-agree-message").remove();
131                item.css("background", "#409cd1");
132                this._$(e.currentTarget).addClass("bas-booking-agree-show");
133            }
134            else if (1 == val) {
135                if (this._$(e.currentTarget).hasClass("bas-booking-agree-show")) {
136                    this._$(e.currentTarget).removeClass("bas-booking-agree-show");
137                }
138                agreeWrap.val(0);
139            }
140        };
141        /**
142     * handle before submit book
143     */
144        CUSTOM_TOUR_SINGLE.prototype.handleForm = function (e) {
145            var self = this;
146            var formData = self._$(".bas-required-js");
147            var formDataSelect = self._$(".bas-required-select-js");
148            var errorI = new Array();
149            var errorS = new Array();
150            var errorCheck = new Array();
151            formData.map(function (val, key) {
152                var getValInput = self._$(key).val();
153                var formWrap = self._$(key).closest(".bas-booking-form-group");
154                if (0 === getValInput.length || !window.BASLIB.nameFieldValid(self._$(key), getValInput)) {
155                    formWrap.addClass(self.error);
156                    var message = formWrap.attr("data-error-empty");
157                    formWrap.find(".las-form__message").remove();
158                    formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
159                    errorI.push(val);
160                }
161                else {
162                    formWrap.removeClass(self.error);
163                    formWrap.find(".las-form__message").remove();
164                    errorI.splice(val, 1);
165                }
166            });
167            formDataSelect.map(function (val, key) {
168                var getValInput = self._$(key).find(":selected").val();
169                var formWrap = self._$(key).closest(".bas-booking-form-group");
170                if (0 === getValInput.length || !window.BASLIB.nameFieldValid(self._$(key), getValInput)) {
171                    formWrap.addClass(self.error);
172                    var message = formWrap.attr("data-error-empty");
173                    formWrap.find(".las-form__message").remove();
174                    formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
175                    errorS.push(val);
176                }
177                else {
178                    formWrap.removeClass(self.error);
179                    formWrap.find(".las-form__message").remove();
180                    errorS.splice(val, 1);
181                }
182            });
183            //check email
184            var emailWrap = self._$(".bas-email-required-js");
185            var errorEmail = new Array();
186            emailWrap.map(function (val, key) {
187                var valEmail = self._$(key).val();
188                var formEmailWrap = self._$(key).closest(".bas-booking-form-group");
189                if (0 === valEmail.length) {
190                    formEmailWrap.addClass(self.error);
191                    var message = formEmailWrap.attr("data-error-empty");
192                    formEmailWrap.find(".las-form__message").remove();
193                    formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
194                    errorEmail.push(1);
195                }
196                else {
197                    if (BASLIB.validateEmail(valEmail)) {
198                        if (self._$(key).hasClass("bas-re-email-required-js")) {
199                            var valStt_1 = '';
200                            emailWrap.map(function (vall, keyy) {
201                                if (0 == vall) {
202                                    valStt_1 = self._$(keyy).val();
203                                }
204                            });
205                            if (valStt_1 == valEmail) {
206                                formEmailWrap.removeClass(self.error);
207                                formEmailWrap.addClass(self.valid);
208                                formEmailWrap.find(".las-form__message").remove();
209                                errorEmail.splice(1, 1);
210                            }
211                            else {
212                                formEmailWrap.removeClass(self.valid);
213                                formEmailWrap.addClass(self.error);
214                                var message = formEmailWrap.attr("data-error-re");
215                                formEmailWrap.find(".las-form__message").remove();
216                                formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
217                                errorEmail.push(1);
218                            }
219                        }
220                        else {
221                            formEmailWrap.removeClass(self.error);
222                            formEmailWrap.addClass(self.valid);
223                            formEmailWrap.find(".las-form__message").remove();
224                            errorEmail.splice(1, 1);
225                        }
226                    }
227                    else {
228                        formEmailWrap.removeClass(self.valid);
229                        formEmailWrap.addClass(self.error);
230                        var message = formEmailWrap.attr("data-error-wrong");
231                        formEmailWrap.find(".las-form__message").remove();
232                        formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
233                        errorEmail.push(1);
234                    }
235                }
236            });
237            var inputAgree = self._$(".bas-booking-agree");
238            var formWrap = inputAgree.closest(".bas-booking-agree-wrap");
239            if (0 == inputAgree.val()) {
240                var message = formWrap.find(".bas-booking-check-agree").attr("data-error");
241                formWrap.find(".bas-booking-check-agree").css("background", "#e74c3c");
242                formWrap.find(".bas-booking-agree-message").remove();
243                formWrap.append("<p class=\"bas-booking-agree-message\" style=\"color:#e74
243c3c\">" + message + "</p>");
244                errorCheck.push(1);
245            }
246            else if (1 == inputAgree.val()) {
247                formWrap.find(".bas-booking-check-agree").css("background", "#409cd1");
248                formWrap.find(".bas-booking-agree-message").remove();
249                errorCheck.splice(1, 1);
250            }
251            if (0 === errorI.length && 0 === errorS.length && 0 === errorCheck.length && 0 === errorEmail.length) {
252                this.handleBooking(e);
253            }
254            else {
255                var message = '';
256                if (0 !== errorI.length || 0 !== errorS.length || 0 !== errorEmail.length) {
257                    message = "Please complete all information!";
258                }
259                else {
260                    message = "Please accept Vietnamtravel's Terms & Conditions and Privacy Policy!";
261                }
262                var output = self.tplNotify(message);
263                self._$('body').prepend(output);
264                self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
265            }
266            return false;
267        };
268        /**
269         * handle submit book
270         */
271        CUSTOM_TOUR_SINGLE.prototype.handleBooking = function (e) {
272            var self = this;
273            var formData = self._$('#bas-form-customizes-tour').serialize();
274            var capacity = self._$('#bas-form-customizes-tour').find('[name="atl_customized_tour[persons]"]').val();
275            if (atlBlockSingleGuest(capacity)) {
276                return false;
277            }
278            BASLIB.loadShow('.bas-customizes-tour');
279            self._$.ajax({
280                url: bas_admin.admin_url + 'admin-ajax.php',
281                type: 'post',
282                data: {
283                    action: 'bas_frontend_customized_submit',
284                    formData: formData,
285                    security: window.ATL_NONCE_SECURITY.tour_customized
286                    //security: self._$('[name=' + bas_admin.ajax_nonce + 'tour_customized]').val()
287                },
288                success: function (data) {
289                    var dataResult = JSON.parse(data);
290                    window.BASLIB.loadHiden('.bas-customizes-tour');
291                    if (!dataResult.status) {
292                        var message = dataResult.message;
293                        self._$(".mfp-close").click();
294                        var output = self.tplNotify(message);
295                        self._$('body').prepend(output);
296                        self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
297                    }
298                    else {
299                        if (dataResult.urlThankyou) {
300                            window.location = location.href = dataResult.urlThankyou;
301                        }
302                        else {
303                            var message = "Failed to send information!", output = self.tplNotify(message);
304                            self._$('body').prepend(output);
305                            self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
306                            window.history.pushState("", "", 'thank-you/');
307                            window.scrollTo(0, 0);
308                        }
309                    }
310                }
311            });
312            return false;
313        };
314        /**
315     * handle check form vaild
316     */
317        CUSTOM_TOUR_SINGLE.prototype.checkFormValid = function (e) {
318            var self = this;
319            var item = self._$(e.currentTarget);
320            var val = item.val();
321            if (val.length > 0) {
322                var formWrap = item.closest(".bas-booking-form-group");
323                if (!window.BASLIB.nameFieldValid(item, val)) {
324                    window.BASLIB.markNameInvalid(formWrap, self.error, self.valid);
325                    return false;
326                }
327                if (item.hasClass("bas-email-required-js")) {
328                    if (BASLIB.validateEmail(val)) {
329                        if (item.hasClass("bas-re-email-required-js")) {
330                            var listFormEmail = item.closest(".las-traveller").find(".bas-email-required-js");
331                            var valStt_2 = '';
332                            listFormEmail.map(function (val, key) {
333                                if (0 == val) {
334                                    valStt_2 = self._$(key).val();
335                                }
336                            });
337                            if (valStt_2 == val) {
338                                formWrap.removeClass(self.error);
339                                formWrap.addClass(self.valid);
340                                formWrap.find(".las-form__message").remove();
341                            }
342                            else {
343                                formWrap.removeClass(self.valid);
344                                formWrap.addClass(self.error);
345                                var message = formWrap.attr("data-error-re");
346                                formWrap.find(".las-form__message").remove();
347                                formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
348                            }
349                        }
350                        else {
351                            formWrap.removeClass(self.error);
352                            formWrap.addClass(self.valid);
353                            formWrap.find(".las-form__message").remove();
354                            var wrapReEmail = item.closest("#bas-booking-lead-form").find(".bas-re-email-required-js"), valReEmail = wrapReEmail.val();
355                            if (valReEmail != val) {
356                                var wReEmail = wrapReEmail.closest(".bas-booking-form-group");
357                                wReEmail.removeClass(self.valid);
358                                wReEmail.addClass(self.error);
359                                var message = wReEmail.attr("data-error-re");
360                                wReEmail.find(".las-form__message").remove();
361                                wReEmail.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
362                            }
363                        }
364                    }
365                    else {
366                        formWrap.addClass(self.error);
367                        var message = formWrap.attr("data-error-wrong");
368                        formWrap.find(".las-form__message").remove();
369                        formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
370                    }
371                }
372                else {
373                    formWrap.removeClass(self.error);
374                    formWrap.addClass(self.valid);
375                    formWrap.find(".las-form__message").remove();
376                }
377            }
378            return false;
379        };
380        /**
381     * handle check select form vaild
382     */
383        CUSTOM_TOUR_SINGLE.prototype.checkSelectFormValid = function (e) {
384            var self = this;
385            var item = self._$(e.currentTarget);
386            var wrap = item.closest(".bas-booking-form-group");
387            var formDataSelect = wrap.find(".bas-required-select-js");
388            var error = new Array();
389            formDataSelect.map(function (val, key) {
390                var getValInput = self._$(key).find(":selected").val();
391                if (0 === getValInput.length || !window.BASLIB.nameFieldValid(self._$(key), getValInput)) {
392                    error.push(val);
393                }
394                else {
395                    error.splice(val, 1);
396                }
397            });
398            var val = item.find(":selected").val();
399            if (0 === error.length) {
400                var formWrap = item.closest(".bas-booking-form-group");
401                formWrap.removeClass(self.error);
402                formWrap.addClass(self.valid);
403                formWrap.find(".las-form__message").remove();
404            }
405            return false;
406        };
407        /**
408         * auto load datepicker month and year
409         */
410        CUSTOM_TOUR_SINGLE.prototype.loadDatepicker = function () {
411            var timeCurrent = new Date().toLocaleString('en-US', { timeZone: 'Asia/Ho_Chi_Minh' });
412            var self = this, item = self._$('.bas-datepicker'), currentD = new Date(), tomorrow = new Date(), yearThree = new Date();
413            item.each(function (i, el) {
414                var picker = new Pikaday({
415                    field: el,
416                    format: 'YYYY/MM/DD',
417                    minDate: new Date(timeCurrent),
418                    maxDate: new Date(yearThree.setFullYear(currentD.getFullYear() + 3)),
419                    yearRange: [currentD.getFullYear(), (currentD.getFullYear() + 3)],
420                    onSelect: function (date) {
421                        self._$(el).val(self._$.datepicker.formatDate('dd M, yy', new Date(date)));
422                    }
423                });
424            });
425        };
426        /**
427         * handle check choose country
428         */
429        CUSTOM_TOUR_SINGLE.prototype.checkChooseCountry = function (e) {
430            var item = this._$(e.currentTarget), wrap = item.closest(".bas-custom-tour-country"), input = wrap.find(".bas-custom-tour-country-input");
431            if (input.is(':checked')) {
432                if (item.hasClass("bas-custom-tour-country-show")) {
433                    item.removeClass("bas-custom-tour-country-show");
434                }
435                wrap.find(".bas-custom-tour-city-wrap").hide();
436                wrap.find(".bas-custom-tour-city-wrap input:checkbox:checked").prop('checked', false);
437                wrap.find(".bas-custom-tour-city-show").removeClass("bas-custom-tour-city-show");
438                input.prop('checked', false);
439            }
440            else {
441                item.addClass("bas-custom-tour-country-show");
442                wrap.find(".bas-custom-tour-city-wrap").show();
443                input.prop('checked', true);
444            }
445        };
446        /**
447     * handle check choose country
448     */
449        CUSTOM_TOUR_SINGLE.prototype.checkChooseCity = function (e) {
450            var item = this._$(e.currentTarget), wrap = item.closest(".bas-custom-tour-city-item"), input = wrap.find(".bas-custom-tour-city-input");
451            if (input.is(':checked')) {
452                if (item.hasClass("bas-custom-tour-city-show")) {
453                    item.removeClass("bas-custom-tour-city-show");
454                }
455                input.prop('checked', false);
456            }
457            else {
458                item.addClass("bas-custom-tour-city-show");
459                input.prop('checked', true);
460            }
461        };
462        /*
463        * handle send mail to YourSelf
464        */
465        CUSTOM_TOUR_SINGLE.prototype.checkSendYour = function (e) {
466            var wrap = this._$(e.currentTarget).closest(".bas-custom-tour-yourself-wrap");
467            var agreeWrap = wrap.find(".bas-custom-tour-yourself");
468            var val = agreeWrap.val();
469            if (0 == val) {
470                agreeWrap.val(1);
471                this._$(e.currentTarget).addClass("bas-custom-tour-yourself-show");
472            }
473            else if (1 == val) {
474                if (this._$(e.currentTarget).hasClass("bas-custom-tour-yourself-show")) {
475                    this._$(e.currentTarget).removeClass("bas-custom-tour-yourself-show");
476                }
477                agreeWrap.val(0);
478            }
479        };
480        /*
481        * handle after click label location
482        */
483        CUSTOM_TOUR_SINGLE.prototype.handleClickLabel = function (e) {
484            var wrap = this._$(e.currentTarget).closest(".las-form__checkbox");
485            if (wrap.find('.bas-custom-tour-city-check').length) {
486                wrap.find('.bas-custom-tour-city-check').trigger("click");
487            }
488            if (wrap.find('.bas-custom-tour-country-check').length) {
489                wrap.find('.bas-custom-tour-country-check').trigger("click");
490            }
491            return false;
492        };
493        return CUSTOM_TOUR_SINGLE;
494    }(Backbone.View));
495    BAS_FRONTEND_CUSTOM_TOUR.CUSTOM_TOUR_SINGLE = CUSTOM_TOUR_SINGLE;
496    /// <reference path="../../../../typings/globals/backbone-global/index.d.ts" />
497    var CUSTOM_TOUR_SINGLE_POPUP = /** @class */ (function (_super) {
498        __extends(CUSTOM_TOUR_SINGLE_POPUP, _super);
499        function CUSTOM_TOUR_SINGLE_POPUP() {
500            var _this = this;
501            _this.el = '#bas-customizes-tour';
502            _this = _super.call(this) || this;
503            return _this;
504        }
505        CUSTOM_TOUR_SINGLE_POPUP.prototype.initialize = function () {
506            this._$ = jQuery;
507            this.error = 'error';
508            this.valid = 'valid';
509            this.render();
510            this.initDatepicker();
511        };
512        CUSTOM_TOUR_SINGLE_POPUP.prototype.events = function () {
513            return {
514                'click .bas-popup-check-whatapp': 'checkAgree',
515                'click .btn-make-a-wish-sidebar': 'handleFormPopup'
516            };
517        };
518        CUSTOM_TOUR_SINGLE_POPUP.prototype.render = function () {
519            // this.loadDatepicker();
520        };
521        CUSTOM_TOUR_SINGLE_POPUP.prototype.initDatepicker = function () {
522            var timeCurrent = new Date().toLocaleString('en-US', { timeZone: 'Asia/Ho_Chi_Minh' });
523            var self = this, item = self._$('.las-input-datepicker-jss');
524            item.each(function (i, el) {
525                var picker = new Pikaday({
526                    field: el,
527                    format: 'YYYY/MM/DD',
528                    minDate: new Date(timeCurrent),
529                    position: 'top left',
530                    onSelect: function (date) {
531                        self._$(el).val(self._$.datepicker.formatDate('dd M, yy', new Date(date)));
532                    }
533                });
534            });
535        };
536        /**
537         * handle check select form vaild
538         */
539        CUSTOM_TOUR_SINGLE_POPUP.prototype.checkAgree = function (e) {
540            var self = this;
541            var item = self._$(e.currentTarget);
542            // let wrap = item.closest(".bas-booking-agree-wrap");
543            var hidden = self._$('.bas-hidden-popup-check-whatapp');
544            var val = item.val();
545            if (0 == val) {
546                item.val(1);
547                hidden.val(1);
548                self._$('.las-show-whatapp').show();
549            }
550            else if (1 == val) {
551                item.val(0);
552                hidden.val(0);
553                self._$('.las-show-whatapp').hide();
554            }
555        };
556        /**
557        * handle check form vaild
558        */
559        CUSTOM_TOUR_SINGLE_POPUP.prototype.checkFormValidPopup = function (e) {
560            var self = this;
561            var item = self._$(e.currentTarget);
562            var val = item.val();
563            if (val.length > 0) {
564                var formWrap = item.closest(".bas-booking-form-group");
565                if (!window.BASLIB.nameFieldValid(item, val)) {
566                    window.BASLIB.markNameInvalid(formWrap, self.error, self.valid);
567                    return false;
568                }
569                if (item.hasClass("bas-email-required-js")) {
570                    if (BASLIB.validateEmail(val)) {
571                        if (item.hasClass("bas-re-email-required-js")) {
572                            var listFormEmail = item.closest(".las-traveller").find(".bas-email-required-js");
573                            var valStt_3 = '';
574                            listFormEmail.map(function (val, key) {
575                                if (0 == val) {
576                                    valStt_3 = self._$(key).val();
577                                }
578                            });
579                            if (valStt_3 == val) {
580                                formWrap.removeClass(self.error);
581                                formWrap.addClass(self.valid);
582                                formWrap.find(".las-form__message").remove();
583                            }
584                            else {
585                                formWrap.removeClass(self.valid);
586                                formWrap.addClass(self.error);
587                                var message = formWrap.attr("data-error-re");
588                                formWrap.find(".las-form__message").remove();
589                                formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
590                            }
591                        }
592                        else {
593                            formWrap.removeClass(self.error);
594                            formWrap.addClass(self.valid);
595                            formWrap.find(".las-form__message").remove();
596                            var wrapReEmail = item.closest("#bas-booking-lead-form").find(".bas-re-email-required-js"), valReEmail = wrapReEmail.val();
597                            if (valReEmail != val) {
598                                var wReEmail = wrapReEmail.closest(".bas-booking-form-group");
599                                wReEmail.removeClass(self.valid);
600                                wReEmail.addClass(self.error);
601                                var message = wReEmail.attr("data-error-re");
602                                wReEmail.find(".las-form__message").remove();
603                                wReEmail.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
604                            }
605                        }
606                    }
607                    else {
608                        formWrap.addClass(self.error);
609                        var message = formWrap.attr("data-error-wrong");
610                        formWrap.find(".las-form__message").remove();
611                        formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
612                    }
613                }
614                else {
615                    formWrap.removeClass(self.error);
616                    formWrap.addClass(self.valid);
617                    formWrap.find(".las-form__message").remove();
618                }
619            }
620            return false;
621        };
622        /**
623        * handle before submit request
624        */
625        CUSTOM_TOUR_SINGLE_POPUP.prototype.handleFormPopup = function (e) {
626            var self = this;
627            var errorI = new Array();
628            var errorS = new Array();
629            var errorCheck = new Array();
630            var emailWrap = self._$(".bas-email-required-js", self._$(this.el));
631            var errorEmail = new Array();
632            var valEmail = self._$(".bas-email-required-js", self._$(this.el)).val();
633            var formEmailWrap = self._$(".bas-email-required-js", self._$(this.el)).closest(".bas-booking-form-group", self._$(this.el));
634            self._$('.bas-required-js', self._$(this.el)).map(function (val, key) {
635                var current = self._$(key);
636                if (current.val() == '' || current.val() == 0 || !window.BASLIB.nameFieldValid(current, current.val())) {
637                    current.css('border-color', '#e74c3c');
638                    errorS.push(val);
639                }
640                else {
641                    current.removeAttr('style');
642                    errorS.splice(val, 1);
643                }
644            });
645            if (0 === valEmail.length) {
646                formEmailWrap.addClass(self.error);
647                var message = formEmailWrap.attr("data-error-empty");
648                formEmailWrap.find(".las-form__message").remove();
649                formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
650                errorEmail.push(1);
651            }
652            else {
653                if (BASLIB.validateEmail(valEmail)) {
654                    if (self._$('.bas-email-required-js', self._$(this.el)).hasClass("bas-re-email-required-js", self._$(this.el))) {
655                        var valStt = self._$('.bas-re-email-required-js', self._$(this.el)).val();
656                        // emailWrap.map((vall, keyy) => {
657                        //     if (0 == vall) {
658                        //         valStt = self._$(keyy).val();
659                        //     }
660                        // });
661                        if (valStt == valEmail) {
662                            formEmailWrap.removeClass(self.error);
663                            formEmailWrap.addClass(self.valid);
664                            formEmailWrap.find(".las-form__message").remove();
665                            errorEmail.splice(1, 1);
666                        }
667                        else {
668                            formEmailWrap.removeClass(self.valid);
669                            formEmailWrap.addClass(self.error);
670                            var message = formEmailWrap.attr("data-error-re");
671                            formEmailWrap.find(".las-form__message").remove();
672                            formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
673                            errorEmail.push(1);
674                        }
675                    }
676                    else {
677                        formEmailWrap.removeClass(self.error);
678                        formEmailWrap.addClass(self.valid);
679                        formEmailWrap.find(".las-form__message").remove();
680                        errorEmail.splice(1, 1);
681                    }
682                }
683                else {
684                    formEmailWrap.removeClass(self.valid);
685                    formEmailWrap.addClass(self.error);
686                    var message = formEmailWrap.attr("data-error-wrong");
687                    formEmailWrap.find(".las-form__message").remove();
688                    formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
689                    errorEmail.push(1);
690                }
691            }
692            if (0 === errorI.length && 0 === errorS.length && 0 === errorCheck.length && 0 === errorEmail.length) {
693                this.makeAWish(e);
694            }
695            else {
696                var message = '';
697                // console.log(errorS);
698                if (0 !== errorI.length || 0 !== errorS.length || 0 !== errorEmail.length) {
699                    message = "Please complete all information!";
700                }
701                // self._$('.bas-customize-tour-homepage-error').html(`<p class="" style="color:#e74
701c3c">${message}</p>`);
702                var output = self.tplNotify(message);
703                self._$('body').prepend(output);
704                self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
705            }
706            return false;
707        };
708        CUSTOM_TOUR_SINGLE_POPUP.prototype.clearForm = function () {
709            var self = this;
710            var formData = self._$('input,select,textarea', self._$(this.el)).map(function (val, key) {
711                var current = self._$(key);
712                current.val(0);
713                current.val('');
714            });
715        };
716        /**
717         * tempate notify
718         */
719        CUSTOM_TOUR_SINGLE_POPUP.prototype.tplNotify = function (message) {
720            return "\n    \t\t\t<div class=\"mfp-bg mfp-fade mfp-ready bas-mfp-ready\"></div>\n    \t\t\t<div class=\"mfp-wrap mfp-close-btn-in mfp-auto-cursor mfp-fade mfp-ready bas-mfp-wrap\"><div class=\"mfp-container mfp-s-ready mfp-inline-holder\"><div class=\"mfp-content\">\n    \t\t\t<div class=\"las-download-popup las-popup\" style=\"padding-left: 10px;padding-right: 10px\">\n                        " + message + "\n                    <button title=\"Close (Esc)\" type=\"button\" class=\"mfp-close bas-mfp-close\">\u00D7</button></div></div><div class=\"mfp-preloader\">Loading...</div></div></div>\n            ";
721        };
722        CUSTOM_TOUR_SINGLE_POPUP.prototype.makeAWish = function (e) {
723            var _this = this;
724            var self = this;
725            var formData = this._$('#bas-make-a-wish-form-sidebar').serialize();
726            var capacity = this._$('#bas-make-a-wish-form-sidebar').find(".las-customize-popup_select_capacity").val();
727            if (atlBlockSingleGuest(capacity)) {
728                return false;
729            }
730            BASLIB.loadShow('#bas-customizes-tour');
731            self._$.ajax({
732                url: bas_admin.admin_url + 'admin-ajax.php',
733                type: 'post',
734                data: {
735                    action: 'bas_frontend_customized_trip_submit',
736                    formData: formData,
737                    security: window.ATL_NONCE_SECURITY.tour_customized_popup
738                    //security: self._$('[name=' + bas_admin.ajax_nonce + 'tour_customized_popup]').val()
739                },
740                success: function (data) {
741                    var dataResult = JSON.parse(data);
742                    window.BASLIB.loadHiden('#bas-customizes-tour');
743                    if (!dataResult.status) {
744                        var message = dataResult.message;
745                        self._$(".mfp-close").click();
746                        var output = self.tplNotify(message);
747                        self._$('body').prepend(output);
748                        self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
749                    }
750                    else {
751                        self._$('.mfp-close').trigger('click');
752                        var site_phone = window.vntv_client_data.site_phone || '0084982 661 133';
753                        var wrap = self._$('.bas-booking-agree').closest(".bas-booking-agree-wrap");
754                        var agreeWrap = wrap.find(".bas-booking-agree");
755                        var message = '<p style="font-size: 70px;margin-bottom: 20px;color: #03a84e;"><i class="far fa-check-circle"></i></p>';
756                        message += '<p style="color: #03a84e;font-weight: bold;font-size: 30px;margin-bottom: 10px;">Thank you,</p>';
757                        message += '<p style="font-size: 17px; margin-bottom: 5px;">We have received your travel request.  You will receive an email shortly.</p>';
758                        message += '<p>(If you do not receive our reply within 24 hours, please check your spam/junk folder or call us at: ';
759                        message += site_phone;
760                        message += ')</p>';
761                        var output = self.tplNotify(message);
762                        self._$('#bas-make-a-wish-form').find("input[type=text], textarea").val("");
763                        self._$('#bas-make-a-wish-form').find("select").val("0");
764                        agreeWrap.val(0);
765                        self._$('body').prepend(output);
766                        self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
767                        window.scrollTo(0, 0);
768                        if (bas_admin.themeSettings.bas_page_js_ad_book) {
769                            var result = bas_admin.themeSettings.bas_page_js_ad_book.replace("TOTALVALUE", Number.parseFloat(dataResult.calculatorPoint).toFixed(1));
770                            result = result.replace("REQUESTCODE", dataResult.code);
771                            result = result.replace("USER_EMAIL", dataResult.email);
772                            result = result.replace("USER_PHONE", dataResult.phone);
773                            console.log(result);
774                            eval(result);
775                        }
776                        _this.clearForm();
777                    }
778                }
779            });
780            return false;
781        };
782        return CUSTOM_TOUR_SINGLE_POPUP;
783    }(Backbone.View));
784    BAS_FRONTEND_CUSTOM_TOUR.CUSTOM_TOUR_SINGLE_POPUP = CUSTOM_TOUR_SINGLE_POPUP;
785    /// <reference path="../../../../typings/globals/backbone-global/index.d.ts" />
786    var HOME_SHORTCODE_POPUP = /** @class */ (function (_super) {
787        __extends(HOME_SHORTCODE_POPUP, _super);
788        function HOME_SHORTCODE_POPUP() {
789            var _this = this;
790            _this.el = '.bas-home-check-popup';
791            _this = _super.call(this) || this;
792            return _this;
793        }
794        HOME_SHORTCODE_POPUP.prototype.initialize = function () {
795            this._$ = jQuery;
796            var self = this;
797            this.error = 'error';
798            this.valid = 'valid';
799            this.isSubmitting = false;
800            this.initDatepicker();
801            jQuery(document).ready(function () {
802                if (!(self._$('.atl_show_popup_hook').length)) {
803                    setTimeout(function () {
804                        try {
805                            var infoUser_1 = localStorage.getItem('atl_info_ip');
806                            infoUser_1 = (infoUser_1) ? JSON.parse(infoUser_1) : null;
807                            self._$.ajax({
808                                url: window.bas_admin.admin_url + 'admin-ajax.php',
809                                type: 'post',
810                                data: {
811                                    action: 'bas_frontend_handle_show_popup'
812                                },
813                                success: function (data) {
814                                    var dataResult = JSON.parse(data);
815                                    if (dataResult.status) {
816                                        self._$('.las-open-home-popup-js').trigger('click');
817                                    }
818                                    else {
819                                        if (infoUser_1) {
820                                            if (infoUser_1.status == "success" && infoUser_1.countryCode != 'VN') {
821                                                self._$('.las-open-home-popup-js').trigger('click');
822                                            }
823                                        }
824                                        else {
825                                            self._$('.las-open-home-popup-js').trigger('click');
826                                        }
827                                    }
828                                }
829                            });
830                        }
831                        catch (err) {
832                            console.log(err.message);
833                        }
834                    }, 8000);
835                }
836                else {
837                    self._$('.las-popin-customize').html('');
838                }
839            });
840        };
841        HOME_SHORTCODE_POPUP.prototype.events = function () {
842            return {
843                'click .las-open-home-popup-js': 'openPopup',
844                'click .bas-popup-check-whatapp': 'checkAgree',
845                'click .btn-make-a-wish': 'handleForm',
846                'change #atl_customized_tour_days': 'handleChooseDaysPeoples',
847                'change #atl_customized_tour_peoples': 'handleChooseDaysPeoples'
848            };
849        };
850        HOME_SHORTCODE_POPUP.prototype.handleChooseDaysPeoples = function (e) {
851            var days = this._$(e.currentTarget).closest('.bas-home-check-popup').find("#atl_customized_tour_days").val();
852            var people = this._$(e.currentTarget).closest('.bas-home-check-popup').find("#atl_customized_tour_peoples").val();
853            var wrapPeople = this._$(e.currentTarget).closest('.bas-home-check-popup').find(".atl_customized_tour_peoples");
854            var wrapDay = this._$(e.currentTarget).closest('.bas-home-check-popup').find(".atl_customized_tour_days");
855            var wrapDayPeople = this._$(e.currentTarget).closest('.bas-home-check-popup').find(".atl_customized_tour_day_people");
856            wrapPeople.hide();
857            wrapDay.hide();
858            wrapDayPeople.hide();
859            if ((parseInt(people) <= 30)) {
860                if ((parseInt(days) > 30)) {
861                    wrapDay.show();
862                }
863            }
864            else {
865                if ((parseInt(days) > 30)) {
866                    wrapDayPeople.show();
867                }
868                else {
869                    wrapPeople.show();
870                }
871            }
872            return false;
873        };
874        HOME_SHORTCODE_POPUP.prototype.initDatepicker = function () {
875            var timeCurrent = new Date().toLocaleString('en-US', { timeZone: 'Asia/Ho_Chi_Minh' });
876            var self = this, item = self._$('.las-ctp-datepicker-js');
877            var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
878            item.each(function (i, el) {
879                var picker = new Pikaday({
880                    field: el,
881                    format: 'YYYY/MM/DD',
882                    i18n: {
883                        previousMonth: 'Previous Month',
884                        nextMonth: 'Next Month',
885                        months: monthNames,
886                        weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
887                        weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
888                    },
889                    minDate: new Date(timeCurrent),
890                    toString: function (date) {
891                        var day = date.getDate();
892                        var month = monthNames[date.getMonth()];
893                        var year = date.getFullYear();
894                        return day + " " + month + ", " + year;
895                    },
896                    onSelect: function (date) {
897                        self._$(el).val(picker.toString('dd M, yy'));
898                    }
899                });
900            });
901        };
902        HOME_SHORTCODE_POPUP.prototype.openPopup = function (e) {
903            this._$(e.currentTarget).magnificPopup({
904                items: [
905                    {
906                        src: '.bas-home-check-popup',
907                        type: 'inline'
908                    }
909                ],
910                mainClass: 'mfp-fade'
911            }).magnificPopup('open');
912            return false;
913        };
914        /**
915        * handle check select form vaild
916        */
917        HOME_SHORTCODE_POPUP.prototype.checkAgree = function (e) {
918            var self = this;
919            var item = self._$(e.currentTarget);
920            // let wrap = item.closest(".bas-booking-agree-wrap");
921            var hidden = self._$('.bas-hidden-popup-check-whatapp');
922            var val = item.val();
923            if (0 == val) {
924                item.val(1);
925                hidden.val(1);
926                self._$('.las-show-whatapp').show();
927            }
928            else if (1 == val) {
929                item.val(0);
930                hidden.val(0);
931                self._$('.las-show-whatapp').hide();
932            }
933        };
934        /**
935    * handle check form vaild
936    */
937        HOME_SHORTCODE_POPUP.prototype.checkFormValid = function (e) {
938            var self = this;
939            var item = self._$(e.currentTarget);
940            var val = item.val();
941            if (val.length > 0) {
942                var formWrap = item.closest(".bas-booking-form-group");
943                if (!window.BASLIB.nameFieldValid(item, val)) {
944                    window.BASLIB.markNameInvalid(formWrap, self.error, self.valid);
945                    return false;
946                }
947                if (item.hasClass("bas-email-required-js")) {
948                    if (BASLIB.validateEmail(val)) {
949                        if (item.hasClass("bas-cfemail-required-js")) {
950                            var listFormEmail = item.closest(".las-traveller").find(".bas-email-required-js");
951                            var valStt_4 = '';
952                            listFormEmail.map(function (val, key) {
953                                if (0 == val) {
954                                    valStt_4 = self._$(key).val();
955                                }
956                            });
957                            if (valStt_4 == val) {
958                                formWrap.removeClass(self.error);
959                                formWrap.addClass(self.valid);
960                                formWrap.find(".las-form__message").remove();
961                            }
962                            else {
963                                formWrap.removeClass(self.valid);
964                                formWrap.addClass(self.error);
965                                var message = formWrap.attr("data-error-re");
966                                formWrap.find(".las-form__message").remove();
967                                formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
968                            }
969                        }
970                        else {
971                            formWrap.removeClass(self.error);
972                            formWrap.addClass(self.valid);
973                            formWrap.find(".las-form__message").remove();
974                            var wrapReEmail = item.closest("#bas-booking-lead-form").find(".bas-cfemail-required-js"), valReEmail = wrapReEmail.val();
975                            if (valReEmail != val) {
976                                var wReEmail = wrapReEmail.closest(".bas-booking-form-group");
977                                wReEmail.removeClass(self.valid);
978                                wReEmail.addClass(self.error);
979                                var message = wReEmail.attr("data-error-re");
980                                wReEmail.find(".las-form__message").remove();
981                                wReEmail.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
982                            }
983                        }
984                    }
985                    else {
986                        formWrap.addClass(self.error);
987                        var message = formWrap.attr("data-error-wrong");
988                        formWrap.find(".las-form__message").remove();
989                        formWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
990                    }
991                }
992                else {
993                    formWrap.removeClass(self.error);
994                    formWrap.addClass(self.valid);
995                    formWrap.find(".las-form__message").remove();
996                }
997            }
998            return false;
999        };
1000        /**
1001        * handle before submit request
1002        */
1003        HOME_SHORTCODE_POPUP.prototype.handleForm = function (e) {
1004            var self = this;
1005            var errorS = new Array();
1006            var errorI = new Array();
1007            var errorCheck = new Array();
1008            var emailWrap = self._$(".bas-email-required-js");
1009            var errorEmail = new Array();
1010            var errorPhone = new Array();
1011            var valPhone = self._$(".bas-phone-required-js").val();
1012            var valEmail = self._$(".bas-email-required-js").val();
1013            var valCfEmail = self._$(".bas-cfemail-required-js").val();
1014            var formEmailWrap = self._$(".bas-email-required-js", self._$(this.el)).closest(".bas-booking-form-group", self._$(this.el));
1015            self._$('.bas-required-js', self._$(this.el)).map(function (val, key) {
1016                var current = self._$(key);
1017                if (current.val() == '' || current.val() == 0 || !window.BASLIB.nameFieldValid(current, current.val())) {
1018                    current.css('border-color', '#e74c3c');
1019                    errorS.push(val);
1020                }
1021                else {
1022                    current.removeAttr('style');
1023                    errorS.splice(val, 1);
1024                }
1025            });
1026            // thêm validate input name này nên ít nhất 2 ký tự
1027            var valName = self._$(".bas-popup-cus_name", self._$(this.el)).val();
1028            var formNameWrap = self._$(".bas-popup-cus_name", self._$(this.el)).closest(".bas-booking-form-group", self._$(this.el));
1029            if (!window.BASLIB.validateName(valName)) {
1030                formNameWrap.addClass(self.error);
1031                errorS.push(1);
1032            }
1033            else {
1034                formNameWrap.removeClass(self.error);
1035            }
1036            // Bổ sung kiểm tra input hidden số điện thoại whatapp_phone
1037            var valPhoneHidden = self._$(".atl_code_phone_render", self._$(this.el)).val();
1038            if (valPhoneHidden.length <= 6 || valPhone.length <= 6 || valPhone.length > 20) {
1039                self._$(".bas-phone-required-js", self._$(this.el)).closest(".bas-booking-form-group", self._$(this.el)).addClass(self.error);
1040                errorPhone.push(1);
1041            }
1042            else {
1043                self._$(".bas-phone-required-js", self._$(this.el)).closest(".bas-booking-form-group", self._$(this.el)).removeClass(self.error);
1044                errorPhone.splice(1, 1);
1045            }
1046            if (0 === valEmail.length) {
1047                formEmailWrap.addClass(self.error);
1048                var message = formEmailWrap.attr("data-error-empty");
1049                formEmailWrap.find(".las-form__message").remove();
1050                formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
1051                errorEmail.push(1);
1052            }
1053            else {
1054                if (BASLIB.validateEmail(valEmail)) {
1055                    if (self._$('.bas-email-required-js', self._$(this.el)).hasClass("bas-cfemail-required-js", self._$(this.el))) {
1056                        var valStt = self._$('.bas-cfemail-required-js', self._$(this.el)).val();
1057                        if (valStt == valEmail) {
1058                            formEmailWrap.removeClass(self.error);
1059                            formEmailWrap.addClass(self.valid);
1060                            formEmailWrap.find(".las-form__message").remove();
1061                            errorEmail.splice(1, 1);
1062                        }
1063                        else {
1064                            formEmailWrap.removeClass(self.valid);
1065                            formEmailWrap.addClass(self.error);
1066                            var message = formEmailWrap.attr("data-error-re");
1067                            formEmailWrap.find(".las-form__message").remove();
1068                            formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
1069                            errorEmail.push(1);
1070                        }
1071                    }
1072                    else {
1073                        formEmailWrap.removeClass(self.error);
1074                        formEmailWrap.addClass(self.valid);
1075                        formEmailWrap.find(".las-form__message").remove();
1076                        errorEmail.splice(1, 1);
1077                    }
1078                }
1079                else {
1080                    formEmailWrap.removeClass(self.valid);
1081                    formEmailWrap.addClass(self.error);
1082                    var message = formEmailWrap.attr("data-error-wrong");
1083                    formEmailWrap.find(".las-form__message").remove();
1084                    formEmailWrap.find(".las-form__right").append("<div class=\"las-form__message\">" + message + "</div>");
1085                    errorEmail.push(1);
1086                }
1087            }
1088            if (0 === errorI.length && 0 === errorS.length && 0 === errorCheck.length && 0 === errorEmail.length && 0 === errorPhone.length) {
1089                this.makeAWish(e);
1090            }
1091            else {
1092                var message = '';
1093                if (0 !== errorS.length || 0 !== errorEmail.length || 0 !== errorPhone.length) {
1094                    message = "Please complete all information!";
1095                }
1096                self._$('.bas-customize-tour-homepage-error').html("<p class=\"\" style=\"color:#e74
1096c3c\">" + message + "</p>");
1097                // let output = self.tplNotify(message);
1098                // self._$('body').prepend(output);
1099                // self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
1100            }
1101            return false;
1102        };
1103        /**
1104        * tempate notify
1105        */
1106        HOME_SHORTCODE_POPUP.prototype.tplNotify = function (message) {
1107            return "\n     \t\t\t<div class=\"mfp-bg mfp-fade mfp-ready bas-mfp-ready\"></div>\n     \t\t\t<div class=\"mfp-wrap mfp-close-btn-in mfp-auto-cursor mfp-fade mfp-ready bas-mfp-wrap\"><div class=\"mfp-container mfp-s-ready mfp-inline-holder\"><div class=\"mfp-content\">\n     \t\t\t<div class=\"las-download-popup las-popup\" style=\"padding-left: 10px;padding-right: 10px\">\n                         " + message + "\n                     <button title=\"Close (Esc)\" type=\"button\" class=\"mfp-close bas-mfp-close\">\u00D7</button></div></div><div class=\"mfp-preloader\">Loading...</div></div></div>\n             ";
1108        };
1109        /**
1110         * Khoa / mo khoa nut submit khi dang gui request.
1111         * Overlay .pending khong phu duoc nut tren mobile (popup la khung cuon,
1112         * xem @media (max-width: 991px) .las-customize-popup) nen phai khoa truc tiep tren nut.
1113         */
1114        HOME_SHORTCODE_POPUP.prototype.toggleSubmitButton = function (button, locked) {
1115            if (!button || !button.length) {
1116                return;
1117            }
1118            if (locked) {
1119                button.addClass('bas-btn-submitting').css({ 'pointer-events': 'none', 'opacity': 0.6 });
1120            }
1121            else {
1122                button.removeClass('bas-btn-submitting').css({ 'pointer-events': '', 'opacity': '' });
1123            }
1124        };
1125        HOME_SHORTCODE_POPUP.prototype.makeAWish = function (e) {
1126            var self = this;
1127            // Chan submit trung khi request truoc chua tra ve
1128            if (this.isSubmitting) {
1129                return false;
1130            }
1131            var formData = this._$('#bas-make-a-wish-form').serialize();
1132            var inputAgree = self._$(".bas-booking-agree");
1133            var email = self._$(e.currentTarget).closest('.bas-home-check-popup').find(".bas-cfemail-required-js").val();
1134            var duration = self._$(e.currentTarget).closest('.bas-home-check-popup').find(".las-customize-popup_select_duration").val();
1135            var capacity = self._$(e.currentTarget).closest('.bas-home-check-popup').find(".las-customize-popup_select_capacity").val();
1136            if (atlBlockSingleGuest(capacity)) {
1137                return false;
1138            }
1139            var submitButton = self._$(e.currentTarget);
1140            this.isSubmitting = true;
1141            this.toggleSubmitButton(submitButton, true);
1142            BASLIB.loadShow('.las-customize-popup');
1143            var dataIpUser = localStorage.getItem('atl_info_ip');
1144            self._$.ajax({
1145                url: bas_admin.admin_url + 'admin-ajax.php',
1146                type: 'post',
1147                data: {
1148                    action: 'bas_frontend_customized_trip_submit',
1149                    formData: formData,
1150                    dataIpUser: dataIpUser,
1151                    security: window.ATL_NONCE_SECURITY.tour_customized_popup
1152                    //security: self._$('[name=' + bas_admin.ajax_nonce + 'tour_customized_popup]').val()
1153                },
1154                success: function (data) {
1155                    var dataResult = JSON.parse(data);
1156                    window.BASLIB.loadHiden('.las-customize-popup');
1157                    if (!dataResult.status) {
1158                        var message = '<p style="font-size: 70px;margin-bottom: 20px;color: #edd595;"><i class="far fa-exclamation-circle"></i></p>';
1159                        message += dataResult.message;
1160                        self._$(".mfp-close").click();
1161                        var output = self.tplNotify(message);
1162                        self._$('body').prepend(output);
1163                        self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
1164                    }
1165                    else {
1166                        var dataLayer = dataLayer || []; // Safe init
1167                        dataLayer.push({ 'event': 'vietnamtravel_customize' });
1168                        var site_phone = window.vntv_client_data.site_phone || '0084982 661 133';
1169                        capacity = parseInt(capacity) > 0 ? parseInt(capacity) : 100;
1170                        duration = (parseInt(duration) > 0 && parseInt(duration) <= 20) ? parseInt(duration) : 100;
1171                        self._$('.mfp-close').trigger('click');
1172                        var message = '<p style="font-size: 70px;margin-bottom: 20px;color: #03a84e;"><i class="far fa-check-circle"></i></p>';
1173                        message += '<input type="hidden" id="dataemailcustomized" value="' + email + '" />';
1174                        message += '<input type="hidden" id="datadaycustomized" value="' + duration + '" />';
1175                        message += '<input type="hidden" id="datapeoplecustomized" value="' + capacity + '" />';
1176                        message += '<p style="color: #03a84e;font-weight: bold;font-size: 30px;margin-bottom: 10px;">Thank you,</p>';
1177                        message += '<p style="font-size: 17px; margin-bottom: 5px;">We have received your travel request.  You will receive an email shortly.</p>';
1178                        message += '<p>(If you do not receive our reply within 24 hours, please check your spam/junk folder or call us at: ';
1179                        message += site_phone;
1180                        message += ')</p>';
1181                        message += "<script> var dataLayer = dataLayer || [];\n                         dataLayer.push({'event' : 'vietnamtravel_customize'});</script>";
1182                        var output = self.tplNotify(message);
1183                        self._$('body').prepend(output);
1184                        self._$('html').css({ "margin-right": "15px", "overflow": "hidden" });
1185                        if (bas_admin.themeSettings.bas_page_js_ad_customized) {
1186                            var result = bas_admin.themeSettings.bas_page_js_ad_customized.replace("TOTALVALUE", Number.parseFloat(dataResult.calculatorPoint).toFixed(1));
1187                            result = result.replace("REQUESTCODE", dataResult.code);
1188                            result = result.replace("USER_EMAIL", dataResult.email);
1189                            result = result.replace("USER_PHONE", dataResult.phone);
1190                            console.log(result);
1191                            eval(result);
1192                        }
1193                        window.scrollTo(0, 0);
1194                    }
1195                },
1196                error: function () {
1197                    window.BASLIB.loadHiden('.las-customize-popup');
1198                },
1199                complete: function () {
1200                    self.isSubmitting = false;
1201                    self.toggleSubmitButton(submitButton, false);
1202                }
1203            });
1204            return false;
1205        };
1206        return HOME_SHORTCODE_POPUP;
1207    }(Backbone.View));
1208    BAS_FRONTEND_CUSTOM_TOUR.HOME_SHORTCODE_POPUP = HOME_SHORTCODE_POPUP;
1209    var BAS_FRONTEND_CUSTOM_TOUR_INIT = /** @class */ (function () {
1210        function BAS_FRONTEND_CUSTOM_TOUR_INIT() {
1211        }
1212        BAS_FRONTEND_CUSTOM_TOUR_INIT.prototype.init = function () {
1213            // Init class handle module booking.
1214            new CUSTOM_TOUR_SINGLE();
1215            new CUSTOM_TOUR_SINGLE_POPUP();
1216            new HOME_SHORTCODE_POPUP();
1217        };
1218        return BAS_FRONTEND_CUSTOM_TOUR_INIT;
1219    }());
1220    BAS_FRONTEND_CUSTOM_TOUR.BAS_FRONTEND_CUSTOM_TOUR_INIT = BAS_FRONTEND_CUSTOM_TOUR_INIT;
1221    var BAS_FRONTEND_CUSTOM_TOUR_INIT = new BAS_FRONTEND_CUSTOM_TOUR_INIT;
1222    BAS_FRONTEND_CUSTOM_TOUR_INIT.init();
1223})(BAS_FRONTEND_CUSTOM_TOUR || (BAS_FRONTEND_CUSTOM_TOUR = {}));

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.