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.