PageSourceSearch

https://shop.majolini.com/wp-content/plugins/fooevents_bookings/js/events-booking-frontend.js?ver=2.0.0

js majolini.com collected 2026-10-10 00:58:19 UTC 10,221 bytes, 312 lines download raw bytes

1(function ($) {
2  jQuery("body").on("added_to_cart", function (event) {
3    fooevents_bookings_reset_date_slot();
4  });
5
6  if (jQuery(".fooevents-bookings-slot").length) {
7    jQuery(".fooevents-bookings-slot").on("change", function (event) {
8      var slot_element = jQuery(this);
9      fooevents_bookings_return_slot_dates(slot_element, event);
10    });
11  }
12
13  if (jQuery(".fooevents-bookings-date").length) {
14    jQuery(".fooevents-bookings-date").on("change", function (event) {
15      var date_element = jQuery(this);
16      fooevents_bookings_return_date_stock(date_element, event);
17    });
18  }
19
20  if (jQuery(".fooevents-bookings-slot-date").length) {
21    jQuery(".fooevents-bookings-slot-date").on("change", function (event) {
22      var slot_date_element = jQuery(this);
23      fooevents_bookings_return_slot_date_stock(slot_date_element, event);
24    });
25  }
26
27  if (jQuery(".fooevents-bookings-date-slot-date").length) {
28    jQuery(".fooevents-bookings-date-slot-date").on("change", function (event) {
29      var date_slot_date_element = jQuery(this);
30      fooevents_bookings_return_date_slots(date_slot_date_element, event);
31    });
32  }
33
34  if (jQuery(".fooevents-bookings-date-slot-slot").length) {
35    jQuery(".fooevents-bookings-date-slot-slot").on("change", function (event) {
36      var slot_element = jQuery(this);
37      fooevents_bookings_return_date_slot_stock(slot_element, event);
38    });
39  }
40
41  if (jQuery(".fooevents_calendar_selected").length) {
42    if (jQuery(".fooevents-bookings-date").length) {
43      var date_element = jQuery(".fooevents-bookings-date");
44      fooevents_bookings_return_date_stock(date_element, event);
45    }
46
47    if (jQuery(".fooevents-bookings-slot-date").length) {
48      var slot_date_element = jQuery(".fooevents-bookings-slot-date");
49      fooevents_bookings_return_slot_date_stock(slot_date_element, event);
50    }
51
52    if (jQuery(".fooevents-bookings-date-slot-slot").length) {
53      var slot_element = jQuery(".fooevents-bookings-date-slot-slot");
54      fooevents_bookings_return_date_slot_stock(slot_element, event);
55    }
56  }
57
58  function fooevents_bookings_return_slot_dates(slot_element, event) {
59    var parent_result = jQuery(slot_element).attr("id").split("_");
60    var date_element =
61      "#fooevents_bookings_date_" + parent_result[3] + "__" + parent_result[5];
62    var selected = slot_element.find(":selected").val();
63
64    jQuery(date_element)
65      .children()
66      .remove()
67      .end()
68      .append(
69        '<option value="">' + FooEventsBookingsFrontObj.loading + "</option>"
70      );
71
72    var data_slots = {
73      action: "fetch_fooevents_bookings_dates",
74      selected: selected,
75    };
76
77    jQuery.post(
78      FooEventsBookingsFrontObj.ajaxurl,
79      data_slots,
80      function (response) {
81        var slots = JSON.parse(response);
82        var date_default = jQuery(date_element).attr("data-placeholder");
83
84        jQuery(date_element)
85          .find("option")
86          .remove()
87          .end()
88          .append('<option value="">' + date_default + "</option>")
89          .val("whatever");
90
91        jQuery.each(slots, function (index, value) {
92          jQuery(date_element).append(
93            jQuery("<option>", {
94              value: index,
95              text: value,
96            })
97          );
98        });
99      }
100    );
101  }
102
103  function fooevents_bookings_return_date_slots(date_slot_date_element, event) {
104    var parent_result = jQuery(date_slot_date_element).attr("id").split("_");
105
106    var slot_element = "";
107    if (jQuery("#fooevents_bookings_slot_val__trans").length) {
108      slot_element = "#fooevents_bookings_slot_val__trans";
109    } else {
110      slot_element =
111        "#fooevents_bookings_date_slot_slot_" +
112        parent_result[5] +
113        "__" +
114        parent_result[7];
115    }
116
117    var selected = date_slot_date_element.find(":selected").val();
118
119    jQuery(slot_element)
120      .children()
121      .remove()
122      .end()
123      .append(
124        '<option value="">' + FooEventsBookingsFrontObj.loading + "</option>"
125      );
126
127    var data_slots = {
128      action: "fetch_fooevents_bookings_date_slot_slots",
129      selected: selected,
130    };
131
132    jQuery.post(
133      FooEventsBookingsFrontObj.ajaxurl,
134      data_slots,
135      function (response) {
136        var slots = JSON.parse(response);
137        var slot_default = jQuery(slot_element).attr("data-placeholder");
138
139        jQuery(slot_element)
140          .find("option")
141          .remove()
142          .end()
143          .append('<option value="">' + slot_default + "</option>")
144          .val("whatever");
145
146        jQuery.each(slots, function (index, value) {
147          jQuery(slot_element).append(
148            jQuery("<option>", {
149              value: value.slot_id + "_" + value.date_id + "_" + value.product,
150              text: value.slot_label,
151            })
152          );
153        });
154      }
155    );
156  }
157
158  function fooevents_bookings_return_date_stock(date_element, event) {
159    var parent_result = jQuery(date_element).attr("id").split("_");
160    var date_selected = date_element.find(":selected").val();
161
162    var slot_element =
163      "#fooevents_bookings_slot_" + parent_result[3] + "__" + parent_result[5];
164    var slot_selected = jQuery(slot_element).find(":selected").val();
165
166    if (typeof slot_selected === "undefined") {
167      slot_selected = jQuery(slot_element).val();
168    }
169
170    var info_element =
171      "#fooevents-checkout-attendee-info-" +
172      parent_result[3] +
173      "-" +
174      parent_result[5];
175
176    var data_date_stock = {
177      action: "fetch_fooevents_bookings_date_stock",
178      slot_selected: slot_selected,
179      date_selected: date_selected,
180    };
181
182    jQuery.post(
183      FooEventsBookingsFrontObj.ajaxurl,
184      data_date_stock,
185      function (response) {
186        var returned_stock = JSON.parse(response);
187        jQuery(info_element).html(returned_stock.stock);
188
189        jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val);
190        jQuery(".qty").attr("max", returned_stock.stock_val);
191        if (returned_stock.stock_val == 0) {
192          jQuery(".single_add_to_cart_button").attr("disabled", true);
193        } else {
194          jQuery(".single_add_to_cart_button").attr("disabled", false);
195        }
196      }
197    );
198  }
199
200  function fooevents_bookings_return_slot_date_stock(slot_date_element, event) {
201    var parent_result = jQuery(slot_date_element).attr("id").split("_");
202    var slot_date_selected = slot_date_element.find(":selected").val();
203
204    var info_element =
205      "#fooevents-checkout-attendee-info-" +
206      parent_result[4] +
207      "-" +
208      parent_result[6];
209
210    var data_slot_date_stock = {
211      action: "fetch_fooevents_bookings_slot_date_stock",
212      slot_date_selected: slot_date_selected,
213    };
214
215    jQuery.post(
216      FooEventsBookingsFrontObj.ajaxurl,
217      data_slot_date_stock,
218      function (response) {
219        var returned_stock = JSON.parse(response);
220        jQuery(info_element).html(returned_stock.stock);
221
222        jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val);
223        jQuery(".qty").attr("max", returned_stock.stock_val);
224        if (returned_stock.stock_val == 0) {
225          jQuery(".single_add_to_cart_button").attr("disabled", true);
226        } else {
227          jQuery(".single_add_to_cart_button").attr("disabled", false);
228        }
229      }
230    );
231  }
232
233  function fooevents_bookings_return_date_slot_stock(slot_element, event) {
234    var parent_result = jQuery(slot_element).attr("id").split("_");
235    var date_slot_slot_selected = slot_element.find(":selected").val();
236
237    var date_element = "";
238    if (jQuery("#fooevents_bookings_date_val__trans").length) {
239      date_element = "#fooevents_bookings_date_val__trans";
240    } else {
241      date_element =
242        "#fooevents_bookings_date_slot_date_" +
243        parent_result[5] +
244        "__" +
245        parent_result[7];
246    }
247
248    var date_slot_date_selected = jQuery(date_element).find(":selected").val();
249
250    var info_element =
251      "#fooevents-checkout-attendee-info-" +
252      parent_result[5] +
253      "-" +
254      parent_result[7];
255    if (!jQuery(info_element).length) {
256      info_element = ".fooevents-checkout-attendee-info";
257    }
258
259    var data_date_slot_stock = {
260      action: "fetch_fooevents_bookings_date_slot_stock",
261      date_slot_slot_selected: date_slot_slot_selected,
262      date_slot_date_selected: date_slot_date_selected,
263    };
264
265    if (date_slot_slot_selected && date_slot_date_selected) {
266      jQuery.post(
267        FooEventsBookingsFrontObj.ajaxurl,
268        data_date_slot_stock,
269        function (response) {
270          var returned_stock = JSON.parse(response);
271          jQuery(info_element).html(returned_stock.stock);
272
273          jQuery("#fooevents-bookings-stock").val(returned_stock.stock_val);
274          jQuery(".qty").attr("max", returned_stock.stock_val);
275
276          if (returned_stock.stock_val == 0) {
277            jQuery(".single_add_to_cart_button").attr("disabled", true);
278          } else {
279            jQuery(".single_add_to_cart_button").attr("disabled", false);
280          }
281        }
282      );
283    } else {
284      jQuery(info_element).html("");
285    }
286  }
287
288  function fooevents_bookings_reset_date_slot() {
289    jQuery("#fooevents_bookings_date_val__trans option").each(function () {
290      jQuery(this).remove();
291      jQuery("#fooevents-checkout-attendee-info-val-trans").html("");
292    });
293    var date_default = jQuery("#fooevents_bookings_date_val__trans").attr(
294      "data-placeholder"
295    );
296    jQuery("#fooevents_bookings_date_val__trans").append(
297      '<option value="">' + date_default + "</option>"
298    );
299    jQuery("#fooevents_bookings_slot_val__trans option:eq(0)").attr(
300      "selected",
301      "selected"
302    );
303    jQuery("#fooevents_bookings_date_val__trans option:eq(0)").attr(
304      "selected",
305      "selected"
306    );
307    jQuery("#fooevents_bookings_slot_date_val_trans option:eq(0)").attr(
308      "selected",
309      "selected"
310    );
311  }
312})(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.