PageSourceSearch

https://visitstratford.ca/wp-content/plugins/modern-events-calendar/assets/js/events.js?ver=7.15.0

js visitstratford.ca collected 2026-09-24 09:59:14 UTC 35,363 bytes, 1,078 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    var date_splite;
182    if(typeof mec_admin_localize !== 'undefined')
183    {
184        date_splite = mec_admin_localize.datepicker_format.split('&');
185        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
186    }
187    else if(typeof mecdata !== 'undefined')
188    {
189        date_splite = mecdata.datepicker_format.split( '&' );
190        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
191    }
192
193    $('[id^="mec-book-form-btn-step"]').on('click',function()
194    {
195        setTimeout(function()
196        {
197            if($.fn.datepicker)
198            {
199                if('date' !== $('.mec-date-picker').prop('type'))
200                {
201                    $('.mec-date-picker').datepicker(
202                    {
203                        changeYear: true,
204                        changeMonth: true,
205                        dateFormat: datepicker_format,
206                        gotoCurrent: true,
207                        yearRange: 'c-3:c+5',
208                    });
209                }
210
211            }
212        }, 1000);
213    });
214
215    if($.fn.datepicker)
216    {
217        $('.mec-date-picker').datepicker(
218        {
219            changeYear: true,
220            changeMonth: true,
221            dateFormat: datepicker_format,
222            gotoCurrent: true,
223            yearRange: 'c-3:c+5',
224        });
225
226        $('#mec_start_date').datepicker(
227        {
228            changeYear: true,
229            changeMonth: true,
230            dateFormat: datepicker_format,
231            gotoCurrent: true,
232            yearRange: 'c-3:c+5',
233            onSelect: function(value, i)
234            {
235                const end = $("#mec_end_date");
236                if(value !== i.lastVal)
237                {
238                    end.datepicker("option", "minDate", value);
239                }
240
241                if(end.val() === '')
242                {
243                    end.val(value);
244                }
245            }
246        });
247
248        $('#mec_end_date').datepicker(
249        {
250            changeYear: true,
251            changeMonth: true,
252            dateFormat: datepicker_format,
253            gotoCurrent: true,
254            yearRange: 'c-3:c+5',
255            onSelect: function(value, i)
256            {
257                const start = $("#mec_start_date");
258                if(value !== i.lastVal)
259                {
260                    start.datepicker("option", "maxDate", value);
261                }
262
263                if(start.val() === '')
264                {
265                    start.val(value);
266                }
267            }
268        });
269
270        $('#mec_date_repeat_end_at_date').datepicker(
271        {
272            changeYear: true,
273            changeMonth: true,
274            dateFormat: datepicker_format,
275            gotoCurrent: true,
276            yearRange: 'c-3:c+5',
277        });
278
279        $('.mec_date_picker_dynamic_format').datepicker(
280        {
281            changeYear: true,
282            changeMonth: true,
283            dateFormat: datepicker_format,
284            gotoCurrent: true,
285            yearRange: 'c-3:c+5',
286        });
287
288        $('.mec_date_picker').datepicker(
289        {
290            changeYear: true,
291            changeMonth: true,
292            dateFormat: 'yy-mm-dd',
293            gotoCurrent: true,
294            yearRange: 'c-3:c+5',
295        });
296
297        $('.mec_date_picker_dynamic_format_start').datepicker(
298        {
299            changeYear: true,
300            changeMonth: true,
301            dateFormat: datepicker_format,
302            gotoCurrent: true,
303            yearRange: 'c-1:c+5',
304            onSelect: function(date)
305            {
306                var selectedDate = new Date(date);
307                var endDate = new Date(selectedDate.getTime());
308
309                var $end_picker = $(this).next();
310                $end_picker.datepicker("option", "minDate", endDate);
311                $end_picker.datepicker("option", "maxDate", '+5y');
312            }
313        });
314
315        $('.mec_date_picker_dynamic_format_end').datepicker(
316        {
317            changeYear: true,
318            changeMonth: true,
319            dateFormat: datepicker_format,
320            gotoCurrent: true,
321            yearRange: 'c-1:c+5',
322        });
323
324        trigger_period_picker();
325    }
326
327    // Initialize WP Color Picker
328    if($.fn.wpColorPicker) jQuery('.mec-color-picker').wpColorPicker();
329
330    $('#mec_location_id').on('change', function()
331    {
332        mec_location_toggle();
333    });
334
335    $('#mec_organizer_id').on('change', function()
336    {
337        mec_organizer_toggle();
338        var mec_organizer_val = parseInt($(this).val());
339        var mec_additional_organizer = $(this).parent().parent().find('#mec-additional-organizer-wrap');
340
341        if(mec_organizer_val != 1) mec_additional_organizer.show();
342        else mec_additional_organizer.hide();
343    });
344
345    mec_location_toggle();
346    mec_organizer_toggle();
347
348    $('#mec_repeat').on('change', function()
349    {
350        mec_repeat_toggle();
351    });
352
353    mec_repeat_toggle();
354
355    $('#mec_repeat_type').on('change', function()
356    {
357        mec_repeat_type_toggle();
358    });
359
360    mec_repeat_type_toggle();
361
362    $('#mec_bookings_limit_unlimited').on('change', function()
363    {
364        mec_bookings_unlimited_toggle();
365    });
366
367    $('#mec_add_in_days').on('click', function()
368    {
369        var allday = $(this).data('allday');
370
371        var start = $('#mec_exceptions_in_days_start_date').val();
372        if(start === '') return false;
373
374        var end = $('#mec_exceptions_in_days_end_date').val();
375        if(end === '') return false;
376
377        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
378        if(start_hour.length === 1) start_hour = '0'+start_hour;
379
380        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
381        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
382
383        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
384        if(typeof start_ampm === 'undefined') start_ampm = '';
385
386        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
387        if(end_hour.length === 1) end_hour = '0'+end_hour;
388
389        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
390        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
391
392        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
393        if(typeof end_ampm === 'undefined') end_ampm = '';
394
395        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
396        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>';
397
398        // Don't add exactly same occurrences
399        if($('#mec_in_days input[value="'+value+'"]').length > 0) return false;
400
401        var $key = $('#mec_new_in_days_key');
402
403        var key = $key.val();
404        var html = $('#mec_new_in_days_raw').html().replace(/:i:/g, key).replace(/:val:/g, value).replace(/:label:/g, label);
405
406        $('#mec_in_days').append(html);
407        $key.val(parseInt(key)+1);
408    });
409
410    $('#mec_edit_in_days').on('click', function()
411    {
412        // Form
413        const $form = $('#mec-in-days-form');
414
415        const modify_id = $form.data('modify');
416        const $row = $('#mec_in_days_row'+modify_id);
417
418        var allday = $(this).data('allday');
419
420        var start = $('#mec_exceptions_in_days_start_date').val();
421        if(start === '') return false;
422
423        var end = $('#mec_exceptions_in_days_end_date').val();
424        if(end === '') return false;
425
426        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
427        if(start_hour.length === 1) start_hour = '0'+start_hour;
428
429        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
430        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
431
432        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
433        if(typeof start_ampm === 'undefined') start_ampm = '';
434
435        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
436        if(end_hour.length === 1) end_hour = '0'+end_hour;
437
438        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
439        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
440
441        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
442        if(typeof end_ampm === 'undefined') end_ampm = '';
443
444        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
445        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>';
446
447        $row.find($('input[type=hidden]')).val(value);
448        $row.find($('.mec-in-days-day')).html(label);
449
450        // Reset Dates
451        $form.parent().find($('input[type=text]')).val('');
452
453        // Modification Mode
454        $form.removeClass('mec-in-days-edit-mode').addClass('mec-in-days-add-mode').removeData('modify');
455    });
456
457    $('#mec_cancel_in_days').on('click', function()
458    {
459        // Form
460        let $form = $('#mec-in-days-form');
461
462        // Reset Dates
463        $form.parent().find($('input[type=text]')).val('');
464
465        // Modification Mode
466        $form.removeClass('mec-in-days-edit-mode').addClass('mec-in-days-add-mode').removeData('modify');
467    });
468
469    $('#mec_add_not_in_days').on('click', function()
470    {
471        let date = $('#mec_exceptions_not_in_days_date').val();
472        if(date === '') return false;
473
474        let d = date.replaceAll('-', '');
475        d = d.replaceAll('/', '');
476        d = d.replaceAll('.', '');
477
478
479        let $wrapper = $('#mec_not_in_days');
480        let $key = $('#mec_new_not_in_days_key');
481
482        let c = 'mec-date-'+d;
483        if($wrapper.find($('.'+c)).length) return;
484
485        let key = $key.val();
486        let html = $('#mec_new_not_in_days_raw').html().replace(/:i:/g, key).replace(/:d:/g, d).replace(/:val:/g, date);
487
488        $wrapper.append(html);
489        $key.val(parseInt(key)+1);
490    });
491
492    $('#mec_add_ticket_button').on('click', function()
493    {
494        let $key = $('#mec_new_ticket_key');
495        let key = $key.val();
496        let html = $('#mec_new_ticket_raw').html().replace(/:i:/g, key);
497
498        $('#mec_tickets').append(html);
499        $key.val(parseInt(key)+1);
500
501        $('.mec_add_price_date_button').off('click').on('click', function()
502        {
503            mec_handle_add_price_date_button(this);
504        });
505
506        $.each($(".mec-select2"), function(i,v)
507        {
508            if($(v).attr('name').search(":i:") > 0)
509            {
510                return;
511            }
512
513            if(typeof $(v).data('select2-id') == 'undefined')
514            {
515                $(v).select2();
516            }
517        });
518
519        trigger_period_picker();
520    });
521
522    $('.mec_add_price_date_button').off('click').on('click', function()
523    {
524        mec_handle_add_price_date_button(this);
525    });
526
527    mec_hourly_schedule_add_day_listener();
528
529    $('#mec_add_fee_button').on('click', function()
530    {
531        var key = $('#mec_new_fee_key').val();
532        var html = $('#mec_new_fee_raw').html().replace(/:i:/g, key);
533
534        $('#mec_fees_list').append(html);
535        $('#mec_new_fee_key').val(parseInt(key)+1);
536    });
537
538    $('#mec_add_ticket_variation_button').on('click', function()
539    {
540        var key = $('#mec_new_ticket_variation_key').val();
541        var html = $('#mec_new_ticket_variation_raw').html().replace(/:i:/g, key);
542
543        $('#mec_ticket_variations_list').append(html);
544        $('#mec_new_ticket_variation_key').val(parseInt(key)+1);
545    });
546
547    $('.mec-form-row.mec-available-color-row span').on('click', function()
548    {
549        $('.mec-form-row.mec-available-color-row span').removeClass('color-selected');
550        $(this).addClass('color-selected');
551    });
552
553    $('#mec_reg_form_field_types button').on('click', function()
554    {
555        var type = $(this).data('type');
556
557        if (type == 'mec_email') {
558            if ($('#mec_reg_form_fields').find('input[value="mec_email"][type="hidden"]').length) {
559                return false;
560            }
561        }
562
563        if (type == 'name') {
564            if ($('#mec_reg_form_fields').find('input[value="name"][type="hidden"]').length) {
565                return false;
566            }
567        }
568
569        var key  = $('#mec_new_reg_field_key').val();
570        var html = $('#mec_reg_field_'+type).html().replace(/:i:/g, key);
571
572        $('#mec_reg_form_fields').append(html);
573        $('#mec_new_reg_field_key').val(parseInt(key)+1);
574
575        // Set onclick listener for add option fields
576        mec_reg_fields_option_listeners();
577    });
578
579    // Set onclick listener for add option fields
580    mec_reg_fields_option_listeners();
581
582    // Advanced Repeating
583    $('#mec-advanced-wraper ul > ul > li').click(function()
584    {
585        if($(this).attr('class') == '') $(this).attr('class', 'mec-active');
586        else $(this).attr('class', '');
587
588        $('#mec_date_repeat_advanced').val($('#mec-advanced-wraper div:first-child > ul').find('.mec-active').find('span').text().slice(0, -1));
589    });
590
591    $('#mec_event_form_field_types button').on('click', function()
592    {
593        var type = $(this).data('type');
594
595        var key  = $('#mec_new_event_field_key').val();
596        var html = $('#mec_event_field_'+type).html().replace(/:i:/g, key);
597
598        $('#mec_event_form_fields').append(html);
599        $('#mec_new_event_field_key').val(parseInt(key)+1);
600
601        // Set onclick listener for add option fields
602        mec_event_fields_option_listeners();
603    });
604
605    // Set onclick listener for add option fields
606    mec_event_fields_option_listeners();
607
608    $('#mec_bfixed_form_field_types button').on('click', function()
609    {
610        var type = $(this).data('type');
611
612        var key  = $('#mec_new_bfixed_field_key').val();
613        var html = $('#mec_bfixed_field_'+type).html().replace(/:i:/g, key);
614
615        $('#mec_bfixed_form_fields').append(html);
616        $('#mec_new_bfixed_field_key').val(parseInt(key)+1);
617
618        // Set onclick listener for add option fields
619        mec_bfixed_fields_option_listeners();
620    });
621
622    // Set onclick listener for add option fields
623    mec_bfixed_fields_option_listeners();
624
625    // Additional Organizers
626    mec_additional_organizers_listeners();
627
628    // Show / Hide Password
629    $('.mec-show-hide-password').on('click', function()
630    {
631        var $input = $(this).siblings("input");
632        var current = $input.attr('type');
633
634        if(current === 'password') $input.attr('type', 'text');
635        else $input.attr('type', 'password');
636    });
637
638    // FAQ
639    $('#mec_add_faq_button').on('click', function()
640    {
641        var key = $('#mec_new_faq_key').val();
642        var html = $('#mec_new_faq_raw').html().replace(/:i:/g, key);
643
644        $('#mec_faq_list').append(html);
645        $('#mec_new_faq_key').val(parseInt(key)+1);
646    });
647});
648
649function trigger_period_picker()
650{
651    jQuery('.mec-date-picker-start').datepicker(
652    {
653        changeYear: true,
654        changeMonth: true,
655        dateFormat: 'yy-mm-dd',
656        gotoCurrent: true,
657        yearRange: 'c-1:c+5',
658        onSelect: function(date)
659        {
660            const selectedDate = new Date(date);
661            const endDate = new Date(selectedDate.getTime());
662
663            const $end_picker = jQuery(this).next();
664            $end_picker.datepicker("option", "minDate", endDate);
665            $end_picker.datepicker("option", "maxDate", '+5y');
666        }
667    });
668
669    jQuery('.mec-date-picker-end').datepicker(
670    {
671        changeYear: true,
672        changeMonth: true,
673        dateFormat: 'yy-mm-dd',
674        gotoCurrent: true,
675        yearRange: 'c-1:c+5',
676    });
677}
678
679function mec_location_toggle()
680{
681    if(jQuery('#mec_location_id').val() != '0') jQuery('#mec_location_new_container').hide();
682    else jQuery('#mec_location_new_container').show();
683}
684
685function mec_organizer_toggle()
686{
687    if(jQuery('#mec_organizer_id').val() != '0') jQuery('#mec_organizer_new_container').hide();
688    else jQuery('#mec_organizer_new_container').show();
689}
690
691function mec_repeat_toggle()
692{
693    if(jQuery('#mec_repeat').is(':checked')) jQuery('.mec-form-repeating-event-row').show();
694    else jQuery('.mec-form-repeating-event-row').hide();
695}
696
697function mec_repeat_type_toggle()
698{
699    var repeat_type = jQuery('#mec_repeat_type').val();
700
701    if(repeat_type == 'certain_weekdays')
702    {
703        jQuery('#mec_repeat_interval_container').hide();
704        jQuery('#mec_repeat_certain_weekdays_container').show();
705        jQuery('#mec_exceptions_in_days_container').hide();
706        jQuery('#mec_end_wrapper').show();
707        jQuery('#mec-advanced-wraper').hide();
708    }
709    else if(repeat_type == 'custom_days')
710    {
711        jQuery('#mec_repeat_interval_container').hide();
712        jQuery('#mec_repeat_certain_weekdays_container').hide();
713        jQuery('#mec_exceptions_in_days_container').show();
714        jQuery('#mec_end_wrapper').hide();
715        jQuery('#mec-advanced-wraper').hide();
716    }
717    else if(repeat_type == 'advanced')
718    {
719        jQuery('#mec_repeat_interval_container').hide();
720        jQuery('#mec_repeat_certain_weekdays_container').hide();
721        jQuery('#mec_exceptions_in_days_container').hide();
722        jQuery('#mec_end_wrapper').show();
723        jQuery('#mec-advanced-wraper').show();
724    }
725    else if(repeat_type != 'daily' && repeat_type != 'weekly' && repeat_type != 'monthly')
726    {
727        jQuery('#mec_repeat_interval_container').hide();
728        jQuery('#mec_repeat_certain_weekdays_container').hide();
729        jQuery('#mec_exceptions_in_days_container').hide();
730        jQuery('#mec_end_wrapper').show();
731        jQuery('#mec-advanced-wraper').hide();
732    }
733    else
734    {
735        jQuery('#mec_repeat_interval_container').show();
736        jQuery('#mec_repeat_certain_weekdays_container').hide();
737        jQuery('#mec_exceptions_in_days_container').hide();
738        jQuery('#mec_end_wrapper').show();
739        jQuery('#mec-advanced-wraper').hide();
740    }
741}
742
743function mec_in_days_remove(i)
744{
745    jQuery('#mec_in_days_row'+i).remove();
746}
747
748function mec_in_days_edit(i)
749{
750    // Date
751    let $row = jQuery('#mec_in_days_row'+i);
752    let value = $row.find(jQuery('input[type=hidden]')).val();
753
754    const values = value.split(':');
755    const start_times = values[2].split('-')
756    const end_times = values[3].split('-')
757
758    // Form
759    let $form = jQuery('#mec-in-days-form');
760
761    // Set Dates
762    jQuery('#mec_exceptions_in_days_start_date').val(values[0]);
763    jQuery('#mec_exceptions_in_days_end_date').val(values[1]);
764
765    // Set Times
766    jQuery('#mec_exceptions_in_days_start_hour').val(parseInt(start_times[0]));
767    jQuery('#mec_exceptions_in_days_start_minutes').val(parseInt(start_times[1]));
768    jQuery('#mec_exceptions_in_days_start_ampm').val(start_times[2]);
769
770    jQuery('#mec_exceptions_in_days_end_hour').val(parseInt(end_times[0]));
771    jQuery('#mec_exceptions_in_days_end_minutes').val(parseInt(end_times[1]));
772    jQuery('#mec_exceptions_in_days_end_ampm').val(end_times[2]);
773
774    // Modification Mode
775    $form.removeClass('mec-in-days-add-mode').addClass('mec-in-days-edit-mode').data('modify', i);
776}
777
778function mec_not_in_days_remove(i)
779{
780    jQuery('#mec_not_in_days_row'+i).remove();
781}
782
783function mec_bookings_unlimited_toggle()
784{
785    jQuery('#mec_bookings_limit').toggleClass('mec-util-hidden');
786}
787
788function mec_hourly_schedule_add_day_listener()
789{
790    jQuery('.mec-add-hourly-schedule-day-button').each(function()
791    {
792        jQuery(this).off('click').on('click', function()
793        {
794            var k = jQuery(this).data('key');
795            var raw = jQuery(this).data('raw');
796            var append = jQuery(this).data('append');
797
798            var key = jQuery(k).val();
799            var html = jQuery(raw).html().replace(/:d:/g, key).replace(/:dd:/g, parseInt(key)+1);
800
801            jQuery(append).append(html);
802            jQuery(k).val(parseInt(key)+1);
803
804            mec_hourly_schedule_listeners();
805        });
806
807        mec_hourly_schedule_listeners();
808    });
809}
810
811function mec_bookings_after_occurrence_cancel_listener()
812{
813    jQuery('.mec-occurrences-bookings-after-occurrences-cancel').off('change').on('change', function()
814    {
815        const $dropdown = jQuery(this);
816        const value = $dropdown.val();
817        const $moveWrapper = $dropdown.next();
818
819        if(value === 'move' || value === 'move_notify')
820        {
821            $moveWrapper.removeClass('w-hidden');
822        }
823        else
824        {
825            $moveWrapper.addClass('w-hidden');
826        }
827    });
828}
829
830function mec_hourly_schedule_listeners()
831{
832    jQuery('.mec-add-hourly-schedule-button').off('click').on('click', function()
833    {
834        var prefix = jQuery(this).data('prefix');
835        var day = jQuery(this).data('day');
836        var $key = jQuery('#'+prefix+'mec_new_hourly_schedule_key'+day);
837
838        var key = $key.val();
839        var html = jQuery('#'+prefix+'mec_new_hourly_schedule_raw'+day).html().replace(/:i:/g, key).replace(/:d:/g, day).replace();
840        var g_field_id = prefix+"-hourly_schedules-"+day+"-schedules-:i:-description";
841        var field_id = prefix+"-hourly_schedules-"+day+"-schedules-"+key+"-description";
842        html = html.replace(g_field_id,field_id);
843        html = html.replace(':k:',key);
844        jQuery('#'+prefix+'mec_hourly_schedules'+day).append(html);
845        $key.val(parseInt(key)+1);
846
847        wp.editor.initialize("mec"+field_id,{
848            tinymce: {
849                wpautop: true,
850                plugins : 'charmap colorpicker compat3x directionality fullscreen hr image lists media paste tabfocus textcolor wordpress wpautoresize wpdialogs wpeditimage wpemoji wpgallery wplink wptextpattern wpview',
851                toolbar1: 'bold italic underline strikethrough | bullist numlist | blockquote hr wp_more | alignleft aligncenter alignright | link unlink | fullscreen | wp_adv',
852                toolbar2: 'formatselect alignjustify forecolor | pastetext removeformat charmap | outdent indent | undo redo | wp_help'
853            },
854            quicktags: true,
855            mediaButtons: false,
856          });
857    });
858}
859
860function mec_hourly_schedule_remove(day, i, prefix)
861{
862    jQuery("#"+prefix+"mec_hourly_schedule_row"+day+'_'+i).remove();
863}
864
865function mec_hourly_schedule_day_remove(day, prefix)
866{
867    jQuery("#"+prefix+"mec_meta_box_hourly_schedule_day_"+day).remove();
868}
869
870function mec_ticket_remove(i)
871{
872    jQuery("#mec_ticket_row"+i).remove();
873}
874
875function mec_set_event_color(color)
876{
877    try
878    {
879        jQuery("#mec_event_color").wpColorPicker('color', '#'+color);
880    }
881    catch(e)
882    {
883        jQuery("#mec_event_color").val(color);
884    }
885}
886
887function mec_remove_fee(key)
888{
889    jQuery("#mec_fee_row"+key).remove();
890}
891
892function mec_remove_ticket_variation(key, id_prefix)
893{
894    jQuery("#mec_"+id_prefix+"_row"+key).remove();
895}
896
897function add_variation_per_ticket(ticket_id)
898{
899    var $input = jQuery('#mec_new_variation_per_ticket_key');
900
901    var key = $input.val();
902    var html = jQuery('#mec_new_variation_per_ticket_raw'+ticket_id).html().replace(/:v:/g, key);
903
904    jQuery('#mec_ticket_variations_list'+ticket_id).append(html);
905    $input.val(parseInt(key)+1);
906}
907
908function mec_reg_fields_option_listeners()
909{
910    jQuery('button.mec-reg-field-add-option').off('click').on('click', function()
911    {
912        var field_id = jQuery(this).data('field-id');
913        var key = jQuery('#mec_new_reg_field_option_key_'+field_id).val();
914        var html = jQuery('#mec_reg_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
915
916        jQuery('#mec_reg_fields_'+field_id+'_options_container').append(html);
917        jQuery('#mec_new_reg_field_option_key_'+field_id).val(parseInt(key)+1);
918    });
919
920    if(typeof jQuery.fn.sortable !== 'undefined')
921    {
922        jQuery("#mec_reg_form_fields").sortable(
923        {
924            handle: '.mec_reg_field_sort'
925        });
926
927        jQuery(".mec_reg_fields_options_container").sortable(
928        {
929            handle: '.mec_reg_field_option_sort'
930        });
931
932        jQuery(".mec-hourly-schedule-days").sortable(
933        {
934            handle: 'h4'
935        });
936
937        jQuery(".mec-hourly-schedule-schedules").sortable({});
938    }
939}
940
941function mec_reg_fields_option_remove(field_key, key)
942{
943    jQuery("#mec_reg_fields_option_"+field_key+"_"+key).remove();
944}
945
946function mec_reg_fields_remove(key)
947{
948    jQuery("#mec_reg_fields_"+key).remove();
949}
950
951function mec_handle_add_price_date_button(e)
952{
953    var key = jQuery(e).data('key');
954    var p = jQuery('#mec_new_ticket_price_key_'+key).val();
955    var html = jQuery('#mec_new_ticket_price_raw_'+key).html().replace(/:i:/g, key).replace(/:j:/g, p);
956
957    jQuery('#mec-ticket-price-dates-'+key).append(html);
958    jQuery('#mec_new_ticket_price_key_'+key).val(parseInt(p)+1);
959    jQuery('#mec-ticket-price-dates-'+key+' .new_added').datepicker(
960    {
961        changeYear: true,
962        changeMonth: true,
963        dateFormat: datepicker_format,
964        gotoCurrent: true,
965        yearRange: 'c-3:c+5',
966    });
967}
968
969function mec_ticket_price_remove(ticket_key, price_key)
970{
971    jQuery("#mec_ticket_price_raw_"+ticket_key+"_"+price_key).remove();
972}
973
974function mec_event_fields_option_listeners()
975{
976    jQuery('button.mec-event-field-add-option').off('click').on('click', function()
977    {
978        var field_id = jQuery(this).data('field-id');
979        var key = jQuery('#mec_new_event_field_option_key_'+field_id).val();
980        var html = jQuery('#mec_event_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
981
982        jQuery('#mec_event_fields_'+field_id+'_options_container').append(html);
983        jQuery('#mec_new_event_field_option_key_'+field_id).val(parseInt(key)+1);
984    });
985
986    if(typeof jQuery.fn.sortable !== 'undefined')
987    {
988        jQuery("#mec_event_form_fields").sortable(
989        {
990            handle: '.mec_event_field_sort'
991        });
992
993        jQuery(".mec_event_fields_options_container").sortable(
994        {
995            handle: '.mec_event_field_option_sort'
996        });
997    }
998}
999
1000function mec_event_fields_option_remove(field_key, key)
1001{
1002    jQuery("#mec_event_fields_option_"+field_key+"_"+key).remove();
1003}
1004
1005function mec_event_fields_remove(key)
1006{
1007    jQuery("#mec_event_fields_"+key).remove();
1008}
1009
1010function mec_bfixed_fields_option_listeners()
1011{
1012    jQuery('button.mec-bfixed-field-add-option').off('click').on('click', function()
1013    {
1014        var field_id = jQuery(this).data('field-id');
1015        var key = jQuery('#mec_new_bfixed_field_option_key_'+field_id).val();
1016        var html = jQuery('#mec_bfixed_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
1017
1018        jQuery('#mec_bfixed_fields_'+field_id+'_options_container').append(html);
1019        jQuery('#mec_new_bfixed_field_option_key_'+field_id).val(parseInt(key)+1);
1020    });
1021
1022    if(typeof jQuery.fn.sortable !== 'undefined')
1023    {
1024        jQuery("#mec_bfixed_form_fields").sortable(
1025        {
1026            handle: '.mec_bfixed_field_sort'
1027        });
1028
1029        jQuery(".mec_bfixed_fields_options_container").sortable(
1030        {
1031            handle: '.mec_bfixed_field_option_sort'
1032        });
1033    }
1034}
1035
1036function mec_bfixed_fields_option_remove(field_key, key)
1037{
1038    jQuery("#mec_bfixed_fields_option_"+field_key+"_"+key).remove();
1039}
1040
1041function mec_bfixed_fields_remove(key)
1042{
1043    jQuery("#mec_bfixed_fields_"+key).remove();
1044}
1045
1046function mec_additional_organizers_listeners()
1047{
1048    jQuery('#mec_additional_organizers_add').off('click').on('click', function()
1049    {
1050        var value = jQuery('.mec-additional-organizers select').val();
1051        var text = jQuery('.mec-additional-organizers select option:selected').text();
1052
1053        var sortLabel = jQuery(this).data('sort-label');
1054        var removeLabel = jQuery(this).data('remove-label');
1055
1056        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>');
1057
1058        mec_additional_organizers_listeners();
1059    });
1060
1061    if(typeof jQuery.fn.sortable !== 'undefined')
1062    {
1063        jQuery(".mec-additional-organizers-list").sortable(
1064        {
1065            handle: '.mec-additional-organizer-sort'
1066        });
1067    }
1068}
1069
1070function mec_additional_organizers_remove(element)
1071{
1072    jQuery(element).parent().remove();
1073}
1074
1075function mec_faq_remove(key)
1076{
1077    jQuery("#mec_faq_row"+key).remove();
1078}

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.