$ = jQuery; var bookingWidgetController = function () { return { config: { 'available_languages': ['es', 'en'] }, init: function () { this.prepare_dependencies(); }, prepare_dependencies: function () { $("html").attr("lang", translate_code_language()); var language_widget = $("html").attr("lang"); $('head').append(''); $('head').append(''); $.getScript("//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js", function(){ $.getScript('//hotel-don-pancho.appspot.com/static_1/lib/jquery-ui-1.10.1.custom.min.modified.js', function () { $.getScript("//hotel-don-pancho.appspot.com/static_1/lib/jquery-i18n-1.1.1/jquery.i18n-min.js", function(){ $.getScript("//hotel-don-pancho.appspot.com/static_1/js/datepicker/jquery.ui.datepicker-" + language_widget + ".js", function(){ _set_datepicker_regional($); $.getScript("//hotel-don-pancho.appspot.com/static_1/js/mainWebSkeletonAux_injection.js", function(){ $.getScript("//hotel-don-pancho.appspot.com/static_1/i18n/messages_" + language_widget + ".js?v=1.3", function(){ $.getScript("//hotel-don-pancho.appspot.com/static_1/lib/spin.min.js", function(){ bookingWidgetController.get_booking_widget_html(); }); }); }); }); }); }); }); }, get_booking_widget_html: function () { var language_widget = $("html").attr("lang"); if (this.config.available_languages.indexOf(language_widget) == -1){ language_widget = 'en'; } $.get("//hotel-don-pancho.appspot.com/booking-donpancho/" + language_widget + "/?version=injection", function (e) { widget_donpancho = e; if ($(".seccion-reserva").length) { $(".seccion-reserva").html(widget_donpancho); if($("input#paraty_widget_vertical").length && $("input#paraty_widget_vertical").val()) { $(".paraty_widget_vertical form#searchForm").addClass("vertical_widget"); } $('head').append($('').attr('href', '//hotel-don-pancho.appspot.com/static_1/css/booking/booking_engine_2_injection.css?v=11.19')); } bookingWidgetController.preparing_widget_inteligent(); $(".show_widget_wrapper").click(function(){ $(".paraty-booking-form").slideToggle("slow").promise().done(function(){ $(".paraty-booking-form").css("overflow", "visible"); }); }); $.getScript("//hotel-don-pancho.appspot.com/static_1/scripts/url_modifier.js"); bookingWidgetController.init_flexible_calendar(); $(".paraty-booking-form button.button-hover").addClass(""); $("button.colocar_envio").click(function(event){ var stat_date_value = $("input[name=startDate]").val(), end_date_value = $("input[name=endDate]").val(); if( stat_date_value == "" || end_date_value == ""){ $("input[name=startDate]").trigger("click"); event.stopPropagation(); } }); }); }, preparing_widget_inteligent: function(){ $.getScript("//hotel-don-pancho.appspot.com/static_1/plugins/pricescalendar/calendar.plugin.js?v=1.4", function(){ $.getScript("///hotel-don-pancho.appspot.com/static_1/plugins/dates-selector/datepicker_v1.js?v=1.125", function () { DP_extend_info.config.booking_version = '2'; DP_extend_info.config.hotel_path_endpoint = '//hotel-don-pancho.appspot.com'; DP_extend_info.config.max_date_datepicker = 365; DP_extend_info.config.room_hotel_selector = true; DP_extend_info.config.language_web = language_code_to_title(); $.i18n.load(messages); no_dispo_text = $.i18n._("no_disponible"); DP_extend_info.init(); bookingWidgetController.set_datepicker_popup_default(); if($("#paraty_entry_date").length) { $(".colocar_fechas input[name=startDate]").val($("#paraty_entry_date").val()); } if($("#paraty_departure_date").length) { $(".colocar_fechas input[name=endDate]").val($("#paraty_departure_date").val()); } if($("#paraty_nu_rooms").length) { $(".paraty-booking-form").each(function(){ $(this).find("#selector_habitaciones").val($("#paraty_nu_rooms").val()); $(this).find("#selector_habitaciones").change(); }); } if($("#paraty_adults_1").length) { $(".paraty-booking-form").each(function(){ $(this).find("#hab1_adultos").val($("#paraty_adults_1").val()); }); } if($("#paraty_adults_2").length) { $(".paraty-booking-form").each(function(){ $(this).find("#hab2_adultos").val($("#paraty_adults_2").val()); }); } if($("#paraty_adults_3").length) { $(".paraty-booking-form").each(function(){ $(this).find("#hab3_adultos").val($("#paraty_adults_3").val()); }); } if($("#paraty_promocode").length) { $("input[name=promocode]").val($("#paraty_promocode").val()); } }); }); }, set_datepicker_popup_default: function(){ let language_widget = $("html").attr("lang"); if (this.config.available_languages.indexOf(language_widget) == -1){ language_widget = 'en'; } const tooltips = { es: 'Por favor seleccione la habitación en la que quiere ver su disponibilidad y precio en el calendario', en: 'Please select the room in which you want to see its availability and price on the calendar' } var targets_selectors = $("#fecha_entrada, #fecha_salida"); targets_selectors.unbind("click"); const overlay = $("#calendar-overlay"); if (!$.contains(document.body, overlay[0]) || overlay.parent()[0] !== document.body) { $("body").append(overlay); } targets_selectors.click(function () { const actualDate = new Date(); document.dispatchEvent(new CustomEvent('updateMonth.price_calendar_v2', { detail: { month: actualDate.getMonth(), year: actualDate.getFullYear() } })); overlay.addClass('open'); $("#calendar-app-root").addClass('calendar_showed'); document.dispatchEvent(new CustomEvent('calendarShowed.price_calendar_v2')); }); $(document).on('click', '#calendar-overlay', function (e) { const isOverlay = e.target === document.getElementById('calendar-overlay'); const isCloseButton = $(e.target).closest('#calendar-close').length > 0; if (isOverlay || isCloseButton) { $("#calendar-overlay").removeClass('open'); } }); $(document).on('mousedown', 'input[readonly]', function (e) { e.preventDefault(); }); }, init_flexible_calendar: function () { if (!window.calendar_data) { return; } window.calendar_data.change_date_callback = function (date, isStartDateSelection) { const formatDate = function (inputDate) { const d = inputDate.getDate().toString().padStart(2, '0'); const m = (inputDate.getMonth() + 1).toString().padStart(2, '0'); const y = inputDate.getFullYear(); return d + '/' + m + '/' + y; }; const widget_form_wrapper = $('.paraty-booking-form'); const date_formated = formatDate(date); if (isStartDateSelection) { widget_form_wrapper.find('input[name=startDate]').val(date_formated); widget_form_wrapper.find('input[name=endDate]').val(''); } else { widget_form_wrapper.find('input[name=endDate]').val(date_formated); } }; const namespace = 'hotel-don-pancho'; const apply_namespace = function () { if (window.calendar_data.update_namespace_calendar) { window.calendar_data.update_namespace_calendar(namespace); } }; if (window.calendar_data.update_namespace_calendar) { apply_namespace(); } else { window.addEventListener('updateNamespaceCalendarCallbackReady', apply_namespace, { once: true }); } }, mostrarHabitaciones2: function(selector) { var form_paraty = selector.closest(".paraty-booking-form"), numHab = selector.val(); for (var i=4; i>numHab-1; i--) { form_paraty.find('#hab'+i).hide(); form_paraty.find('#childrenRoom'+(i+1)).val("0"); } for (var j=numHab-1; i>=0; i--) { form_paraty.find('#hab'+j).show(); } } } }(); bookingWidgetController.init(); function translate_code_language() { var dict_lang = { 'es-es': 'es', 'de-de': 'de', 'en-gb': 'en', 'en-us': 'en' }; return dict_lang[$("html").attr("lang").toLowerCase()]; } function language_code_to_title() { var dict_lang = { 'es': 'SPANISH', 'en': 'ENGLISH' }; return dict_lang[$("html").attr("lang").toLowerCase()]; }