PageSourceSearch

https://urbanmatter.com/austin/wp-content/plugins/modern-events-calendar-lite/assets/js/events.js?ver=5.17.2

js urbanmatter.com collected 2026-09-24 06:57:33 UTC 24,956 bytes, 771 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 frame;
12        if(frame)
13        {
14            frame.open();
15            return;
16        }
17
18        frame = wp.media();
19        frame.on('select', function()
20        {
21            // Grab the selected attachment.
22            var attachment = frame.state().get('selection').first();
23
24            $('#mec_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
25            $('#mec_thumbnail').val(attachment.attributes.url);
26            
27            $('.mec_remove_image_button').toggleClass('mec-util-hidden');
28            
29            frame.close();
30        });
31        
32        frame.open();
33    });
34    
35    // Image remover on terms menu
36    $('.mec_remove_image_button').click(function(event)
37    {
38        event.preventDefault();
39        
40        $('#mec_thumbnail_img').html('');
41        $('#mec_thumbnail').val('');
42        
43        $('.mec_remove_image_button').toggleClass('mec-util-hidden');
44    });
45    
46    // Image picker on add event menu for location
47    $('.mec_location_upload_image_button').click(function(event)
48    {
49        event.preventDefault();
50        
51        var frame;
52        if(frame)
53        {
54            frame.open();
55            return;
56        }
57
58        frame = wp.media();
59        frame.on('select', function()
60        {
61            // Grab the selected attachment.
62            var attachment = frame.state().get('selection').first();
63
64            $('#mec_location_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
65            $('#mec_location_thumbnail').val(attachment.attributes.url);
66            
67            $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
68            
69            frame.close();
70        });
71        
72        frame.open();
73    });
74    
75    // Image remover on add event menu for location
76    $('.mec_location_remove_image_button').click(function(event)
77    {
78        event.preventDefault();
79        
80        $('#mec_location_thumbnail_img').html('');
81        $('#mec_location_thumbnail').val('');
82        
83        $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
84    });
85    
86    // Image picker on add event menu for organizer
87    $('.mec_organizer_upload_image_button').click(function(event)
88    {
89        event.preventDefault();
90        
91        var frame;
92        if(frame)
93        {
94            frame.open();
95            return;
96        }
97
98        frame = wp.media();
99        frame.on('select', function()
100        {
101            // Grab the selected attachment.
102            var attachment = frame.state().get('selection').first();
103
104            $('#mec_organizer_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
105            $('#mec_organizer_thumbnail').val(attachment.attributes.url);
106            
107            $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
108            
109            frame.close();
110        });
111        
112        frame.open();
113    });
114    
115    // Image remover on add event menu for organizer
116    $('.mec_organizer_remove_image_button').click(function(event)
117    {
118        event.preventDefault();
119        
120        $('#mec_organizer_thumbnail_img').html('');
121        $('#mec_organizer_thumbnail').val('');
122        
123        $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
124    });
125    
126    // Image remover on frontend event submission menu
127    $('#mec_fes_remove_image_button').click(function(event)
128    {
129        event.preventDefault();
130        
131        $('#mec_fes_thumbnail_img').html('');
132        $('#mec_fes_thumbnail').val('');
133        $('#mec_featured_image_file').val('');
134        
135        $('#mec_fes_remove_image_button').addClass('mec-util-hidden');
136    });
137    
138    // Location Image remover on frontend event submission menu
139    $('#mec_fes_location_remove_image_button').click(function(event)
140    {
141        event.preventDefault();
142        
143        $('#mec_fes_location_thumbnail_img').html('');
144        $('#mec_fes_location_thumbnail').val('');
145        $('#mec_fes_location_thumbnail_file').val('');
146        
147        $('#mec_fes_location_remove_image_button').addClass('mec-util-hidden');
148    });
149    
150    // Organizer Image remover on frontend event submission menu
151    $('#mec_fes_organizer_remove_image_button').click(function(event)
152    {
153        event.preventDefault();
154        
155        $('#mec_fes_organizer_thumbnail_img').html('');
156        $('#mec_fes_organizer_thumbnail').val('');
157        $('#mec_fes_organizer_thumbnail_file').val('');
158        
159        $('#mec_fes_organizer_remove_image_button').addClass('mec-util-hidden');
160    });
161    
162    if ( typeof mec_admin_localize !== 'undefined' ) {
163        var date_splite = mec_admin_localize.datepicker_format.split( '&' );
164        
165        if ( date_splite[0] !== undefined && date_splite.length == 2 ) {
166            datepicker_format = date_splite[0];
167        }
168    } else if ( typeof mecdata !== 'undefined' ) {
169        var date_splite = mecdata.datepicker_format.split( '&' );
170        
171        if ( date_splite[0] !== undefined && date_splite.length == 2 ) {
172            datepicker_format = date_splite[0];
173        }
174    }
175
176    $('[id^="mec-book-form-btn-step"]').on('click',function(){
177        setTimeout(function(){
178            if ($.fn.datepicker) {
179                if('date' !== $('.mec-date-picker').prop('type')){
180                    $('.mec-date-picker').datepicker(
181                    {
182                        changeYear: true,
183                        changeMonth: true,
184                        dateFormat: datepicker_format,
185                        gotoCurrent: true,
186                        yearRange: 'c-3:c+5',
187                    });
188                }
189                
190            }
191        }, 1000);
192                   
193    });
194    
195    if ($.fn.datepicker) {
196        $('.mec-date-picker').datepicker(
197        {
198            changeYear: true,
199            changeMonth: true,
200            dateFormat: datepicker_format,
201            gotoCurrent: true,
202            yearRange: 'c-3:c+5',
203        });
204
205        $('#mec_start_date').datepicker(
206        {
207            changeYear: true,
208            changeMonth: true,
209            dateFormat: datepicker_format,
210            gotoCurrent: true,
211            yearRange: 'c-3:c+5',
212        });
213        
214        $('#mec_end_date').datepicker(
215        {
216            changeYear: true,
217            changeMonth: true,
218            dateFormat: datepicker_format,
219            gotoCurrent: true,
220            yearRange: 'c-3:c+5',
221        });
222        
223        $('#mec_date_repeat_end_at_date').datepicker(
224        {
225            changeYear: true,
226            changeMonth: true,
227            dateFormat: datepicker_format,
228            gotoCurrent: true,
229            yearRange: 'c-3:c+5',
230        });
231        
232        $('.mec_date_picker_dynamic_format').datepicker(
233        {
234            changeYear: true,
235            changeMonth: true,
236            dateFormat: datepicker_format,
237            gotoCurrent: true,
238            yearRange: 'c-3:c+5',
239        });
240
241        $('.mec_date_picker').datepicker(
242        {
243            changeYear: true,
244            changeMonth: true,
245            dateFormat: 'yy-mm-dd',
246            gotoCurrent: true,
247            yearRange: 'c-3:c+5',
248        });
249
250        $('.mec_date_picker_dynamic_format_start').datepicker(
251        {
252            changeYear: true,
253            changeMonth: true,
254            dateFormat: datepicker_format,
255            gotoCurrent: true,
256            yearRange: 'c-1:c+5',
257            onSelect: function(date)
258            {
259                var selectedDate = new Date(date);
260                var endDate = new Date(selectedDate.getTime() + 86400000);
261
262                var $end_picker = $(this).next();
263                $end_picker.datepicker("option", "minDate", endDate);
264                $end_picker.datepicker("option", "maxDate", '+5y');
265            }
266        });
267
268        $('.mec_date_picker_dynamic_format_end').datepicker(
269        {
270            changeYear: true,
271            changeMonth: true,
272            dateFormat: datepicker_format,
273            gotoCurrent: true,
274            yearRange: 'c-1:c+5',
275        });
276    }
277    
278    $('#mec_location_id').on('change', function()
279    {
280        mec_location_toggle();
281    });
282    
283    $('#mec_organizer_id').on('change', function()
284    {
285        mec_organizer_toggle();
286        var mec_organizer_val = parseInt($(this).val());
287        var mec_additional_organizer = $(this).parent().parent().find('#mec-additional-organizer-wrap');
288
289        if(mec_organizer_val != 1) mec_additional_organizer.show();
290        else mec_additional_organizer.hide();
291    });
292    
293    mec_location_toggle();
294    mec_organizer_toggle();
295    
296    $('#mec_repeat').on('change', function()
297    {
298        mec_repeat_toggle();
299    });
300    
301    mec_repeat_toggle();
302    
303    $('#mec_repeat_type').on('change', function()
304    {
305        mec_repeat_type_toggle();
306    });
307    
308    mec_repeat_type_toggle();
309    
310    $('#mec_bookings_limit_unlimited').on('change', function()
311    {
312        mec_bookings_unlimited_toggle();
313    });
314    
315    $('#mec_add_in_days').on('click', function()
316    {
317        var allday = $(this).data('allday');
318
319        var start = $('#mec_exceptions_in_days_start_date').val();
320        if(start === '') return false;
321
322        var end = $('#mec_exceptions_in_days_end_date').val();
323        if(end === '') return false;
324
325        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
326        if(start_hour.length === 1) start_hour = '0'+start_hour;
327
328        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
329        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
330
331        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
332        if(typeof start_ampm === 'undefined') start_ampm = '';
333
334        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
335        if(end_hour.length === 1) end_hour = '0'+end_hour;
336
337        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
338        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
339
340        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
341        if(typeof end_ampm === 'undefined') end_ampm = '';
342
343        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
344        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>';
345
346        // Don't add exactly same occurrences
347        if($('#mec_in_days input[value="'+value+'"]').length > 0) return false;
348
349        var $key = $('#mec_new_in_days_key');
350        
351        var key = $key.val();
352        var html = $('#mec_new_in_days_raw').html().replace(/:i:/g, key).replace(/:val:/g, value).replace(/:label:/g, label);
353        
354        $('#mec_in_days').append(html);
355        $key.val(parseInt(key)+1);
356    });
357    
358    $('#mec_add_not_in_days').on('click', function()
359    {
360        var date = $('#mec_exceptions_not_in_days_date').val();
361        if(date === '') return false;
362        
363        var key = $('#mec_new_not_in_days_key').val();
364        var html = $('#mec_new_not_in_days_raw').html().replace(/:i:/g, key).replace(/:val:/g, date);
365        
366        $('#mec_not_in_days').append(html);
367        $('#mec_new_not_in_days_key').val(parseInt(key)+1);
368    });
369    
370    $('#mec_add_ticket_button').on('click', function()
371    {
372        var key = $('#mec_new_ticket_key').val();
373        var html = $('#mec_new_ticket_raw').html().replace(/:i:/g, key);
374        
375        $('#mec_tickets').append(html);
376        $('#mec_new_ticket_key').val(parseInt(key)+1);
377
378        $('.mec_add_price_date_button').off('click').on('click', function()
379        {
380            mec_handle_add_price_date_button(this);
381        });
382    });
383
384    $('.mec_add_price_date_button').off('click').on('click', function()
385    {
386        mec_handle_add_price_date_button(this);
387    });
388
389    mec_hourly_schedule_add_day_listener();
390    
391    $('#mec_add_fee_button').on('click', function()
392    {
393        var key = $('#mec_new_fee_key').val();
394        var html = $('#mec_new_fee_raw').html().replace(/:i:/g, key);
395        
396        $('#mec_fees_list').append(html);
397        $('#mec_new_fee_key').val(parseInt(key)+1);
398    });
399
400    $('#mec_add_ticket_variation_button').on('click', function()
401    {
402        var key = $('#mec_new_ticket_variation_key').val();
403        var html = $('#mec_new_ticket_variation_raw').html().replace(/:i:/g, key);
404
405        $('#mec_ticket_variations_list').append(html);
406        $('#mec_new_ticket_variation_key').val(parseInt(key)+1);
407    });
408    
409    $('.mec-form-row.mec-available-color-row span').on('click', function()
410    {
411        $('.mec-form-row.mec-available-color-row span').removeClass('color-selected');
412        $(this).addClass('color-selected');
413    });
414
415    $('#mec_reg_form_field_types button').on('click', function()
416    {
417        var type = $(this).data('type');
418
419        if (type == 'mec_email') {
420            if ($('#mec_reg_form_fields').find('input[value="mec_email"][type="hidden"]').length) {
421                return false;
422            }
423        }
424
425        if (type == 'name') {
426            if ($('#mec_reg_form_fields').find('input[value="name"][type="hidden"]').length) {
427                return false;
428            }
429        }
430        
431        var key  = $('#mec_new_reg_field_key').val();
432        var html = $('#mec_reg_field_'+type).html().replace(/:i:/g, key);
433
434        $('#mec_reg_form_fields').append(html);
435        $('#mec_new_reg_field_key').val(parseInt(key)+1);
436
437        // Set onclick listener for add option fields
438        mec_reg_fields_option_listeners();
439    });
440
441    // Set onclick listener for add option fields
442    mec_reg_fields_option_listeners();
443
444    // Advanced Repeating
445    $('#mec-advanced-wraper ul > ul > li').click(function()
446    {
447        if($(this).attr('class') == '') $(this).attr('class', 'mec-active');
448        else $(this).attr('class', '');
449        $('#mec_date_repeat_advanced').val($('#mec-advanced-wraper div:first-child > ul').find('.mec-active').find('span').text().slice(0, -1));
450    });
451
452    $('#mec_event_form_field_types button').on('click', function()
453    {
454        var type = $(this).data('type');
455
456        var key  = $('#mec_new_event_field_key').val();
457        var html = $('#mec_event_field_'+type).html().replace(/:i:/g, key);
458
459        $('#mec_event_form_fields').append(html);
460        $('#mec_new_event_field_key').val(parseInt(key)+1);
461
462        // Set onclick listener for add option fields
463        mec_event_fields_option_listeners();
464    });
465
466    // Set onclick listener for add option fields
467    mec_event_fields_option_listeners();
468
469    $('#mec_bfixed_form_field_types button').on('click', function()
470    {
471        var type = $(this).data('type');
472
473        var key  = $('#mec_new_bfixed_field_key').val();
474        var html = $('#mec_bfixed_field_'+type).html().replace(/:i:/g, key);
475
476        $('#mec_bfixed_form_fields').append(html);
477        $('#mec_new_bfixed_field_key').val(parseInt(key)+1);
478
479        // Set onclick listener for add option fields
480        mec_bfixed_fields_option_listeners();
481    });
482
483    // Set onclick listener for add option fields
484    mec_bfixed_fields_option_listeners();
485});
486
487function mec_location_toggle()
488{
489    if(jQuery('#mec_location_id').val() != '0') jQuery('#mec_location_new_container').hide();
490    else jQuery('#mec_location_new_container').show();
491}
492
493function mec_organizer_toggle()
494{
495    if(jQuery('#mec_organizer_id').val() != '0') jQuery('#mec_organizer_new_container').hide();
496    else jQuery('#mec_organizer_new_container').show();
497}
498
499function mec_repeat_toggle()
500{
501    if(jQuery('#mec_repeat').is(':checked')) jQuery('.mec-form-repeating-event-row').show();
502    else jQuery('.mec-form-repeating-event-row').hide();
503}
504
505function mec_repeat_type_toggle()
506{
507    var repeat_type = jQuery('#mec_repeat_type').val();
508    
509    if(repeat_type == 'certain_weekdays')
510    {
511        jQuery('#mec_repeat_interval_container').hide();
512        jQuery('#mec_repeat_certain_weekdays_container').show();
513        jQuery('#mec_exceptions_in_days_container').hide();
514        jQuery('#mec_end_wrapper').show();
515        jQuery('#mec-advanced-wraper').hide();
516    }
517    else if(repeat_type == 'custom_days')
518    {
519        jQuery('#mec_repeat_interval_container').hide();
520        jQuery('#mec_repeat_certain_weekdays_container').hide();
521        jQuery('#mec_exceptions_in_days_container').show();
522        jQuery('#mec_end_wrapper').hide();
523        jQuery('#mec-advanced-wraper').hide();
524    }
525    else if(repeat_type == 'advanced')
526    {
527        jQuery('#mec_repeat_interval_container').hide();
528        jQuery('#mec_repeat_certain_weekdays_container').hide();
529        jQuery('#mec_exceptions_in_days_container').hide();
530        jQuery('#mec_end_wrapper').show();
531        jQuery('#mec-advanced-wraper').show();
532    }
533    else if(repeat_type != 'daily' && repeat_type != 'weekly')
534    {
535        jQuery('#mec_repeat_interval_container').hide();
536        jQuery('#mec_repeat_certain_weekdays_container').hide();
537        jQuery('#mec_exceptions_in_days_container').hide();
538        jQuery('#mec_end_wrapper').show();
539        jQuery('#mec-advanced-wraper').hide();
540    }
541    else
542    {
543        jQuery('#mec_repeat_interval_container').show();
544        jQuery('#mec_repeat_certain_weekdays_container').hide();
545        jQuery('#mec_exceptions_in_days_container').hide();
546        jQuery('#mec_end_wrapper').show();
547        jQuery('#mec-advanced-wraper').hide();
548    }
549}
550
551function mec_in_days_remove(i)
552{
553    jQuery('#mec_in_days_row'+i).remove();
554}
555
556function mec_not_in_days_remove(i)
557{
558    jQuery('#mec_not_in_days_row'+i).remove();
559}
560
561function mec_bookings_unlimited_toggle()
562{
563    jQuery('#mec_bookings_limit').toggleClass('mec-util-hidden');
564}
565
566function mec_hourly_schedule_add_day_listener()
567{
568    jQuery('.mec-add-hourly-schedule-day-button').each(function()
569    {
570        jQuery(this).off('click').on('click', function()
571        {
572            var k = jQuery(this).data('key');
573            var raw = jQuery(this).data('raw');
574            var append = jQuery(this).data('append');
575
576            var key = jQuery(k).val();
577            var html = jQuery(raw).html().replace(/:d:/g, key).replace(/:dd:/g, parseInt(key)+1);
578
579            jQuery(append).append(html);
580            jQuery(k).val(parseInt(key)+1);
581
582            mec_hourly_schedule_listeners();
583        });
584
585        mec_hourly_schedule_listeners();
586    });
587}
588
589function mec_hourly_schedule_listeners()
590{
591    jQuery('.mec-add-hourly-schedule-button').off('click').on('click', function()
592    {
593        var prefix = jQuery(this).data('prefix');
594        var day = jQuery(this).data('day');
595        var $key = jQuery('#'+prefix+'mec_new_hourly_schedule_key'+day);
596
597        var key = $key.val();
598        var html = jQuery('#'+prefix+'mec_new_hourly_schedule_raw'+day).html().replace(/:i:/g, key).replace(/:d:/g, day);
599
600        jQuery('#'+prefix+'mec_hourly_schedules'+day).append(html);
601        $key.val(parseInt(key)+1);
602    });
603}
604
605function mec_hourly_schedule_remove(day, i, prefix)
606{
607    jQuery("#"+prefix+"mec_hourly_schedule_row"+day+'_'+i).remove();
608}
609
610function mec_hourly_schedule_day_remove(day, prefix)
611{
612    jQuery("#"+prefix+"mec_meta_box_hourly_schedule_day_"+day).remove();
613}
614
615function mec_ticket_remove(i)
616{
617    jQuery("#mec_ticket_row"+i).remove();
618}
619
620function mec_set_event_color(color)
621{
622    try
623    {
624        jQuery("#mec_event_color").wpColorPicker('color', '#'+color);
625    }
626    catch(e)
627    {
628        jQuery("#mec_event_color").val(color);
629    }
630}
631
632function mec_remove_fee(key)
633{
634    jQuery("#mec_fee_row"+key).remove();
635}
636
637function mec_remove_ticket_variation(key)
638{
639    jQuery("#mec_ticket_variation_row"+key).remove();
640}
641
642function mec_reg_fields_option_listeners()
643{
644    jQuery('button.mec-reg-field-add-option').off('click').on('click', function()
645    {
646        var field_id = jQuery(this).data('field-id');
647        var key = jQuery('#mec_new_reg_field_option_key_'+field_id).val();
648        var html = jQuery('#mec_reg_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
649
650        jQuery('#mec_reg_fields_'+field_id+'_options_container').append(html);
651        jQuery('#mec_new_reg_field_option_key_'+field_id).val(parseInt(key)+1);
652    });
653
654    if(typeof jQuery.fn.sortable !== 'undefined')
655    {
656        jQuery("#mec_reg_form_fields").sortable(
657        {
658            handle: '.mec_reg_field_sort'
659        });
660
661        jQuery(".mec_reg_fields_options_container").sortable(
662        {
663            handle: '.mec_reg_field_option_sort'
664        });
665    }
666}
667
668function mec_reg_fields_option_remove(field_key, key)
669{
670    jQuery("#mec_reg_fields_option_"+field_key+"_"+key).remove();
671}
672
673function mec_reg_fields_remove(key)
674{
675    jQuery("#mec_reg_fields_"+key).remove();
676}
677
678function mec_handle_add_price_date_button(e)
679{
680    var key = jQuery(e).data('key');
681    var p = jQuery('#mec_new_ticket_price_key_'+key).val();
682    var html = jQuery('#mec_new_ticket_price_raw_'+key).html().replace(/:i:/g, key).replace(/:j:/g, p);
683
684    jQuery('#mec-ticket-price-dates-'+key).append(html);
685    jQuery('#mec_new_ticket_price_key_'+key).val(parseInt(p)+1);
686    jQuery('#mec-ticket-price-dates-'+key+' .new_added').datepicker(
687    {
688        changeYear: true,
689        changeMonth: true,
690        dateFormat: datepicker_format,
691        gotoCurrent: true,
692        yearRange: 'c-3:c+5',
693    });
694}
695
696function mec_ticket_price_remove(ticket_key, price_key)
697{
698    jQuery("#mec_ticket_price_raw_"+ticket_key+"_"+price_key).remove();
699}
700
701function mec_event_fields_option_listeners()
702{
703    jQuery('button.mec-event-field-add-option').off('click').on('click', function()
704    {
705        var field_id = jQuery(this).data('field-id');
706        var key = jQuery('#mec_new_event_field_option_key_'+field_id).val();
707        var html = jQuery('#mec_event_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
708
709        jQuery('#mec_event_fields_'+field_id+'_options_container').append(html);
710        jQuery('#mec_new_event_field_option_key_'+field_id).val(parseInt(key)+1);
711    });
712
713    if(typeof jQuery.fn.sortable !== 'undefined')
714    {
715        jQuery("#mec_event_form_fields").sortable(
716        {
717            handle: '.mec_event_field_sort'
718        });
719
720        jQuery(".mec_event_fields_options_container").sortable(
721        {
722            handle: '.mec_event_field_option_sort'
723        });
724    }
725}
726
727function mec_event_fields_option_remove(field_key, key)
728{
729    jQuery("#mec_event_fields_option_"+field_key+"_"+key).remove();
730}
731
732function mec_event_fields_remove(key)
733{
734    jQuery("#mec_event_fields_"+key).remove();
735}
736
737function mec_bfixed_fields_option_listeners()
738{
739    jQuery('button.mec-bfixed-field-add-option').off('click').on('click', function()
740    {
741        var field_id = jQuery(this).data('field-id');
742        var key = jQuery('#mec_new_bfixed_field_option_key_'+field_id).val();
743        var html = jQuery('#mec_bfixed_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
744
745        jQuery('#mec_bfixed_fields_'+field_id+'_options_container').append(html);
746        jQuery('#mec_new_bfixed_field_option_key_'+field_id).val(parseInt(key)+1);
747    });
748
749    if(typeof jQuery.fn.sortable !== 'undefined')
750    {
751        jQuery("#mec_bfixed_form_fields").sortable(
752        {
753            handle: '.mec_bfixed_field_sort'
754        });
755
756        jQuery(".mec_bfixed_fields_options_container").sortable(
757        {
758            handle: '.mec_bfixed_field_option_sort'
759        });
760    }
761}
762
763function mec_bfixed_fields_option_remove(field_key, key)
764{
765    jQuery("#mec_bfixed_fields_option_"+field_key+"_"+key).remove();
766}
767
768function mec_bfixed_fields_remove(key)
769{
770    jQuery("#mec_bfixed_fields_"+key).remove();
771}

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.