1/*jslint browser: true*/ /*jslint long:true */ /*jslint for:true */ /*global jQuery*/ /*jslint this:true */ /*global window*/ 2 3(function ($) { 4 5 "use strict"; 6 7 var search_widget; 8 9 $(document).ready(function () { 10 search_widget.init(); 11 }); 12 13 search_widget = { 14 disableFilters: function () { 15 $(".filter-group").hide(); 16 $(".filter-group input[type='radio']").prop("disabled", "disabled"); 17 $(".filter-group input[type='checkbox']").prop("disabled", "disabled"); 18 $(".filter-group input[type='text']").prop("disabled", "disabled"); 19 $(".filter-group input[type='hidden']").prop("disabled", "disabled"); 20 $(".filter-group select").prop("disabled", "disabled"); 21 }, 22 enableFilters: function (type) { 23 $(".filter-group.filter-" + type).show(); 24 $(".filter-group.filter-" + type + " input[type='radio']").removeAttr("disabled"); 25 $(".filter-group.filter-" + type + " input[type='text']").removeAttr("disabled"); 26 $(".filter-group.filter-" + type + " input[type='checkbox']").removeAttr("disabled"); 27 $(".filter-group.filter-" + type + " input[type='hidden']").removeAttr("disabled"); 28 $(".filter-group.filter-" + type + " select").removeAttr("disabled"); 29 }, 30 toggleFilters: function (what) { 31 search_widget.disableFilters(); 32 search_widget.enableFilters("generic"); 33 search_widget.enableFilters("location"); 34 35 if (what === 1) { 36 search_widget.enableFilters("accommodation"); 37 } else if (what === 2) { 38 search_widget.enableFilters("car_rental"); 39 } else if (what === 3) { 40 search_widget.enableFilters("cruise"); 41 } else if (what === 4) { 42 search_widget.enableFilters("tour"); 43 } 44 }, 45 init: function () { 46 if ($(".filter-type-what input[type='radio']").is(":checked")) { 47 var what = parseInt($(".filter-type-what input[type='radio']:checked").val()); 48 search_widget.toggleFilters(what); 49 } 50 51 $(".filter-type-what input[type='radio']").on("click", function () { 52 const what = parseInt($(this).val()); 53 $(".filter-type-what input[type='radio'][value=" + what + "]").prop('checked', true); 54 search_widget.toggleFilters(what); 55 }); 56 57 $("select.filter-locations-by-type, select.filter-locations").on("change", function () { 58 var locationId = $(this).val(); 59 var relatedInputId = $(this).data('relid'); 60 if (relatedInputId && $("input[id='" + relatedInputId + "']").length > 0) { 61 $("input[id='" + relatedInputId + "']").val(locationId); 62 } 63 }); 64 65 var filterClass = ""; 66 if (window.searchWidgetStarFilters) { 67 Object.keys(window.searchWidgetStarFilters).forEach(function (filterName, ignore) { 68 filterClass = window.searchWidgetStarFilters[filterName].class; 69 $('.' + filterClass).each(function() { 70 $(this).raty({ 71 scoreName: "stars", 72 score: window.searchWidgetStarFilters[filterName].value, 73 number: window.searchWidgetStarFilters[filterName].count 74 }); 75 }) 76 }); 77 } 78 var sliderClass = ""; 79 if (window.searchWidgetSliderFilters) { 80 Object.keys(window.searchWidgetSliderFilters).forEach(function (sliderName, ignore) { 81 sliderClass = window.searchWidgetSliderFilters[sliderName].class; 82 83 $("." + sliderClass).each(function() { 84 $(this).slider({ 85 range: "min", 86 value: window.searchWidgetSliderFilters[sliderName].value, 87 min: window.searchWidgetSliderFilters[sliderName].min, 88 max: window.searchWidgetSliderFilters[sliderName].max, 89 step: window.searchWidgetSliderFilters[sliderName].step 90 }); 91 92 $(this).off("slidechange"); 93 $(this).on("slidechange", function (ignore, ui) { 94 $("#" + window.searchWidgetSliderFilters[$(this).attr("name") + '_' + $(this).data("blockOrder")].class_input).val(ui.value); 95 }); 96 }) 97 }); 98 } 99 100 if (window.searchWidgetDatepickers) { 101 Object.keys(window.searchWidgetDatepickers).forEac
101h(function (datepickerName, ignore) { 102 var datePickerClass = window.searchWidgetDatepickers[datepickerName].class; 103 104 $('.' + datePickerClass).each(function () { 105 var datePickerInput = $(this); 106 var altFieldClass = datePickerInput.data("alt-field"); 107 108 datePickerInput.datepicker({ 109 dateFormat: window.datepickerDateFormat, 110 altFormat: window.datepickerAltFormat, 111 altField: "." + altFieldClass, 112 showOn: "button", 113 minDate: 0, 114 buttonImage: window.themePath + "/images/ico/calendar.png", 115 buttonImageOnly: true, 116 onClose: function (selectedDate) { 117 var d = $.datepicker.parseDate(window.datepickerDateFormat, selectedDate); 118 if (d !== null && typeof(d) !== 'undefined') { 119 var datepickerDiv = $(this).closest(".datepicker"); 120 if (datepickerDiv.hasClass("datepicker_from")) { 121 d = new Date(d.getFullYear(), d.getMonth(), d.getDate()+1); 122 var datepickerTo = $(this).closest(".widget-search").find(".datepicker_to .datepicker-wrap > input"); 123 datepickerTo.datepicker("option", "minDate", d); 124 } else if (datepickerDiv.hasClass("datepicker_to")) { 125 var datepickerFrom = $(this).closest(".widget-search").find(".datepicker_from .datepicker-wrap > input"); 126 d = new Date(d.getFullYear(), d.getMonth(), d.getDate()-1); 127 datepickerFrom.datepicker("option", "maxDate", d); 128 } 129 } 130 } 131 }); 132 133 datePickerInput.off("focus"); 134 datePickerInput.on("focus", function () { 135 $(this).datepicker("show"); 136 }); 137 138 var datePickerValue = window.searchWidgetDatepickers[datepickerName].value; 139 if (datePickerValue.length > 0) { 140 datePickerValue = bookyourtravel_scripts.convertLocalToUTC(new Date(datePickerValue)); 141 datePickerInput.datepicker("setDate", datePickerValue); 142 143 var datepickerDiv = datePickerInput.closest(".datepicker"); 144 if (datepickerDiv.hasClass("datepicker_from")) { 145 var d = new Date(datePickerValue.getFullYear(), datePickerValue.getMonth(), datePickerValue.getDate()+1); 146 var datepickerTo = datePickerInput.closest(".widget-search").find(".datepicker_to .datepicker-wrap > input"); 147 datepickerTo.datepicker("option", "minDate", d); 148 } else if (datepickerDiv.hasClass("datepicker_to")) { 149 var d = new Date(datePickerValue.getFullYear(), datePickerValue.getMonth(), datePickerValue.getDate()-1); 150 var datepickerFrom = datePickerInput.closest(".widget-search").find(".datepicker_from .datepicker-wrap > input"); 151 datepickerFrom.datepicker("option", "maxDate", d); 152 } 153 } 154 }); 155 156 }); 157 } 158 } 159 }; 160 161}(jQuery));
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.