PageSourceSearch

https://afdiag.fr/wp-content/plugins/modern-events-calendar/assets/js/events.js?ver=7.31.0.1790281167

js afdiag.fr collected 2026-09-24 20:22:22 UTC 44,334 bytes, 1,376 lines download raw bytes

1// Set datepicker default value.
2var datepicker_format = 'yy-mm-dd';
3
4jQuery(document).ready(function($)
5{
6    // Image picker on terms menu
7    $('.mec_upload_image_button').click(function(event)
8    {
9        event.preventDefault();
10
11        var real_ajax_url = wp.ajax.settings.url;
12        wp.ajax.settings.url = real_ajax_url + '?mec_fes=1';
13
14        var post_id = $(this).data('post-id');
15        if(post_id && post_id !== -1) wp.media.model.settings.post.id = post_id;
16        if(post_id === -1) wp.media.model.settings.post.id = null;
17
18        var preview_id = 'mec_thumbnail_img';
19        var input_id = 'mec_thumbnail';
20
21        if($(this).data('preview-id')) preview_id = $(this).data('preview-id');
22        if($(this).data('input-id')) input_id = $(this).data('input-id');
23
24        var frame;
25        if(frame)
26        {
27            frame.open();
28            return;
29        }
30
31        frame = wp.media();
32        frame.on('select', function()
33        {
34            // Grab the selected attachment.
35            var attachment = frame.state().get('selection').first();
36
37            $('#'+preview_id).html('<img src="'+attachment.attributes.url+'" style="max-width: 100%;" />');
38            $('#'+input_id).val(attachment.attributes.url);
39
40            $('.mec_remove_image_button').toggleClass('mec-util-hidden');
41
42            frame.close();
43        });
44
45        frame.open();
46    });
47
48    // Image remover on terms menu
49    $('.mec_remove_image_button').click(function(event)
50    {
51        event.preventDefault();
52
53        var preview_id = 'mec_thumbnail_img';
54        var input_id = 'mec_thumbnail';
55
56        if($(this).data('preview-id')) preview_id = $(this).data('preview-id');
57        if($(this).data('input-id')) input_id = $(this).data('input-id');
58
59        $('#'+preview_id).html('');
60        $('#'+input_id).val('');
61
62        $('.mec_remove_image_button').toggleClass('mec-util-hidden');
63    });
64
65    // Image picker on add event menu for location
66    $('.mec_location_upload_image_button').click(function(event)
67    {
68        event.preventDefault();
69
70        var frame;
71        if(frame)
72        {
73            frame.open();
74            return;
75        }
76
77        frame = wp.media();
78        frame.on('select', function()
79        {
80            // Grab the selected attachment.
81            var attachment = frame.state().get('selection').first();
82
83            $('#mec_location_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
84            $('#mec_location_thumbnail').val(attachment.attributes.url);
85
86            $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
87
88            frame.close();
89        });
90
91        frame.open();
92    });
93
94    // Image remover on add event menu for location
95    $('.mec_location_remove_image_button').click(function(event)
96    {
97        event.preventDefault();
98
99        $('#mec_location_thumbnail_img').html('');
100        $('#mec_location_thumbnail').val('');
101
102        $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
103    });
104
105    // Image picker on add event menu for organizer
106    $('.mec_organizer_upload_image_button').click(function(event)
107    {
108        event.preventDefault();
109
110        var frame;
111        if(frame)
112        {
113            frame.open();
114            return;
115        }
116
117        frame = wp.media();
118        frame.on('select', function()
119        {
120            // Grab the selected attachment.
121            var attachment = frame.state().get('selection').first();
122
123            $('#mec_organizer_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
124            $('#mec_organizer_thumbnail').val(attachment.attributes.url);
125
126            $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
127
128            frame.close();
129        });
130
131        frame.open();
132    });
133
134    // Image remover on add event menu for organizer
135    $('.mec_organizer_remove_image_button').click(function(event)
136    {
137        event.preventDefault();
138
139        $('#mec_organizer_thumbnail_img').html('');
140        $('#mec_organizer_thumbnail').val('');
141
142        $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
143    });
144
145    // Image remover on frontend event submission menu
146    $('#mec_fes_remove_image_button').click(function(event)
147    {
148        event.preventDefault();
149
150        $('#mec_fes_thumbnail_img').html('');
151        $('#mec_fes_thumbnail').val('');
152        $('#mec_featured_image_file').val('');
153
154        $('#mec_fes_remove_image_button').addClass('mec-util-hidden');
155    });
156
157    // Location Image remover on frontend event submission menu
158    $('#mec_fes_location_remove_image_button').click(function(event)
159    {
160        event.preventDefault();
161
162        $('#mec_fes_location_thumbnail_img').html('');
163        $('#mec_fes_location_thumbnail').val('');
164        $('#mec_fes_location_thumbnail_file').val('');
165
166        $('#mec_fes_location_remove_image_button').addClass('mec-util-hidden');
167    });
168
169    // Organizer Image remover on frontend event submission menu
170    $('#mec_fes_organizer_remove_image_button').click(function(event)
171    {
172        event.preventDefault();
173
174        $('#mec_fes_organizer_thumbnail_img').html('');
175        $('#mec_fes_organizer_thumbnail').val('');
176        $('#mec_fes_organizer_thumbnail_file').val('');
177
178        $('#mec_fes_organizer_remove_image_button').addClass('mec-util-hidden');
179    });
180
181    // Sponsor Image remover on frontend event submission menu
182    $('#mec_fes_sponsor_remove_image_button').click(function(event)
183    {
184        event.preventDefault();
185
186        $('#mec_fes_sponsor_thumbnail_img').html('');
187        $('#mec_fes_sponsor_thumbnail').val('');
188        $('#mec_fes_sponsor_thumbnail_file').val('');
189
190        $('#mec_fes_sponsor_remove_image_button').addClass('mec-util-hidden');
191    });
192
193    // Speaker Image remover on frontend event submission menu
194    $('#mec_fes_speaker_remove_image_button').click(function(event)
195    {
196        event.preventDefault();
197
198        $('#mec_fes_speaker_thumbnail_img').html('');
199        $('#mec_fes_speaker_thumbnail').val('');
200        $('#mec_fes_speaker_thumbnail_file').val('');
201
202        $('#mec_fes_speaker_remove_image_button').addClass('mec-util-hidden');
203    });
204
205    var date_splite;
206    if(typeof mec_admin_localize !== 'undefined')
207    {
208        date_splite = mec_admin_localize.datepicker_format.split('&');
209        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
210    }
211    else if(typeof mecdata !== 'undefined')
212    {
213        date_splite = mecdata.datepicker_format.split( '&' );
214        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
215    }
216
217    $('[id^="mec-book-form-btn-step"]').on('click',function()
218    {
219        setTimeout(function()
220        {
221            if($.fn.datepicker)
222            {
223                if('date' !== $('.mec-date-picker').prop('type'))
224                {
225                    $('.mec-date-picker').datepicker(
226                    {
227                        changeYear: true,
228                        changeMonth: true,
229                        dateFormat: datepicker_format,
230                        gotoCurrent: true,
231                        yearRange: 'c-3:c+5',
232                    });
233                }
234
235            }
236        }, 1000);
237    });
238
239    if($.fn.datepicker)
240    {
241        $('.mec-date-picker').datepicker(
242        {
243            changeYear: true,
244            changeMonth: true,
245            dateFormat: datepicker_format,
246            gotoCurrent: true,
247            yearRange: 'c-3:c+5',
248        });
249
250        $('#mec_start_date').datepicker(
251        {
252            changeYear: true,
253            changeMonth: true,
254            dateFormat: datepicker_format,
255            gotoCurrent: true,
256            yearRange: 'c-3:c+5',
257            onSelect: function(value, i)
258            {
259                const end = $("#mec_end_date");
260                if(value !== i.lastVal)
261                {
262                    end.datepicker("option", "minDate", value);
263                }
264
265                if(end.val() === '')
266                {
267                    end.val(value);
268                }
269            }
270        });
271
272        $('#mec_end_date').datepicker(
273        {
274            changeYear: true,
275            changeMonth: true,
276            dateFormat: datepicker_format,
277            gotoCurrent: true,
278            yearRange: 'c-3:c+5',
279            onSelect: function(value, i)
280            {
281                const start = $("#mec_start_date");
282                if(value !== i.lastVal)
283                {
284                    start.datepicker("option", "maxDate", value);
285                }
286
287                if(start.val() === '')
288                {
289                    start.val(value);
290                }
291            }
292        });
293
294        $('#mec_date_repeat_end_at_date').datepicker(
295        {
296            changeYear: true,
297            changeMonth: true,
298            dateFormat: datepicker_format,
299            gotoCurrent: true,
300            yearRange: 'c-3:c+5',
301        });
302
303        $('.mec_date_picker_dynamic_format').datepicker(
304        {
305            changeYear: true,
306            changeMonth: true,
307            dateFormat: datepicker_format,
308            gotoCurrent: true,
309            yearRange: 'c-3:c+5',
310        });
311
312        $('.mec_date_picker').datepicker(
313        {
314            changeYear: true,
315            changeMonth: true,
316            dateFormat: 'yy-mm-dd',
317            gotoCurrent: true,
318            yearRange: 'c-3:c+5',
319        });
320
321        $('.mec_date_picker_dynamic_format_start').datepicker(
322        {
323            changeYear: true,
324            changeMonth: true,
325            dateFormat: datepicker_format,
326            gotoCurrent: true,
327            yearRange: 'c-1:c+5',
328            onSelect: function(date)
329            {
330                var selectedDate;
331
332                try
333                {
334                    selectedDate = $.datepicker.parseDate(datepicker_format, date);
335                }
336                catch(e)
337                {
338                    selectedDate = new Date(date);
339                }
340
341                if(!(selectedDate instanceof Date) || isNaN(selectedDate.getTime())) return;
342
343                var endDate = new Date(selectedDate.getTime());
344
345                var $end_picker = $(this).next();
346                $end_picker.datepicker("option", "minDate", endDate);
347                $end_picker.datepicker("option", "maxDate", '+5y');
348            }
349        });
350
351        $('.mec_date_picker_dynamic_format_end').datepicker(
352        {
353            changeYear: true,
354            changeMonth: true,
355            dateFormat: datepicker_format,
356            gotoCurrent: true,
357            yearRange: 'c-1:c+5',
358        });
359
360        trigger_period_picker();
361    }
362
363    // Initialize WP Color Picker
364    if($.fn.wpColorPicker) jQuery('.mec-color-picker').wpColorPicker();
365
366    $('#mec_location_id').on('change', function()
367    {
368        mec_location_toggle();
369    });
370
371    $('#mec_organizer_id').on('change', function()
372    {
373        mec_organizer_toggle();
374        var mec_organizer_val = parseInt($(this).val());
375        var mec_additional_organizer = $(this).parent().parent().find('#mec-additional-organizer-wrap');
376
377        if(mec_organizer_val != 1) mec_additional_organizer.show();
378        else mec_additional_organizer.hide();
379    });
380
381    mec_location_toggle();
382    mec_organizer_toggle();
383
384    $('#mec_repeat').on('change', function()
385    {
386        mec_repeat_toggle();
387    });
388
389    mec_repeat_toggle();
390
391    $('#mec_repeat_type').on('change', function()
392    {
393        mec_repeat_type_toggle();
394    });
395
396    mec_repeat_type_toggle();
397
398    $('#mec_bookings_limit_unlimited').on('change', function()
399    {
400        mec_bookings_unlimited_toggle();
401    });
402
403    $('#mec_add_in_days').on('click', function()
404    {
405        var allday = $(this).data('allday');
406
407        var start = $('#mec_exceptions_in_days_start_date').val();
408        if(start === '') return false;
409
410        var end = $('#mec_exceptions_in_days_end_date').val();
411        if(end === '') return false;
412
413        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
414        if(start_hour.length === 1) start_hour = '0'+start_hour;
415
416        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
417        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
418
419        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
420        if(typeof start_ampm === 'undefined') start_ampm = '';
421
422        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
423        if(end_hour.length === 1) end_hour = '0'+end_hour;
424
425        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
426        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
427
428        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
429        if(typeof end_ampm === 'undefined') end_ampm = '';
430
431        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
432        var label = start + ' <span class="mec-time-picker-label '+(allday ? 'mec-util-hidden' : '')+'">' + start_hour + ':' + start_minutes + ' ' + start_ampm + '</span> - ' + end + ' <span class="mec-time-picker-label '+(allday ? 'mec-util-hidden' : '')+'">' + end_hour + ':' + end_minutes + ' ' + end_ampm + '</span>';
433
434        // Don't add exactly same occurrences
435        if($('#mec_in_days input[value="'+value+'"]').length > 0) return false;
436
437        var $key = $('#mec_new_in_days_key');
438
439        var key = $key.val();
440        var html = $('#mec_new_in_days_raw').html().replace(/:i:/g, key).replace(/:val:/g, value).replace(/:label:/g, label);
441
442        $('#mec_in_days').append(html);
443        $key.val(parseInt(key)+1);
444    });
445
446    $('#mec_edit_in_days').on('click', function()
447    {
448        // Form
449        const $form = $('#mec-in-days-form');
450
451        const modify_id = $form.data('modify');
452        const $row = $('#mec_in_days_row'+modify_id);
453
454        var allday = $(this).data('allday');
455
456        var start = $('#mec_exceptions_in_days_start_date').val();
457        if(start === '') return false;
458
459        var end = $('#mec_exceptions_in_days_end_date').val();
460        if(end === '') return false;
461
462        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
463        if(start_hour.length === 1) start_hour = '0'+start_hour;
464
465        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
466        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
467
468        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
469        if(typeof start_ampm === 'undefined') start_ampm = '';
470
471        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
472        if(end_hour.length === 1) end_hour = '0'+end_hour;
473
474        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
475        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
476
477        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
478        if(typeof end_ampm === 'undefined') end_ampm = '';
479
480        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
481        var label = start + ' <span class="mec-time-picker-label '+(allday ? 'mec-util-hidden' : '')+'">' + start_hour + ':' + start_minutes + ' ' + start_ampm + '</span> - ' + end + ' <span class="mec-time-picker-label '+(allday ? 'mec-util-hidden' : '')+'">' + end_hour + ':' + end_minutes + ' ' + end_ampm + '</span>';
482
483        $row.find($('input[type=hidden]')).val(value);
484        $row.find($('.mec-in-days-day')).html(label);
485
486        // Reset Dates
487        $form.parent().find($('input[type=text]')).val('');
488
489        // Modification Mode
490        $form.removeClass('mec-in-days-edit-mode').addClass('mec-in-days-add-mode').removeData('modify');
491    });
492
493    $('#mec_cancel_in_days').on('click', function()
494    {
495        // Form
496        let $form = $('#mec-in-days-form');
497
498        // Reset Dates
499        $form.parent().find($('input[type=text]')).val('');
500
501        // Modification Mode
502        $form.removeClass('mec-in-days-edit-mode').addClass('mec-in-days-add-mode').removeData('modify');
503    });
504
505    $('#mec_add_not_in_days').on('click', function()
506    {
507        let date = $('#mec_exceptions_not_in_days_date').val();
508        if(date === '') return false;
509
510        let d = date.replaceAll('-', '');
511        d = d.replaceAll('/', '');
512        d = d.replaceAll('.', '');
513
514
515        let $wrapper = $('#mec_not_in_days');
516        let $key = $('#mec_new_not_in_days_key');
517
518        let c = 'mec-date-'+d;
519        if($wrapper.find($('.'+c)).length) return;
520
521        let key = $key.val();
522        let html = $('#mec_new_not_in_days_raw').html().replace(/:i:/g, key).replace(/:d:/g, d).replace(/:val:/g, date);
523
524        $wrapper.append(html);
525        $key.val(parseInt(key)+1);
526    });
527
528    $('#mec_add_ticket_button').on('click', function()
529    {
530        let $key = $('#mec_new_ticket_key');
531        let key = $key.val();
532        let html = $('#mec_new_ticket_raw').html().replace(/:i:/g, key);
533
534        $('#mec_tickets').append(html);
535        $key.val(parseInt(key)+1);
536
537        mec_init_sortable_sections();
538
539        $('.mec_add_price_date_button').off('click').on('click', function()
540        {
541            mec_handle_add_price_date_button(this);
542        });
543
544        $.each($(".mec-select2"), function(i,v)
545        {
546            if($(v).attr('name').search(":i:") > 0)
547            {
548                return;
549            }
550
551            if(typeof $(v).data('select2-id') == 'undefined')
552            {
553                $(v).select2();
554            }
555        });
556
557        trigger_period_picker();
558    });
559
560    $('.mec_add_price_date_button').off('click').on('click', function()
561    {
562        mec_handle_add_price_date_button(this);
563    });
564
565    mec_hourly_schedule_add_day_listener();
566    mec_init_sortable_sections();
567
568    $('#mec_add_fee_button').on('click', function()
569    {
570        var key = $('#mec_new_fee_key').val();
571        var html = $('#mec_new_fee_raw').html().replace(/:i:/g, key);
572
573        $('#mec_fees_list').append(html);
574        $('#mec_new_fee_key').val(parseInt(key)+1);
575
576        mec_init_sortable_sections();
577    });
578
579    $('#mec_add_ticket_variation_button').on('click', function()
580    {
581        var key = $('#mec_new_ticket_variation_key').val();
582        var html = $('#mec_new_ticket_variation_raw').html().replace(/:i:/g, key);
583
584        $('#mec_ticket_variations_list').append(html);
585        $('#mec_new_ticket_variation_key').val(parseInt(key)+1);
586
587        mec_init_sortable_sections();
588    });
589
590    $('.mec-form-row.mec-available-color-row span').on('click', function()
591    {
592        $('.mec-form-row.mec-available-color-row span').removeClass('color-selected');
593        $(this).addClass('color-selected');
594    });
595
596    $('#mec_reg_form_field_types button').on('click', function()
597    {
598        var type = $(this).data('type');
599
600        if (type == 'mec_email') {
601            if ($('#mec_reg_form_fields').find('input[value="mec_email"][type="hidden"]').length) {
602                return false;
603            }
604        }
605
606        if (type == 'name') {
607            if ($('#mec_reg_form_fields').find('input[value="name"][type="hidden"]').length) {
608                return false;
609            }
610        }
611
612        var key  = $('#mec_new_reg_field_key').val();
613        var html = $('#mec_reg_field_'+type).html().replace(/:i:/g, key);
614
615        $('#mec_reg_form_fields').append(html);
616        $('#mec_new_reg_field_key').val(parseInt(key)+1);
617
618        // Set onclick listener for add option fields
619        mec_reg_fields_option_listeners();
620    });
621
622    // Set onclick listener for add option fields
623    mec_reg_fields_option_listeners();
624
625    // Advanced Repeating
626    $('#mec-advanced-wraper ul > ul > li').click(function()
627    {
628        if($(this).attr('class') == '') $(this).attr('class', 'mec-active');
629        else $(this).attr('class', '');
630
631        $('#mec_date_repeat_advanced').val($('#mec-advanced-wraper div:first-child > ul').find('.mec-active').find('span').text().slice(0, -1));
632    });
633
634    $('#mec_event_form_field_types button').on('click', function()
635    {
636        var type = $(this).data('type');
637
638        var key  = $('#mec_new_event_field_key').val();
639        var html = $('#mec_event_field_'+type).html().replace(/:i:/g, key);
640
641        $('#mec_event_form_fields').append(html);
642        $('#mec_new_event_field_key').val(parseInt(key)+1);
643
644        // Set onclick listener for add option fields
645        mec_event_fields_option_listeners();
646    });
647
648    // Set onclick listener for add option fields
649    mec_event_fields_option_listeners();
650
651    $('#mec_bfixed_form_field_types button').on('click', function()
652    {
653        var type = $(this).data('type');
654
655        var key  = $('#mec_new_bfixed_field_key').val();
656        var html = $('#mec_bfixed_field_'+type).html().replace(/:i:/g, key);
657
658        $('#mec_bfixed_form_fields').append(html);
659        $('#mec_new_bfixed_field_key').val(parseInt(key)+1);
660
661        // Set onclick listener for add option fields
662        mec_bfixed_fields_option_listeners();
663    });
664
665    // Set onclick listener for add option fields
666    mec_bfixed_fields_option_listeners();
667
668    // Additional Organizers
669    mec_additional_organizers_listeners();
670
671    // Show / Hide Password
672    $('.mec-show-hide-password').on('click', function()
673    {
674        var $input = $(this).siblings("input");
675        var current = $input.attr('type');
676
677        if(current === 'password') $input.attr('type', 'text');
678        else $input.attr('type', 'password');
679    });
680
681    // FAQ
682    $('#mec_add_faq_button').on('click', function()
683    {
684        const $key = $('#mec_new_faq_key');
685        const key = $key.val();
686        const html = $('#mec_new_faq_raw').html().replace(/:i:/g, key);
687
688        $('#mec_faq_list').append(html);
689        $key.val(parseInt(key)+1);
690
691        mec_init_sortable_sections();
692    });
693
694    // Appointments
695    // Move the selector to the metabox header
696    var $header = $('#mec_metabox_details .hndle');
697    // If .hndle is not found, try .postbox-header (newer WP versions)
698    if ($header.length === 0) {
699        $header = $('#mec_metabox_details .postbox-header');
700    }
701    $('.mec-event-appointment-type-wrap').appendTo($header).removeClass('mec-util-hidden').on('click', function(e) {
702        e.stopPropagation();
703    });
704
705    $('#mec_entity_type_select').on('change', function()
706    {
707        const entity_type = $(this).val();
708        const $fes_form = $('#mec_fes_form');
709        const $metabox_details = $('#mec_metabox_details');
710        const $appointment_form_wrapper = $('.mec-appointment-form-wrap');
711
712        if (entity_type === 'appointment')
713        {
714            $fes_form.removeClass('mec-entity-type-event').addClass('mec-entity-type-appointment');
715            $metabox_details.removeClass('mec-entity-type-event').addClass('mec-entity-type-appointment');
716
717            $appointment_form_wrapper.removeClass('mec-util-hidden');
718        }
719        else
720        {
721            $fes_form.removeClass('mec-entity-type-appointment').addClass('mec-entity-type-event');
722            $metabox_details.removeClass('mec-entity-type-appointment').addClass('mec-entity-type-event');
723
724            $appointment_form_wrapper.addClass('mec-util-hidden');
725        }
726    });
727
728    $('#mec_entity_type_select').trigger('change');
729
730    const $repeatType = $('#mec_appointments_availability_repeat_type');
731    if($.fn.datepicker)
732    {
733        $('#mec_appointments_start_date').datepicker({
734            changeYear: true,
735            changeMonth: true,
736            dateFormat: datepicker_format,
737            gotoCurrent: true,
738            yearRange: 'c-3:c+5',
739        });
740    }
741    function mec_toggle_repeat_type()
742    {
743        const val = $repeatType.val();
744        if (val === 'no_repeat')
745        {
746            $('.lsd-apt-days-wrapper').addClass('mec-util-hidden');
747            $('.lsd-apt-adjusted-title').addClass('mec-util-hidden');
748            $('.lsd-apt-start-date-wrapper').addClass('mec-util-hidden');
749        }
750        else
751        {
752            $('.lsd-apt-days-wrapper').removeClass('mec-util-hidden');
753            $('.lsd-apt-adjusted-title').removeClass('mec-util-hidden');
754            $('.lsd-apt-start-date-wrapper').removeClass('mec-util-hidden');
755        }
756    }
757    $repeatType.on('change', mec_toggle_repeat_type);
758    mec_toggle_repeat_type();
759
760    $(document).on('click', '.lsd-apt-day-icon-remove', function()
761    {
762        const $button = $(this);
763        const $timeslot = $button.parent();
764        const $timeslots = $button.parents('.lsd-apt-day-timeslots');
765
766        $timeslot.remove();
767        if ($timeslots.find('.lsd-apt-day-timeslot-wrapper').length === 0)
768        {
769            $timeslots.find('.lsd-apt-day-timeslots-unavailable').removeClass('mec-util-hidden');
770        }
771    });
772
773    $(document).on('click', '.lsd-apt-day-icon-plus', function()
774    {
775        const $button = $(this);
776        let key = $button.data('key');
777
778        const $day = $button.parents('.lsd-apt-day-wrapper');
779        const day = $day.data('key');
780
781        const $timeslots = $day.find('.lsd-apt-day-timeslots-wrapper');
782        const $template = $('#lsd-apt-day-templates-'+day+'-timeslot');
783
784        key = key + 1;
785        const html = $template.html().replace(/:t:/g, key);
786        $timeslots.append(html);
787
788        $button.data('key', key);
789        $day.find('.lsd-apt-day-timeslots-unavailable').addClass('mec-util-hidden');
790    });
791
792    $(document).on('click', '.lsd-apt-day-icon-copy', function ()
793    {
794        const $button = $(this);
795        const $sourceDay = $button.closest('.lsd-apt-day-wrapper');
796        const sourceDayKey = $sourceDay.data('key');
797
798        const $weekWrapper = $sourceDay.parent();
799        const $sourceTimeslots = $sourceDay.find('.lsd-apt-day-timeslots-wrapper .lsd-apt-day-timeslot-wrapper');
800
801        $weekWrapper.find('.lsd-apt-day-wrapper').each(function ()
802        {
803            const $targetDay = $(this);
804
805            const targetDayKey = $targetDay.data('key');
806            if (targetDayKey === sourceDayKey) return;
807
808            const isActive = $targetDay.find('.lsd-apt-day-timeslots-wrapper .lsd-apt-day-timeslot-wrapper').length > 0;
809            if (!isActive) return;
810
811            const $targetWrapper = $targetDay.find('.lsd-apt-day-timeslots-wrapper');
812            $targetWrapper.empty();
813
814            $sourceTimeslots.each(function ()
815            {
816                const $sourceSlot = $(this);
817                const $clone = $sourceSlot.clone(true);
818
819                $sourceSlot.find('select').each(function (i) {
820                    const value = $(this).val();
821                    $clone.find('select').eq(i).val(value);
822                });
823
824                $sourceSlot.find('input').each(function (i) {
825                    const value = $(this).val();
826                    $clone.find('input').eq(i).val(value);
827                });
828
829                $clone.find('[name], [id], [for]').each(function ()
830                {
831                    $.each(this.attributes, function () {
832                        if (this.name === 'name' || this.name === 'id' || this.name === 'for') {
833                            this.value = this.value
834                            .replace(`[availability][${sourceDayKey}]`, `[availability][${targetDayKey}]`)
835                            .replace(`availability_${sourceDayKey}_`, `availability_${targetDayKey}_`);
836                        }
837                    });
838                });
839
840                $targetWrapper.append($clone);
841            });
842        });
843    });
844
845    $(document).on('click', '.lsd-apt-adjusted-day-add', function()
846    {
847        const $wrapper = $('.lsd-apt-adjusted-days-wrapper');
848        let key = $wrapper.data('key') || 0;
849
850        key = key + 1;
851        let html = $('#lsd-apt-adjusted-template-day').html();
852        html = html.replace(/:i:/g, key);
853
854        $wrapper.append(html);
855        $wrapper.data('key', key);
856
857        if($.fn.datepicker)
858        {
859            $wrapper.find('.mec-apt-date-picker').last().datepicker({
860                changeYear: true,
861                changeMonth: true,
862                dateFormat: datepicker_format,
863                gotoCurrent: true,
864                yearRange: 'c-3:c+5',
865            });
866        }
867    });
868
869    $(document).on('click', '.lsd-apt-adjusted-day-remove', function()
870    {
871        $(this).closest('.lsd-apt-day-wrapper').remove();
872    });
873
874    $(document).on('click', '.lsd-apt-adj-day-icon-plus', function()
875    {
876        const $button = $(this);
877        let key = $button.data('key');
878        const $day = $button.closest('.lsd-apt-day-wrapper');
879        const day = $day.data('day');
880        const $timeslots = $day.find('.lsd-apt-day-timeslots-wrapper');
881
882        key = key + 1;
883        let html = $('#lsd-apt-adjusted-template-timeslot').html();
884
885        html = html.replace(/:i:/g, day).replace(/:t:/g, key);
886        $timeslots.append(html);
887
888        $button.data('key', key);
889        $day.find('.lsd-apt-day-timeslots-unavailable').addClass('mec-util-hidden');
890    });
891});
892
893function trigger_period_picker()
894{
895    jQuery('.mec-date-picker-start').datepicker(
896    {
897        changeYear: true,
898        changeMonth: true,
899        dateFormat: 'yy-mm-dd',
900        gotoCurrent: true,
901        yearRange: 'c-1:c+5',
902        onSelect: function(date)
903        {
904            const selectedDate = new Date(date);
905            const endDate = new Date(selectedDate.getTime());
906
907            const $end_picker = jQuery(this).next();
908            $end_picker.datepicker("option", "minDate", endDate);
909            $end_picker.datepicker("option", "maxDate", '+5y');
910        }
911    });
912
913    jQuery('.mec-date-picker-end').datepicker(
914    {
915        changeYear: true,
916        changeMonth: true,
917        dateFormat: 'yy-mm-dd',
918        gotoCurrent: true,
919        yearRange: 'c-1:c+5',
920    });
921}
922
923function mec_location_toggle()
924{
925    if(jQuery('#mec_location_id').val() != '0') jQuery('#mec_location_new_container').hide();
926    else jQuery('#mec_location_new_container').show();
927}
928
929function mec_organizer_toggle()
930{
931    if(jQuery('#mec_organizer_id').val() != '0') jQuery('#mec_organizer_new_container').hide();
932    else jQuery('#mec_organizer_new_container').show();
933}
934
935function mec_repeat_toggle()
936{
937    if(jQuery('#mec_repeat').is(':checked')) jQuery('.mec-form-repeating-event-row').show();
938    else jQuery('.mec-form-repeating-event-row').hide();
939}
940
941function mec_repeat_type_toggle()
942{
943    var repeat_type = jQuery('#mec_repeat_type').val();
944
945    if(repeat_type == 'certain_weekdays')
946    {
947        jQuery('#mec_repeat_interval_container').hide();
948        jQuery('#mec_repeat_certain_weekdays_container').show();
949        jQuery('#mec_exceptions_in_days_container').hide();
950        jQuery('#mec_end_wrapper').show();
951        jQuery('#mec-advanced-wraper').hide();
952    }
953    else if(repeat_type == 'custom_days')
954    {
955        jQuery('#mec_repeat_interval_container').hide();
956        jQuery('#mec_repeat_certain_weekdays_container').hide();
957        jQuery('#mec_exceptions_in_days_container').show();
958        jQuery('#mec_end_wrapper').hide();
959        jQuery('#mec-advanced-wraper').hide();
960    }
961    else if(repeat_type == 'advanced')
962    {
963        jQuery('#mec_repeat_interval_container').hide();
964        jQuery('#mec_repeat_certain_weekdays_container').hide();
965        jQuery('#mec_exceptions_in_days_container').hide();
966        jQuery('#mec_end_wrapper').show();
967        jQuery('#mec-advanced-wraper').show();
968    }
969    else if(repeat_type != 'daily' && repeat_type != 'weekly' && repeat_type != 'monthly')
970    {
971        jQuery('#mec_repeat_interval_container').hide();
972        jQuery('#mec_repeat_certain_weekdays_container').hide();
973        jQuery('#mec_exceptions_in_days_container').hide();
974        jQuery('#mec_end_wrapper').show();
975        jQuery('#mec-advanced-wraper').hide();
976    }
977    else
978    {
979        jQuery('#mec_repeat_interval_container').show();
980        jQuery('#mec_repeat_certain_weekdays_container').hide();
981        jQuery('#mec_exceptions_in_days_container').hide();
982        jQuery('#mec_end_wrapper').show();
983        jQuery('#mec-advanced-wraper').hide();
984    }
985}
986
987function mec_in_days_remove(i)
988{
989    jQuery('#mec_in_days_row'+i).remove();
990}
991
992function mec_in_days_edit(i)
993{
994    // Date
995    let $row = jQuery('#mec_in_days_row'+i);
996    let value = $row.find(jQuery('input[type=hidden]')).val();
997
998    const values = value.split(':');
999    const start_times = values[2].split('-')
1000    const end_times = values[3].split('-')
1001
1002    // Form
1003    let $form = jQuery('#mec-in-days-form');
1004
1005    // Set Dates
1006    jQuery('#mec_exceptions_in_days_start_date').val(values[0]);
1007    jQuery('#mec_exceptions_in_days_end_date').val(values[1]);
1008
1009    // Set Times
1010    jQuery('#mec_exceptions_in_days_start_hour').val(parseInt(start_times[0]));
1011    jQuery('#mec_exceptions_in_days_start_minutes').val(parseInt(start_times[1]));
1012    jQuery('#mec_exceptions_in_days_start_ampm').val(start_times[2]);
1013
1014    jQuery('#mec_exceptions_in_days_end_hour').val(parseInt(end_times[0]));
1015    jQuery('#mec_exceptions_in_days_end_minutes').val(parseInt(end_times[1]));
1016    jQuery('#mec_exceptions_in_days_end_ampm').val(end_times[2]);
1017
1018    // Modification Mode
1019    $form.removeClass('mec-in-days-add-mode').addClass('mec-in-days-edit-mode').data('modify', i);
1020}
1021
1022function mec_not_in_days_remove(i)
1023{
1024    jQuery('#mec_not_in_days_row'+i).remove();
1025}
1026
1027function mec_bookings_unlimited_toggle()
1028{
1029    jQuery('#mec_bookings_limit').toggleClass('mec-util-hidden');
1030}
1031
1032function mec_hourly_schedule_add_day_listener()
1033{
1034    jQuery('.mec-add-hourly-schedule-day-button').each(function()
1035    {
1036        jQuery(this).off('click').on('click', function()
1037        {
1038            var k = jQuery(this).data('key');
1039            var raw = jQuery(this).data('raw');
1040            var append = jQuery(this).data('append');
1041
1042            var key = jQuery(k).val();
1043            var html = jQuery(raw).html().replace(/:d:/g, key).replace(/:dd:/g, parseInt(key)+1);
1044
1045            jQuery(append).append(html);
1046            jQuery(k).val(parseInt(key)+1);
1047
1048            mec_hourly_schedule_listeners();
1049        });
1050
1051        mec_hourly_schedule_listeners();
1052    });
1053}
1054
1055function mec_bookings_after_occurrence_cancel_listener()
1056{
1057    jQuery('.mec-occurrences-bookings-after-occurrences-cancel').off('change').on('change', function()
1058    {
1059        const $dropdown = jQuery(this);
1060        const value = $dropdown.val();
1061        const $moveWrapper = $dropdown.next();
1062
1063        if(value === 'move' || value === 'move_notify')
1064        {
1065            $moveWrapper.removeClass('w-hidden');
1066        }
1067        else
1068        {
1069            $moveWrapper.addClass('w-hidden');
1070        }
1071    });
1072}
1073
1074function mec_hourly_schedule_listeners()
1075{
1076    jQuery('.mec-add-hourly-schedule-button').off('click').on('click', function()
1077    {
1078        var prefix = jQuery(this).data('prefix');
1079        var day = jQuery(this).data('day');
1080        var $key = jQuery('#'+prefix+'mec_new_hourly_schedule_key'+day);
1081
1082        var key = $key.val();
1083        var html = jQuery('#'+prefix+'mec_new_hourly_schedule_raw'+day).html().replace(/:i:/g, key).replace(/:d:/g, day).replace();
1084        var g_field_id = prefix+"-hourly_schedules-"+day+"-schedules-:i:-description";
1085        var field_id = prefix+"-hourly_schedules-"+day+"-schedules-"+key+"-description";
1086        html = html.replace(g_field_id,field_id);
1087        html = html.replace(':k:',key);
1088        jQuery('#'+prefix+'mec_hourly_schedules'+day).append(html);
1089        $key.val(parseInt(key)+1);
1090
1091        wp.editor.initialize("mec"+field_id,{
1092            tinymce: {
1093                wpautop: true,
1094                plugins : 'charmap colorpicker compat3x directionality fullscreen hr image lists media paste tabfocus textcolor wordpress wpautoresize wpdialogs wpeditimage wpemoji wpgallery wplink wptextpattern wpview',
1095                toolbar1: 'bold italic underline strikethrough | bullist numlist | blockquote hr wp_more | alignleft aligncenter alignright | link unlink | fullscreen | wp_adv',
1096                toolbar2: 'formatselect alignjustify forecolor | pastetext removeformat charmap | outdent indent | undo redo | wp_help'
1097            },
1098            quicktags: true,
1099            mediaButtons: false,
1100        });
1101    });
1102
1103    jQuery(".mec-hourly-schedule-schedules").sortable({
1104        handle: '.mec_field_sort'
1105    });
1106}
1107
1108function mec_hourly_schedule_remove(day, i, prefix)
1109{
1110    jQuery("#"+prefix+"mec_hourly_schedule_row"+day+'_'+i).remove();
1111}
1112
1113function mec_hourly_schedule_day_remove(day, prefix)
1114{
1115    jQuery("#"+prefix+"mec_meta_box_hourly_schedule_day_"+day).remove();
1116}
1117
1118function mec_ticket_remove(i)
1119{
1120    jQuery("#mec_ticket_row"+i).remove();
1121}
1122
1123function mec_set_event_color(color)
1124{
1125    try
1126    {
1127        jQuery("#mec_event_color").wpColorPicker('color', '#'+color);
1128    }
1129    catch(e)
1130    {
1131        jQuery("#mec_event_color").val(color);
1132    }
1133}
1134
1135function mec_remove_fee(key)
1136{
1137    jQuery("#mec_fee_row"+key).remove();
1138}
1139
1140function mec_remove_ticket_variation(key, id_prefix)
1141{
1142    jQuery("#mec_"+id_prefix+"_row"+key).remove();
1143}
1144
1145function add_variation_per_ticket(ticket_id)
1146{
1147    var $input = jQuery('#mec_new_variation_per_ticket_key');
1148
1149    var key = $input.val();
1150    var html = jQuery('#mec_new_variation_per_ticket_raw'+ticket_id).html().replace(/:v:/g, key);
1151
1152    jQuery('#mec_ticket_variations_list'+ticket_id).append(html);
1153    $input.val(parseInt(key)+1);
1154
1155    mec_init_sortable_sections();
1156}
1157
1158function mec_init_sortable_instance(selector, options)
1159{
1160    jQuery(selector).each(function()
1161    {
1162        var $element = jQuery(this);
1163
1164        if(!$element.length) return;
1165
1166        if(typeof $element.data('ui-sortable') === 'undefined')
1167        {
1168            $element.sortable(options);
1169        }
1170        else
1171        {
1172            $element.sortable('refresh');
1173        }
1174    });
1175}
1176
1177function mec_init_sortable_sections()
1178{
1179    if(typeof jQuery.fn.sortable === 'undefined') return;
1180
1181    mec_init_sortable_instance('#mec_tickets', { handle: '.mec_field_sort', items: '> .mec_ticket_row' });
1182    mec_init_sortable_instance('#mec_fees_list', { handle: '.mec_field_sort', items: '> .mec-box' });
1183    mec_init_sortable_instance('[id^="mec_ticket_variations_list"]', { handle: '.mec_field_sort', items: '> .mec_ticket_variation_row' });
1184    mec_init_sortable_instance('#mec_faq_list', { handle: '.mec_field_sort', items: '> .mec_faq_row' });
1185}
1186
1187function mec_reg_fields_option_listeners()
1188{
1189    jQuery('button.mec-reg-field-add-option').off('click').on('click', function()
1190    {
1191        var field_id = jQuery(this).data('field-id');
1192        var key = jQuery('#mec_new_reg_field_option_key_'+field_id).val();
1193        var html = jQuery('#mec_reg_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
1194
1195        jQuery('#mec_reg_fields_'+field_id+'_options_container').append(html);
1196        jQuery('#mec_new_reg_field_option_key_'+field_id).val(parseInt(key)+1);
1197    });
1198
1199    if(typeof jQuery.fn.sortable !== 'undefined')
1200    {
1201        jQuery("#mec_reg_form_fields").sortable(
1202        {
1203            handle: '.mec_reg_field_sort'
1204        });
1205
1206        jQuery(".mec_reg_fields_options_container").sortable(
1207        {
1208            handle: '.mec_reg_field_option_sort'
1209        });
1210
1211        jQuery(".mec-hourly-schedule-days").sortable(
1212        {
1213            handle: 'h4'
1214        });
1215
1216        jQuery(".mec-hourly-schedule-schedules").sortable({
1217            handle: '.mec_field_sort'
1218        });
1219    }
1220}
1221
1222function mec_reg_fields_option_remove(field_key, key)
1223{
1224    jQuery("#mec_reg_fields_option_"+field_key+"_"+key).remove();
1225}
1226
1227function mec_reg_fields_remove(key)
1228{
1229    jQuery("#mec_reg_fields_"+key).remove();
1230}
1231
1232function mec_handle_add_price_date_button(e)
1233{
1234    var key = jQuery(e).data('key');
1235    var p = jQuery('#mec_new_ticket_price_key_'+key).val();
1236    var html = jQuery('#mec_new_ticket_price_raw_'+key).html().replace(/:i:/g, key).replace(/:j:/g, p);
1237
1238    jQuery('#mec-ticket-price-dates-'+key).append(html);
1239    jQuery('#mec_new_ticket_price_key_'+key).val(parseInt(p)+1);
1240    jQuery('#mec-ticket-price-dates-'+key+' .new_added').datepicker(
1241    {
1242        changeYear: true,
1243        changeMonth: true,
1244        dateFormat: datepicker_format,
1245        gotoCurrent: true,
1246        yearRange: 'c-3:c+5',
1247    });
1248}
1249
1250function mec_ticket_price_remove(ticket_key, price_key)
1251{
1252    jQuery("#mec_ticket_price_raw_"+ticket_key+"_"+price_key).remove();
1253}
1254
1255function mec_event_fields_option_listeners()
1256{
1257    jQuery('button.mec-event-field-add-option').off('click').on('click', function()
1258    {
1259        var field_id = jQuery(this).data('field-id');
1260        var key = jQuery('#mec_new_event_field_option_key_'+field_id).val();
1261        var html = jQuery('#mec_event_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
1262
1263        jQuery('#mec_event_fields_'+field_id+'_options_container').append(html);
1264        jQuery('#mec_new_event_field_option_key_'+field_id).val(parseInt(key)+1);
1265    });
1266
1267    if(typeof jQuery.fn.sortable !== 'undefined')
1268    {
1269        jQuery("#mec_event_form_fields").sortable(
1270        {
1271            handle: '.mec_event_field_sort'
1272        });
1273
1274        jQuery(".mec_event_fields_options_container").sortable(
1275        {
1276            handle: '.mec_event_field_option_sort'
1277        });
1278    }
1279}
1280
1281function mec_event_fields_option_remove(field_key, key)
1282{
1283    jQuery("#mec_event_fields_option_"+field_key+"_"+key).remove();
1284}
1285
1286function mec_event_fields_remove(key)
1287{
1288    jQuery("#mec_event_fields_"+key).remove();
1289}
1290
1291function mec_bfixed_fields_option_listeners()
1292{
1293    jQuery('button.mec-bfixed-field-add-option').off('click').on('click', function()
1294    {
1295        var field_id = jQuery(this).data('field-id');
1296        var key = jQuery('#mec_new_bfixed_field_option_key_'+field_id).val();
1297        var html = jQuery('#mec_bfixed_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
1298
1299        jQuery('#mec_bfixed_fields_'+field_id+'_options_container').append(html);
1300        jQuery('#mec_new_bfixed_field_option_key_'+field_id).val(parseInt(key)+1);
1301    });
1302
1303    if(typeof jQuery.fn.sortable !== 'undefined')
1304    {
1305        jQuery("#mec_bfixed_form_fields").sortable(
1306        {
1307            handle: '.mec_bfixed_field_sort'
1308        });
1309
1310        jQuery(".mec_bfixed_fields_options_container").sortable(
1311        {
1312            handle: '.mec_bfixed_field_option_sort'
1313        });
1314    }
1315}
1316
1317function mec_bfixed_fields_option_remove(field_key, key)
1318{
1319    jQuery("#mec_bfixed_fields_option_"+field_key+"_"+key).remove();
1320}
1321
1322function mec_bfixed_fields_remove(key)
1323{
1324    jQuery("#mec_bfixed_fields_"+key).remove();
1325}
1326
1327function mec_additional_organizers_listeners()
1328{
1329    jQuery('#mec_additional_organizers_add').off('click').on('click', function()
1330    {
1331        var value = jQuery('.mec-additional-organizers select').val();
1332        console.log(value);
1333        if (!value) return;
1334
1335        var text = jQuery('.mec-additional-organizers select option:selected').text();
1336
1337        var sortLabel = jQuery(this).data('sort-label');
1338        var removeLabel = jQuery(this).data('remove-label');
1339
1340        jQuery('.mec-additional-organizers-list').append('<li><span class="mec-additional-organizer-sort">'+sortLabel+'</span> <span onclick="mec_additional_organizers_remove(this);" class="mec-additional-organizer-remove">'+removeLabel+'</span><input type="hidden" name="mec[additional_organizer_ids][]" value="'+value+'"><span class="mec_orgz_item_name">'+text+'</span></li>');
1341
1342        mec_additional_organizers_listeners();
1343    });
1344
1345    if(typeof jQuery.fn.sortable !== 'undefined')
1346    {
1347        jQuery(".mec-additional-organizers-list").sortable(
1348        {
1349            handle: '.mec-additional-organizer-sort'
1350        });
1351    }
1352}
1353
1354function mec_additional_organizers_remove(element)
1355{
1356    jQuery(element).parent().remove();
1357}
1358
1359function mec_faq_remove(key)
1360{
1361    jQuery("#mec_faq_row"+key).remove();
1362}
1363
1364jQuery(document).on('focus', '.mec_date_picker', function ()
1365{
1366    if (!jQuery(this).hasClass('hasDatepicker'))
1367    {
1368        jQuery(this).datepicker({
1369            changeYear: true,
1370            changeMonth: true,
1371            dateFormat: 'yy-mm-dd',
1372            gotoCurrent: true,
1373            yearRange: 'c-3:c+5',
1374        });
1375    }
1376});

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.