PageSourceSearch

https://www.mb-hotel.de/mb-hotels_main/js/search-widget.js

js mb-hotel.de collected 2026-10-09 03:34:13 UTC 8,609 bytes, 161 lines download raw bytes

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.