$ = 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()];
}