1 2function defer(method) { 3 if (window.jQuery) { 4 method(); 5 } else { 6 setTimeout(function() { defer(method) }, 500); 7 } 8} 9defer(function () { 10 (function($) { 11 12 jQuery(document).ready(function() { 13 14 (function($){ 15 $.fn.datepicker.dates['de'] = { 16 days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], 17 daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"], 18 daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], 19 months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], 20 monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], 21 today: "Heute", 22 monthsTitle: "Monate", 23 clear: "Löschen", 24 weekStart: 1, 25 format: "dd.mm.yyyy" 26 }; 27 }(jQuery)); 28 29 // calendar 30 if ($("#quickbook").length > 0) { 31 $(".datepicker").datepicker({ 32 numberOfMonths: 2, 33 language: "<f:format.raw>{settings.language}</f:format.raw>", 34 keepOpen: false, 35 }); 36 } 37 38 $(".bs-select").selectpicker(); 39 $(".touchspin").TouchSpin({ 40 verticalbuttons: true 41 }); 42 43 $("#quickbook").on("submit", function(e) { 44 const form = e.target; 45 46 if (!form.qb_hotel.value) { 47 $(form).find(".qb_hotel").focus().click(); 48 e.preventDefault(); 49 } 50 }); 51 52 function debounce(func, wait, immediate) { 53 var timeout; 54 return function() { 55 var context = this, args = arguments; 56 var later = function() { 57 timeout = null; 58 if (!immediate) func.apply(context, args); 59 }; 60 var callNow = immediate && !timeout; 61 clearTimeout(timeout); 62 timeout = setTimeout(later, wait); 63 if (callNow) func.apply(context, args); 64 }; 65 }; 66 67 var updateDates = debounce(function(e){ 68 var d_from = $("input#qb_dateFrom").data('datepicker').getDate(); 69 var d_to = $("input#qb_dateTo").data('datepicker').getDate(); 70 if(d_from.getTime() >= d_to.getTime()) { 71 if(e.currentTarget.id == "qb_dateFrom") { 72 $("input#qb_dateTo").data('datepicker').setDate(new Date(d_from.valueOf() + 24*60*60*1000)); 73 } else if (e.currentTarget.id == "qb_dateTo") { 74 $("input#qb_dateFrom").data('datepicker').show().setDate(new Date(d_to.valueOf() - 24*60*60*1000)); 75 } 76 } 77 $("input#" + e.currentTarget.id).data('datepicker').hide(); 78 if(e.currentTarget.id == "qb_dateFrom") { 79 $("input#qb_dateTo").data('datepicker').show(); 80 } 81 }, 1000, true); 82 83 // Hotel-specific values and translated copy are provided by TYPO3 as JSON. 84 var form = document.getElementById("quickbook"); 85 var configurationElement = form.parentElement.querySelector(".qb-config"); 86 var hotelConfiguration = JSON.parse(configurationElement.textContent); 87 88 function updateHotelLabels(hotel) { 89 var configuration = hotelConfiguration[hotel] || hotelConfiguration._default; 90 91 $(form).find(".qb_rooms_label").text(configuration.accommodationLabel); 92 $(form).find(".qb_children_sublabel").text(configuration.childrenSublabel); 93 $(form).find(".qb_infants_sublabel").text(configuration.infantsSublabel); 94 } 95 96 jQuery("select#qb_hotel").change(function() { 97 updateHotelLabels(this.value); 98 }).trigger("change"); 99 100 jQuery("input#qb_dateFrom, input#qb_dateTo").change(function(e){ 101 updateDates(e); 102 }); 103 104 jQuery("input#qb_adults, input#qb_children, input#qb_infants, input#qb_rooms").change(function(){ 105 $("#number_children").html(parseInt($("input#qb_children").val()) + parseInt($("input#qb_infants").val())); 106 $("#number_adults").html($("input#qb_adults").val()); 107 $("#number_rooms").html($("input#qb_rooms").val()); 108 }); 109 110 $('button.bootstrap-touchspin-up, button.bootstrap-touchspin-down').on({ "click":function(e){ e.stopPropagation(); } }); 111 112 }); 113 })( jQuery ); 114});
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.