PageSourceSearch

https://tokeblog.com/wp-content/cache/wpfc-minified/l1f0z2l0/hjkhd.js

js tokeblog.com collected 2026-10-09 17:01:28 UTC 265,315 bytes, 6,370 lines download raw bytes

1// source --> https://tokeblog.com/wp-content/plugins/modern-events-calendar-lite/assets/js/frontend.js 
2// MEC Single Event Displayer
3var mecSingleEventDisplayer =
4{
5    getSinglePage: function(id, occurrence, time, ajaxurl, layout, image_popup)
6    {
7        if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
8        jQuery('.mec-modal-result').addClass('mec-modal-preloader');
9
10        jQuery.ajax(
11        {
12            url: ajaxurl,
13            data: "action=mec_load_single_page&id=" + id + (occurrence != null ? "&occurrence=" + occurrence : "") + (time != null ? "&time=" + time : "") + "&layout=" + layout,
14            type: "get",
15            success: function(response)
16            {
17                jQuery('.mec-modal-result').removeClass("mec-modal-preloader");
18                jQuery.featherlight(response);
19
20                setTimeout(function()
21                {
22                    if(typeof grecaptcha !== 'undefined' && jQuery('#g-recaptcha').length > 0)
23                    {
24                        grecaptcha.render("g-recaptcha", {
25                            sitekey: mecdata.recapcha_key
26                        });
27                    }
28                }, 1000);
29
30                if(image_popup != 0)
31                {
32                    if(jQuery('.featherlight-content .mec-events-content a img').length > 0)
33                    {
34                        jQuery('.featherlight-content .mec-events-content a img').each(function()
35                        {
36                            jQuery(this).closest('a').attr('data-featherlight', 'image');
37                        });
38                    }
39                }
40                else
41                {
42                    jQuery('.featherlight-content .mec-events-content a img').remove();
43                    jQuery('.featherlight-content .mec-events-content img').remove();
44                }
45
46                if(typeof mecdata.enableSingleFluent != 'undefined' && mecdata.enableSingleFluent) mecFluentSinglePage();
47            },
48            error: function () { }
49        });
50    }
51};
52
53var mec_search_callback1;
54var mec_search_callback2;
55
56// MEC SEARCH FORM PLUGIN
57(function ($) {
58    $.fn.mecSearchForm = function (options) {
59        if(typeof settings != 'undefined') console.log(settings.callback);
60        // Default Options
61        var settings = $.extend({
62            // These are the defaults.
63            id: 0,
64            refine: 0,
65            ajax_url: '',
66            search_form_element: '',
67            atts: '',
68            callback: function () { }
69        }, options);
70
71        if(typeof mec_search_callback1 === 'undefined') mec_search_callback1 = settings.callback;
72        else if(typeof mec_search_callback2 === 'undefined') mec_search_callback2 = settings.callback;
73
74        var $event_cost_min = $("#mec_sf_event_cost_min_" + settings.id);
75        var $event_cost_max = $("#mec_sf_event_cost_max_" + settings.id);
76        var $time_start = $("#mec_sf_timepicker_start_" + settings.id);
77        var $time_end = $("#mec_sf_timepicker_end_" + settings.id);
78        var $s = $("#mec_sf_s_" + settings.id);
79        var $address = $("#mec_sf_address_s_" + settings.id);
80        var $date_start = $('#mec_sf_date_start_' + settings.id);
81        var $date_end = $('#mec_sf_date_end_' + settings.id);
82        var $event_type = $('#mec_sf_event_type_' + settings.id);
83        var $event_type_2 = $('#mec_sf_event_type_2_' + settings.id);
84        var $attribute = $('#mec_sf_attribute_' + settings.id);
85        var $reset = $("#mec_search_form_" + settings.id + '_reset');
86        var last_field;
87
88        // Trigger
89        trigger();
90
91        $s.on('change', function (e) {
92            last_field = 's';
93            search();
94        });
95
96        $address.on('change', function (e) {
97            last_field = 'address';
98            search();
99        });
100
101        $event_cost_min.on('change', function (e) {
102            last_field = 'cost-min';
103            $event_cost_max.attr('min', $(this).val());
104            search();
105        });
106
107        $event_cost_max.on('change', function (e) {
108            last_field = 'cost-max';
109            $event_cost_min.attr('max', $(this).val());
110            search();
111        });
112
113        // Timepicker
114        if ($time_start.length) {
115            var format = (($time_start.data('format') === 12) ? 'hh:mm p' : 'HH:mm');
116            $time_start.timepicker(
117            {
118                timeFormat: format,
119                minTime: new Date(0, 0, 0, 0, 0, 0),
120                maxTime: new Date(0, 0, 0, 23, 55, 0),
121                interval: 5,
122                dropdown: false,
123                change: function () {
124                    last_field = 'time-start';
125                    search();
126                }
127            });
128
129            $time_end.timepicker(
130            {
131                timeFormat: format,
132                minTime: new Date(0, 0, 0, 0, 0, 0),
133                maxTime: new Date(0, 0, 0, 23, 55, 0),
134                interval: 5,
135                dropdown: false,
136                change: function () {
137                    last_field = 'time-end';
138                    search();
139                }
140            });
141        }
142
143        var $month = $("#mec_sf_month_" + settings.id);
144        var $year = $("#mec_sf_year_" + settings.id);
145        var $month_or_year = $("#mec_sf_month_" + settings.id + ', ' + "#mec_sf_year_" + settings.id);
146
147        $month_or_year.on('change', function (e) {
148            last_field = 'date-dropdown';
149
150            var mec_month_val = $month.val();
151            var mec_year_val = $year.val();
152
153            if ((mec_month_val !== 'none' && mec_year_val !== 'none') || ((mec_month_val === 'none' && mec_year_val === 'none'))) search();
154        });
155
156        $date_end.on('change', function () {
157            last_field = 'date-end';
158            search();
159        });
160
161        $event_type.on('change', function (e) {
162            last_field = 'event-type';
163            search();
164        });
165
166        $event_type_2.on('change', function (e) {
167            last_field = 'event-type-2';
168            search();
169        });
170
171        $attribute.on('change', function (e) {
172            last_field = 'attribute';
173            search();
174        });
175
176        if (settings.fields && settings.fields.length > 0) {
177            for (var k in settings.fields) {
178                $("#mec_sf_" + settings.fields[k] + '_' + settings.id).on('change', function (e) {
179                    search();
180                });
181            }
182        }
183
184        // Reset
185        if ($reset.length) {
186            $reset.on('click', function (e) {
187                reset();
188            });
189        }
190
191        function trigger() {
192            $("#mec_sf_category_" + settings.id).off('change').on('change', function (e) {
193                last_field = 'category';
194                search();
195            });
196
197            $("#mec_sf_location_" + settings.id).off('change').on('change', function (e) {
198                last_field = 'location';
199                search();
200            });
201
202            $("#mec_sf_organizer_" + settings.id).off('change').on('change', function (e) {
203                last_field = 'organizer';
204                search();
205            });
206
207            $("#mec_sf_speaker_" + settings.id).off('change').on('change', function (e) {
208                last_field = 'speaker';
209                search();
210            });
211
212            $("#mec_sf_tag_" + settings.id).off('change').on('change', function (e) {
213                last_field = 'tag';
214                search();
215            });
216
217            $("#mec_sf_label_" + settings.id).off('change').on('change', function (e) {
218                last_field = 'label';
219                search();
220            });
221        }
222
223        function search() {
224            var $category = $("#mec_sf_category_" + settings.id);
225            var $location = $("#mec_sf_location_" + settings.id);
226            var $organizer = $("#mec_sf_organizer_" + settings.id);
227            var $speaker = $("#mec_sf_speaker_" + settings.id);
228            var $tag = $("#mec_sf_tag_" + settings.id);
229            var $label = $("#mec_sf_label_" + settings.id);
230
231            var s = $s.length ? $s.val() : '';
232            var address = $address.length ? $address.val() : '';
233            var location = $location.length ? $location.val() : '';
234            var organizer = $organizer.length ? $organizer.val() : '';
235            var speaker = $speaker.length ? $speaker.val() : '';
236            var tag = $tag.length ? $tag.val() : '';
237            var label = $label.length ? $label.val() : '';
238            var month = $month.length ? $month.val() : '';
239            var year = $year.length ? $year.val() : '';
240            var event_type = $event_type.length ? $event_type.val() : '';
241            var event_type_2 = $event_type_2.length ? $event_type_2.val() : '';
242            var attribute = $attribute.length ? $attribute.val() : '';
243
244            var start = $date_start.length ? $date_start.val() : '';
245            var end = $date_end.length ? $date_end.val() : '';
246
247            var cost_min = $event_cost_min.length ? $event_cost_min.val() : '';
248            var cost_max = $event_cost_max.length ? $event_cost_max.val() : '';
249
250            var time_start = $time_start.length ? $time_start.val() : '';
251            var time_end = $time_end.length ? $time_end.val() : '';
252
253            var category;
254            if ($category.prop('tagName') && $category.prop('tagName').toLowerCase() === 'div') {
255                category = '';
256                $category.find($('select')).each(function () {
257                    category += $(this).val() + ',';
258                });
259            }
260            else category = $category.length ? $category.val() : '';
261
262            if (year === 'none' && month === 'none') {
263                year = '';
264                month = '';
265            }
266
267            var addation_attr = '';
268            if (settings.fields && settings.fields.length > 0) {
269                for (var k in settings.fields) {
270                    var field = '#mec_sf_' + settings.fields[k] + '_' + settings.id;
271                    var val = $(field).length ? $(field).val() : '';
272
273                    addation_attr += '&sf[' + settings.fields[k] + ']=' + val;
274                }
275            }
276
277            // Search Parameters
278            var sf = 'sf[s]=' + s + '&sf[address]=' + address + '&sf[cost-min]=' + cost_min + '&sf[cost-max]=' + cost_max + '&sf[time-start]=' + time_start + '&sf[time-end]=' + time_end + '&sf[month]=' + month + '&sf[year]=' + year + '&sf[start]=' + start + '&sf[end]=' + end + '&sf[category]=' + category + '&sf[location]=' + location + '&sf[organizer]=' + organizer + '&sf[speaker]=' + speaker + '&sf[tag]=' + tag + '&sf[label]=' + label + '&sf[event_type]=' + event_type + '&sf[event_type_2]=' + event_type_2 + '&sf[attribute]=' + attribute + addation_attr;
279
280            // Refine Parameters
281            if (settings.refine) refine(sf);
282
283            // Attributes
284            var atts = settings.atts + '&' + sf;
285
286            // Search
287            if(typeof mec_search_callback1 !== 'undefined') mec_search_callback1(atts);
288            if(typeof mec_search_callback2 !== 'undefined') mec_search_callback2(atts);
289        }
290
291        function reset() {
292            var $category = $("#mec_sf_category_" + settings.id);
293            var $location = $("#mec_sf_location_" + settings.id);
294            var $organizer = $("#mec_sf_organizer_" + settings.id);
295            var $speaker = $("#mec_sf_speaker_" + settings.id);
296            var $tag = $("#mec_sf_tag_" + settings.id);
297            var $label = $("#mec_sf_label_" + settings.id);
298
299            if ($category.length && $category.prop('tagName') && $category.prop('tagName').toLowerCase() === 'div') {
300                $category.find($('select')).each(function () {
301                    $(this).val(null).trigger('change');
302                });
303            }
304            else if ($category.length) $category.val(null);
305
306            if ($location.length) $location.val(null);
307            if ($organizer.length) $organizer.val(null);
308            if ($speaker.length) $speaker.val(null);
309            if ($tag.length) $tag.val(null);
310            if ($label.length) $label.val(null);
311            if ($s.length) $s.val(null);
312            if ($address.length) $address.val(null);
313            if ($month.length) $month.val(null);
314            if ($year.length) $year.val(null);
315            if ($event_cost_min.length) $event_cost_min.val(null);
316            if ($event_cost_max.length) $event_cost_max.val(null);
317            if ($date_start.length) $date_start.val(null);
318            if ($date_end.length) $date_end.val(null);
319            if ($time_start.length) $time_start.val(null);
320            if ($time_end.length) $time_end.val(null);
321
322            // Search Again
323            setTimeout(function () {
324                search();
325            }, 200);
326        }
327
328        function refine(sf) {
329            var $category = $("#mec_sf_category_" + settings.id);
330            var $location = $("#mec_sf_location_" + settings.id);
331            var $organizer = $("#mec_sf_organizer_" + settings.id);
332            var $speaker = $("#mec_sf_speaker_" + settings.id);
333            var $tag = $("#mec_sf_tag_" + settings.id);
334            var $label = $("#mec_sf_label_" + settings.id);
335
336            var category_type;
337            if ($category.length && $category.prop('tagName') && $category.prop('tagName').toLowerCase() === 'div') category_type = 'checkboxes';
338            else if ($category.length) category_type = 'dropdown';
339
340            $.ajax(
341                {
342                    url: settings.ajax_url,
343                    data: "action=mec_refine_search_items&" + sf + '&last_field=' + last_field + '&category_type=' + category_type + '&id=' + settings.id,
344                    dataType: "json",
345                    type: "post",
346                    success: function (response) {
347                        // Categories
348                        if (typeof response.categories !== 'undefined' && response.categories !== '') {
349                            // Checkboxes
350                            if ($category.length && $category.prop('tagName') && $category.prop('tagName').toLowerCase() === 'div') {
351                                $category.html(response.categories);
352                            }
353                            // Dropdown
354                            else if ($category.length) {
355                                $category.replaceWith(response.categories)
356                            }
357
358                            // Categories Search bar
359                            if ( jQuery(".mec-searchbar-category-wrap select").length > 0 ) jQuery(".mec-searchbar-category-wrap select").select2();
360                        }
361
362                        // Locations
363                        if (typeof response.locations !== 'undefined' && response.locations !== '') {
364                            $location.replaceWith(response.locations)
365                        }
366
367                        // Organizers
368                        if (typeof response.organizers !== 'undefined' && response.organizers !== '') {
369                            $organizer.replaceWith(response.organizers)
370                        }
371
372                        // Speakers
373                        if (typeof response.speakers !== 'undefined' && response.speakers !== '') {
374                            $speaker.replaceWith(response.speakers)
375                        }
376
377                        // Labels
378                        if (typeof response.labels !== 'undefined' && response.labels !== '') {
379                            $label.replaceWith(response.labels)
380                        }
381
382                        // Tags
383                        if (typeof response.tags !== 'undefined' && response.tags !== '') {
384                            $tag.replaceWith(response.tags)
385                        }
386
387                        // Trigger
388                        trigger();
389                    },
390                    error: function () { }
391                });
392        }
393    };
394}(jQuery));
395
396jQuery(document).ready(function ($) {
397    // Select2
398    if ( jQuery(".mec-fes-form-cntt #mec-location select").length > 0 ) jQuery(".mec-fes-form-cntt #mec-location select").select2();
399    if ( jQuery(".mec-fes-form-cntt #mec-organizer select").length > 0 ) jQuery(".mec-fes-form-cntt #mec-organizer select").select2();
400    // Location select2
401    if ( jQuery("#mec_location_id").length > 0 ) jQuery("#mec_location_id").select2();
402    // Organizer Select2
403    if ( jQuery("#mec_organizer_id").length > 0 ) jQuery("#mec_organizer_id").select2();
404    // Categories Search bar
405    if ( jQuery(".mec-searchbar-category-wrap select").length > 0 ) jQuery(".mec-searchbar-category-wrap select").select2();
406
407    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-search-reset-button").parents().eq(2).addClass("mec-there-reset-button");
408
409    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-minmax-event-cost").parent().find(".mec-text-address-search").addClass("with-mec-cost");
410    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-text-address-search").parent().find(".mec-minmax-event-cost").addClass("with-mec-address");
411
412    /** New Searchbar JS */
413    jQuery(".mec-full-calendar-search-ends").find(".mec-text-input-search").parent().find(".mec-tab-loader").removeClass("col-md-12").addClass("col-md-6");
414    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-text-input-search").parent().find(".mec-date-search").parent().find(".mec-text-input-search").addClass("col-md-6");
415    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-text-input-search").parent().find(".mec-time-picker-search").parent().find(".mec-text-input-search").addClass("col-md-6");
416    jQuery(".mec-full-calendar-search-ends").find(".mec-text-input-search").addClass("col-md-12").parent().find(".mec-time-picker-search").addClass("col-md-6");
417    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-date-search").parent().find(".mec-time-picker-search").addClass("with-mec-date-search");
418    jQuery(".mec-search-form.mec-totalcal-box").find(".mec-time-picker-search").parent().find(".mec-date-search").addClass("with-mec-time-picker");
419});
420
421// MEC FULL CALENDAR PLUGIN
422(function ($) {
423    $.fn.mecFullCalendar = function (options) {
424        // Default Options
425        var settings = $.extend({
426            // These are the defaults.
427            id: 0,
428            atts: '',
429            ajax_url: '',
430            sf: {},
431            skin: '',
432        }, options);
433
434        // Set onclick Listeners
435        setListeners();
436
437        mecFluentCurrentTimePosition();
438        mecFluentCustomScrollbar();
439
440        var sf;
441
442        function setListeners() {
443            // Search Widget
444            if (settings.sf.container !== '') {
445                sf = $(settings.sf.container).mecSearchForm({
446                    id: settings.id,
447                    refine: settings.sf.refine,
448                    ajax_url: settings.ajax_url,
449                    atts: settings.atts,
450                    callback: function (atts) {
451                        settings.atts = atts;
452                        search();
453                    }
454                });
455            }
456
457            // Add the onclick event
458            $("#mec_skin_" + settings.id + " .mec-totalcal-box .mec-totalcal-view span:not(.mec-fluent-more-views-icon):not(.mec-fluent-more-views-content)").on('click', function (e) {
459                e.preventDefault();
460                var skin = $(this).data('skin');
461                var mec_month_select = $('#mec_sf_month_' + settings.id);
462                var mec_year_select = $('#mec_sf_year_' + settings.id);
463
464                if (mec_year_select.val() == 'none') {
465                    mec_year_select.find('option').each(function () {
466                        var option_val = $(this).val();
467                        if (option_val == mecdata.current_year) mec_year_select.val(option_val);
468                    });
469                }
470
471                if (mec_month_select.val() == 'none') {
472                    mec_month_select.find('option').each(function () {
473                        var option_val = $(this).val();
474                        if (option_val == mecdata.current_month) mec_month_select.val(option_val);
475                    });
476                }
477
478                if (skin == 'list' || skin == 'grid' || skin == 'agenda') {
479                    var mec_filter_none = '<option class="mec-none-item" value="none">' + $('#mec-filter-none').val() + '</option>';
480                    if (mec_month_select.find('.mec-none-item').length == 0) mec_month_select.prepend(mec_filter_none);
481                    if (mec_year_select.find('.mec-none-item').length == 0) mec_year_select.prepend(mec_filter_none);
482                }
483                else {
484                    if (mec_month_select.find('.mec-none-item').length != 0) mec_month_select.find('.mec-none-item').remove();
485                    if (mec_year_select.find('.mec-none-item').length != 0) mec_year_select.find('.mec-none-item').remove();
486                }
487
488                $("#mec_skin_" + settings.id + " .mec-totalcal-box .mec-totalcal-view span").removeClass('mec-totalcalview-selected')
489                $(this).addClass('mec-totalcalview-selected');
490                if ($(this).closest('.mec-fluent-more-views-content').length > 0) {
491                    $('.mec-fluent-more-views-icon').addClass('active');
492                    $('.mec-fluent-more-views-content').removeClass('active');
493                } else {
494                    $('.mec-fluent-more-views-icon').removeClass('active');
495                }
496
497                loadSkin(skin);
498            });
499        }
500
501        function loadSkin(skin) {
502            // Set new Skin
503            settings.skin = skin;
504
505            // Add Loading Class
506            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
507            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
508
509            $.ajax({
510                url: settings.ajax_url,
511                data: "action=mec_full_calendar_switch_skin&skin=" + skin + "&" + settings.atts + "&apply_sf_date=1&sed=" + settings.sed_method,
512                dataType: "json",
513                type: "post",
514                success: function (response) {
515                    $("#mec_full_calendar_container_" + settings.id).html(response);
516
517                    // Remove loader
518                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
519
520                    // Focus First Active Day
521                    mecFocusDay(settings);
522
523                    mecFluentCurrentTimePosition();
524                    mecFluentCustomScrollbar();
525
526                    jQuery(document).trigger( 'mec_load_skin_success', $("#mec_full_calendar_container_" + settings.id) );
527                },
528                error: function () { }
529            });
530        }
531
532        function search() {
533            // Add Loading Class
534            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
535            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
536
537            $.ajax({
538                url: settings.ajax_url,
539                data: "action=mec_full_calendar_switch_skin&skin=" + settings.skin + "&" + settings.atts + "&apply_sf_date=1",
540                dataType: "json",
541                type: "post",
542                success: function (response) {
543                    $("#mec_full_calendar_container_" + settings.id).html(response);
544
545                    // Remove loader
546                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
547
548                    // Focus First Active Day
549                    mecFocusDay(settings);
550
551                    // Focus First Active Week
552                    mec_focus_week(settings.id);
553
554                    mecFluentCurrentTimePosition();
555                    mecFluentCustomScrollbar();
556
557                    jQuery(document).trigger( 'mec_search_success', $("#mec_full_calendar_container_" + settings.id) );
558                },
559                error: function () { }
560            });
561        }
562    };
563
564}(jQuery));
565
566// MEC YEARLY VIEW PLUGIN
567(function ($) {
568    $.fn.mecYearlyView = function (options) {
569        var active_year;
570
571        // Default Options
572        var settings = $.extend({
573            // These are the defaults.
574            today: null,
575            id: 0,
576            events_label: 'Events',
577            event_label: 'Event',
578            year_navigator: 0,
579            atts: '',
580            next_year: {},
581            sf: {},
582            ajax_url: '',
583        }, options);
584
585        mecFluentYearlyUI(settings.id, settings.year_id);
586
587        // Initialize Year Navigator
588        if (settings.year_navigator) initYearNavigator();
589
590        // Set onclick Listeners
591        setListeners();
592
593        // load more
594        $(document).on("click", "#mec_skin_events_" + settings.id + " .mec-load-more-button", function () {
595            var year = $(this).parent().parent().parent().data('year-id');
596            loadMoreButton(year);
597        });
598
599        // Search Widget
600        if (settings.sf.container !== '') {
601            sf = $(settings.sf.container).mecSearchForm({
602                id: settings.id,
603                refine: settings.sf.refine,
604                ajax_url: settings.ajax_url,
605                atts: settings.atts,
606                callback: function (atts) {
607                    settings.atts = atts;
608                    active_year = $('.mec-yearly-view-wrap .mec-year-navigator').filter(function () {
609                        return $(this).css('display') == "block";
610                    });
611                    active_year = parseInt(active_year.find('h2').text());
612                    search(active_year);
613                }
614            });
615        }
616
617        function initYearNavigator() {
618            // Add onclick event
619            $("#mec_skin_" + settings.id + " .mec-load-year").off("click").on("click", function () {
620                var year = $(this).data("mec-year");
621                setYear(year);
622            });
623        }
624
625        function search(year) {
626            // Add Loading Class
627            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
628            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
629
630            $.ajax({
631                url: settings.ajax_url,
632                data: "action=mec_yearly_view_load_year&mec_year=" + year + "&" + settings.atts + "&apply_sf_date=1",
633                dataType: "json",
634                type: "post",
635                success: function (response) {
636                    active_year = response.current_year.year;
637
638                    // Append Year
639                    $("#mec_skin_events_" + settings.id).html('<div class="mec-year-container" id="mec_yearly_view_year_' + settings.id + '_' + response.current_year.id + '" data-year-id="' + response.current_year.id + '">' + response.year + '</div>');
640
641                    // Append Year Navigator
642                    $("#mec_skin_" + settings.id + " .mec-yearly-title-sec").append('<div class="mec-year-navigator" id="mec_year_navigator_' + settings.id + '_' + response.current_year.id + '">' + response.navigator + '</div>');
643
644                    // Re-initialize Year Navigator
645                    initYearNavigator();
646
647                    // Set onclick Listeners
648                    setListeners();
649
650                    // Toggle Year
651                    toggleYear(response.current_year.id);
652
653                    // Remove loading Class
654                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
655
656                    mecFluentYearlyUI(settings.id, active_year);
657                    mecFluentCustomScrollbar();
658
659                },
660                error: function () { }
661            });
662        }
663
664        function setYear(year, do_in_background) {
665            if (typeof do_in_background === "undefined") do_in_background = false;
666
667            var year_id = year;
668            active_year = year;
669
670            // Year exists so we just show it
671            if ($("#mec_yearly_view_year_" + settings.id + "_" + year_id).length) {
672                // Toggle Year
673                toggleYear(year_id);
674                mecFluentCustomScrollbar();
675            } else {
676                if (!do_in_background) {
677                    // Add Loading Class
678                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
679                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
680                }
681
682                $.ajax({
683                    url: settings.ajax_url,
684                    data: "action=mec_yearly_view_load_year&mec_year=" + year + "&" + settings.atts + "&apply_sf_date=0",
685                    dataType: "json",
686                    type: "post",
687                    success: function (response) {
688                        // Append Year
689                        $("#mec_skin_events_" + settings.id).append('<div class="mec-year-container" id="mec_yearly_view_year_' + settings.id + '_' + response.current_year.id + '" data-year-id="' + response.current_year.id + '">' + response.year + '</div>');
690
691                        // Append Year Navigator
692                        $("#mec_skin_" + settings.id + " .mec-yearly-title-sec").append('<div class="mec-year-navigator" id="mec_year_navigator_' + settings.id + '_' + response.current_year.id + '">' + response.navigator + '</div>');
693
694                        // Re-initialize Year Navigator
695                        initYearNavigator();
696
697                        // Set onclick Listeners
698                        setListeners();
699
700                        if (!do_in_background) {
701                            // Toggle Year
702                            toggleYear(response.current_year.id);
703
704                            // Remove loading Class
705                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
706
707                            // Set Year Filter values in search widget
708                            $("#mec_sf_year_" + settings.id).val(year);
709                        } else {
710                            $("#mec_yearly_view_year_" + settings.id + "_" + response.current_year.id).hide();
711                            $("#mec_year_navigator_" + settings.id + "_" + response.current_year.id).hide();
712                        }
713                        mecFluentYearlyUI(settings.id, year);
714                        if (!do_in_background) {
715                            mecFluentCustomScrollbar();
716                        }
717                    },
718                    error: function () { }
719                });
720            }
721        }
722
723        function toggleYear(year_id) {
724            // Toggle Year Navigator
725            $("#mec_skin_" + settings.id + " .mec-year-navigator").hide();
726            $("#mec_year_navigator_" + settings.id + "_" + year_id).show();
727
728            // Toggle Year
729            $("#mec_skin_" + settings.id + " .mec-year-container").hide();
730            $("#mec_yearly_view_year_" + settings.id + "_" + year_id).show();
731        }
732
733        var sf;
734
735        function setListeners() {
736            // Single Event Method
737            if (settings.sed_method != '0') {
738                sed();
739            }
740
741            // Yearly view
742            $("#mec_skin_" + settings.id + " .mec-has-event a").on('click', function (e) {
743                e.preventDefault();
744
745                var des = $(this).attr('href');
746                var visible = $(des).is(':visible');
747                if (!visible) {
748                    var year = $(des).parents('.mec-year-container').data('year-id');
749                    if (year) {
750
751                        while (!visible) {
752                            loadMoreButton(year);
753
754                            visible = $(des).is(':visible');
755                        }
756                    }
757                }
758
759                $('.mec-events-agenda').removeClass('mec-selected');
760                $(des).closest('.mec-events-agenda').addClass('mec-selected');
761
762                var scrollTopVal = $(des).closest('.mec-events-agenda').offset().top - 35;
763                if ($(this).closest('.mec-fluent-wrap').length > 0) {
764                    var parent = jQuery(this).closest('.mec-fluent-wrap').find('.mec-yearly-agenda-sec');
765                    scrollTopVal = parent.scrollTop() + ($(des).closest('.mec-events-agenda').offset().top - parent.offset().top);
766                    jQuery(this).closest('.mec-fluent-wrap').find('.mec-yearly-agenda-sec').getNiceScroll(0).doScrollTop(scrollTopVal - 15, 120);
767                }
768                else {
769                    $('html, body').animate({
770                        scrollTop: scrollTopVal
771                    }, 300);
772                }
773            });
774        }
775
776        function sed() {
777            // Single Event Display
778            $("#mec_skin_" + settings.id + " .mec-agenda-event-title a").off('click').on('click', function (e) {
779                var sed_method = $(this).attr('target');
780                if ('_blank' === sed_method) {
781
782                    return;
783                }
784                e.preventDefault();
785                var href = $(this).attr('href');
786
787                var id = $(this).data('event-id');
788                var occurrence = get_parameter_by_name('occurrence', href);
789                var time = get_parameter_by_name('time', href);
790
791                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
792            });
793        }
794
795        function loadMoreButton(year) {
796            var $max_count, $current_count = 0;
797            $max_count = $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-yearly-max").data('count');
798            $current_count = $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").length;
799
800            if ($current_count > 10) {
801                for (var i = 0; i < 10; i++) {
802                    $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").slice(0, 2).each(function () {
803                        $(this).removeClass('mec-util-hidden');
804                    });
805                }
806            }
807
808            if ($current_count < 10 && $current_count != 0) {
809                for (var j = 0; j < $current_count; j++) {
810                    $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").slice(0, 2).each(function () {
811                        $(this).removeClass('mec-util-hidden');
812                        $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-load-more-wrap").css('display', 'none');
813                    });
814                }
815            }
816        }
817    };
818
819}(jQuery));
820
821
822// MEC GENERAL CALENDAR VIEW PLUGIN
823(function ($) {
824    $.fn.mecGeneralCalendarView = function (options) {
825        // Default Options
826        var settings = $.extend({
827            // These are the defaults.
828            id: 0,
829            atts: '',
830            ajax_url: '',
831        }, options);
832
833        // Set onclick Listeners
834        setListeners();
835
836        function setListeners() {
837            // Single Event Method
838            if (settings.sed_method != '0') {
839                sed();
840            }
841        }
842        function sed() {
843            // Single Event Display
844            $("#mec_skin_" + settings.id + " .fc-daygrid-event").off('click').on('click', function (e) {
845                e.preventDefault();
846                var sed_method = $(this).attr('target');
847                if ('_blank' === sed_method || '_self' === sed_method || 'no' === sed_method) {
848
849                    return;
850                }
851                e.preventDefault();
852                var href = $(this).attr('href');
853
854                var id = $(this).data('event-id');
855                var occurrence = get_parameter_by_name('occurrence', href);
856                var time = get_parameter_by_name('time', href);
857
858                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
859            });
860        }
861    };
862
863}(jQuery));
864
865// MEC MONTHLY VIEW PLUGIN
866(function ($) {
867    $.fn.mecMonthlyView = function (options) {
868        var active_month;
869        var active_year;
870
871        // Default Options
872        var settings = $.extend({
873            // These are the defaults.
874            today: null,
875            id: 0,
876            events_label: 'Events',
877            event_label: 'Event',
878            month_navigator: 0,
879            atts: '',
880            active_month: {},
881            next_month: {},
882            sf: {},
883            ajax_url: '',
884        }, options);
885
886        // Initialize Month Navigator
887        if (settings.month_navigator) initMonthNavigator();
888
889        active_month = settings.active_month.month;
890        active_year = settings.active_month.year;
891
892        // Set onclick Listeners
893        setListeners();
894
895        // Search Widget
896        if (settings.sf.container !== '') {
897            sf = $(settings.sf.container).mecSearchForm({
898                id: settings.id,
899                refine: settings.sf.refine,
900                ajax_url: settings.ajax_url,
901                atts: settings.atts,
902                callback: function (atts) {
903                    settings.atts = atts;
904                    search(active_year, active_month);
905                }
906            });
907        }
908
909        function initMonthNavigator() {
910            // Remove the onclick event
911            $("#mec_skin_" + settings.id + " .mec-load-month").off("click");
912
913            // Add onclick event
914            $("#mec_skin_" + settings.id + " .mec-load-month").on("click", function () {
915                var year = $(this).data("mec-year");
916                var month = $(this).data("mec-month");
917
918                setMonth(year, month, false, true);
919            });
920        }
921
922        function search(year, month) {
923            // Add Loading Class
924            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
925            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
926
927            $.ajax({
928                url: settings.ajax_url,
929                data: "action=mec_monthly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
930                dataType: "json",
931                type: "post",
932                success: function (response) {
933                    active_month = response.current_month.month;
934                    active_year = response.current_month.year;
935
936                    // Append Month
937                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_monthly_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
938
939                    // Append Month Navigator
940                    $("#mec_skin_" + settings.id + " .mec-skin-monthly-view-month-navigator-container").html('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
941
942                    // Append Events Side
943                    $("#mec_skin_" + settings.id + " .mec-calendar-events-side").html('<div class="mec-month-side" id="mec_month_side_' + settings.id + '_' + response.current_month.id + '">' + response.events_side + '</div>');
944
945                    // Re-initialize Month Navigator
946                    initMonthNavigator();
947
948                    // Set onclick Listeners
949                    setListeners();
950
951                    // Toggle Month
952                    toggleMonth(response.current_month.id);
953
954                    jQuery(document).trigger('load_calendar_data');
955
956                    // Remove loading Class
957                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
958
959                },
960                error: function () { }
961            });
962        }
963
964        function setMonth(year, month, do_in_background, navigator_click) {
965            if (typeof do_in_background === "undefined") do_in_background = false;
966            navigator_click = navigator_click || false;
967            var month_id = year + "" + month;
968
969            if (!do_in_background) {
970                active_month = month;
971                active_year = year;
972            }
973
974            // Month exists so we just show it
975            if ($("#mec_monthly_view_month_" + settings.id + "_" + month_id).length) {
976                // Toggle Month
977                toggleMonth(month_id);
978            } else {
979                if (!do_in_background) {
980
981                    // Add Loading Class
982                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
983                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
984                }
985
986                $.ajax({
987                    url: settings.ajax_url,
988                    data: "action=mec_monthly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
989                    dataType: "json",
990                    type: "post",
991                    success: function (response) {
992                        // Append Month
993                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_monthly_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
994
995                        // Append Month Navigator
996                        $("#mec_skin_" + settings.id + " .mec-skin-monthly-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
997
998                        // Append Events Side
999                        $("#mec_skin_" + settings.id + " .mec-calendar-events-side").append('<div class="mec-month-side" id="mec_month_side_' + settings.id + '_' + response.current_month.id + '">' + response.events_side + '</div>');
1000
1001                        // Re-initialize Month Navigator
1002                        initMonthNavigator();
1003
1004                        // Set onclick Listeners
1005                        setListeners();
1006
1007                        if (!do_in_background) {
1008                            // Toggle Month
1009                            toggleMonth(response.current_month.id);
1010
1011                            // Remove loading Class
1012                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1013
1014
1015                            // Set Month Filter values in search widget
1016                            $("#mec_sf_month_" + settings.id).val(month);
1017                            $("#mec_sf_year_" + settings.id).val(year);
1018                        } else {
1019                            $("#mec_monthly_view_month_" + settings.id + "_" + response.current_month.id).hide();
1020                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
1021                            $("#mec_month_side_" + settings.id + "_" + response.current_month.id).hide();
1022                        }
1023                        if (typeof custom_month !== undefined) var custom_month;
1024                        if (typeof custom_month != undefined) {
1025                            if (custom_month == 'true') {
1026                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
1027                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
1028                                $('.mec-calendar-day').unbind('click');
1029                            }
1030                        }
1031
1032                        jQuery(document).trigger('load_calendar_data');
1033
1034                    },
1035                    error: function () { }
1036                });
1037            }
1038        }
1039
1040        function toggleMonth(month_id) {
1041            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
1042            var active_day = $("#mec_monthly_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
1043
1044            if (active_day <= 9) active_day = "0" + active_day;
1045
1046            // Toggle Month Navigator
1047            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
1048            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
1049
1050            // Toggle Month
1051            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
1052            $("#mec_monthly_view_month_" + settings.id + "_" + month_id).show();
1053
1054            // Add selected class
1055            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
1056            $("#mec_monthly_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
1057
1058            // Toggle Events Side
1059            $("#mec_skin_" + settings.id + " .mec-month-side").hide();
1060            $("#mec_month_side_" + settings.id + "_" + month_id).show();
1061        }
1062
1063        var sf;
1064
1065        function setListeners() {
1066            // Remove the onclick event
1067            $("#mec_skin_" + settings.id + " .mec-has-event").off("click");
1068
1069            // Add the onclick event
1070            $("#mec_skin_" + settings.id + " .mec-has-event").on('click', function (e) {
1071                // define variables
1072                var $this = $(this),
1073                    data_mec_cell = $this.data('mec-cell'),
1074                    month_id = $this.data('month');
1075
1076                if (settings.display_all == 0) {
1077                    e.preventDefault();
1078
1079                    $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
1080                    $this.addClass('mec-selected-day');
1081
1082                    $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
1083                    $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
1084
1085                    $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
1086                    $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
1087                }
1088                else {
1089                    $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
1090                    $this.addClass('mec-selected-day');
1091                }
1092            });
1093
1094            mec_tooltip();
1095
1096            // Single Event Method
1097            if (settings.sed_method != '0') {
1098                sed();
1099            }
1100
1101            if (settings.style == 'novel') {
1102                if ($('.mec-single-event-novel').length > 0) {
1103                    $('.mec-single-event-novel').colourBrightness();
1104                    $('.mec-single-event-novel').each(function () {
1105                        $(this).colourBrightness()
1106                    });
1107                }
1108            }
1109        }
1110
1111        function sed() {
1112            // Single Event Display
1113            $("#mec_skin_" + settings.id + " .mec-event-title a,#mec_skin_" + settings.id + " .event-single-link-novel,#mec_skin_" + settings.id + " .mec-monthly-tooltip").off('click').on('click', function (e) {
1114                var sed_method = $(this).attr('target');
1115                if ('_blank' === sed_method) {
1116
1117                    return;
1118                }
1119                e.preventDefault();
1120                var href = $(this).attr('href');
1121
1122                var id = $(this).data('event-id');
1123                var occurrence = get_parameter_by_name('occurrence', href);
1124                var time = get_parameter_by_name('time', href);
1125
1126                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1127            });
1128
1129        }
1130
1131        function mec_tooltip() {
1132            if ($('.mec-monthly-tooltip').length >= 1) {
1133                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) > 768) {
1134                    $('.mec-monthly-tooltip').tooltipster({
1135                        theme: 'tooltipster-shadow',
1136                        interactive: true,
1137                        delay: 100,
1138                        minWidth: 350,
1139                        maxWidth: 350
1140                    });
1141                    if (settings.sed_method != '0') {
1142                        sed();
1143                    }
1144                } else {
1145                    var touchtime = 0;
1146                    $(".mec-monthly-tooltip").on("click", function (event) {
1147                        event.preventDefault();
1148                        if (touchtime == 0) {
1149                            $('.mec-monthly-tooltip').tooltipster({
1150                                theme: 'tooltipster-shadow',
1151                                interactive: true,
1152                                delay: 100,
1153                                minWidth: 350,
1154                                maxWidth: 350,
1155                                trigger: "custom",
1156                                triggerOpen: {
1157                                    click: true,
1158                                    tap: true
1159                                },
1160                                triggerClose: {
1161                                    click: true,
1162                                    tap: true
1163                                }
1164                            });
1165                            touchtime = new Date().getTime();
1166                        } else {
1167                            if (((new Date().getTime()) - touchtime) < 200) {
1168                                var el = $(this);
1169                                var link = el.attr("href");
1170                                window.location = link;
1171                                touchtime = 0;
1172                            } else {
1173                                touchtime = new Date().getTime();
1174                            }
1175                        }
1176                    });
1177                }
1178            }
1179        }
1180    };
1181
1182}(jQuery));
1183
1184// MEC WEEKLY VIEW PLUGIN
1185(function ($) {
1186    $.fn.mecWeeklyView = function (options) {
1187        var active_year;
1188        var active_month;
1189        var active_week;
1190        var active_week_number;
1191
1192        // Default Options
1193        var settings = $.extend({
1194            // These are the defaults.
1195            today: null,
1196            week: 1,
1197            id: 0,
1198            current_year: null,
1199            current_month: null,
1200            changeWeekElement: '.mec-load-week',
1201            month_navigator: 0,
1202            atts: '',
1203            ajax_url: '',
1204            sf: {}
1205        }, options);
1206
1207        // Set Active Time
1208        active_year = settings.current_year;
1209        active_month = settings.current_month;
1210
1211        // Search Widget
1212        if (settings.sf.container !== '') {
1213            $(settings.sf.container).mecSearchForm({
1214                id: settings.id,
1215                refine: settings.sf.refine,
1216                ajax_url: settings.ajax_url,
1217                atts: settings.atts,
1218                callback: function (atts) {
1219                    settings.atts = atts;
1220                    search(active_year, active_month, active_week);
1221                }
1222            });
1223        }
1224
1225        // Set The Week
1226        setThisWeek(settings.month_id + settings.week);
1227
1228        // Set Listeners
1229        setListeners();
1230
1231        // Initialize Month Navigator
1232        if (settings.month_navigator) initMonthNavigator(settings.month_id);
1233
1234        function setListeners() {
1235            $(settings.changeWeekElement).off('click').on('click', function (e) {
1236                var week = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-id');
1237                var max_weeks = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('max-weeks');
1238                var new_week_number = active_week_number;
1239
1240                if ($(this).hasClass('mec-previous-month')) {
1241                    week = parseInt(week) - 1;
1242                    new_week_number--;
1243                } else {
1244                    week = parseInt(week) + 1;
1245                    new_week_number++;
1246                }
1247
1248                if (new_week_number <= 1 || new_week_number >= max_weeks) {
1249                    // Disable Next/Previous Button
1250                    $(this).css({
1251                        'opacity': .6,
1252                        'cursor': 'default'
1253                    });
1254                    $(this).find('i').css({
1255                        'opacity': .6,
1256                        'cursor': 'default'
1257                    });
1258                } else {
1259                    // Enable Next/Previous Buttons
1260                    $('#mec_skin_' + settings.id + ' .mec-load-week, #mec_skin_' + settings.id + ' .mec-load-week i').css({
1261                        'opacity': 1,
1262                        'cursor': 'pointer'
1263                    });
1264                }
1265
1266                // Week is not in valid range
1267                if (new_week_number === 0 || new_week_number > max_weeks) { } else {
1268                    setThisWeek(week);
1269                }
1270            });
1271
1272            // Single Event Method
1273            if (settings.sed_method != '0') {
1274                sed();
1275            }
1276        }
1277
1278        function setThisWeek(week, auto_focus) {
1279            if (typeof auto_focus === 'undefined') auto_focus = false;
1280
1281            // Week is not exists
1282            if (!$('#mec_weekly_view_week_' + settings.id + '_' + week).length) {
1283                return setThisWeek((parseInt(week) - 1));
1284            }
1285
1286            // Set week to active in week list
1287            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week').removeClass('mec-weekly-view-week-active');
1288            $('#mec_weekly_view_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
1289            $('#mec_weekly_view_top_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
1290
1291            // Show related events
1292            $('#mec_skin_' + settings.id + ' .mec-weekly-view-date-events').addClass('mec-util-hidden');
1293            $('.mec-weekly-view-week-' + settings.id + '-' + week).removeClass('mec-util-hidden');
1294            $('#mec_skin_' + settings.id + ' .mec-calendar-row').addClass('mec-util-hidden');
1295            $('#mec_skin_' + settings.id + ' .mec-calendar-row[data-week=' + week % 10 + ']').removeClass('mec-util-hidden');
1296
1297            active_week = week;
1298            active_week_number = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-number');
1299
1300            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').find('span').remove();
1301            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').append('<span>' + active_week_number + '</span>');
1302
1303            if (active_week_number === 1) {
1304                // Disable Previous Button
1305                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').css({
1306                    'opacity': .6,
1307                    'cursor': 'default'
1308                });
1309                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').find('i').css({
1310                    'opacity': .6,
1311                    'cursor': 'default'
1312                });
1313            }
1314
1315            // Go To Event Week
1316            if (auto_focus) mec_focus_week(settings.id);
1317
1318            mecFluentCustomScrollbar();
1319        }
1320
1321        function initMonthNavigator(month_id) {
1322            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click');
1323            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').on('click', function () {
1324                var year = $(this).data('mec-year');
1325                var month = $(this).data('mec-month');
1326
1327                setMonth(year, month, active_week, true);
1328            });
1329        }
1330
1331        function search(year, month, week, navigation_click) {
1332            var week_number = (String(week).slice(-1));
1333
1334            // Add Loading Class
1335            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1336            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1337
1338            $.ajax({
1339                url: settings.ajax_url,
1340                data: "action=mec_weekly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=1",
1341                dataType: "json",
1342                type: "post",
1343                success: function (response) {
1344                    // Remove Loading Class
1345                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1346
1347                    // Append Month
1348                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_weekly_view_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1349
1350                    // Append Month Navigator
1351                    $("#mec_skin_" + settings.id + " .mec-skin-weekly-view-month-navigator-container").html('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1352
1353                    // Set Listeners
1354                    setListeners();
1355
1356                    // Toggle Month
1357                    toggleMonth(response.current_month.id);
1358
1359                    // Set active week
1360                    setThisWeek(response.week_id, true);
1361                    mecFluentCustomScrollbar();
1362                },
1363                error: function () { }
1364            });
1365        }
1366
1367        function setMonth(year, month, week, navigation_click) {
1368            var month_id = '' + year + month;
1369            var week_number = (String(week).slice(-1));
1370
1371            active_month = month;
1372            active_year = year;
1373            navigation_click = navigation_click || false;
1374
1375            // Month exists so we just show it
1376            if ($("#mec_weekly_view_month_" + settings.id + "_" + month_id).length) {
1377                // Toggle Month
1378                toggleMonth(month_id);
1379
1380                // Set active week
1381                setThisWeek('' + month_id + week_number);
1382                mecFluentCustomScrollbar();
1383            } else {
1384                // Add Loading Class
1385                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1386                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1387
1388                $.ajax({
1389                    url: settings.ajax_url,
1390                    data: "action=mec_weekly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigation_click,
1391                    dataType: "json",
1392                    type: "post",
1393                    success: function (response) {
1394                        // Remove Loading Class
1395                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1396
1397                        $('#mec_skin_' + settings.id + ' .mec-calendar-d-top h3').after(response.topWeeks);
1398
1399                        // Append Month
1400                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_weekly_view_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1401
1402                        // Append Month Navigator
1403                        $("#mec_skin_" + settings.id + " .mec-skin-weekly-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1404
1405                        // Set Listeners
1406                        setListeners();
1407
1408                        // Toggle Month
1409                        toggleMonth(response.current_month.id);
1410
1411                        // Set active week
1412                        setThisWeek(response.week_id, true);
1413
1414                        // Set Month Filter values in search widget
1415                        $("#mec_sf_month_" + settings.id).val(month);
1416                        $("#mec_sf_year_" + settings.id).val(year);
1417                        mecFluentCustomScrollbar();
1418                    },
1419                    error: function () { }
1420                });
1421            }
1422        }
1423
1424        function toggleMonth(month_id) {
1425            // Show related events
1426            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
1427            $('#mec_weekly_view_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1428
1429            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
1430            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1431
1432            // Initialize Month Navigator
1433            if (settings.month_navigator) initMonthNavigator(month_id);
1434        }
1435
1436        function sed() {
1437            // Single Event Display
1438            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
1439                var sed_method = $(this).attr('target');
1440                if ('_blank' === sed_method) {
1441
1442                    return;
1443                }
1444                e.preventDefault();
1445                var href = $(this).attr('href');
1446
1447                var id = $(this).data('event-id');
1448                var occurrence = get_parameter_by_name('occurrence', href);
1449                var time = get_parameter_by_name('time', href);
1450
1451                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1452            });
1453        }
1454    };
1455
1456}(jQuery));
1457
1458// MEC DAILY VIEW PLUGIN
1459(function ($) {
1460    $.fn.mecDailyView = function (options) {
1461        var active_month;
1462        var active_year;
1463        var active_day;
1464
1465        // Default Options
1466        var settings = $.extend({
1467            // These are the defaults.
1468            today: null,
1469            id: 0,
1470            changeDayElement: '.mec-daily-view-day',
1471            events_label: 'Events',
1472            event_label: 'Event',
1473            month_navigator: 0,
1474            atts: '',
1475            ajax_url: '',
1476            sf: {},
1477        }, options);
1478
1479        active_month = settings.month;
1480        active_year = settings.year;
1481        active_day = settings.day;
1482
1483        mecFluentCustomScrollbar();
1484
1485        // Set Today
1486        setToday(settings.today);
1487
1488        // Set Listeners
1489        setListeners();
1490
1491        // Initialize Month Navigator
1492        if (settings.month_navigator) initMonthNavigator(settings.month_i
1492d);
1493
1494        // Initialize Days Slider
1495        initDaysSlider(settings.month_id);
1496
1497        // Slider first event day focus when page load.
1498        mecFocusDay(settings);
1499
1500        // Search Widget
1501        if (settings.sf.container !== '') {
1502            $(settings.sf.container).mecSearchForm({
1503                id: settings.id,
1504                refine: settings.sf.refine,
1505                ajax_url: settings.ajax_url,
1506                atts: settings.atts,
1507                callback: function (atts) {
1508                    settings.atts = atts;
1509                    search(active_year, active_month, active_day);
1510                }
1511            });
1512        }
1513
1514        function setListeners() {
1515            $(settings.changeDayElement).on('click', function () {
1516                var today = $(this).data('day-id');
1517                setToday(today);
1518                mecFluentCustomScrollbar();
1519            });
1520
1521            // Single Event Method
1522            if (settings.sed_method != '0') {
1523                sed();
1524            }
1525        }
1526
1527        var current_monthday;
1528
1529        function setToday(today) {
1530            // For caring about 31st, 30th and 29th of some months
1531            if (!$('#mec_daily_view_day' + settings.id + '_' + today).length) {
1532                setToday(parseInt(today) - 1);
1533                return false;
1534            }
1535
1536            // Set day to active in day list
1537            $('.mec-daily-view-day').removeClass('mec-daily-view-day-active mec-color');
1538            $('#mec_daily_view_day' + settings.id + '_' + today).addClass('mec-daily-view-day-active mec-color');
1539
1540            // Show related events
1541            $('.mec-daily-view-date-events').addClass('mec-util-hidden');
1542            $('#mec_daily_view_date_events' + settings.id + '_' + today).removeClass('mec-util-hidden');
1543            $('.mec-daily-view-events').addClass('mec-util-hidden');
1544            $('#mec-daily-view-events' + settings.id + '_' + today).removeClass('mec-util-hidden');
1545
1546            // Set today label
1547            var weekday = $('#mec_daily_view_day' + settings.id + '_' + today).data('day-weekday');
1548            var monthday = $('#mec_daily_view_day' + settings.id + '_' + today).data('day-monthday');
1549            var count = $('#mec_daily_view_day' + settings.id + '_' + today).data('events-count');
1550            var month_id = $('#mec_daily_view_day' + settings.id + '_' + today).data('month-id');
1551
1552            $('#mec_today_container' + settings.id + '_' + month_id).html('<h2>' + monthday + '</h2><h3>' + weekday + '</h3><div class="mec-today-count">' + count + ' ' + (count > 1 ? settings.events_label : settings.event_label) + '</div>');
1553
1554            if (monthday <= 9) current_monthday = '0' + monthday;
1555            else current_monthday = monthday;
1556        }
1557
1558        function initMonthNavigator(month_id) {
1559            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click');
1560            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').on('click', function () {
1561                var year = $(this).data('mec-year');
1562                var month = $(this).data('mec-month');
1563
1564                setMonth(year, month, current_monthday, true);
1565            });
1566        }
1567
1568        function initDaysSlider(month_id, day_id) {
1569            // Set Global Month Id
1570            mec_g_month_id = month_id;
1571
1572            // Check RTL website
1573            var owl_rtl = $('body').hasClass('rtl') ? true : false;
1574
1575            // Init Days slider
1576            var owl = $("#mec-owl-calendar-d-table-" + settings.id + "-" + month_id);
1577            owl.owlCarousel({
1578                responsiveClass: true,
1579                responsive: {
1580                    0: {
1581                        items: owl.closest('.mec-fluent-wrap').length > 0 ? 3 : 2,
1582                    },
1583                    479: {
1584                        items: 4,
1585                    },
1586                    767: {
1587                        items: 7,
1588                    },
1589                    960: {
1590                        items: 14,
1591                    },
1592                    1000: {
1593                        items: 19,
1594                    },
1595                    1200: {
1596                        items: 22,
1597                    }
1598                },
1599                dots: false,
1600                loop: false,
1601                rtl: owl_rtl,
1602            });
1603
1604            // Custom Navigation Events
1605            $("#mec_daily_view_month_" + settings.id + "_" + month_id + " .mec-table-d-next").click(function (e) {
1606                e.preventDefault();
1607                owl.trigger('next.owl.carousel');
1608            });
1609
1610            $("#mec_daily_view_month_" + settings.id + "_" + month_id + " .mec-table-d-prev").click(function (e) {
1611                e.preventDefault();
1612                owl.trigger('prev.owl.carousel');
1613            });
1614
1615            if (typeof day_id === 'undefined') day_id = $('.mec-daily-view-day-active').data('day-id');
1616
1617            var today_str = day_id.toString().substring(6, 8);
1618            var today_int = parseInt(today_str);
1619
1620            owl.trigger('owl.goTo', [today_int]);
1621        }
1622
1623        function search(year, month, day) {
1624            // Add Loading Class
1625            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1626            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1627
1628            $.ajax({
1629                url: settings.ajax_url,
1630                data: "action=mec_daily_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_day=" + day + "&" + settings.atts + "&apply_sf_date=1",
1631                dataType: "json",
1632                type: "post",
1633                success: function (response) {
1634                    // Remove Loading Class
1635                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1636
1637                    // Append Month
1638                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_daily_view_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1639
1640                    // Append Month Navigator
1641                    $("#mec_skin_" + settings.id + " .mec-calendar-a-month.mec-clear").html('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1642
1643                    // Set Listeners
1644                    setListeners();
1645
1646                    active_year = response.current_month.year;
1647                    active_month = response.current_month.month;
1648
1649                    // Toggle Month
1650                    toggleMonth(response.current_month.id, '' + active_year + active_month + active_day);
1651
1652                    // Set Today
1653                    setToday('' + active_year + active_month + active_day);
1654
1655                    // Focus First Active Day
1656                    mecFocusDay(settings);
1657                    mecFluentCustomScrollbar();
1658                },
1659                error: function () { }
1660            });
1661        }
1662
1663        function setMonth(year, month, day, navigation_click) {
1664            var month_id = '' + year + month;
1665
1666            active_month = month;
1667            active_year = year;
1668            active_day = day;
1669            navigation_click = navigation_click || false;
1670
1671            // Month exists so we just show it
1672            if ($("#mec_daily_view_month_" + settings.id + "_" + month_id).length) {
1673                // Toggle Month
1674                toggleMonth(month_id);
1675
1676                // Set Today
1677                setToday('' + month_id + day);
1678            } else {
1679                // Add Loading Class
1680                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1681                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1682
1683                $.ajax({
1684                    url: settings.ajax_url,
1685                    data: "action=mec_daily_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_day=" + day + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigation_click,
1686                    dataType: "json",
1687                    type: "post",
1688                    success: function (response) {
1689                        // Remove Loading Class
1690                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1691
1692                        // Append Month
1693                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_daily_view_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1694
1695                        // Append Month Navigator
1696                        $("#mec_skin_" + settings.id + " .mec-calendar-a-month.mec-clear").append('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1697
1698                        // Set Listeners
1699                        setListeners();
1700
1701                        // Toggle Month
1702                        toggleMonth(response.current_month.id, '' + year + month + '01');
1703
1704                        // Set Today
1705                        setToday('' + year + month + '01');
1706
1707                        // Set Month Filter values in search widget
1708                        $("#mec_sf_month_" + settings.id).val(month);
1709                        $("#mec_sf_year_" + settings.id).val(year);
1710                        mecFluentCustomScrollbar();
1711                    },
1712                    error: function () { }
1713                });
1714            }
1715        }
1716
1717        function toggleMonth(month_id, day_id) {
1718            // Show related events
1719            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
1720            $('#mec_daily_view_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1721
1722            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
1723            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1724
1725            // Initialize Month Navigator
1726            if (settings.month_navigator) initMonthNavigator(month_id);
1727
1728            // Initialize Days Slider
1729            initDaysSlider(month_id, day_id);
1730
1731            // Focus First Active Day
1732            mecFocusDay(settings);
1733        }
1734
1735        function sed() {
1736            // Single Event Display
1737            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
1738                var sed_method = $(this).attr('target');
1739                if ('_blank' === sed_method) {
1740
1741                    return;
1742                }
1743                e.preventDefault();
1744                var href = $(this).attr('href');
1745
1746                var id = $(this).data('event-id');
1747                var occurrence = get_parameter_by_name('occurrence', href);
1748                var time = get_parameter_by_name('time', href);
1749
1750                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1751            });
1752        }
1753    };
1754
1755}(jQuery));
1756
1757// MEC TIMETABLE PLUGIN
1758(function ($) {
1759    $.fn.mecTimeTable = function (options) {
1760        var active_year;
1761        var active_month;
1762        var active_week;
1763        var active_week_number;
1764        var active_day;
1765
1766        // Default Options
1767        var settings = $.extend({
1768            // These are the defaults.
1769            today: null,
1770            week: 1,
1771            active_day: 1,
1772            id: 0,
1773            changeWeekElement: '.mec-load-week',
1774            month_navigator: 0,
1775            atts: '',
1776            ajax_url: '',
1777            sf: {}
1778        }, options);
1779
1780        // Search Widget
1781        if (settings.sf.container !== '') {
1782            $(settings.sf.container).mecSearchForm({
1783                id: settings.id,
1784                refine: settings.sf.refine,
1785                ajax_url: settings.ajax_url,
1786                atts: settings.atts,
1787                callback: function (atts) {
1788                    settings.atts = atts;
1789                    search(active_year, active_month, active_week, active_day);
1790                }
1791            });
1792        }
1793
1794        // Set The Week
1795        setThisWeek(settings.month_id + settings.week, settings.active_day);
1796
1797        // Set Listeners
1798        setListeners();
1799
1800        // Initialize Month Navigator
1801        if (settings.month_navigator) initMonthNavigator(settings.month_id);
1802
1803        function setListeners() {
1804            // Change Week Listener
1805            $(settings.changeWeekElement).off('click').on('click', function () {
1806                var week = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-id');
1807                var max_weeks = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('max-weeks');
1808                var new_week_number = active_week_number;
1809
1810                if ($(this).hasClass('mec-previous-month')) {
1811                    week = parseInt(week) - 1;
1812                    new_week_number--;
1813                } else {
1814                    week = parseInt(week) + 1;
1815                    new_week_number++;
1816                }
1817
1818                if (new_week_number <= 1 || new_week_number >= max_weeks) {
1819                    // Disable Next/Previous Button
1820                    $(this).css({
1821                        'opacity': .6,
1822                        'cursor': 'default'
1823                    });
1824                    $(this).find('i').css({
1825                        'opacity': .6,
1826                        'cursor': 'default'
1827                    });
1828                } else {
1829                    // Enable Next/Previous Buttons
1830                    $('#mec_skin_' + settings.id + ' .mec-load-week, #mec_skin_' + settings.id + ' .mec-load-week i').css({
1831                        'opacity': 1,
1832                        'cursor': 'pointer'
1833                    });
1834                }
1835
1836                // Week is not in valid range
1837                if (new_week_number === 0 || new_week_number > max_weeks) { } else {
1838                    setThisWeek(week);
1839                }
1840            });
1841
1842            // Change Day Listener
1843            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week dt').not('.mec-timetable-has-no-event').off('click').on('click', function () {
1844                var day = $(this).data('date-id');
1845                setDay(day);
1846            });
1847
1848            // Single Event Method
1849            if (settings.sed_method != '0') {
1850                sed();
1851            }
1852        }
1853
1854        function setThisWeek(week, day) {
1855            // Week is not exists
1856            if (!$('#mec_weekly_view_week_' + settings.id + '_' + week).length) {
1857                return setThisWeek((parseInt(week) - 1), day);
1858            }
1859
1860            // Set week to active in week list
1861            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week').removeClass('mec-weekly-view-week-active');
1862            $('#mec_weekly_view_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
1863
1864            setDay(day);
1865
1866            active_week = week;
1867            active_week_number = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-number');
1868
1869            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').find('span').remove();
1870            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').append('<span>' + active_week_number + '</span>');
1871
1872            if (active_week_number === 1) {
1873                // Disable Previous Button
1874                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').css({
1875                    'opacity': .6,
1876                    'cursor': 'default'
1877                });
1878                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').find('i').css({
1879                    'opacity': .6,
1880                    'cursor': 'default'
1881                });
1882            }
1883        }
1884
1885        function setDay(day) {
1886            // Find the date automatically
1887            if (typeof day === 'undefined') {
1888                day = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active dt').not('.mec-timetable-has-no-event').first().data('date-id');
1889            }
1890
1891            // Activate the date element
1892            $('#mec_skin_' + settings.id + ' dt').removeClass('mec-timetable-day-active');
1893            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active dt[data-date-id="' + day + '"]').addClass('mec-timetable-day-active');
1894
1895            // Show related events
1896            $('#mec_skin_' + settings.id + ' .mec-weekly-view-date-events').addClass('mec-util-hidden');
1897            $('.mec_weekly_view_date_events' + settings.id + '_' + day).removeClass('mec-util-hidden').show();
1898        }
1899
1900        function initMonthNavigator(month_id) {
1901            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click').on('click', function () {
1902                var year = $(this).data('mec-year');
1903                var month = $(this).data('mec-month');
1904
1905                setMonth(year, month, active_week);
1906            });
1907        }
1908
1909        function search(year, month, week) {
1910            var week_number = (String(week).slice(-1));
1911
1912            // Add Loading Class
1913            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1914            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1915
1916            // Set MEC Year And Month If Undefined
1917            year = typeof year == 'undefined' ? '' : year;
1918            month = typeof month == 'undefined' ? '' : month;
1919
1920            // Append current week to data body for used after filter.
1921            $('body').data('currentweek', $("#mec_skin_events_" + settings.id).find('.mec-current-week > span').html());
1922
1923            $.ajax({
1924                url: settings.ajax_url,
1925                data: "action=mec_timetable_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=1",
1926                dataType: "json",
1927                type: "post",
1928                success: function (response) {
1929                    // Remove Loading Class
1930                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1931
1932                    // Append Month
1933                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_timetable_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1934
1935                    // Append Month Navigator
1936                    $("#mec_skin_" + settings.id + " .mec-skin-weekly-view-month-navigator-container").html('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1937
1938                    // Set Listeners
1939                    setListeners();
1940
1941                    // Toggle Month
1942                    toggleMonth(response.current_month.id);
1943
1944                    // Set active week
1945                    setThisWeek(response.week_id);
1946
1947                    // Focus First Active Week
1948                    mec_focus_week(settings.id, 'timetable');
1949
1950                    mecFluentCustomScrollbar();
1951                },
1952                error: function () { }
1953            });
1954        }
1955
1956        function setMonth(year, month, week) {
1957            var month_id = '' + year + month;
1958            var week_number = (String(week).slice(-1));
1959
1960            active_month = month;
1961            active_year = year;
1962
1963            // Month exists so we just show it
1964            if ($("#mec_timetable_month_" + settings.id + "_" + month_id).length) {
1965                // Toggle Month
1966                toggleMonth(month_id);
1967
1968                // Set active week
1969                setThisWeek('' + month_id + week_number);
1970            } else {
1971                // Add Loading Class
1972                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1973                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1974
1975                $.ajax({
1976                    url: settings.ajax_url,
1977                    data: "action=mec_timetable_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=0",
1978                    dataType: "json",
1979                    type: "post",
1980                    success: function (response) {
1981                        // Remove Loading Class
1982                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1983
1984                        // Append Month
1985                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_timetable_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1986
1987                        // Append Month Navigator
1988                        $("#mec_skin_" + settings.id + " .mec-skin-weekly-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
1989
1990                        // Set Listeners
1991                        setListeners();
1992
1993                        // Toggle Month
1994                        toggleMonth(response.current_month.id);
1995
1996                        // Set active week
1997                        setThisWeek(response.week_id);
1998
1999                        // Set Month Filter values in search widget
2000                        $("#mec_sf_month_" + settings.id).val(month);
2001                        $("#mec_sf_year_" + settings.id).val(year);
2002                    },
2003                    error: function () { }
2004                });
2005            }
2006        }
2007
2008        function toggleMonth(month_id) {
2009            // Show related events
2010            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
2011            $('#mec_timetable_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
2012
2013            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
2014            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
2015
2016            // Initialize Month Navigator
2017            if (settings.month_navigator) initMonthNavigator(month_id);
2018        }
2019
2020        function sed() {
2021            // Single Event Display
2022            $("#mec_skin_" + settings.id + " .mec-timetable-event-title a").off('click').on('click', function (e) {
2023                e.preventDefault();
2024                var href = $(this).attr('href');
2025
2026                var id = $(this).data('event-id');
2027                var occurrence = get_parameter_by_name('occurrence', href);
2028                var time = get_parameter_by_name('time', href);
2029
2030                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2031            });
2032        }
2033    };
2034
2035}(jQuery));
2036
2037// MEC WEEKLY PROGRAM PLUGIN
2038(function ($) {
2039    $.fn.mecWeeklyProgram = function (options) {
2040        // Default Options
2041        var settings = $.extend({
2042            // These are the defaults.
2043            id: 0,
2044            atts: '',
2045            sf: {}
2046        }, options);
2047
2048        // Search Widget
2049        if (settings.sf.container !== '') {
2050            $(settings.sf.container).mecSearchForm({
2051                id: settings.id,
2052                refine: settings.sf.refine,
2053                ajax_url: settings.ajax_url,
2054                atts: settings.atts,
2055                callback: function (atts) {
2056                    settings.atts = atts;
2057                    search();
2058                }
2059            });
2060        }
2061
2062        // Set Listeners
2063        setListeners();
2064
2065        function setListeners() {
2066            // Single Event Method
2067            if (settings.sed_method != '0') {
2068                sed();
2069            }
2070        }
2071
2072        function search() {
2073            var $modal = $('.mec-modal-result');
2074
2075            // Add Loading Class
2076            if ($modal.length === 0) $('.mec-wrap').append('<div class="mec-modal-result"></div>');
2077            $modal.addClass('mec-month-navigator-loading');
2078
2079            $.ajax({
2080                url: settings.ajax_url,
2081                data: "action=mec_weeklyprogram_load&" + settings.atts + "&apply_sf_date=1",
2082                dataType: "json",
2083                type: "post",
2084                success: function (response) {
2085                    // Remove Loading Class
2086                    $modal.removeClass("mec-month-navigator-loading");
2087
2088                    // Append Month
2089                    $("#mec_skin_events_" + settings.id).html(response.date_events);
2090
2091                    // Set Listeners
2092                    setListeners();
2093                },
2094                error: function () { }
2095            });
2096        }
2097
2098        function sed() {
2099            // Single Event Display
2100            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
2101                var sed_method = $(this).attr('target');
2102                if ('_blank' === sed_method) {
2103
2104                    return;
2105                }
2106                e.preventDefault();
2107                var href = $(this).attr('href');
2108
2109                var id = $(this).data('event-id');
2110                var occurrence = get_parameter_by_name('occurrence', href);
2111                var time = get_parameter_by_name('time', href);
2112
2113                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2114            });
2115        }
2116    };
2117
2118}(jQuery));
2119
2120// MEC MASONRY VIEW PLUGIN
2121(function ($) {
2122    $.fn.mecMasonryView = function (options) {
2123        // Default Options
2124        var settings = $.extend({
2125            // These are the defaults.
2126            id: 0,
2127            atts: '',
2128            ajax_url: '',
2129            sf: {},
2130            end_date: '',
2131            offset: 0,
2132            start_date: '',
2133        }, options);
2134
2135        // Set onclick Listeners
2136        setListeners();
2137
2138        // Init Masonry
2139        initMasonry();
2140        if (typeof custom_dev !== undefined) var custom_dev;
2141        if (custom_dev == 'yes') {
2142            $(".mec-wrap").css("height", "1550");
2143            if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 768) {
2144                $(".mec-wrap").css("height", "5500");
2145            }
2146            if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 480) {
2147                $(".mec-wrap").css("height", "5000");
2148            }
2149            $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "none");
2150            $(".mec-load-more-button").on("click", function () {
2151                $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "block");
2152                $(".mec-wrap").css("height", "auto");
2153                initMasonry();
2154                $(".mec-load-more-button").hide();
2155            })
2156            $(".mec-events-masonry-cats a:first-child").on("click", function () {
2157                $(".mec-wrap").css("height", "auto");
2158                $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "block");
2159                $(".mec-load-more-button").hide();
2160                initMasonry();
2161            })
2162            $(".mec-events-masonry-cats a:not(:first-child)").on("click", function () {
2163                $(".mec-load-more-button").hide();
2164                $(".mec-wrap").css("height", "auto");
2165                $(".mec-wrap").css("min-height", "400");
2166                $(".mec-event-masonry .mec-masonry-item-wrap").css("display", "block");
2167                var element = document.querySelector("#mec_skin_" + settings.id + " .mec-event-masonry");
2168                var selector = $(this).attr('data-group');
2169                var CustomShuffle = new Shuffle(element, {
2170                    itemSelector: '.mec-masonry-item-wrap',
2171                });
2172                CustomShuffle.sort({
2173                    by: element.getAttribute('data-created'),
2174                });
2175                CustomShuffle.filter(selector != '*' ? selector : Shuffle.ALL_ITEMS);
2176                $(".mec-event-masonry .mec-masonry-item-wrap").css("visibility", "visible");
2177            })
2178        }
2179
2180        // Fix Elementor Masonry
2181        if (mecdata.elementor_edit_mode != 'no') elementorFrontend.hooks.addAction('frontend/element_ready/global', initMasonry());
2182
2183        function initMasonry() {
2184            var $container = $("#mec_skin_" + settings.id + " .mec-event-masonry");
2185            var data_sortAscending = $("#mec_skin_" + settings.id).data('sortascending');
2186            $container.imagesLoaded(function () {
2187                var $grid = $container.isotope({
2188                    filter: '*',
2189                    itemSelector: '.mec-masonry-item-wrap',
2190                    getSortData: {
2191                        date: '[data-sort-masonry]',
2192                    },
2193                    sortBy: 'date',
2194                    sortAscending: data_sortAscending,
2195                    animationOptions: {
2196                        duration: 750,
2197                        easing: 'linear',
2198                        queue: false
2199                    },
2200                });
2201                if (settings.fit_to_row == 1) $grid.isotope({
2202                    layoutMode: 'fitRows',
2203                    sortAscending: data_sortAscending,
2204                });
2205                // Fix Elementor tab
2206                $('.elementor-tabs').find('.elementor-tab-title').click(function () {
2207                    $grid.isotope({
2208                        sortBy: 'date',
2209                        sortAscending: data_sortAscending,
2210                    });
2211                });
2212            })
2213
2214            $("#mec_skin_" + settings.id + " .mec-events-masonry-cats a").click(function () {
2215                var selector = $(this).attr('data-filter');
2216                var $grid_cat = $container.isotope({
2217                    filter: selector,
2218                    itemSelector: '.mec-masonry-item-wrap',
2219                    getSortData: {
2220                        date: '[data-sort-masonry]',
2221                    },
2222                    sortBy: 'date',
2223                    sortAscending: data_sortAscending,
2224                    animationOptions: {
2225                        duration: 750,
2226                        easing: 'linear',
2227                        queue: false
2228                    },
2229                });
2230                if (settings.masonry_like_grid == 1) $grid_cat.isotope({
2231                    sortBy: 'date',
2232                    sortAscending: data_sortAscending,
2233                });
2234                return false;
2235            });
2236
2237            var $optionSets = $("#mec_skin_" + settings.id + " .mec-events-masonry-cats"),
2238                $optionLinks = $optionSets.find('a');
2239
2240            $optionLinks.click(function () {
2241                var $this = $(this);
2242
2243                // don't proceed if already selected
2244                if ($this.hasClass('selected')) return false;
2245
2246                var $optionSet = $this.parents('.mec-events-masonry-cats');
2247                $optionSet.find('.mec-masonry-cat-selected').removeClass('mec-masonry-cat-selected');
2248                $this.addClass('mec-masonry-cat-selected');
2249            });
2250        }
2251
2252        function setListeners() {
2253            if (settings.sed_method != '0') {
2254                sed();
2255            }
2256
2257        }
2258
2259        $("#mec_skin_" + settings.id + " .mec-events-masonry-cats > a").click(function () {
2260            var mec_load_more_btn = $("#mec_skin_" + settings.id + " .mec-load-more-button");
2261            var mec_filter_value = $(this).data('filter').replace('.mec-t', '');
2262
2263            if (mec_load_more_btn.hasClass('mec-load-more-loading')) mec_load_more_btn.removeClass('mec-load-more-loading');
2264            if (mec_load_more_btn.hasClass("mec-hidden-" + mec_filter_value)) mec_load_more_btn.addClass("mec-util-hidden");
2265            else mec_load_more_btn.removeClass("mec-util-hidden");
2266        });
2267
2268        $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2269            loadMore();
2270        });
2271
2272        function sed() {
2273            // Single Event Display
2274            $("#mec_skin_" + settings.id + " .mec-masonry-img a, #mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
2275                var sed_method = $(this).attr('target');
2276                if ('_blank' === sed_method) {
2277
2278                    return;
2279                }
2280                e.preventDefault();
2281                var href = $(this).attr('href');
2282
2283                var id = $(this).data('event-id');
2284                var occurrence = get_parameter_by_name('occurrence', href);
2285                var time = get_parameter_by_name('time', href);
2286
2287                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2288            });
2289        }
2290
2291        function loadMore() {
2292            // Add loading Class
2293            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2294            var mec_cat_elem = $('#mec_skin_' + settings.id).find('.mec-masonry-cat-selected');
2295            var mec_filter_value = (mec_cat_elem && mec_cat_elem.data('filter') != undefined) ? mec_cat_elem.data('filter').replace('.mec-t', '') : '';
2296            var mec_filter_by = $('#mec_skin_' + settings.id).data('filterby');
2297
2298            $.ajax({
2299                url: settings.ajax_url,
2300                data: "action=mec_masonry_load_more&mec_filter_by=" + mec_filter_by + "&mec_filter_value=" + mec_filter_value + "&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2301                dataType: "json",
2302                type: "post",
2303                success: function (response) {
2304                    if (response.count == "0") {
2305                        // Remove loading Class
2306                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2307
2308                        // Hide load more button
2309                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden mec-hidden-" + mec_filter_value);
2310                    } else {
2311                        // Show load more button
2312                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2313                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2314
2315                        // Append Items
2316                        var node = $("#mec_skin_" + settings.id + " .mec-event-masonry");
2317                        var markup = '',
2318                            newItems = $(response.html).find('.mec-masonry-item-wrap');
2319
2320                        newItems.each(function (index) {
2321                            node.isotope()
2322                                .append(newItems[index])
2323                                .isotope('appended', newItems[index]);
2324                        });
2325
2326                        // Remove loading Class
2327                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2328
2329                        // Update the variables
2330                        settings.end_date = response.end_date;
2331                        settings.offset = response.offset;
2332
2333                        // Single Event Method
2334                        if (settings.sed_method != '0') {
2335                            sed();
2336                        }
2337                    }
2338                },
2339                error: function () { }
2340            });
2341        }
2342    };
2343}(jQuery));
2344
2345// MEC LIST VIEW PLUGIN
2346(function ($) {
2347    $.fn.mecListView = function (options) {
2348        // Default Options
2349        var settings = $.extend({
2350            // These are the defaults.
2351            id: 0,
2352            atts: '',
2353            ajax_url: '',
2354            sf: {},
2355            current_month_divider: '',
2356            end_date: '',
2357            offset: 0,
2358            limit: 0
2359        }, options);
2360
2361        // Set onclick Listeners
2362        setListeners();
2363
2364        var sf;
2365
2366        function setListeners() {
2367            // Search Widget
2368            if (settings.sf.container !== '') {
2369                sf = $(settings.sf.container).mecSearchForm({
2370                    id: settings.id,
2371                    refine: settings.sf.refine,
2372                    ajax_url: settings.ajax_url,
2373                    atts: settings.atts,
2374                    callback: function (atts) {
2375                        settings.atts = atts;
2376                        search();
2377                    }
2378                });
2379            }
2380
2381            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2382                loadMore();
2383            });
2384
2385            // Accordion Toggle
2386            if (settings.style === 'accordion') {
2387                if (settings.toggle_month_divider) {
2388                    $('#mec_skin_' + settings.id + ' .mec-month-divider:first-of-type').addClass('active');
2389                    $('#mec_skin_' + settings.id + ' .mec-month-divider:first-of-type').find('i').removeClass('mec-sl-arrow-down').addClass('mec-sl-arrow-up');
2390
2391                    toggle();
2392                }
2393
2394                accordion();
2395            }
2396
2397            // Single Event Method
2398            if (settings.sed_method != '0') {
2399                sed();
2400            }
2401        }
2402
2403        function toggle() {
2404            $('#mec_skin_' + settings.id + ' .mec-month-divider').off("click").on("click", function (event) {
2405                event.preventDefault();
2406
2407                var status = $(this).hasClass('active');
2408
2409                // Remove Active Style of Month Divider
2410                $('#mec_skin_' + settings.id + ' .mec-month-divider').removeClass('active');
2411
2412                // Hide All Events
2413                $('#mec_skin_' + settings.id + ' .mec-divider-toggle').slideUp('fast');
2414
2415                if (status) {
2416                    $(this).removeClass('active');
2417                    $('.mec-month-divider').find('i').removeClass('mec-sl-arrow-up').addClass('mec-sl-arrow-down');
2418                } else {
2419                    $(this).addClass('active');
2420                    $('.mec-month-divider').find('i').removeClass('mec-sl-arrow-up').addClass('mec-sl-arrow-down')
2421                    $(this).find('i').removeClass('mec-sl-arrow-down').addClass('mec-sl-arrow-up');
2422
2423                    var month = $(this).data('toggle-divider');
2424                    $('#mec_skin_' + settings.id + ' .' + month).slideDown('fast');
2425                }
2426            });
2427        }
2428
2429        function toggleLoadmore() {
2430            $('#mec_skin_' + settings.id + ' .mec-month-divider:not(:last)').each(function () {
2431                if ($(this).hasClass('active')) $(this).removeClass('active');
2432                var month = $(this).data('toggle-divider');
2433                $('#mec_skin_' + settings.id + ' .' + month).slideUp('fast');
2434            });
2435
2436            // Set Active Class For Last Article
2437            $('#mec_skin_' + settings.id + ' .mec-month-divider:last').addClass('active');
2438
2439            // Register Listeners
2440            toggle();
2441        }
2442
2443        function accordion() {
2444            // Accordion Toggle
2445            $("#mec_skin_" + settings.id + " .mec-toggle-item-inner").off("click").on("click", function (event) {
2446                event.preventDefault();
2447
2448                var $this = $(this);
2449                $(this).parent().find(".mec-content-toggle").slideToggle("fast", function () {
2450                    $this.children("i").toggleClass("mec-sl-arrow-down mec-sl-arrow-up");
2451                });
2452
2453                // Trigger Google Map
2454                var unique_id = $(this).parent().find(".mec-modal-wrap").data('unique-id');
2455
2456                window['mec_init_gmap' + unique_id]();
2457            });
2458        }
2459
2460        function sed() {
2461            // Single Event Display
2462            $("#mec_skin_" + settings.id + " .mec-event-title > a, #mec_skin_" + settings.id + " .mec-booking-button, #mec_skin_" + settings.id + " .mec-detail-button").off('click').on('click', function (e) {
2463                e.preventDefault();
2464                var href = $(this).attr('href');
2465
2466                var id = $(this).data('event-id');
2467                var occurrence = get_parameter_by_name('occurrence', href);
2468                var time = get_parameter_by_name('time', href);
2469
2470                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2471            });
2472
2473            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2474                e.preventDefault();
2475                var href = $(this).parent().attr('href');
2476
2477                var id = $(this).parent().data('event-id');
2478                var occurrence = get_parameter_by_name('occurrence', href);
2479                var time = get_parameter_by_name('time', href);
2480
2481                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2482            });
2483        }
2484
2485        function loadMore() {
2486            // Add loading Class
2487            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2488
2489            $.ajax({
2490                url: settings.ajax_url,
2491                data: "action=mec_list_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&current_month_divider=" + settings.current_month_divider + "&apply_sf_date=0",
2492                dataType: "json",
2493                type: "post",
2494                success: function (response) {
2495                    if (response.count == '0') {
2496                        // Remove loading Class
2497                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2498
2499                        // Hide load more button
2500                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2501                    } else {
2502                        // Show load more button
2503                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2504                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2505
2506                        // Append Items
2507                        $("#mec_skin_events_" + settings.id).append(response.html);
2508
2509                        // Remove loading Class
2510                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2511
2512                        // Update the variables
2513                        settings.end_date = response.end_date;
2514                        settings.offset = response.offset;
2515                        settings.current_month_divider = response.current_month_divider;
2516
2517                        // Single Event Method
2518                        if (settings.sed_method != '0') {
2519                            sed();
2520                        }
2521
2522                        // Accordion Toggle
2523                        if (settings.style === 'accordion') {
2524                            if (settings.toggle_month_divider) toggleLoadmore();
2525
2526                            accordion();
2527                        }
2528                    }
2529                },
2530                error: function () { }
2531            });
2532        }
2533
2534        function search() {
2535            // Hide no event message
2536            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2537
2538            // Add loading Class
2539            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2540            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2541            jQuery("#gmap-data").val("");
2542
2543            $.ajax({
2544                url: settings.ajax_url,
2545                data: "action=mec_list_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=1",
2546                dataType: "json",
2547                type: "post",
2548                success: function (response) {
2549                    if (response.count == "0") {
2550                        // Append Items
2551                        $("#mec_skin_events_" + settings.id).html('');
2552
2553                        // Remove loading Class
2554                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2555
2556                        // Hide Map
2557                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2558
2559                        // Hide it
2560                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2561
2562                        // Show no event message
2563                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2564                    } else {
2565                        // Append Items
2566                        $("#mec_skin_events_" + settings.id).html(response.html);
2567
2568                        // Remove loading Class
2569                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2570
2571                        // Show Map
2572                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2573
2574                        // Show load more button
2575                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2576                        // Hide load more button
2577                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2578
2579                        // Update the variables
2580                        settings.end_date = response.end_date;
2581                        settings.offset = response.offset;
2582                        settings.current_month_divider = response.current_month_divider;
2583
2584                        // Single Event Method
2585                        if (settings.sed_method != '0') {
2586                            sed();
2587                        }
2588
2589                        // Accordion Toggle
2590                        if (settings.style === 'accordion') {
2591                            if (settings.toggle_month_divider) toggle();
2592
2593                            accordion();
2594                        }
2595                    }
2596                },
2597                error: function () { }
2598            });
2599        }
2600    };
2601
2602}(jQuery));
2603
2604// MEC GRID VIEW PLUGIN
2605(function ($) {
2606    $.fn.mecGridView = function (options) {
2607        // Default Options
2608        var settings = $.extend({
2609            // These are the defaults.
2610            id: 0,
2611            atts: '',
2612            ajax_url: '',
2613            sf: {},
2614            end_date: '',
2615            offset: 0,
2616            start_date: '',
2617        }, options);
2618
2619        // Set onclick Listeners
2620        setListeners();
2621
2622        var sf;
2623
2624        function setListeners() {
2625            // Search Widget
2626            if (settings.sf.container !== '') {
2627                sf = $(settings.sf.container).mecSearchForm({
2628                    id: settings.id,
2629                    refine: settings.sf.refine,
2630                    ajax_url: settings.ajax_url,
2631                    atts: settings.atts,
2632                    callback: function (atts) {
2633                        settings.atts = atts;
2634                        search();
2635                    }
2636                });
2637            }
2638
2639            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2640                loadMore();
2641            });
2642
2643            // Single Event Method
2644            if (settings.sed_method != '0') {
2645                sed();
2646            }
2647        }
2648
2649        function sed() {
2650            // Single Event Display
2651            $("#mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
2652                e.preventDefault();
2653                var href = $(this).attr('href');
2654
2655                var id = $(this).data('event-id');
2656                var occurrence = get_parameter_by_name('occurrence', href);
2657                var time = get_parameter_by_name('time', href);
2658
2659                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2660            });
2661            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2662                e.preventDefault();
2663                var href = $(this).parent().attr('href');
2664
2665                var id = $(this).parent().data('event-id');
2666                var occurrence = get_parameter_by_name('occurrence', href);
2667                var time = get_parameter_by_name('time', href);
2668
2669                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2670            });
2671        }
2672
2673        function loadMore() {
2674            // Add loading Class
2675            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2676
2677            $.ajax({
2678                url: settings.ajax_url,
2679                data: "action=mec_grid_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2680                dataType: "json",
2681                type: "post",
2682                success: function (response) {
2683                    if (response.count == "0") {
2684                        // Remove loading Class
2685                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2686
2687                        // Hide load more button
2688                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2689                    } else {
2690                        // Show load more button
2691                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2692                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2693
2694                        // Append Items
2695                        $("#mec_skin_events_" + settings.id).append(response.html);
2696
2697                        // Remove loading Class
2698                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2699
2700                        // Update the variables
2701                        settings.end_date = response.end_date;
2702                        settings.offset = response.offset;
2703
2704                        // Single Event Method
2705                        if (settings.sed_method != '0') {
2706                            sed();
2707                        }
2708                    }
2709                },
2710                error: function () { }
2711            });
2712        }
2713
2714        function search() {
2715            // Hide no event message
2716            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2717
2718            // Add loading Class
2719            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2720            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2721            jQuery("#gmap-data").val("");
2722
2723            $.ajax({
2724                url: settings.ajax_url,
2725                data: "action=mec_grid_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2726                dataType: "json",
2727                type: "post",
2728                success: function (response) {
2729                    if (response.count == "0") {
2730                        // Append Items
2731                        $("#mec_skin_events_" + settings.id).html('');
2732
2733                        // Remove loading Class
2734                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2735
2736                        // Hide Map
2737                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2738
2739                        // Hide it
2740                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2741
2742                        // Show no event message
2743                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2744                    } else {
2745                        // Append Items
2746                        $("#mec_skin_events_" + settings.id).html(response.html);
2747
2748                        // Remove loading Class
2749                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2750
2751                        // Show Map
2752                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2753
2754                        // Show load more button
2755                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2756                        // Hide load more button
2757                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2758
2759                        // Update the variables
2760                        settings.end_date = response.end_date;
2761                        settings.offset = response.offset;
2762
2763                        // Single Event Method
2764                        if (settings.sed_method != '0') {
2765                            sed();
2766                        }
2767                    }
2768                },
2769                error: function () { }
2770            });
2771        }
2772    };
2773
2774}(jQuery));
2775
2776// MEC CUSTOM VIEW PLUGIN
2777(function ($) {
2778    $.fn.mecCustomView = function (options) {
2779        // Default Options
2780        var settings = $.extend({
2781            // These are the defaults.
2782            id: 0,
2783            atts: '',
2784            ajax_url: '',
2785            sf: {},
2786            end_date: '',
2787            offset: 0,
2788            start_date: '',
2789        }, options);
2790
2791        // Set onclick Listeners
2792        setListeners();
2793
2794        var sf;
2795
2796        function setListeners() {
2797            // Search Widget
2798            if (settings.sf.container !== '') {
2799                sf = $(settings.sf.container).mecSearchForm({
2800                    id: settings.id,
2801                    refine: settings.sf.refine,
2802                    ajax_url: settings.ajax_url,
2803                    atts: settings.atts,
2804                    callback: function (atts) {
2805                        settings.atts = atts;
2806                        search();
2807                    }
2808                });
2809            }
2810
2811            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2812                loadMore();
2813            });
2814
2815            // Single Event Method
2816            if (settings.sed_method != '0') {
2817                sed();
2818            }
2819        }
2820
2821        function sed() {
2822            // Single Event Display
2823            $("#mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
2824                e.preventDefault();
2825                var href = $(this).attr('href');
2826
2827                var id = $(this).data('event-id');
2828                var occurrence = get_parameter_by_name('occurrence', href);
2829                var time = get_parameter_by_name('time', href);
2830
2831                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2832            });
2833            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2834                e.preventDefault();
2835                var href = $(this).parent().attr('href');
2836
2837                var id = $(this).parent().data('event-id');
2838                var occurrence = get_parameter_by_name('occurrence', href);
2839                var time = get_parameter_by_name('time', href);
2840
2841                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2842            });
2843        }
2844
2845        function loadMore() {
2846            // Add loading Class
2847            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2848
2849            $.ajax({
2850                url: settings.ajax_url,
2851                data: "action=mec_custom_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2852                dataType: "json",
2853                type: "post",
2854                success: function (response) {
2855                    if (response.count == "0") {
2856                        // Remove loading Class
2857                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2858
2859                        // Hide load more button
2860                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2861                    } else {
2862                        // Show load more button
2863                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2864                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2865
2866                        var html = $(response.html);
2867                        if ($('.mec-month-divider', html).length) {
2868                            var df = $('.mec-month-divider:first', html).data('toggle-divider');
2869                            var dl = $("#mec_skin_events_" + settings.id + " .mec-month-divider:last").data('toggle-divider');
2870
2871                            if (df == dl) {
2872                                $(html).find('.mec-month-divider:first').remove();
2873                                response.html = html;
2874                            }
2875
2876                        }
2877
2878                        // Append Items
2879                        $("#mec_skin_events_" + settings.id).append(response.html);
2880
2881                        // Remove loading Class
2882                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2883
2884                        // Update the variables
2885                        settings.end_date = response.end_date;
2886                        settings.offset = response.offset;
2887
2888                        if ($('.mec-event-sd-countdown').length > 0) {
2889                            $('.mec-event-sd-countdown').each(function (event) {
2890                                var dc = $(this).attr('data-date-custom');
2891                                $(this).mecCountDown(
2892                                    {
2893                                        date: dc,
2894                                        format: "off"
2895                                    },
2896                                    function () {
2897                                    });
2898                            })
2899                        }
2900                        // Single Event Method
2901                        if (settings.sed_method != '0') {
2902                            sed();
2903                        }
2904                    }
2905                },
2906                error: function () { }
2907            });
2908        }
2909
2910        function search() {
2911            // Hide no event message
2912            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2913
2914            // Add loading Class
2915            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2916            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2917            jQuery("#gmap-data").val("");
2918
2919            $.ajax({
2920                url: settings.ajax_url,
2921                data: "action=mec_custom_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2922                dataType: "json",
2923                type: "post",
2924                success: function (response) {
2925                    if (response.count == "0") {
2926                        // Append Items
2927                        $("#mec_skin_events_" + settings.id).html('');
2928
2929                        // Remove loading Class
2930                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2931
2932                        // Hide Map
2933                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2934
2935                        // Hide it
2936                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2937
2938                        // Show no event message
2939                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2940                    } else {
2941                        // Append Items
2942                        $("#mec_skin_events_" + settings.id).html(response.html);
2943
2944                        // Remove loading Class
2945                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2946
2947                        // Show Map
2948                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2949
2950                        // Show load more button
2951                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2952                        // Hide load more button
2953                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2954
2955                        // Update the variables
2956                        settings.end_date = response.end_date;
2957                        settings.offset = response.offset;
2958
2959                        // Single Event Method
2960                        if (settings.sed_method != '0') {
2961                            sed();
2962                        }
2963                    }
2964                },
2965                error: function () { }
2966            });
2967        }
2968    };
2969
2970}(jQuery));
2971
2972// MEC TIMELINE VIEW PLUGIN
2973(function ($) {
2974    $.fn.mecTimelineView = function (options) {
2975        // Default Options
2976        var settings = $.extend({
2977            // These are the defaults.
2978            id: 0,
2979            atts: '',
2980            ajax_url: '',
2981            sf: {},
2982            end_date: '',
2983            offset: 0,
2984            start_date: '',
2985        }, options);
2986
2987        // Set onclick Listeners
2988        setListeners();
2989
2990        var sf;
2991
2992        function setListeners() {
2993            // Search Widget
2994            if (settings.sf.container !== '') {
2995                sf = $(settings.sf.container).mecSearchForm({
2996                    id: settings.id,
2997                    refine: settings.sf.refine,
2998                    ajax_url: settings.ajax_url,
2999                    atts: settings.atts,
3000                    callback: function (atts) {
3001                        settings.atts = atts;
3002                        search();
3003                    }
3004                });
3005            }
3006
3007            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
3008                loadMore();
3009            });
3010
3011            // Single Event Method
3012            if (settings.sed_method != '0') {
3013                sed();
3014            }
3015        }
3016
3017        function sed() {
3018            // Single Event Display
3019            $("#mec_skin_" + settings.id + " .mec-timeline-event-image a, #mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
3020                e.preventDefault();
3021                var href = $(this).attr('href');
3022
3023                var id = $(this).data('event-id');
3024                var occurrence = get_parameter_by_name('occurrence', href);
3025                var time = get_parameter_by_name('time', href);
3026
3027                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3028            });
3029            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
3030                e.preventDefault();
3031                var href = $(this).parent().attr('href');
3032
3033                var id = $(this).parent().data('event-id');
3034                var occurrence = get_parameter_by_name('occurrence', href);
3035                var time = get_parameter_by_name('time', href);
3036
3037                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3038            });
3039        }
3040
3041        function loadMore() {
3042            // Add loading Class
3043            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
3044
3045            $.ajax({
3046                url: settings.ajax_url,
3047                data: "action=mec_timeline_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
3048                dataType: "json",
3049                type: "post",
3050                success: function (response) {
3051                    if (response.count == "0") {
3052                        // Remove loading Class
3053                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
3054
3055                        // Hide load more button
3056                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3057                    } else {
3058                        // Show load more button
3059                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3060                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3061
3062                        // Append Items
3063                        $("#mec_skin_events_" + settings.id).append(response.html);
3064
3065                        // Remove loading Class
3066                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
3067
3068                        // Update the variables
3069                        settings.end_date = response.end_date;
3070                        settings.offset = response.offset;
3071
3072                        // Single Event Method
3073                        if (settings.sed_method != '0') {
3074                            sed();
3075                        }
3076
3077                    }
3078                },
3079                error: function () { }
3080            });
3081        }
3082
3083        function search() {
3084            // Hide no event message
3085            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
3086
3087            // Add loading Class
3088            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3089            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3090
3091            $.ajax({
3092                url: settings.ajax_url,
3093                data: "action=mec_timeline_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
3094                dataType: "json",
3095                type: "post",
3096                success: function (response) {
3097                    if (response.count == "0") {
3098                        // Append Items
3099                        $("#mec_skin_events_" + settings.id).html('');
3100
3101                        // Remove loading Class
3102                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3103
3104                        // Hide Map
3105                        $('.mec-skin-map-container').addClass("mec-util-hidden");
3106
3107                        // Hide it
3108                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3109
3110                        // Show no event message
3111                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
3112                    } else {
3113                        // Append Items
3114                        $("#mec_skin_events_" + settings.id).html(response.html);
3115
3116                        // Remove loading Class
3117                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3118
3119                        // Show Map
3120                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
3121
3122                        // Show load more button
3123                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3124                        // Hide load more button
3125                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3126
3127                        // Update the variables
3128                        settings.end_date = response.end_date;
3129                        settings.offset = response.offset;
3130
3131                        // Single Event Method
3132                        if (settings.sed_method != '0') {
3133                            sed();
3134                        }
3135                    }
3136                },
3137                error: function () { }
3138            });
3139        }
3140    };
3141
3142}(jQuery));
3143
3144// MEC AGENDA VIEW PLUGIN
3145(function ($) {
3146    $.fn.mecAgendaView = function (options) {
3147        // Default Options
3148        var settings = $.extend({
3149            // These are the defaults.
3150            id: 0,
3151            atts: '',
3152            ajax_url: '',
3153            sf: {},
3154            current_month_divider: '',
3155            end_date: '',
3156            offset: 0,
3157        }, options);
3158
3159        // Set onclick Listeners
3160        setListeners();
3161
3162        var sf;
3163
3164        function setListeners() {
3165            // Search Widget
3166            if (settings.sf.container !== '') {
3167                sf = $(settings.sf.container).mecSearchForm({
3168                    id: settings.id,
3169                    refine: settings.sf.refine,
3170                    ajax_url: settings.ajax_url,
3171                    atts: settings.atts,
3172                    callback: function (atts) {
3173                        settings.atts = atts;
3174                        search();
3175                    }
3176                });
3177            }
3178
3179            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
3180                loadMore();
3181            });
3182
3183            // Single Event Method
3184            if (settings.sed_method != '0') {
3185                sed();
3186            }
3187        }
3188
3189        function sed() {
3190            // Single Event Display
3191            $("#mec_skin_" + settings.id + " .mec-agenda-event-title a").off('click').on('click', function (e) {
3192                var sed_method = $(this).attr('target');
3193                if ('_blank' === sed_method) {
3194
3195                    return;
3196                }
3197                e.preventDefault();
3198                var href = $(this).attr('href');
3199
3200                var id = $(this).data('event-id');
3201                var occurrence = get_parameter_by_name('occurrence', href);
3202                var time = get_parameter_by_name('time', href);
3203
3204                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3205            });
3206        }
3207
3208        function loadMore() {
3209            // Add loading Class
3210            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
3211
3212            $.ajax({
3213                url: settings.ajax_url,
3214                data: "action=mec_agenda_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&current_month_divider=" + settings.current_month_divider + "&apply_sf_date=0",
3215                dataType: "json",
3216                type: "post",
3217                success: function (response) {
3218                    if (response.count == "0") {
3219                        // Remove loading Class
3220                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
3221
3222                        // Hide load more button
3223                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3224                    } else {
3225                        // Show load more button
3226                        if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3227                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3228
3229                        // Append Items
3230                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").append(response.html);
3231
3232                        // Remove loading Class
3233                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
3234
3235                        // Update the variables
3236                        settings.end_date = response.end_date;
3237                        settings.offset = response.offset;
3238                        settings.current_month_divider = response.current_month_divider;
3239
3240                        // Single Event Method
3241                        if (settings.sed_method != '0') {
3242                            sed();
3243                        }
3244                        mecFluentCustomScrollbar();
3245                    }
3246                },
3247                error: function () { }
3248            });
3249        }
3250
3251        function search() {
3252            // Hide no event message
3253            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
3254
3255            // Add loading Class
3256            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3257            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3258            mecFluentCustomScrollbar();
3259
3260            $.ajax({
3261                url: settings.ajax_url,
3262                data: "action=mec_agenda_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=1",
3263                dataType: "json",
3264                type: "post",
3265                success: function (response) {
3266                    if (response.count == "0") {
3267                        // Append Items
3268                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html('');
3269
3270                        // Remove loading Class
3271                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3272
3273                        // Hide it
3274                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3275
3276                        // Show no event message
3277                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
3278                    } else {
3279                        // Append Items
3280                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html(response.html);
3281
3282                        // Remove loading Class
3283                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3284
3285                        // Show load more button
3286                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3287                        // Hide load more button
3288                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3289
3290                        // Update the variables
3291                        settings.end_date = response.end_date;
3292                        settings.offset = response.offset;
3293                        settings.current_month_divider = response.current_month_divider;
3294
3295                        // Single Event Method
3296                        if (settings.sed_method != '0') {
3297                            sed();
3298                        }
3299                    }
3300                    mecFluentCustomScrollbar();
3301                },
3302                error: function () { }
3303            });
3304        }
3305    };
3306}(jQuery));
3307
3308// MEC CAROUSEL VIEW PLUGIN
3309(function ($) {
3310    $.fn.mecCarouselView = function (options) {
3311        // Default Options
3312        var settings = $.extend({
3313            // These are the defaults.
3314            id: 0,
3315            atts: '',
3316            ajax_url: '',
3317            sf: {},
3318            items: 3,
3319            loop: true,
3320            autoplay_status: true,
3321            autoplay: '',
3322            style: 'type1',
3323            start_date: ''
3324        }, options);
3325
3326        // Init Sliders
3327        initSlider(settings);
3328
3329        // Single Event Method
3330        if (settings.sed_method != '0') {
3331            sed(settings);
3332        }
3333
3334        function initSlider(settings) {
3335            // Check RTL website
3336            if ($('body').hasClass('rtl')) {
3337                var owl_rtl = true;
3338            } else {
3339                var owl_rtl = false;
3340            }
3341
3342            if (settings.style === 'type1') {
3343                // Start carousel skin
3344                var owl = $("#mec_skin_" + settings.id + " .mec-event-carousel-type1 .mec-owl-carousel");
3345
3346                owl.owlCarousel({
3347                    autoplay: settings.autoplay_status,
3348                    autoplayTimeout: settings.autoplay, // Set AutoPlay to 3 seconds
3349                    loop: settings.loop,
3350                    items: settings.items,
3351                    responsiveClass: true,
3352                    responsive: {
3353                        0: {
3354                            items: 1,
3355                        },
3356                        979: {
3357                            items: 2,
3358                        },
3359                        1199: {
3360                            items: settings.count,
3361                        }
3362                    },
3363                    dots: true,
3364                    nav: false,
3365                    autoplayHoverPause: true,
3366                    rtl: owl_rtl,
3367                });
3368
3369                if (settings.autoplay_status) {
3370                    owl.bind(
3371                        "mouseleave",
3372                        function (event) {
3373                            $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3374                        }
3375                    );
3376                }
3377            } else if (settings.style === 'type4') {
3378                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3379                    autoplay: settings.autoplay_status,
3380                    loop: settings.loop,
3381                    autoplayTimeout: settings.autoplay,
3382                    items: settings.items,
3383                    dots: false,
3384                    nav: true,
3385                    responsiveClass: true,
3386                    responsive: {
3387                        0: {
3388                            items: 1,
3389                            stagePadding: 50,
3390                        },
3391                        979: {
3392                            items: 2,
3393                        },
3394                        1199: {
3395                            items: settings.count,
3396                        }
3397                    },
3398                    autoplayHoverPause: true,
3399                    navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3400                    rtl: owl_rtl,
3401                });
3402
3403                if (settings.autoplay_status) {
3404                    $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
3405                        "mouseleave",
3406                        function (event) {
3407                            $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3408                        }
3409                    );
3410                }
3411            } else {
3412                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3413                    autoplay: settings.autoplay_status,
3414                    loop: settings.loop,
3415                    autoplayTimeout: settings.autoplay,
3416                    items: settings.items,
3417                    dots: typeof settings.dots_navigation != 'undefined' ? settings.dots_navigation : false,
3418                    nav: typeof settings.navigation != 'undefined' ? settings.navigation : true,
3419                    responsiveClass: true,
3420                    responsive: {
3421                        0: {
3422                            items: 1,
3423                        },
3424                        979: {
3425                            items: 2,
3426                        },
3427                        1199: {
3428                            items: settings.count,
3429                        }
3430                    },
3431                    autoplayHoverPause: true,
3432                    navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3433                    rtl: owl_rtl,
3434                });
3435
3436                if (settings.autoplay_status) {
3437                    $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
3438                        "mouseleave",
3439                        function (event) {
3440                            $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3441                        }
3442                    );
3443                }
3444            }
3445        }
3446    };
3447
3448    function sed(settings) {
3449        // Single Event Display
3450        $("#mec_skin_" + settings.id + " .mec-event-carousel-title a, #mec_skin_" + settings.id + " .mec-event-image a, #mec_skin_" + settings.id + " .mec-booking-button, #mec_skin_" + settings.id + " .mec-event-button").off('click').on('click', function (e) {
3451            var sed_method = $(this).attr('target');
3452            if ('_blank' === sed_method) {
3453
3454                return;
3455            }
3456            e.preventDefault();
3457            var href = $(this).attr('href');
3458
3459            var id = $(this).data('event-id');
3460            var occurrence = get_parameter_by_name('occurrence', href);
3461            var time = get_parameter_by_name('time', href);
3462
3463            mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3464        });
3465    }
3466}(jQuery));
3467
3468// MEC SLIDER VIEW PLUGIN
3469(function ($) {
3470    $.fn.mecSliderView = function (options) {
3471        // Default Options
3472        var settings = $.extend({
3473            // These are the defaults.
3474            id: 0,
3475            atts: '',
3476            transition_time: 250,
3477            autoplay: false,
3478            ajax_url: '',
3479            sf: {},
3480            start_date: ''
3481        }, options);
3482
3483        var rtl = false;
3484
3485        // Init Sliders
3486        initSlider();
3487
3488        function initSlider() {
3489            // Check RTL website
3490            if ($('body').hasClass('rtl')) rtl = true;
3491
3492            $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel(
3493                {
3494                    autoplay: true,
3495                    smartSpeed: settings.transition_time,
3496                    autoplayTimeout: settings.autoplay,
3497                    loop: true,
3498                    items: 1,
3499                    responsiveClass: true,
3500                    responsive: {
3501                        0: {
3502                            items: 1,
3503                        },
3504                        960: {
3505                            items: 1,
3506                        },
3507                        1200: {
3508                            items: 1,
3509                        }
3510                    },
3511                    dots: false,
3512                    nav: true,
3513                    autoplayHoverPause: true,
3514                    navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3515                    rtl: rtl,
3516                });
3517        }
3518    };
3519}(jQuery));
3520
3521// MEC COUNTDOWN MODULE
3522(function ($) {
3523    $.fn.mecCountDown = function (options, callBack) {
3524        // Default Options
3525        var settings = $.extend({
3526            // These are the defaults.
3527            date: null,
3528            format: null
3529        }, options);
3530
3531        var callback = callBack;
3532        var selector = $(this);
3533
3534        startCountdown();
3535        var interval = setInterval(startCountdown, 1000);
3536
3537        function startCountdown() {
3538            var eventDate = Date.parse(settings.date) / 1000;
3539            var currentDate = Math.floor($.now() / 1000);
3540
3541            if (eventDate <= currentDate) {
3542                callback.call(this);
3543                clearInterval(interval);
3544            }
3545
3546            var seconds = eventDate - currentDate;
3547
3548            var days = Math.floor(seconds / (60 * 60 * 24));
3549            seconds -= days * 60 * 60 * 24;
3550
3551            var hours = Math.floor(seconds / (60 * 60));
3552            seconds -= hours * 60 * 60;
3553
3554            var minutes = Math.floor(seconds / 60);
3555            seconds -= minutes * 60;
3556
3557            if (days == 1) selector.find(".mec-timeRefDays").text(mecdata.day);
3558            else selector.find(".mec-timeRefDays").text(mecdata.days);
3559
3560            if (hours == 1) selector.find(".mec-timeRefHours").text(mecdata.hour);
3561            else selector.find(".mec-timeRefHours").text(mecdata.hours);
3562
3563            if (minutes == 1) selector.find(".mec-timeRefMinutes").text(mecdata.minute);
3564            else selector.find(".mec-timeRefMinutes").text(mecdata.minutes);
3565
3566            if (seconds == 1) selector.find(".mec-timeRefSeconds").text(mecdata.second);
3567            else selector.find(".mec-timeRefSeconds").text(mecdata.seconds);
3568
3569            if (settings.format === "on") {
3570                days = (String(days).length >= 2) ? days : "0" + days;
3571                hours = (String(hours).length >= 2) ? hours : "0" + hours;
3572                minutes = (String(minutes).length >= 2) ? minutes : "0" + minutes;
3573                seconds = (String(seconds).length >= 2) ? seconds : "0" + seconds;
3574            }
3575
3576            if (!isNaN(eventDate)) {
3577                selector.find(".mec-days").text(days);
3578                selector.find(".mec-hours").text(hours);
3579                selector.find(".mec-minutes").text(minutes);
3580                selector.find(".mec-seconds").text(seconds);
3581            } else {
3582                clearInterval(interval);
3583            }
3584        }
3585    };
3586
3587}(jQuery));
3588
3589// MEC TILE VIEW PLUGIN
3590(function ($) {
3591    $.fn.mecTileView = function (options) {
3592        var active_month;
3593        var active_year;
3594
3595        // Default Options
3596        var settings = $.extend({
3597            // These are the defaults.
3598            today: null,
3599            id: 0,
3600            events_label: 'Events',
3601            event_label: 'Event',
3602            month_navigator: 0,
3603            atts: '',
3604            active_month: {},
3605            next_month: {},
3606            sf: {},
3607            ajax_url: ''
3608        }, options);
3609
3610        // Initialize Month Navigator
3611        if (settings.month_navigator) initMonthNavigator();
3612
3613        // Load Next Month in background
3614        if (settings.load_method === 'month') setMonth(settings.next_month.year, settings.next_month.month, true);
3615
3616        active_month = settings.active_month.month;
3617        active_year = settings.active_month.year;
3618
3619        // Set onclick Listeners
3620        setListeners();
3621
3622        // Search Widget
3623        if (settings.sf.container !== '') {
3624            sf = $(settings.sf.container).mecSearchForm(
3625                {
3626                    id: settings.id,
3627                    refine: settings.sf.refine,
3628                    ajax_url: settings.ajax_url,
3629                    atts: settings.atts,
3630                    callback: function (atts) {
3631                        settings.atts = atts;
3632                        search(active_year, active_month);
3633                    }
3634                });
3635        }
3636
3637        function initMonthNavigator() {
3638            $("#mec_skin_" + settings.id + " .mec-load-month").off("click").on("click", function () {
3639                var year = $(this).data("mec-year");
3640                var month = $(this).data("mec-month");
3641
3642                setMonth(year, month, false, true);
3643            });
3644        }
3645
3646        function search(year, month) {
3647            // Add Loading Class
3648            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3649            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3650
3651            $.ajax(
3652                {
3653                    url: settings.ajax_url,
3654                    data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
3655                    dataType: "json",
3656                    type: "post",
3657                    success: function (response) {
3658                        if (settings.load_method === 'month') {
3659                            active_month = response.current_month.month;
3660                            active_year = response.current_month.year;
3661
3662                            // Append Month
3663                            $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_tile_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
3664
3665                            // Append Month Navigator
3666                            $("#mec_skin_" + settings.id + " .mec-skin-tile-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
3667
3668                            // Re-initialize Month Navigator
3669                            initMonthNavigator();
3670
3671                            // Set onclick Listeners
3672                            setListeners();
3673
3674                            // Toggle Month
3675                            toggleMonth(response.current_month.id);
3676                        }
3677                        else {
3678                            // Append Items
3679                            $("#mec_skin_events_" + settings.id).html(response.html);
3680
3681                            // Show load more button
3682                            if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3683                            // Hide load more button
3684                            else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3685
3686                            // Update the variables
3687                            settings.end_date = response.end_date;
3688                            settings.offset = response.offset;
3689
3690                            // Set onclick Listeners
3691                            setListeners();
3692                        }
3693
3694                        // Remove loading Class
3695                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3696                    },
3697                    error: function () { }
3698                });
3699        }
3700
3701        function setMonth(year, month, do_in_background, navigator_click) {
3702            if (typeof do_in_background === "undefined") do_in_background = false;
3703            navigator_click = navigator_click || false;
3704
3705            var month_id = year + "" + month;
3706
3707            if (!do_in_background) {
3708                active_month = month;
3709                active_year = year;
3710            }
3711
3712            // Month exists so we just show it
3713            if ($("#mec_tile_month_" + settings.id + "_" + month_id).length) {
3714                // Toggle Month
3715                toggleMonth(month_id);
3716            }
3717            else {
3718                if (!do_in_background) {
3719                    // Add Loading Class
3720                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3721                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3722                }
3723
3724                $.ajax(
3725                    {
3726                        url: settings.ajax_url,
3727                        data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
3728                        dataType: "json",
3729                        type: "post",
3730                        success: function (response) {
3731                            // Append Month
3732                            $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_tile_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
3733
3734                            // Append Month Navigator
3735                            $("#mec_skin_" + settings.id + " .mec-skin-tile-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
3736
3737                            // Re-initialize Month Navigator
3738                            initMonthNavigator();
3739
3740                            // Set onclick Listeners
3741                            setListeners();
3742
3743                            if (!do_in_background) {
3744                                // Toggle Month
3745                                toggleMonth(response.current_month.id);
3746
3747                                // Remove loading Class
3748                                $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3749
3750                                // Set Month Filter values in search widget
3751                                $("#mec_sf_month_" + settings.id).val(month);
3752                                $("#mec_sf_year_" + settings.id).val(year);
3753                            }
3754                            else {
3755                                $("#mec_tile_month_" + settings.id + "_" + response.current_month.id).hide();
3756                                $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
3757                            }
3758                        },
3759                        error: function () { }
3760                    });
3761            }
3762        }
3763
3764        function toggleMonth(month_id) {
3765            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
3766            var active_day = $("#mec_tile_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
3767
3768            if (active_day <= 9) active_day = "0" + active_day;
3769
3770            // Toggle Month Navigator
3771            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
3772            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
3773
3774            // Toggle Month
3775            $("#mec_skin_" + settings.id + " .mec-month-container").hide().removeClass("mec-month-container-selected");
3776            $("#mec_tile_month_" + settings.id + "_" + month_id).show().addClass("mec-month-container-selected");
3777        }
3778
3779        var sf;
3780
3781        function setListeners() {
3782            $("#mec_skin_" + settings.id + " .mec-load-more-button").off("click").on("click", function () {
3783                loadMore();
3784            });
3785
3786            $("#mec_skin_" + settings.id + " article").off("click").on("click", function (e) {
3787                // Link Clicked
3788                if (e.target.nodeName.toLowerCase() === 'a') return;
3789
3790                var href = $(this).data('href');
3791                if (!href) return;
3792
3793                var target = $(this).data('target');
3794
3795                if (target === 'blank') window.open(href, '_blank');
3796                else if (target !== 'm1') document.location.href = href;
3797            });
3798
3799            // Add the onclick event
3800            $("#mec_skin_" + settings.id + " .mec-has-event").off("click").on('click', function (e) {
3801                e.preventDefault();
3802
3803                // define variables
3804                var $this = $(this),
3805                    data_mec_cell = $this.data('mec-cell'),
3806                    month_id = $this.data('month');
3807
3808                $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
3809                $this.addClass('mec-selected-day');
3810
3811                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3812                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3813
3814                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3815                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3816            });
3817
3818            // Single Event Method
3819            if (settings.sed_method != '0') {
3820                sed();
3821            }
3822        }
3823
3824        function sed() {
3825            // Single Event Display
3826            $("#mec_skin_" + settings.id + " .mec-event-content").off('click').on('click', function (e) {
3827                var sed_method = $(this).parent().data('target');
3828                if ('_blank' === sed_method) {
3829                    return;
3830                }
3831                e.preventDefault();
3832                var href = $(this).parent().data('href');
3833
3834                var id = $(this).data('event-id');
3835                var occurrence = get_parameter_by_name('occurrence', href);
3836                var time = get_parameter_by_name('time', href);
3837
3838                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3839            });
3840        }
3841
3842        function loadMore() {
3843            // Load More Button
3844            var $load_more_button = $("#mec_skin_" + settings.id + " .mec-load-more-button");
3845
3846            // Add loading Class
3847            $load_more_button.addClass("mec-load-more-loading");
3848
3849            $.ajax(
3850                {
3851                    url: settings.ajax_url,
3852                    data: "action=mec_tile_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&current_month_divider=" + settings.current_month_divider + "&apply_sf_date=0",
3853                    dataType: "json",
3854                    type: "post",
3855                    success: function (response) {
3856                        if (response.count == '0') {
3857                            // Remove loading Class
3858                            $load_more_button.removeClass("mec-load-more-loading");
3859
3860                            // Hide load more button
3861                            $load_more_button.addClass("mec-util-hidden");
3862                        }
3863                        else {
3864                            // Show load more button
3865                            if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) $load_more_button.removeClass("mec-util-hidden");
3866                            else $load_more_button.addClass("mec-util-hidden");
3867
3868                            // Append Items
3869                            $("#mec_skin_events_" + settings.id).append(response.html);
3870
3871                            // Remove loading Class
3872                            $load_more_button.removeClass("mec-load-more-loading");
3873
3874                            // Update the variables
3875                            settings.end_date = response.end_date;
3876                            settings.offset = response.offset;
3877                            settings.current_month_divider = response.current_month_divider;
3878
3879                            // Single Event Method
3880                            if (settings.sed_method != '0') {
3881                                sed();
3882                            }
3883                        }
3884                    },
3885                    error: function () { }
3886                });
3887        }
3888    };
3889}(jQuery));
3890
3891function mec_gateway_selected(gateway_id) {
3892    // Hide all gateway forms
3893    jQuery('.mec-book-form-gateway-checkout').addClass('mec-util-hidden');
3894
3895    // Show selected gateway form
3896    jQuery('#mec_book_form_gateway_checkout' + gateway_id).removeClass('mec-util-hidden');
3897}
3898
3899function mec_wrap_resize() {
3900    var $mec_wrap = jQuery('.mec-wrap'),
3901        mec_width = $mec_wrap.width();
3902    if (mec_width < 959) {
3903        $mec_wrap.addClass('mec-sm959');
3904    } else {
3905        $mec_wrap.removeClass('mec-sm959');
3906    }
3907}
3908
3909function get_parameter_by_name(name, url) {
3910    if (!url) {
3911        url = window.location.href;
3912    }
3913
3914    name = name.replace(/[\[\]]/g, "\\$&");
3915    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
3916        results = regex.exec(url);
3917
3918    if (!results) return null;
3919    if (!results[2]) return '';
3920
3921    return decodeURIComponent(results[2].replace(/\+/g, " "));
3922}
3923
3924// Focus events day
3925var mec_g_month_id = null;
3926
3927function mecFocusDay(settings) {
3928    if (mec_g_month_id != null) {
3929        setTimeout(function () {
3930            var id = settings.id,
3931                date = new Date(),
3932                mec_owl_year = mec_g_month_id.substr(0, 4),
3933                mec_current_year = date.getFullYear(),
3934                mec_owl_month = mec_g_month_id.substr(4, 6),
3935                mec_current_month = date.getMonth() + 1,
3936                mec_current_day = date.getDate(),
3937                mec_owl_go = jQuery("#mec-owl-calendar-d-table-" + id + "-" + mec_g_month_id),
3938                mec_day_exist = false;
3939            mec_owl_go.find('.owl-stage > div').each(function (index) {
3940                if (parseInt(jQuery(this).children('div').data("events-count")) > 0) {
3941                    if ((((mec_owl_year != mec_current_year) && (mec_owl_month != mec_current_month)) || (mec_owl_year == mec_current_year) && (mec_owl_month != mec_current_month)) || parseInt(jQuery(this).children('div').text()) > mec_current_day) {
3942                        var index_plus = index + 1;
3943                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_i
3943d + (index < 10 ? '0' + index_plus : index_plus)).trigger('click');
3944                        mec_owl_go.trigger('to.owl.carousel', index_plus);
3945                        mec_day_exist = true;
3946                        return false;
3947                    }
3948                    else {
3949                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3950                        mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3951                        mec_day_exist = true;
3952                        return false;
3953                    }
3954                }
3955            });
3956
3957            if (!mec_day_exist && ((mec_owl_year == mec_current_year) && (mec_owl_month == mec_current_month))) {
3958                jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3959                mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3960            }
3961        }, 1000);
3962    }
3963}
3964
3965// Focus events week
3966function mec_focus_week(id, skin) {
3967    skin = skin || 'weekly';
3968    var wrap_elem = jQuery('.mec-weeks-container .mec-weekly-view-week-active').parent();
3969    var days = wrap_elem.find('dt');
3970    var week = wrap_elem.find('dl').length;
3971    var focus_week = false;
3972    var i = j = 1;
3973
3974    for (i = 1; i < week; i++) {
3975        setTimeout(function () {
3976            var event = new Event('click');
3977            jQuery('#mec_skin_' + id + ' .mec-previous-month.mec-load-week')[0].dispatchEvent(event);
3978        }, 33);
3979    }
3980
3981    days.each(function (i) {
3982        if (jQuery(this).data('events-count') > 0) {
3983            if (focus_week === false) {
3984                focus_week = parseInt(jQuery(this).parent().data('week-number'));
3985            }
3986
3987            if (skin == 'timetable') {
3988                if (parseInt(jQuery(this).parent().data('week-number')) == parseInt(jQuery('body').data('currentweek'))) {
3989                    focus_week = parseInt(jQuery(this).parent().data('week-number'));
3990                    return false;
3991                }
3992            }
3993            else {
3994                return false;
3995            }
3996        }
3997    });
3998
3999    if (focus_week !== false) {
4000        for (j = 1; j < focus_week; j++) {
4001            setTimeout(function () {
4002                var event = new Event('click');
4003                jQuery('#mec_skin_' + id + ' .mec-next-month.mec-load-week')[0].dispatchEvent(event);
4004            }, 33);
4005        }
4006    }
4007}
4008
4009// TODO must be cleaned JS codes
4010(function ($) {
4011    $(document).ready(function () {
4012        // Check RTL website
4013        if ($('body').hasClass('rtl')) {
4014            var owl_rtl = true;
4015        } else {
4016            var owl_rtl = false;
4017        }
4018
4019        // MEC WIDGET CAROUSEL
4020        $(".mec-widget .mec-event-grid-classic").each(function () {
4021            var loop_status = $(this).data('widget-loop');
4022            if (typeof loop_status === 'undefined') loop_status = 1;
4023
4024            var autoplay_status = $(this).data('widget-autoplay');
4025            if (typeof autoplay_status === 'undefined') autoplay_status = 1;
4026
4027            var autoplay_time = $(this).data('widget-autoplay-time');
4028            if (typeof autoplay_time === 'undefined') autoplay_time = 3000;
4029
4030            $(this).addClass('mec-owl-carousel mec-owl-theme');
4031            $(this).owlCarousel(
4032                {
4033                    autoplay: (autoplay_status ? true : false),
4034                    autoplayTimeout: autoplay_time,
4035                    autoplayHoverPause: true,
4036                    loop: (loop_status ? true : false),
4037                    dots: false,
4038                    nav: true,
4039                    navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
4040                    items: 1,
4041                    autoHeight: true,
4042                    responsiveClass: true,
4043                    rtl: owl_rtl,
4044                });
4045        });
4046
4047        // add mec-sm959 class if mec-wrap div size < 959
4048        mec_wrap_resize();
4049
4050        jQuery(window).bind('resize', function () {
4051            mec_wrap_resize();
4052        });
4053
4054        // Fixed: social hover in iphone
4055        $('.mec-event-sharing-wrap').hover(function () {
4056            $(this).find('.mec-event-sharing').show(0);
4057        },
4058            function () {
4059                $(this).find('.mec-event-sharing').hide(0);
4060            });
4061
4062        // Register Booking Smooth Scroll
4063        $('a.simple-booking[href^="#mec-events-meta-group-booking"]').click(function () {
4064            if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
4065                var target = $(this.hash);
4066                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
4067
4068                if (target.length) {
4069                    var scrollTopVal = target.offset().top - 30;
4070
4071                    $('html, body').animate({
4072                        scrollTop: scrollTopVal
4073                    }, 600);
4074
4075                    return false;
4076                }
4077            }
4078        });
4079
4080        // Load Information widget under title in mobile/tablet
4081        if ($('.single-mec-events .mec-single-event:not(".mec-single-modern")').length > 0) {
4082            if ($('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').length > 0) {
4083                var html = $('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox')[0].outerHTML;
4084                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 960) {
4085                    $('.single-mec-events .col-md-4 .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').remove();
4086                    $('.single-mec-events .mec-event-info-mobile').html(html)
4087                }
4088            }
4089        }
4090    });
4091})(jQuery);
4092
4093// Weather
4094(function ($) {
4095    // Convart fahrenheit to centigrade
4096    function convertToC(value) {
4097        return Math.round(((parseFloat(value) - 32) * 5 / 9));
4098    }
4099
4100    // Convert centigrade to fahrenheit
4101    function convertToF(value) {
4102        return Math.round(((1.8 * parseFloat(value)) + 32));
4103    }
4104
4105    // Convert miles to kilometers
4106    function MPHToKPH(value) {
4107        return Math.round(1.609344 * parseFloat(value));
4108    }
4109
4110    // Convert kilometers to miles
4111    function KPHToMPH(value) {
4112        return Math.round((0.6214 * parseFloat(value)));
4113    }
4114
4115    $(document).ready(function ($) {
4116        var degree = $('.mec-weather-summary-temp');
4117        var weather_extra = $('.mec-weather-extras');
4118        var wind = weather_extra.children('.mec-weather-wind');
4119        var visibility = weather_extra.children('.mec-weather-visibility');
4120        var feelslike = weather_extra.children('.mec-weather-feels-like');
4121
4122        //  Events
4123        $('.degrees-mode').on('click', function () {
4124            var degree_mode = degree.children('var').text().trim();
4125            var wind_text = wind.text().substring(5);
4126            var visibility_text = visibility.text().substring(11);
4127            var feelslike_text = feelslike.text().substring(12);
4128
4129            if (degree_mode == degree.data('c').trim()) {
4130                degree.html(convertToF(parseInt(degree.text())) + ' <var>' + degree.data('f') + '</var>');
4131                feelslike.html('<span>Feels Like:</span> ' + convertToF(parseInt(feelslike_text)) + ' <var>' + feelslike.data('f') + '</var>');
4132                wind.html('<span>Wind:</span> ' + KPHToMPH(parseInt(wind_text)) + '<var>' + wind.data('mph') + '</var>');
4133                visibility.html('<span>Visibility:</span> ' + KPHToMPH(parseInt(visibility_text)) + '<var>' + visibility.data('mph') + '</var>');
4134                $(this).text($(this).data('metric'));
4135            }
4136            else if (degree_mode == degree.data('f').trim()) {
4137                degree.html(convertToC(parseInt(degree.text())) + ' <var>' + degree.data('c') + '</var>');
4138                feelslike.html('<span>Feels Like:</span> ' + convertToC(parseInt(feelslike_text)) + ' <var>' + feelslike.data('c') + '</var>');
4139                wind.html('<span>Wind:</span> ' + MPHToKPH(parseInt(wind_text)) + '<var>' + wind.data('kph') + '</var>');
4140                visibility.html('<span>Visibility:</span> ' + MPHToKPH(parseInt(visibility_text)) + '<var>' + visibility.data('kph') + '</var>');
4141                $(this).text($(this).data('imperial'));
4142            }
4143        });
4144
4145        $('a').on('click', function () { });
4146
4147        // FES Speakers Adding
4148        $('#mec_add_speaker_button').on('click', function () {
4149            var $this = this;
4150            var content = $($this).parent().find('input');
4151            var list = $('#mec-fes-speakers-list');
4152            var key = list.find('.mec-error').length;
4153
4154            $($this).prop("disabled", true).css('cursor', 'wait');
4155            $.post(ajaxurl, {
4156                action: "speaker_adding",
4157                content: content.val(),
4158                key: key
4159            })
4160                .done(function (data) {
4161                    if ($(data).hasClass('mec-error')) {
4162                        list.prepend(data);
4163                        setTimeout(function () {
4164                            $('#mec-speaker-error-${key}').remove();
4165                        }, 1500);
4166                    } else {
4167                        list.html(data);
4168                        content.val('');
4169                    }
4170
4171                    $($this).prop("disabled", false).css('cursor', 'pointer');
4172                });
4173        });
4174
4175        // Check RTL website
4176        var owl_rtl = $('body').hasClass('rtl') ? true : false;
4177
4178        // MEC FES Date Wrappers
4179        var fes_export_list = $('.mec-export-list-wrapper');
4180
4181        // MEC FES Date Item Event
4182        fes_export_list.find('.mec-export-list-item').click(function () {
4183            $('.mec-export-list-item').removeClass('fes-export-date-active');
4184            $(this).addClass('fes-export-date-active');
4185        });
4186
4187        // MEC BuddyPress Integration Attendees Modules
4188        var mec_bd_attendees_modules = $('.mec-attendees-list-details > ul > li');
4189        mec_bd_attendees_modules.click(function () {
4190            $(this).find('.mec-attendees-toggle').toggle();
4191        });
4192
4193        // MEC FES export csv
4194        $('.mec-event-export-csv, .mec-event-export-excel').click(function () {
4195            var mec_event_id = $(this).parent().parent().data('event-id');
4196
4197            var time = $(this).parent().parent().find($('.fes-export-date-active')).data('time');
4198            if (typeof time === 'undefined') time = 0;
4199
4200            var type = $(this).hasClass('mec-event-export-excel') ? 'ms-excel' : 'csv';
4201
4202            var url = mecdata.ajax_url + "?action=mec_fes_csv_export&fes_nonce=" + mecdata.fes_nonce + "&mec_event_id=" + mec_event_id + "&timestamp=" + time + "&type=" + type;
4203
4204            window.location = url;
4205        });
4206    });
4207})(jQuery);
4208
4209function mec_book_form_submit(event, unique_id) {
4210    event.preventDefault();
4211    window["mec_book_form_submit" + unique_id]();
4212}
4213
4214function mec_book_form_back_btn_cache(context, unique_id) {
4215    var id = jQuery(context).attr('id');
4216    var mec_form_data = jQuery('#mec_book_form' + unique_id).serializeArray();
4217
4218    if (id == "mec-book-form-btn-step-1") jQuery('body').data('mec-book-form-step-1', jQuery('#mec_booking' + unique_id).html()).data('unique-id', unique_id).data('mec-book-form-data-step-1', mec_form_data);
4219    else if (id == "mec-book-form-btn-step-2") jQuery('body').data('mec-book-form-step-2', jQuery('#mec_booking' + unique_id).html()).data('mec-book-form-data-step-2', mec_form_data);
4220}
4221
4222function mec_agreement_change(context) {
4223    var status = jQuery(context).is(":checked");
4224
4225    if (status) jQuery(context).prop("checked", "checked");
4226    else jQuery(context).removeProp("checked");
4227}
4228
4229function mec_book_form_back_btn_click(context, unique_id) {
4230    var id = jQuery(context).attr('id');
4231    unique_id = jQuery('body').data('unique-id');
4232
4233    jQuery('#mec_booking_message' + unique_id).hide();
4234    if (id == "mec-book-form-back-btn-step-2") {
4235        var mec_form_data_step_1 = jQuery('body').data('mec-book-form-data-step-1');
4236        console.log(mec_form_data_step_1);
4237
4238        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-1'));
4239        jQuery.each(mec_form_data_step_1, function(index, object_item)
4240        {
4241            if(object_item.name === 'book[date][]')
4242            {
4243                jQuery('[value="' + object_item.value + '"]').prop('checked', true);
4244            }
4245            else jQuery('[name="' + object_item.name + '"]').val(object_item.value);
4246        });
4247
4248        // Booking Refresh Recaptcha When Back Button Click.
4249        var recaptcha_check = jQuery('#mec_booking' + unique_id).find('#g-recaptcha').length;
4250        if (recaptcha_check != 0) {
4251            jQuery('#g-recaptcha').html('');
4252            grecaptcha.render("g-recaptcha", {
4253                sitekey: mecdata.recapcha_key
4254            });
4255        }
4256
4257        var event_id = jQuery('input[name="event_id"]').val();
4258        var date = jQuery('#mec_book_form_date' + unique_id).val();
4259
4260        // Update Availability
4261        window['mec_get_tickets_availability' + unique_id](event_id, date);
4262    }
4263    else if (id == "mec-book-form-back-btn-step-3") {
4264        var mec_form_data_step_2 = jQuery('body').data('mec-book-form-data-step-2');
4265
4266        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-2'));
4267        jQuery.each(mec_form_data_step_2, function (index, object_item) {
4268            var mec_elem = jQuery('[name="' + object_item.name + '"]');
4269            var mec_type = mec_elem.attr('type');
4270
4271            if ((mec_type == 'checkbox' || mec_type == 'radio')) {
4272                var mec_elem_len = jQuery('[name="' + object_item.name + '"]').length;
4273
4274                if (mec_elem_len > 1) {
4275                    var id = '#' + mec_elem.attr('id').match(/mec_book_reg_field_reg.*_/g) + object_item.value.toLowerCase();
4276                    jQuery(id).prop('checked', true);
4277                }
4278                else {
4279                    mec_elem.prop('checked', true);
4280                }
4281            }
4282
4283            mec_elem.val(object_item.value);
4284        });
4285    }
4286}
4287
4288// Google map Skin
4289function gmapSkin(NewJson) {
4290    var gmap_temp = jQuery("#gmap-data");
4291    var beforeJson = gmap_temp.val();
4292    if (typeof beforeJson === 'undefined') beforeJson = '';
4293
4294    var newJson = NewJson;
4295    var jsonPush = (typeof beforeJson != 'undefined' && beforeJson.trim() == "") ? [] : JSON.parse(beforeJson);
4296    var pushState = jsonPush.length < 1 ? false : true;
4297
4298    for (var key in newJson) {
4299        if (pushState) {
4300            jsonPush.forEach(function (Item, Index) {
4301                var render_location = jsonPush[Index].latitude + "," + jsonPush[Index].longitude;
4302                if (key.trim() == render_location.trim()) {
4303                    // LightBox Count Update
4304                    newJson[key].count = newJson[key].count + jsonPush[Index].count;
4305
4306                    // LightBox Ids Update
4307                    newJson[key].event_ids = newJson[key].event_ids.concat(jsonPush[Index].event_ids);
4308
4309                    // LightBox Initialize
4310                    var dom = jQuery(newJson[key].lightbox).find("div:nth-child(2)");
4311                    var main_items = dom.html();
4312                    var new_items = jQuery(jsonPush[Index].lightbox).find("div:nth-child(2)").html();
4313
4314                    var render_items = dom.html(main_items + new_items).html();
4315                    var new_info_lightbox = '<div><div class="mec-event-detail mec-map-view-event-detail"><i class="mec-sl-map-marker"></i> ' + newJson[key].name + '</div><div>' + render_items + '</div></div>';
4316                    newJson[key].lightbox = new_info_lightbox;
4317
4318                    // LightBox info
4319                    var new_info_window = '<div class="mec-marker-infowindow-wp"><div class="mec-marker-infowindow-count">' + newJson[key].count + '</div><div class="mec-marker-infowindow-content"><span>Event at this location</span><span>' + newJson[key].name + '</span></div></div>';
4320                    newJson[key].infowindow = new_info_window;
4321
4322                    // Remove before values of this location
4323                    jsonPush.splice(Index, 1);
4324                }
4325            });
4326        }
4327
4328        jsonPush.push(newJson[key]);
4329    }
4330
4331    gmap_temp.val(JSON.stringify(jsonPush));
4332    return jsonPush;
4333}
4334
4335// Fluent Scripts
4336jQuery(document).ready(function () {
4337    if (jQuery('.mec-fluent-wrap').length < 0) {
4338        return;
4339    }
4340    // Events
4341    jQuery(window).on('resize', mecFluentToggoleDisplayValueFilterContent);
4342    jQuery(document).on('click', '.mec-fluent-wrap .mec-filter-icon', mecFluentToggleFilterContent);
4343    jQuery(document).on('click', '.mec-fluent-wrap .mec-more-events-icon', mecFluentToggleMoreEvents);
4344    jQuery(document).on('click', '.mec-fluent-wrap .mec-yearly-calendar', mecFluentYearlyCalendar);
4345    jQuery(document).on('click', mecFluentOutsideEvent);
4346    jQuery(document).on('click', '.mec-fluent-more-views-icon', mecFluentMoreViewsContent);
4347    jQuery(document).on('change', '.mec-fluent-wrap .mec-filter-content select, .mec-fluent-wrap .mec-filter-content input', mecFluentSmartFilterIcon);
4348    // Run
4349    mecFluentTimeTableUI();
4350    mecFluentUI();
4351    mecFluentNiceSelect();
4352    mecFluentWrapperFullScreenWidth();
4353    jQuery(window).on('load', mecFluentWrapperFullScreenWidth);
4354    jQuery(window).on('load', mecFluentCurrentTimePosition);
4355    jQuery(window).on('resize', mecFluentWrapperFullScreenWidth);
4356    jQuery(window).on('resize', mecFluentTimeTableUI);
4357    mecFluentSliderUI();
4358    mecFluentFullCalendar();
4359    jQuery(window).on('resize', mecFluentFullCalendar);
4360    mecFluentCustomScrollbar();
4361});
4362
4363function mecFluentSinglePage() {
4364    if (jQuery().niceScroll) {
4365        jQuery('.mec-single-fluent-body .featherlight .mec-single-fluent-wrap').niceScroll({
4366            horizrailenabled: false,
4367            cursorcolor: '#C1C5C9',
4368            cursorwidth: '4px',
4369            cursorborderradius: '4px',
4370            cursorborder: 'none',
4371            railoffset: {
4372                left: 10,
4373            }
4374        });
4375    }
4376}
4377
4378function mecFluentFullCalendar() {
4379    if (jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').length > 0) {
4380        var widowWidth = jQuery(window).innerWidth();
4381        if (widowWidth <= 767) {
4382            jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container .mec-skin-monthly-view-month-navigator-container, .mec-fluent-wrap.mec-skin-full-calendar-container .mec-calendar-a-month, .mec-fluent-wrap.mec-skin-full-calendar-container .mec-yearly-title-sec').css({
4383                paddingTop: jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').children('.mec-totalcal-box').height() + 40,
4384            });
4385        } else {
4386            jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container .mec-skin-monthly-view-month-navigator-container, .mec-fluent-wrap.mec-skin-full-calendar-container .mec-calendar-a-month, .mec-fluent-wrap.mec-skin-full-calendar-container .mec-yearly-title-sec').css({
4387                paddingTop: 32,
4388            });
4389        }
4390    }
4391}
4392
4393function mecFluentSmartFilterIcon() {
4394    var filterContent = jQuery(this).closest('.mec-filter-content');
4395    var hasValue = false;
4396    if (jQuery(this).closest('.mec-date-search').length > 0) {
4397        var yearValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_year"]').val();
4398        var monthValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_month"]').val();
4399        if ((yearValue == 'none' && monthValue == 'none') || (yearValue != 'none' && monthValue != 'none')) {
4400            filterContent.hide();
4401            if ((yearValue != 'none' && monthValue != 'none')) {
4402                hasValue = true;
4403            } else {
4404                hasValue = false;
4405            }
4406        } else {
4407            return false;
4408        }
4409    } else {
4410        filterContent.hide();
4411    }
4412    if (!hasValue) {
4413        filterContent.find(':not(.mec-date-search)').find('select, input:not([type="hidden"])').each(function () {
4414            if (jQuery(this).val()) {
4415                hasValue = true;
4416                return false;
4417            }
4418        });
4419    }
4420    if (hasValue) {
4421        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').addClass('active');
4422    } else {
4423        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').removeClass('active');
4424    }
4425}
4426
4427function mecFluentMoreViewsContent() {
4428    jQuery(this).find('.mec-fluent-more-views-content').toggleClass('active');
4429}
4430
4431function mecFluentWrapperFullScreenWidth() {
4432    if (jQuery('.mec-fluent-bg-wrap').length > 0) {
4433        jQuery('.mec-fluent-bg-wrap').css({
4434            maxWidth: jQuery('body').width() + 8,
4435        });
4436    }
4437}
4438
4439function mecFluentUI() {
4440    if (typeof mecdata != 'undefined' && typeof mecdata.enableSingleFluent != 'undefined' && mecdata.enableSingleFluent) {
4441        jQuery('body').addClass('mec-single-fluent-body');
4442    }
4443    // Set filter content position
4444    jQuery(window).on('load resize', function () {
4445        if (jQuery('.mec-filter-content').length > 0) {
4446            jQuery('.mec-filter-content').css({
4447                right: -(jQuery('.mec-calendar').width() - jQuery('.mec-search-form.mec-totalcal-box').position().left - jQuery('.mec-search-form.mec-totalcal-box').width() + 40),
4448                left: -jQuery('.mec-search-form.mec-totalcal-box').position().left + 40,
4449            });
4450        }
4451        if (jQuery('.mec-filter-icon').is(':visible')) {
4452            var filterIconLeftPosition = parseInt(jQuery('.mec-search-form.mec-totalcal-box').position().left) + parseInt(jQuery('.mec-filter-icon').position().left) - 25;
4453            jQuery('head').find('style[title="mecFluentFilterContentStyle"]').remove().end().append('<style title="mecFluentFilterContentStyle">.mec-fluent-wrap .mec-filter-content:before{left: ' + filterIconLeftPosition + 'px;}.mec-fluent-wrap .mec-filter-content:after{left: ' + (filterIconLeftPosition + 1) + 'px;}</style>');
4454        }
4455    });
4456    // Hide empty filter content
4457    if (jQuery('.mec-filter-content').is(':empty')) {
4458        jQuery('.mec-filter-icon').hide();
4459    }
4460    // Prevend Default For Event Share Icon
4461    jQuery(document).on('click', '.mec-event-share-icon', function (e) {
4462        e.preventDefault();
4463    });
4464}
4465
4466function mecFluentCurrentTimePosition() {
4467    if (jQuery('.mec-fluent-wrap').length > 0) {
4468        jQuery('.mec-fluent-current-time').each(function () {
4469            var currentTimeMinutes = jQuery(this).data('time');
4470            var height = jQuery(this).closest('.mec-fluent-current-time-cell').height();
4471            jQuery(this).css({
4472                top: (currentTimeMinutes / 60) * height,
4473            });
4474        });
4475    }
4476}
4477
4478function mecFluentNiceSelect() {
4479    if (jQuery('.mec-fluent-wrap').length < 0) {
4480        return;
4481    }
4482
4483    if (jQuery().niceSelect) {
4484        jQuery('.mec-fluent-wrap').find('.mec-filter-content').find('select').niceSelect();
4485    }
4486}
4487
4488function mecFluentCustomScrollbar(y) {
4489    if (jQuery('.mec-fluent-wrap').length < 0) {
4490        return;
4491    }
4492
4493    if (jQuery().niceScroll) {
4494        jQuery('.mec-custom-scrollbar').niceScroll({
4495            cursorcolor: '#C7EBFB',
4496            cursorwidth: '4px',
4497            cursorborderradius: '4px',
4498            cursorborder: 'none',
4499            railoffset: {
4500                left: -2,
4501            }
4502        });
4503        jQuery('.mec-custom-scrollbar').getNiceScroll().resize();
4504        jQuery('.mec-custom-scrollbar').each(function () {
4505            if (jQuery(this).find('.mec-fluent-current-time-cell').length > 0) {
4506                var parentTopOffset = jQuery(this).offset().top;
4507                var currentTimeCellOffset = jQuery(this).find('.mec-fluent-current-time-cell').offset().top;
4508                jQuery(this).getNiceScroll(0).doScrollTop(currentTimeCellOffset - parentTopOffset - 16, 120);
4509                jQuery(this).on('scroll', function () {
4510                    if (jQuery(this).getNiceScroll(0).scroll.y != 0) {
4511                        jQuery(this).addClass('mec-scrolling');
4512                    } else {
4513                        jQuery(this).removeClass('mec-scrolling');
4514                    }
4515                });
4516            }
4517            if (typeof y != 'undefined') {
4518                if (jQuery(this).closest('.mec-skin-list-wrap').length > 0 || jQuery(this).closest('.mec-skin-grid-wrap').length > 0) {
4519                    jQuery(this).getNiceScroll(0).doScrollTop(0, 120);
4520                }
4521            }
4522        });
4523    }
4524}
4525
4526function mecFluentTimeTableUI() {
4527    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', 0);
4528    var maxHeight = Math.max.apply(null, jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').map(function () {
4529        return jQuery(this).height();
4530    }).get());
4531    maxHeight = maxHeight > 87 ? maxHeight : 87;
4532    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', maxHeight + 2);
4533}
4534
4535function mecFluentSliderUI() {
4536    jQuery(window).on('load', function () {
4537        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-next').prepend('<span>Next</span>');
4538        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-prev').append('<span>Prev</span>');
4539    });
4540}
4541
4542function mecFluentToggleFilterContent(e) {
4543    e.preventDefault();
4544    if (jQuery('.mec-filter-content').is(':visible')) {
4545        jQuery('.mec-filter-content').css({
4546            display: 'none',
4547        });
4548    } else {
4549        const displayValue = jQuery(window).width() <= 790 ? 'block' : 'flex';
4550        jQuery('.mec-filter-content').css({
4551            display: displayValue,
4552        });
4553    }
4554}
4555
4556function mecFluentToggoleDisplayValueFilterContent() {
4557    const displayValue = jQuery(window).width() <= 767 ? 'block' : 'flex';
4558    if (jQuery('.mec-filter-content').is(':visible')) {
4559        jQuery('.mec-filter-content').css({
4560            display: displayValue,
4561        });
4562    }
4563}
4564
4565function mecFluentToggleMoreEvents(e) {
4566    e.preventDefault();
4567    const moreEventsWrap = jQuery(this).siblings('.mec-more-events-wrap');
4568    const moreEvents = moreEventsWrap.children('.mec-more-events');
4569    jQuery('.mec-more-events-wrap').removeClass('active');
4570    moreEventsWrap.addClass('active');
4571    jQuery('.mec-more-events-wrap:not(.active)').hide();
4572    if (moreEventsWrap.is(':visible')) {
4573        moreEventsWrap.hide();
4574    } else {
4575        topElement = moreEventsWrap.closest('.mec-more-events-inner-controller').length > 0 ? moreEventsWrap.closest('.mec-more-events-inner-controller') : moreEventsWrap.closest('.mec-more-events-controller');
4576        moreEventsWrap.show().css({
4577            top: topElement.offset().top - window.scrollY,
4578            left: moreEventsWrap.closest('.mec-more-events-controller').offset().left,
4579            width: moreEventsWrap.closest('.mec-more-events-controller').width(),
4580        });
4581        if (moreEventsWrap.width() > 400) {
4582            moreEvents.css({
4583                left: (moreEventsWrap.width() / 2) - (moreEvents.width() / 2),
4584                width: 400,
4585            });
4586        } else {
4587            moreEvents.css({
4588                width: moreEventsWrap.width(),
4589                left: 0,
4590            });
4591        }
4592    }
4593}
4594
4595function mecFluentOutsideEvent(e) {
4596    if (!jQuery(e.target).is('.mec-more-events-icon') && !jQuery(e.target).closest('.mec-more-events-wrap').length) {
4597        jQuery('.mec-more-events-wrap').hide();
4598    }
4599    if (!jQuery(e.target).is('.mec-filter-icon') && !jQuery(e.target).closest('.mec-filter-content').length) {
4600        jQuery('.mec-filter-content').hide();
4601    }
4602    if (!jQuery(e.target).is('.mec-fluent-more-views-icon') && !jQuery(e.target).closest('.mec-fluent-more-views-content').length) {
4603        jQuery('.mec-fluent-more-views-content').removeClass('active');
4604    }
4605}
4606
4607function mecFluentYearlyCalendar() {
4608    const monthNum = jQuery(this).data('month');
4609    const monthName = jQuery(this).find('.mec-calendar-table-title').text();
4610    jQuery('.mec-fluent-wrap').find('.mec-yearly-calendar').removeClass('active');
4611    jQuery(this).addClass('active')
4612        .closest('.mec-year-container')
4613        .find('.mec-yearly-agenda-sec-title span').text(monthName).end()
4614        .find('.mec-events-agenda').addClass('mec-util-hidden').end()
4615        .find('.mec-events-agenda[data-month=' + monthNum + ']').removeClass('mec-util-hidden');
4616    mecFluentCustomScrollbar();
4617}
4618
4619function mecFluentYearlyUI(eventID, yearID) {
4620    var fluentWrap = jQuery('#mec_skin_' + eventID + '.mec-fluent-wrap');
4621    if (fluentWrap.length < 0) {
4622        return;
4623    }
4624    var monthNum = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-events-agenda:not(.mec-util-hidden)').data('month');
4625    var activeMonth = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-yearly-calendar[data-month=' + monthNum + ']');
4626    var activeMonthName = activeMonth.find('.mec-calendar-table-title').text();
4627    activeMonth.addClass('active');
4628}
4629
4630// MEC LIST VIEW Fluent PLUGIN
4631(function ($) {
4632    $.fn.mecListViewFluent = function (options) {
4633        var active_month;
4634        var active_year;
4635
4636        // Default Options
4637        var settings = $.extend({
4638            // These are the defaults.
4639            today: null,
4640            id: 0,
4641            events_label: 'Events',
4642            event_label: 'Event',
4643            month_navigator: 0,
4644            atts: '',
4645            active_month: {},
4646            next_month: {},
4647            sf: {},
4648            ajax_url: '',
4649        }, options);
4650
4651        mecFluentCustomScrollbar();
4652
4653        initLoadMore('#mec_list_view_month_' + settings.id + '_' + settings.month_id);
4654
4655        function initLoadMore(monthID) {
4656            $(monthID).off().on('click', '.mec-load-more-button', function () {
4657                loadMore(this);
4658            });
4659        }
4660
4661        function loadMore(This) {
4662            // Add loading Class
4663            var currentLoadMore = $(This);
4664            currentLoadMore.addClass("mec-load-more-loading");
4665            var endDate = currentLoadMore.data('end-date');
4666            var maximumDate = currentLoadMore.data('maximum-date');
4667            var nextOffset = currentLoadMore.data('next-offset');
4668            var year = currentLoadMore.data('year');
4669            var month = currentLoadMore.data('month');
4670
4671            $.ajax({
4672                url: settings.ajax_url,
4673                data: "action=mec_list_load_more&mec_year=" + year + "&mec_month=" + month + "&mec_maximum_date=" + maximumDate + "&mec_start_date=" + endDate + "&mec_offset=" + nextOffset + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=0",
4674                dataType: "json",
4675                type: "post",
4676                success: function (response) {
4677                    currentLoadMore.parent().remove();
4678                    if (response.count != '0') {
4679                        // Append Items
4680                        $('#mec_list_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4681
4682                        // Single Event Method
4683                        if (settings.sed_method != '0') {
4684                            sed();
4685                        }
4686
4687                        mecFluentCustomScrollbar();
4688                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4689                    }
4690                },
4691                error: function () { }
4692            });
4693        }
4694
4695        // Initialize Month Navigator
4696        if (settings.month_navigator) initMonthNavigator();
4697
4698        // Load Next Month in background
4699        setMonth(settings.next_month.year, settings.next_month.month, true);
4700
4701        var initMonth;
4702        var initYear;
4703        active_month = initMonth = settings.active_month.month;
4704        active_year = initYear = settings.active_month.year;
4705
4706        // Search Widget
4707        if (settings.sf.container !== '') {
4708            sf = $(settings.sf.container).mecSearchForm({
4709                id: settings.id,
4710                refine: settings.sf.refine,
4711                ajax_url: settings.ajax_url,
4712                atts: settings.atts,
4713                callback: function (atts) {
4714                    settings.atts = atts;
4715                    search(active_year, active_month);
4716                }
4717            });
4718        }
4719
4720        // Single Event Method
4721        if (settings.sed_method != '0') {
4722            sed();
4723        }
4724
4725        function initMonthNavigator() {
4726            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4727                var year = $(this).data("mec-year");
4728                var month = $(this).data("mec-month");
4729                setMonth(year, month, false, true);
4730            });
4731        }
4732
4733        function parseQuery(queryString) {
4734            var query = {};
4735            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
4736            for (var i = 0; i < pairs.length; i++) {
4737                var pair = pairs[i].split('=');
4738                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
4739            }
4740            return query;
4741        }
4742
4743        function updateQueryStringParameter(uri, key, val) {
4744            return uri
4745                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
4746                .replace(/^([^?&]+)&/, "$1?");
4747        }
4748
4749        function search(year, month) {
4750            // Add Loading Class
4751            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4752            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4753
4754            var ObjAtts = parseQuery(settings.atts);
4755            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
4756                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
4757                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
4758            }
4759
4760            $.ajax({
4761                url: settings.ajax_url,
4762                data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
4763                dataType: "json",
4764                type: "post",
4765                success: function (response) {
4766                    active_month = response.current_month.month;
4767                    active_year = response.current_month.year;
4768
4769                    // Append Month
4770                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_list_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
4771
4772                    // Append Month Navigator
4773                    $("#mec_skin_" + settings.id + " .mec-skin-list-view-month-navigator-container").html('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
4774
4775                    // Re-initialize Month Navigator
4776                    initMonthNavigator();
4777
4778                    // Toggle Month
4779                    toggleMonth(response.current_month.id);
4780
4781                    initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4782
4783                    // Remove loading Class
4784                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4785
4786                    mecFluentCustomScrollbar();
4787                },
4788                error: function () { }
4789            });
4790        }
4791
4792        function setMonth(year, month, do_in_background, navigator_click) {
4793            if (typeof do_in_background === "undefined") do_in_background = false;
4794            navigator_click = navigator_click || false;
4795            var month_id = year + "" + month;
4796
4797            if (!do_in_background) {
4798                active_month = month;
4799                active_year = year;
4800            }
4801
4802            // Month exists so we just show it
4803            if ($("#mec_list_view_month_" + settings.id + "_" + month_id).length) {
4804                // Toggle Month
4805                toggleMonth(month_id);
4806                mecFluentCustomScrollbar(0);
4807            } else {
4808                if (!do_in_background) {
4809                    // Add Loading Class
4810                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4811                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4812                }
4813
4814                $.ajax({
4815                    url: settings.ajax_url,
4816                    data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
4817                    dataType: "json",
4818                    type: "post",
4819                    success: function (response) {
4820                        // Append Month
4821                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_list_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
4822
4823                        // Append Month Navigator
4824                        $("#mec_skin_" + settings.id + " .mec-skin-list-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
4825
4826                        // Re-initialize Month Navigator
4827                        initMonthNavigator();
4828                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4829
4830                        if (!do_in_background) {
4831                            // Toggle Month
4832                            toggleMonth(response.current_month.id);
4833
4834                            // Remove loading Class
4835                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4836
4837
4838                            // Set Month Filter values in search widget
4839                            $("#mec_sf_month_" + settings.id).val(month);
4840                            $("#mec_sf_year_" + settings.id).val(year);
4841                        } else {
4842                            $("#mec_list_view_month_" + settings.id + "_" + response.current_month.id).hide();
4843                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
4844                        }
4845                        if (typeof custom_month !== undefined) var custom_month;
4846                        if (typeof custom_month != undefined) {
4847                            if (custom_month == 'true') {
4848                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
4849                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
4850                                $('.mec-calendar-day').unbind('click');
4851                            }
4852                        }
4853                        if (!do_in_background) {
4854                            mecFluentCustomScrollbar(0);
4855                        }
4856                    },
4857                    error: function () { }
4858                });
4859            }
4860        }
4861
4862        function toggleMonth(month_id) {
4863            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
4864            var active_day = $("#mec_list_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
4865
4866            if (active_day <= 9) active_day = "0" + active_day;
4867
4868            // Toggle Month Navigator
4869            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
4870            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
4871
4872            // Toggle Month
4873            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
4874            $("#mec_list_view_month_" + settings.id + "_" + month_id).show();
4875
4876            // Add selected class
4877            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
4878            $("#mec_list_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
4879        }
4880
4881        var sf;
4882
4883        function sed() {
4884            // Single Event Display
4885            $(".mec-skin-list-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
4886                e.preventDefault();
4887                var href = $(this).attr('href');
4888
4889                var id = $(this).data('event-id');
4890                var occurrence = get_parameter_by_name('occurrence', href);
4891                var time = get_parameter_by_name('time', href);
4892
4893                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
4894            });
4895        }
4896    };
4897}(jQuery));
4898
4899// MEC Grid VIEW Fluent PLUGIN
4900(function ($) {
4901    $.fn.mecGridViewFluent = function (options) {
4902        var active_month;
4903        var active_year;
4904
4905        // Default Options
4906        var settings = $.extend({
4907            // These are the defaults.
4908            today: null,
4909            id: 0,
4910            events_label: 'Events',
4911            event_label: 'Event',
4912            month_navigator: 0,
4913            atts: '',
4914            active_month: {},
4915            next_month: {},
4916            sf: {},
4917            ajax_url: '',
4918        }, options);
4919
4920        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + settings.month_i
4920d);
4921
4922        function initLoadMore(monthID) {
4923            $(monthID).off().on('click', '.mec-load-more-button', function () {
4924                loadMore(this);
4925            });
4926        }
4927
4928        function loadMore(This) {
4929            // Add loading Class
4930            var currentLoadMore = $(This);
4931            currentLoadMore.addClass("mec-load-more-loading");
4932            var endDate = currentLoadMore.data('end-date');
4933            var maximumDate = currentLoadMore.data('maximum-date');
4934            var nextOffset = currentLoadMore.data('next-offset');
4935            var year = currentLoadMore.data('year');
4936            var month = currentLoadMore.data('month');
4937
4938            $.ajax({
4939                url: settings.ajax_url,
4940                data: "action=mec_grid_load_more&mec_year=" + year + "&mec_month=" + month + "&mec_maximum_date=" + maximumDate + "&mec_start_date=" + endDate + "&mec_offset=" + nextOffset + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=0",
4941                dataType: "json",
4942                type: "post",
4943                success: function (response) {
4944                    currentLoadMore.parent().remove();
4945                    if (response.count != '0') {
4946                        // Append Items
4947                        $('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4948
4949                        // Single Event Method
4950                        if (settings.sed_method != '0') {
4951                            sed();
4952                        }
4953
4954                        mecFluentCustomScrollbar();
4955                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4956                    }
4957                },
4958                error: function () { }
4959            });
4960        }
4961
4962        // Initialize Month Navigator
4963        if (settings.month_navigator) initMonthNavigator();
4964
4965        // Load Next Month in background
4966        setMonth(settings.next_month.year, settings.next_month.month, true);
4967
4968        var initMonth;
4969        var initYear;
4970        active_month = initMonth = settings.active_month.month;
4971        active_year = initYear = settings.active_month.year;
4972
4973        // Search Widget
4974        if (settings.sf.container !== '') {
4975            sf = $(settings.sf.container).mecSearchForm({
4976                id: settings.id,
4977                refine: settings.sf.refine,
4978                ajax_url: settings.ajax_url,
4979                atts: settings.atts,
4980                callback: function (atts) {
4981                    settings.atts = atts;
4982                    search(active_year, active_month);
4983                }
4984            });
4985        }
4986
4987        // Single Event Method
4988        if (settings.sed_method != '0') {
4989            sed();
4990        }
4991
4992        function initMonthNavigator() {
4993            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4994                var year = $(this).data("mec-year");
4995                var month = $(this).data("mec-month");
4996                setMonth(year, month, false, true);
4997            });
4998        }
4999
5000        function parseQuery(queryString) {
5001            var query = {};
5002            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
5003            for (var i = 0; i < pairs.length; i++) {
5004                var pair = pairs[i].split('=');
5005                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
5006            }
5007            return query;
5008        }
5009
5010        function updateQueryStringParameter(uri, key, val) {
5011            return uri
5012                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
5013                .replace(/^([^?&]+)&/, "$1?");
5014        }
5015
5016        function search(year, month) {
5017            // Add Loading Class
5018            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
5019            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
5020
5021            var ObjAtts = parseQuery(settings.atts);
5022            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
5023                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
5024                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
5025            }
5026
5027            $.ajax({
5028                url: settings.ajax_url,
5029                data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
5030                dataType: "json",
5031                type: "post",
5032                success: function (response) {
5033                    active_month = response.current_month.month;
5034                    active_year = response.current_month.year;
5035
5036                    // Append Month
5037                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_grid_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
5038
5039                    // Append Month Navigator
5040                    $("#mec_skin_" + settings.id + " .mec-skin-grid-view-month-navigator-container").html('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
5041
5042                    // Re-initialize Month Navigator
5043                    initMonthNavigator();
5044
5045                    // Toggle Month
5046                    toggleMonth(response.current_month.id);
5047
5048                    initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
5049
5050                    // Remove loading Class
5051                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
5052
5053                    mecFluentCustomScrollbar();
5054                },
5055                error: function () { }
5056            });
5057        }
5058
5059        function setMonth(year, month, do_in_background, navigator_click) {
5060            if (typeof do_in_background === "undefined") do_in_background = false;
5061            navigator_click = navigator_click || false;
5062            var month_id = year + "" + month;
5063
5064            if (!do_in_background) {
5065                active_month = month;
5066                active_year = year;
5067            }
5068
5069            // Month exists so we just show it
5070            if ($("#mec_grid_view_month_" + settings.id + "_" + month_id).length) {
5071                // Toggle Month
5072                toggleMonth(month_id);
5073                mecFluentCustomScrollbar();
5074            } else {
5075                if (!do_in_background) {
5076                    // Add Loading Class
5077                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
5078                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
5079                }
5080
5081                $.ajax({
5082                    url: settings.ajax_url,
5083                    data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
5084                    dataType: "json",
5085                    type: "post",
5086                    success: function (response) {
5087                        // Append Month
5088                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_grid_view_month_' + settings.id + '_' + response.current_month.id + '" data-month-id="' + response.current_month.id + '">' + response.month + '</div>');
5089
5090                        // Append Month Navigator
5091                        $("#mec_skin_" + settings.id + " .mec-skin-grid-view-month-navigator-container").append('<div class="mec-month-navigator" id="mec_month_navigator_' + settings.id + '_' + response.current_month.id + '">' + response.navigator + '</div>');
5092
5093                        // Re-initialize Month Navigator
5094                        initMonthNavigator();
5095                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
5096
5097                        if (!do_in_background) {
5098                            // Toggle Month
5099                            toggleMonth(response.current_month.id);
5100
5101                            // Remove loading Class
5102                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
5103
5104
5105                            // Set Month Filter values in search widget
5106                            $("#mec_sf_month_" + settings.id).val(month);
5107                            $("#mec_sf_year_" + settings.id).val(year);
5108                        } else {
5109                            $("#mec_grid_view_month_" + settings.id + "_" + response.current_month.id).hide();
5110                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
5111                        }
5112                        if (typeof custom_month !== undefined) var custom_month;
5113                        if (typeof custom_month != undefined) {
5114                            if (custom_month == 'true') {
5115                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
5116                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
5117                                $('.mec-calendar-day').unbind('click');
5118                            }
5119                        }
5120                        if (!do_in_background) {
5121                            mecFluentCustomScrollbar();
5122                        }
5123                    },
5124                    error: function () { }
5125                });
5126            }
5127        }
5128
5129        function toggleMonth(month_id) {
5130            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
5131            var active_day = $("#mec_grid_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
5132
5133            if (active_day <= 9) active_day = "0" + active_day;
5134
5135            // Toggle Month Navigator
5136            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
5137            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
5138
5139            // Toggle Month
5140            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
5141            $("#mec_grid_view_month_" + settings.id + "_" + month_id).show();
5142
5143            // Add selected class
5144            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
5145            $("#mec_grid_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
5146        }
5147
5148        var sf;
5149
5150        function sed() {
5151            // Single Event Display
5152            $(".mec-skin-grid-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
5153                e.preventDefault();
5154                var href = $(this).attr('href');
5155
5156                var id = $(this).data('event-id');
5157                var occurrence = get_parameter_by_name('occurrence', href);
5158                var time = get_parameter_by_name('time', href);
5159
5160                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
5161            });
5162        }
5163    };
5164}(jQuery));
5165
5166// MEC Booking Calendar
5167(function($)
5168{
5169    $.fn.mecBookingCalendar = function(options)
5170    {
5171        var active_month;
5172        var active_year;
5173
5174        // Default Options
5175        var settings = $.extend({
5176            // These are the defaults.
5177            active_month: {},
5178            next_month: {},
5179            ajax_url: '',
5180            event_id: '',
5181        }, options);
5182
5183        // Initialize Month Navigator
5184        initMonthNavigator();
5185
5186        active_month = settings.active_month.month;
5187        active_year = settings.active_month.year;
5188
5189        // Set onclick Listeners
5190        setListeners();
5191
5192        function initMonthNavigator()
5193        {
5194            // Add onclick event
5195            $("#mec_booking_calendar_" + settings.id + " .mec-load-month").off('click').on('click', function()
5196            {
5197                var year = $(this).data('mec-year');
5198                var month = $(this).data('mec-month');
5199
5200                setMonth(year, month);
5201            });
5202        }
5203
5204        function setMonth(year, month)
5205        {
5206            active_month = month;
5207            active_year = year;
5208
5209            var $modal = $('.mec-modal-result');
5210
5211            // Add Loading Class
5212            if ($modal.length === 0) $('.mec-wrap').append('<div class="mec-modal-result"></div>');
5213            $modal.addClass('mec-month-navigator-loading');
5214
5215            $.ajax(
5216            {
5217                url: settings.ajax_url,
5218                data: "action=mec_booking_calendar_load_month&event_id=" + settings.event_id + "&uniqueid=" + settings.id + "&year=" + year + "&month=" + month,
5219                dataType: "json",
5220                type: "post",
5221                success: function(response)
5222                {
5223                    // HTML
5224                    $('#mec_booking_calendar_wrapper' + settings.id).html(response.html);
5225
5226                    // Hide Message
5227                    $('#mec_book_form' + settings.id + ' .mec-ticket-unavailable-spots').addClass('mec-util-hidden');
5228
5229                    // Empty the Date
5230                    $('#mec_book_form_date' + settings.id).val('').trigger('change');
5231
5232                    // Remove loading Class
5233                    $modal.removeClass("mec-month-navigator-loading");
5234                },
5235                error: function()
5236                {
5237                    // Remove loading Class
5238                    $modal.removeClass("mec-month-navigator-loading");
5239                }
5240            });
5241        }
5242
5243        function setListeners()
5244        {
5245            // Add the onclick event
5246            $("#mec_booking_calendar_" + settings.id + " .mec-booking-calendar-date").off('click').on('click', function(e)
5247            {
5248                e.preventDefault();
5249
5250                // Activate
5251                $("#mec_booking_calendar_" + settings.id + " .mec-booking-calendar-date").removeClass('mec-active');
5252                $("#mec_booking_calendar_" + settings.id + " .mec-calendar-day").removeClass('mec-wrap-active');
5253                $(this).addClass('mec-active');
5254                $(this).parents('.mec-calendar-day').addClass('mec-wrap-active');
5255
5256                // Set Data
5257                var timestamp = $(this).data('timestamp');
5258                $('#mec_book_form_date' + settings.id).val(timestamp).trigger('change');
5259            });
5260
5261            // Add the onclick event on calendar date
5262            $("#mec_booking_calendar_" + settings.id + " .mec-has-one-repeat-in-day").off('click').on('click', function(e)
5263            {
5264                e.preventDefault();
5265
5266                var mec_date_value = $(this).attr('data-timestamp');
5267
5268                // Activate
5269                $("#mec_booking_calendar_" + settings.id + " .mec-has-one-repeat-in-day").removeClass('mec-active');
5270                $("#mec_booking_calendar_" + settings.id + " [data-timestamp=\"" + mec_date_value + "\"]").addClass('mec-active');
5271
5272                // Set Data
5273                var timestamp = $(this).data('timestamp');
5274                $('#mec_book_form_date' + settings.id).val(timestamp).trigger('change');
5275            });
5276
5277            // If day has some time slot
5278            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat .mec-calendar-novel-selected-day").off('click').on('click', function(e)
5279            {
5280                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-wrap-active').removeClass('mec-active');
5281                $(".mec-has-time-repeat").find('.mec-booking-calendar-date').hide();
5282                $(this).parents(".mec-has-time-repeat").find('.mec-booking-calendar-date').toggle();
5283                $(this).parents(".mec-has-time-repeat").addClass('mec-active');
5284            });
5285
5286            // Find more time in tooltip to set button
5287            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").on('mouseenter', function()
5288            {
5289                var moreTimeFinder = $(this).find(".mec-booking-calendar-date");
5290                if(moreTimeFinder.length >= 1)
5291                {
5292                    $(this).find(".mec-booking-tooltip").removeClass("multiple-time");
5293                    $(this).find(".mec-booking-tooltip").addClass("multiple-time");
5294                }
5295
5296                $(this).find(".mec-booking-calendar-date").css("display", "block");
5297            });
5298
5299            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").off('click').on('click', function()
5300            {
5301                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-wrap-active').removeClass('mec-active');
5302                $(this).addClass("mec-active");
5303
5304                // Send message under the calendar for multiple time in one day
5305                var sendTimeToMessage = $(this).find(".multiple-time .mec-booking-calendar-date.mec-active").text();
5306
5307                $(this).parents().eq(3).find(".mec-choosen-time-message").removeClass("disable");
5308                $(this).parents().eq(3).find(".mec-choosen-time-message .mec-choosen-time").empty();
5309                $(this).parents().eq(3).find(".mec-choosen-time-message .mec-choosen-time").append(sendTimeToMessage);
5310            });
5311        }
5312    };
5313}(jQuery));
5314
5315// MEC Cart
5316(function($)
5317{
5318    $.fn.mecCart = function(options)
5319    {
5320        // Default Options
5321        var settings = $.extend({
5322            // These are the defaults.
5323            ajax_url: '',
5324        }, options);
5325
5326        // Set DOM Listeners
5327        setListeners();
5328
5329        function setListeners()
5330        {
5331            // Add the onclick event
5332            $(".mec-cart-remove-transactions").off('click').on('click', function(e)
5333            {
5334                e.preventDefault();
5335
5336                var transaction_id = $(this).data('transaction-id');
5337                remove(transaction_id);
5338            });
5339
5340            $('#mec_cart_coupon_form').off('submit').on('submit', function(e)
5341            {
5342                e.preventDefault();
5343                coupon();
5344            });
5345        }
5346
5347        function remove(transaction_id)
5348        {
5349            var $wrapper = $('.mec-cart');
5350
5351            // Add loading Class
5352            $wrapper.addClass('mec-loading');
5353
5354            $.ajax(
5355            {
5356                url: settings.ajax_url,
5357                data: "action=mec_cart_remove_transaction&transaction_id=" + transaction_id,
5358                dataType: "json",
5359                type: "post",
5360                success: function(response)
5361                {
5362                    // Remove Loading Class
5363                    $wrapper.removeClass('mec-loading');
5364
5365                    if(response.success)
5366                    {
5367                        // Remove Transaction Row
5368                        $('#mec_cart_transactions_'+transaction_id).remove();
5369
5370                        if(!$('#mec_cart_transactions_table>tbody>tr').length)
5371                        {
5372                            $('#mec_cart_transactions_table').remove();
5373                            $('.mec-cart-coupon-checkout-action').remove();
5374                            $('.mec-cart-empty-wrapper').removeClass('mec-util-hidden');
5375                        }
5376
5377                        // Update Total Payable Price
5378                        $('#mec_cart_total_payable').html(response.total);
5379                    }
5380                },
5381                error: function(){}
5382            });
5383        }
5384
5385        function coupon()
5386        {
5387            var $wrapper = $('.mec-cart');
5388            var $message = $('#mec_cart_message');
5389
5390            // Add loading Class
5391            $wrapper.addClass('mec-loading');
5392
5393            // Empty Message
5394            $message.html('');
5395
5396            var coupon = $('#mec_cart_coupon_input').val();
5397
5398            $.ajax(
5399            {
5400                url: settings.ajax_url,
5401                data: "action=mec_cart_coupon&coupon=" + coupon,
5402                dataType: "json",
5403                type: "post",
5404                success: function(response)
5405                {
5406                    // Remove Loading Class
5407                    $wrapper.removeClass('mec-loading');
5408
5409                    if(response.success)
5410                    {
5411                        $message.html('<p class="mec-success">'+response.message+'</p>');
5412
5413                        setTimeout(function()
5414                        {
5415                            location.reload();
5416                        }, 2000);
5417                    }
5418                    else
5419                    {
5420                        $message.html('<p class="mec-error">'+response.message+'</p>');
5421                    }
5422                },
5423                error: function(){}
5424            });
5425        }
5426    };
5427}(jQuery));
5428
5429// MEC Checkout
5430(function($)
5431{
5432    $.fn.mecCheckout = function(options)
5433    {
5434        // Default Options
5435        var settings = $.extend({
5436            // These are the defaults.
5437            ajax_url: '',
5438        }, options);
5439
5440        // Set DOM Listeners
5441        setListeners();
5442
5443        function setListeners()
5444        {
5445            // Add the onclick event
5446            $(".mec-checkout-gateways-radio").off('change').on('change', function(e)
5447            {
5448                e.preventDefault();
5449
5450                var gateway_id = $('.mec-checkout-gateways-radio:checked').val();
5451
5452                // Hide all gateway forms
5453                jQuery(".mec-checkout-form-gateway-checkout").addClass("mec-util-hidden");
5454
5455                // Show selected gateway form
5456                jQuery("#mec_checkout_form_gateway_checkout" + gateway_id).removeClass("mec-util-hidden");
5457            });
5458
5459            $('#mec_checkout_form_free_booking').off('submit').on('submit', function(e)
5460            {
5461                e.preventDefault();
5462                free();
5463            });
5464        }
5465
5466        function free()
5467        {
5468            var $wrapper = $('.mec-checkout');
5469            var $message = $('#mec_checkout_message');
5470
5471            // Add loading Class
5472            $wrapper.addClass('mec-loading');
5473
5474            // Empty Message
5475            $message.html('');
5476
5477            var data = $('#mec_checkout_form_free_booking').serialize();
5478
5479            $.ajax(
5480            {
5481                url: settings.ajax_url,
5482                data: data,
5483                dataType: "json",
5484                type: "post",
5485                success: function(response)
5486                {
5487                    // Remove Loading Class
5488                    $wrapper.removeClass('mec-loading');
5489
5490                    if(response.success)
5491                    {
5492                        $message.html('<p class="mec-success">'+response.message+'</p>');
5493                        $wrapper.slideUp().html('');
5494                    }
5495                    else
5496                    {
5497                        $message.html('<p class="mec-error">'+response.message+'</p>');
5498                    }
5499                },
5500                error: function(){}
5501            });
5502        }
5503    };
5504}(jQuery));
5505
5506// Booking Shortcode Scripts
5507jQuery(document).ready(function () {
5508    if (jQuery('.mec-booking-shortcode').length < 0) {
5509        return;
5510    }
5511    // Events
5512    if (jQuery().niceSelect) {
5513        jQuery('.mec-booking-shortcode').find('.mec-book-first').find('select').niceSelect();
5514    }
5515
5516    // General Calendar
5517    if ( jQuery("#gCalendarMonthFilterButton").length > 0 ) {
5518        jQuery("#gCalendarMonthFilterButton").datepicker({
5519            format: "yyyy-mm",
5520            viewMode: "months",
5521            minViewMode: "months"
5522        })
5523        jQuery("#gCalendarMonthFilterButton").datepicker('hide')
5524    }
5525});
5526// source --> https://tokeblog.com/wp-content/plugins/modern-events-calendar-lite/assets/js/events.js 
5527// Set datepicker default value.
5528var datepicker_format = 'yy-mm-dd';
5529
5530jQuery(document).ready(function($)
5531{
5532    // Image picker on terms menu
5533    $('.mec_upload_image_button').click(function(event)
5534    {
5535        event.preventDefault();
5536
5537        var frame;
5538        if(frame)
5539        {
5540            frame.open();
5541            return;
5542        }
5543
5544        frame = wp.media();
5545        frame.on('select', function()
5546        {
5547            // Grab the selected attachment.
5548            var attachment = frame.state().get('selection').first();
5549
5550            $('#mec_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
5551            $('#mec_thumbnail').val(attachment.attributes.url);
5552
5553            $('.mec_remove_image_button').toggleClass('mec-util-hidden');
5554
5555            frame.close();
5556        });
5557
5558        frame.open();
5559    });
5560
5561    // Image remover on terms menu
5562    $('.mec_remove_image_button').click(function(event)
5563    {
5564        event.preventDefault();
5565
5566        $('#mec_thumbnail_img').html('');
5567        $('#mec_thumbnail').val('');
5568
5569        $('.mec_remove_image_button').toggleClass('mec-util-hidden');
5570    });
5571
5572    // Image picker on add event menu for location
5573    $('.mec_location_upload_image_button').click(function(event)
5574    {
5575        event.preventDefault();
5576
5577        var frame;
5578        if(frame)
5579        {
5580            frame.open();
5581            return;
5582        }
5583
5584        frame = wp.media();
5585        frame.on('select', function()
5586        {
5587            // Grab the selected attachment.
5588            var attachment = frame.state().get('selection').first();
5589
5590            $('#mec_location_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
5591            $('#mec_location_thumbnail').val(attachment.attributes.url);
5592
5593            $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
5594
5595            frame.close();
5596        });
5597
5598        frame.open();
5599    });
5600
5601    // Image remover on add event menu for location
5602    $('.mec_location_remove_image_button').click(function(event)
5603    {
5604        event.preventDefault();
5605
5606        $('#mec_location_thumbnail_img').html('');
5607        $('#mec_location_thumbnail').val('');
5608
5609        $('.mec_location_remove_image_button').toggleClass('mec-util-hidden');
5610    });
5611
5612    // Image picker on add event menu for organizer
5613    $('.mec_organizer_upload_image_button').click(function(event)
5614    {
5615        event.preventDefault();
5616
5617        var frame;
5618        if(frame)
5619        {
5620            frame.open();
5621            return;
5622        }
5623
5624        frame = wp.media();
5625        frame.on('select', function()
5626        {
5627            // Grab the selected attachment.
5628            var attachment = frame.state().get('selection').first();
5629
5630            $('#mec_organizer_thumbnail_img').html('<img src="'+attachment.attributes.url+'" />');
5631            $('#mec_organizer_thumbnail').val(attachment.attributes.url);
5632
5633            $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
5634
5635            frame.close();
5636        });
5637
5638        frame.open();
5639    });
5640
5641    // Image remover on add event menu for organizer
5642    $('.mec_organizer_remove_image_button').click(function(event)
5643    {
5644        event.preventDefault();
5645
5646        $('#mec_organizer_thumbnail_img').html('');
5647        $('#mec_organizer_thumbnail').val('');
5648
5649        $('.mec_organizer_remove_image_button').toggleClass('mec-util-hidden');
5650    });
5651
5652    // Image remover on frontend event submission menu
5653    $('#mec_fes_remove_image_button').click(function(event)
5654    {
5655        event.preventDefault();
5656
5657        $('#mec_fes_thumbnail_img').html('');
5658        $('#mec_fes_thumbnail').val('');
5659        $('#mec_featured_image_file').val('');
5660
5661        $('#mec_fes_remove_image_button').addClass('mec-util-hidden');
5662    });
5663
5664    // Location Image remover on frontend event submission menu
5665    $('#mec_fes_location_remove_image_button').click(function(event)
5666    {
5667        event.preventDefault();
5668
5669        $('#mec_fes_location_thumbnail_img').html('');
5670        $('#mec_fes_location_thumbnail').val('');
5671        $('#mec_fes_location_thumbnail_file').val('');
5672
5673        $('#mec_fes_location_remove_image_button').addClass('mec-util-hidden');
5674    });
5675
5676    // Organizer Image remover on frontend event submission menu
5677    $('#mec_fes_organizer_remove_image_button').click(function(event)
5678    {
5679        event.preventDefault();
5680
5681        $('#mec_fes_organizer_thumbnail_img').html('');
5682        $('#mec_fes_organizer_thumbnail').val('');
5683        $('#mec_fes_organizer_thumbnail_file').val('');
5684
5685        $('#mec_fes_organizer_remove_image_button').addClass('mec-util-hidden');
5686    });
5687
5688    var date_splite;
5689    if(typeof mec_admin_localize !== 'undefined')
5690    {
5691        date_splite = mec_admin_localize.datepicker_format.split('&');
5692        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
5693    }
5694    else if(typeof mecdata !== 'undefined')
5695    {
5696        date_splite = mecdata.datepicker_format.split( '&' );
5697        if(date_splite[0] !== undefined && date_splite.length == 2) datepicker_format = date_splite[0];
5698    }
5699
5700    $('[id^="mec-book-form-btn-step"]').on('click',function()
5701    {
5702        setTimeout(function()
5703        {
5704            if($.fn.datepicker)
5705            {
5706                if('date' !== $('.mec-date-picker').prop('type'))
5707                {
5708                    $('.mec-date-picker').datepicker(
5709                    {
5710                        changeYear: true,
5711                        changeMonth: true,
5712                        dateFormat: datepicker_format,
5713                        gotoCurrent: true,
5714                        yearRange: 'c-3:c+5',
5715                    });
5716                }
5717
5718            }
5719        }, 1000);
5720    });
5721
5722    if($.fn.datepicker)
5723    {
5724        $('.mec-date-picker').datepicker(
5725        {
5726            changeYear: true,
5727            changeMonth: true,
5728            dateFormat: datepicker_format,
5729            gotoCurrent: true,
5730            yearRange: 'c-3:c+5',
5731        });
5732
5733        $('#mec_start_date').datepicker(
5734        {
5735            changeYear: true,
5736            changeMonth: true,
5737            dateFormat: datepicker_format,
5738            gotoCurrent: true,
5739            yearRange: 'c-3:c+5',
5740        });
5741
5742        $('#mec_end_date').datepicker(
5743        {
5744            changeYear: true,
5745            changeMonth: true,
5746            dateFormat: datepicker_format,
5747            gotoCurrent: true,
5748            yearRange: 'c-3:c+5',
5749        });
5750
5751        $('#mec_date_repeat_end_at_date').datepicker(
5752        {
5753            changeYear: true,
5754            changeMonth: true,
5755            dateFormat: datepicker_format,
5756            gotoCurrent: true,
5757            yearRange: 'c-3:c+5',
5758        });
5759
5760        $('.mec_date_picker_dynamic_format').datepicker(
5761        {
5762            changeYear: true,
5763            changeMonth: true,
5764            dateFormat: datepicker_format,
5765            gotoCurrent: true,
5766            yearRange: 'c-3:c+5',
5767        });
5768
5769        $('.mec_date_picker').datepicker(
5770        {
5771            changeYear: true,
5772            changeMonth: true,
5773            dateFormat: 'yy-mm-dd',
5774            gotoCurrent: true,
5775            yearRange: 'c-3:c+5',
5776        });
5777
5778        $('.mec_date_picker_dynamic_format_start').datepicker(
5779        {
5780            changeYear: true,
5781            changeMonth: true,
5782            dateFormat: datepicker_format,
5783            gotoCurrent: true,
5784            yearRange: 'c-1:c+5',
5785            onSelect: function(date)
5786            {
5787                var selectedDate = new Date(date);
5788                var endDate = new Date(selectedDate.getTime());
5789
5790                var $end_picker = $(this).next();
5791                $end_picker.datepicker("option", "minDate", endDate);
5792                $end_picker.datepicker("option", "maxDate", '+5y');
5793            }
5794        });
5795
5796        $('.mec_date_picker_dynamic_format_end').datepicker(
5797        {
5798            changeYear: true,
5799            changeMonth: true,
5800            dateFormat: datepicker_format,
5801            gotoCurrent: true,
5802            yearRange: 'c-1:c+5',
5803        });
5804    }
5805
5806    $('#mec_location_id').on('change', function()
5807    {
5808        mec_location_toggle();
5809    });
5810
5811    $('#mec_organizer_id').on('change', function()
5812    {
5813        mec_organizer_toggle();
5814        var mec_organizer_val = parseInt($(this).val());
5815        var mec_additional_organizer = $(this).parent().parent().find('#mec-additional-organizer-wrap');
5816
5817        if(mec_organizer_val != 1) mec_additional_organizer.show();
5818        else mec_additional_organizer.hide();
5819    });
5820
5821    mec_location_toggle();
5822    mec_organizer_toggle();
5823
5824    $('#mec_repeat').on('change', function()
5825    {
5826        mec_repeat_toggle();
5827    });
5828
5829    mec_repeat_toggle();
5830
5831    $('#mec_repeat_type').on('change', function()
5832    {
5833        mec_repeat_type_toggle();
5834    });
5835
5836    mec_repeat_type_toggle();
5837
5838    $('#mec_bookings_limit_unlimited').on('change', function()
5839    {
5840        mec_bookings_unlimited_toggle();
5841    });
5842
5843    $('#mec_add_in_days').on('click', function()
5844    {
5845        var allday = $(this).data('allday');
5846
5847        var start = $('#mec_exceptions_in_days_start_date').val();
5848        if(start === '') return false;
5849
5850        var end = $('#mec_exceptions_in_days_end_date').val();
5851        if(end === '') return false;
5852
5853        var start_hour = $('#mec_exceptions_in_days_start_hour').val();
5854        if(start_hour.length === 1) start_hour = '0'+start_hour;
5855
5856        var start_minutes = $('#mec_exceptions_in_days_start_minutes').val();
5857        if(start_minutes.length === 1) start_minutes = '0'+start_minutes;
5858
5859        var start_ampm = $('#mec_exceptions_in_days_start_ampm').val();
5860        if(typeof start_ampm === 'undefined') start_ampm = '';
5861
5862        var end_hour = $('#mec_exceptions_in_days_end_hour').val();
5863        if(end_hour.length === 1) end_hour = '0'+end_hour;
5864
5865        var end_minutes = $('#mec_exceptions_in_days_end_minutes').val();
5866        if(end_minutes.length === 1) end_minutes = '0'+end_minutes;
5867
5868        var end_ampm = $('#mec_exceptions_in_days_end_ampm').val();
5869        if(typeof end_ampm === 'undefined') end_ampm = '';
5870
5871        var value = start + ':' + end + ':' + start_hour + '-' + start_minutes + '-' + start_ampm + ':' + end_hour + '-' + end_minutes + '-' + end_ampm;
5872        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>';
5873
5874        // Don't add exactly same occurrences
5875        if($('#mec_in_days input[value="'+value+'"]').length > 0) return false;
5876
5877        var $key = $('#mec_new_in_days_key');
5878
5879        var key = $key.val();
5880        var html = $('#mec_new_in_days_raw').html().replace(/:i:/g, key).replace(/:val:
5880/g, value).replace(/:label:/g, label);
5881
5882        $('#mec_in_days').append(html);
5883        $key.val(parseInt(key)+1);
5884    });
5885
5886    $('#mec_add_not_in_days').on('click', function()
5887    {
5888        var date = $('#mec_exceptions_not_in_days_date').val();
5889        if(date === '') return false;
5890
5891        var key = $('#mec_new_not_in_days_key').val();
5892        var html = $('#mec_new_not_in_days_raw').html().replace(/:i:/g, key).replace(/:val:/g, date);
5893
5894        $('#mec_not_in_days').append(html);
5895        $('#mec_new_not_in_days_key').val(parseInt(key)+1);
5896    });
5897
5898    $('#mec_add_ticket_button').on('click', function()
5899    {
5900        var key = $('#mec_new_ticket_key').val();
5901        var html = $('#mec_new_ticket_raw').html().replace(/:i:/g, key);
5902
5903        $('#mec_tickets').append(html);
5904        $('#mec_new_ticket_key').val(parseInt(key)+1);
5905
5906        $('.mec_add_price_date_button').off('click').on('click', function()
5907        {
5908            mec_handle_add_price_date_button(this);
5909        });
5910
5911        $.each($(".mec-select2"), function(i,v){
5912
5913            if( $(v).attr('name').search(":i:") > 0 ){
5914
5915                return;
5916            }
5917
5918            if( typeof $(v).data('select2-id') == 'undefined' ){
5919
5920                $(v).select2();
5921            }
5922        });
5923    });
5924
5925    $('.mec_add_price_date_button').off('click').on('click', function()
5926    {
5927        mec_handle_add_price_date_button(this);
5928    });
5929
5930    mec_hourly_schedule_add_day_listener();
5931
5932    $('#mec_add_fee_button').on('click', function()
5933    {
5934        var key = $('#mec_new_fee_key').val();
5935        var html = $('#mec_new_fee_raw').html().replace(/:i:/g, key);
5936
5937        $('#mec_fees_list').append(html);
5938        $('#mec_new_fee_key').val(parseInt(key)+1);
5939    });
5940
5941    $('#mec_add_ticket_variation_button').on('click', function()
5942    {
5943        var key = $('#mec_new_ticket_variation_key').val();
5944        var html = $('#mec_new_ticket_variation_raw').html().replace(/:i:/g, key);
5945
5946        $('#mec_ticket_variations_list').append(html);
5947        $('#mec_new_ticket_variation_key').val(parseInt(key)+1);
5948    });
5949
5950    $('.mec-form-row.mec-available-color-row span').on('click', function()
5951    {
5952        $('.mec-form-row.mec-available-color-row span').removeClass('color-selected');
5953        $(this).addClass('color-selected');
5954    });
5955
5956    $('#mec_reg_form_field_types button').on('click', function()
5957    {
5958        var type = $(this).data('type');
5959
5960        if (type == 'mec_email') {
5961            if ($('#mec_reg_form_fields').find('input[value="mec_email"][type="hidden"]').length) {
5962                return false;
5963            }
5964        }
5965
5966        if (type == 'name') {
5967            if ($('#mec_reg_form_fields').find('input[value="name"][type="hidden"]').length) {
5968                return false;
5969            }
5970        }
5971
5972        var key  = $('#mec_new_reg_field_key').val();
5973        var html = $('#mec_reg_field_'+type).html().replace(/:i:/g, key);
5974
5975        $('#mec_reg_form_fields').append(html);
5976        $('#mec_new_reg_field_key').val(parseInt(key)+1);
5977
5978        // Set onclick listener for add option fields
5979        mec_reg_fields_option_listeners();
5980    });
5981
5982    // Set onclick listener for add option fields
5983    mec_reg_fields_option_listeners();
5984
5985    // Advanced Repeating
5986    $('#mec-advanced-wraper ul > ul > li').click(function()
5987    {
5988        if($(this).attr('class') == '') $(this).attr('class', 'mec-active');
5989        else $(this).attr('class', '');
5990
5991        $('#mec_date_repeat_advanced').val($('#mec-advanced-wraper div:first-child > ul').find('.mec-active').find('span').text().slice(0, -1));
5992    });
5993
5994    $('#mec_event_form_field_types button').on('click', function()
5995    {
5996        var type = $(this).data('type');
5997
5998        var key  = $('#mec_new_event_field_key').val();
5999        var html = $('#mec_event_field_'+type).html().replace(/:i:/g, key);
6000
6001        $('#mec_event_form_fields').append(html);
6002        $('#mec_new_event_field_key').val(parseInt(key)+1);
6003
6004        // Set onclick listener for add option fields
6005        mec_event_fields_option_listeners();
6006    });
6007
6008    // Set onclick listener for add option fields
6009    mec_event_fields_option_listeners();
6010
6011    $('#mec_bfixed_form_field_types button').on('click', function()
6012    {
6013        var type = $(this).data('type');
6014
6015        var key  = $('#mec_new_bfixed_field_key').val();
6016        var html = $('#mec_bfixed_field_'+type).html().replace(/:i:/g, key);
6017
6018        $('#mec_bfixed_form_fields').append(html);
6019        $('#mec_new_bfixed_field_key').val(parseInt(key)+1);
6020
6021        // Set onclick listener for add option fields
6022        mec_bfixed_fields_option_listeners();
6023    });
6024
6025    // Set onclick listener for add option fields
6026    mec_bfixed_fields_option_listeners();
6027
6028    // Additional Organizers
6029    mec_additional_organizers_listeners();
6030});
6031
6032function mec_location_toggle()
6033{
6034    if(jQuery('#mec_location_id').val() != '0') jQuery('#mec_location_new_container').hide();
6035    else jQuery('#mec_location_new_container').show();
6036}
6037
6038function mec_organizer_toggle()
6039{
6040    if(jQuery('#mec_organizer_id').val() != '0') jQuery('#mec_organizer_new_container').hide();
6041    else jQuery('#mec_organizer_new_container').show();
6042}
6043
6044function mec_repeat_toggle()
6045{
6046    if(jQuery('#mec_repeat').is(':checked')) jQuery('.mec-form-repeating-event-row').show();
6047    else jQuery('.mec-form-repeating-event-row').hide();
6048}
6049
6050function mec_repeat_type_toggle()
6051{
6052    var repeat_type = jQuery('#mec_repeat_type').val();
6053
6054    if(repeat_type == 'certain_weekdays')
6055    {
6056        jQuery('#mec_repeat_interval_container').hide();
6057        jQuery('#mec_repeat_certain_weekdays_container').show();
6058        jQuery('#mec_exceptions_in_days_container').hide();
6059        jQuery('#mec_end_wrapper').show();
6060        jQuery('#mec-advanced-wraper').hide();
6061    }
6062    else if(repeat_type == 'custom_days')
6063    {
6064        jQuery('#mec_repeat_interval_container').hide();
6065        jQuery('#mec_repeat_certain_weekdays_container').hide();
6066        jQuery('#mec_exceptions_in_days_container').show();
6067        jQuery('#mec_end_wrapper').hide();
6068        jQuery('#mec-advanced-wraper').hide();
6069    }
6070    else if(repeat_type == 'advanced')
6071    {
6072        jQuery('#mec_repeat_interval_container').hide();
6073        jQuery('#mec_repeat_certain_weekdays_container').hide();
6074        jQuery('#mec_exceptions_in_days_container').hide();
6075        jQuery('#mec_end_wrapper').show();
6076        jQuery('#mec-advanced-wraper').show();
6077    }
6078    else if(repeat_type != 'daily' && repeat_type != 'weekly' && repeat_type != 'monthly')
6079    {
6080        jQuery('#mec_repeat_interval_container').hide();
6081        jQuery('#mec_repeat_certain_weekdays_container').hide();
6082        jQuery('#mec_exceptions_in_days_container').hide();
6083        jQuery('#mec_end_wrapper').show();
6084        jQuery('#mec-advanced-wraper').hide();
6085    }
6086    else
6087    {
6088        jQuery('#mec_repeat_interval_container').show();
6089        jQuery('#mec_repeat_certain_weekdays_container').hide();
6090        jQuery('#mec_exceptions_in_days_container').hide();
6091        jQuery('#mec_end_wrapper').show();
6092        jQuery('#mec-advanced-wraper').hide();
6093    }
6094}
6095
6096function mec_in_days_remove(i)
6097{
6098    jQuery('#mec_in_days_row'+i).remove();
6099}
6100
6101function mec_not_in_days_remove(i)
6102{
6103    jQuery('#mec_not_in_days_row'+i).remove();
6104}
6105
6106function mec_bookings_unlimited_toggle()
6107{
6108    jQuery('#mec_bookings_limit').toggleClass('mec-util-hidden');
6109}
6110
6111function mec_hourly_schedule_add_day_listener()
6112{
6113    jQuery('.mec-add-hourly-schedule-day-button').each(function()
6114    {
6115        jQuery(this).off('click').on('click', function()
6116        {
6117            var k = jQuery(this).data('key');
6118            var raw = jQuery(this).data('raw');
6119            var append = jQuery(this).data('append');
6120
6121            var key = jQuery(k).val();
6122            var html = jQuery(raw).html().replace(/:d:/g, key).replace(/:dd:/g, parseInt(key)+1);
6123
6124            jQuery(append).append(html);
6125            jQuery(k).val(parseInt(key)+1);
6126
6127            mec_hourly_schedule_listeners();
6128        });
6129
6130        mec_hourly_schedule_listeners();
6131    });
6132}
6133
6134function mec_hourly_schedule_listeners()
6135{
6136    jQuery('.mec-add-hourly-schedule-button').off('click').on('click', function()
6137    {
6138        var prefix = jQuery(this).data('prefix');
6139        var day = jQuery(this).data('day');
6140        var $key = jQuery('#'+prefix+'mec_new_hourly_schedule_key'+day);
6141
6142        var key = $key.val();
6143        var html = jQuery('#'+prefix+'mec_new_hourly_schedule_raw'+day).html().replace(/:i:/g, key).replace(/:d:/g, day).replace();
6144        var g_field_id = prefix+"-hourly_schedules-"+day+"-schedules-:i:-description";
6145        var field_id = prefix+"-hourly_schedules-"+day+"-schedules-"+key+"-description";
6146        html = html.replace(g_field_id,field_id);
6147        html = html.replace(':k:',key);
6148        jQuery('#'+prefix+'mec_hourly_schedules'+day).append(html);
6149        $key.val(parseInt(key)+1);
6150
6151        wp.editor.initialize("mec"+field_id,{
6152            tinymce: {
6153                wpautop: true,
6154                plugins : 'charmap colorpicker compat3x directionality fullscreen hr image lists media paste tabfocus textcolor wordpress wpautoresize wpdialogs wpeditimage wpemoji wpgallery wplink wptextpattern wpview',
6155                toolbar1: 'bold italic underline strikethrough | bullist numlist | blockquote hr wp_more | alignleft aligncenter alignright | link unlink | fullscreen | wp_adv',
6156                toolbar2: 'formatselect alignjustify forecolor | pastetext removeformat charmap | outdent indent | undo redo | wp_help'
6157            },
6158            quicktags: true,
6159            mediaButtons: false,
6160          });
6161    });
6162}
6163
6164function mec_hourly_schedule_remove(day, i, prefix)
6165{
6166    jQuery("#"+prefix+"mec_hourly_schedule_row"+day+'_'+i).remove();
6167}
6168
6169function mec_hourly_schedule_day_remove(day, prefix)
6170{
6171    jQuery("#"+prefix+"mec_meta_box_hourly_schedule_day_"+day).remove();
6172}
6173
6174function mec_ticket_remove(i)
6175{
6176    jQuery("#mec_ticket_row"+i).remove();
6177}
6178
6179function mec_set_event_color(color)
6180{
6181    try
6182    {
6183        jQuery("#mec_event_color").wpColorPicker('color', '#'+color);
6184    }
6185    catch(e)
6186    {
6187        jQuery("#mec_event_color").val(color);
6188    }
6189}
6190
6191function mec_remove_fee(key)
6192{
6193    jQuery("#mec_fee_row"+key).remove();
6194}
6195
6196function mec_remove_ticket_variation(key, id_prefix)
6197{
6198    jQuery("#mec_"+id_prefix+"_row"+key).remove();
6199}
6200
6201function add_variation_per_ticket(ticket_id)
6202{
6203    var $input = jQuery('#mec_new_variation_per_ticket_key');
6204
6205    var key = $input.val();
6206    var html = jQuery('#mec_new_variation_per_ticket_raw'+ticket_id).html().replace(/:v:/g, key);
6207
6208    jQuery('#mec_ticket_variations_list'+ticket_id).append(html);
6209    $input.val(parseInt(key)+1);
6210}
6211
6212function mec_reg_fields_option_listeners()
6213{
6214    jQuery('button.mec-reg-field-add-option').off('click').on('click', function()
6215    {
6216        var field_id = jQuery(this).data('field-id');
6217        var key = jQuery('#mec_new_reg_field_option_key_'+field_id).val();
6218        var html = jQuery('#mec_reg_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
6219
6220        jQuery('#mec_reg_fields_'+field_id+'_options_container').append(html);
6221        jQuery('#mec_new_reg_field_option_key_'+field_id).val(parseInt(key)+1);
6222    });
6223
6224    if(typeof jQuery.fn.sortable !== 'undefined')
6225    {
6226        jQuery("#mec_reg_form_fields").sortable(
6227        {
6228            handle: '.mec_reg_field_sort'
6229        });
6230
6231        jQuery(".mec_reg_fields_options_container").sortable(
6232        {
6233            handle: '.mec_reg_field_option_sort'
6234        });
6235    }
6236}
6237
6238function mec_reg_fields_option_remove(field_key, key)
6239{
6240    jQuery("#mec_reg_fields_option_"+field_key+"_"+key).remove();
6241}
6242
6243function mec_reg_fields_remove(key)
6244{
6245    jQuery("#mec_reg_fields_"+key).remove();
6246}
6247
6248function mec_handle_add_price_date_button(e)
6249{
6250    var key = jQuery(e).data('key');
6251    var p = jQuery('#mec_new_ticket_price_key_'+key).val();
6252    var html = jQuery('#mec_new_ticket_price_raw_'+key).html().replace(/:i:/g, key).replace(/:j:/g, p);
6253
6254    jQuery('#mec-ticket-price-dates-'+key).append(html);
6255    jQuery('#mec_new_ticket_price_key_'+key).val(parseInt(p)+1);
6256    jQuery('#mec-ticket-price-dates-'+key+' .new_added').datepicker(
6257    {
6258        changeYear: true,
6259        changeMonth: true,
6260        dateFormat: datepicker_format,
6261        gotoCurrent: true,
6262        yearRange: 'c-3:c+5',
6263    });
6264}
6265
6266function mec_ticket_price_remove(ticket_key, price_key)
6267{
6268    jQuery("#mec_ticket_price_raw_"+ticket_key+"_"+price_key).remove();
6269}
6270
6271function mec_event_fields_option_listeners()
6272{
6273    jQuery('button.mec-event-field-add-option').off('click').on('click', function()
6274    {
6275        var field_id = jQuery(this).data('field-id');
6276        var key = jQuery('#mec_new_event_field_option_key_'+field_id).val();
6277        var html = jQuery('#mec_event_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
6278
6279        jQuery('#mec_event_fields_'+field_id+'_options_container').append(html);
6280        jQuery('#mec_new_event_field_option_key_'+field_id).val(parseInt(key)+1);
6281    });
6282
6283    if(typeof jQuery.fn.sortable !== 'undefined')
6284    {
6285        jQuery("#mec_event_form_fields").sortable(
6286        {
6287            handle: '.mec_event_field_sort'
6288        });
6289
6290        jQuery(".mec_event_fields_options_container").sortable(
6291        {
6292            handle: '.mec_event_field_option_sort'
6293        });
6294    }
6295}
6296
6297function mec_event_fields_option_remove(field_key, key)
6298{
6299    jQuery("#mec_event_fields_option_"+field_key+"_"+key).remove();
6300}
6301
6302function mec_event_fields_remove(key)
6303{
6304    jQuery("#mec_event_fields_"+key).remove();
6305}
6306
6307function mec_bfixed_fields_option_listeners()
6308{
6309    jQuery('button.mec-bfixed-field-add-option').off('click').on('click', function()
6310    {
6311        var field_id = jQuery(this).data('field-id');
6312        var key = jQuery('#mec_new_bfixed_field_option_key_'+field_id).val();
6313        var html = jQuery('#mec_bfixed_field_option').html().replace(/:i:/g, key).replace(/:fi:/g, field_id);
6314
6315        jQuery('#mec_bfixed_fields_'+field_id+'_options_container').append(html);
6316        jQuery('#mec_new_bfixed_field_option_key_'+field_id).val(parseInt(key)+1);
6317    });
6318
6319    if(typeof jQuery.fn.sortable !== 'undefined')
6320    {
6321        jQuery("#mec_bfixed_form_fields").sortable(
6322        {
6323            handle: '.mec_bfixed_field_sort'
6324        });
6325
6326        jQuery(".mec_bfixed_fields_options_container").sortable(
6327        {
6328            handle: '.mec_bfixed_field_option_sort'
6329        });
6330    }
6331}
6332
6333function mec_bfixed_fields_option_remove(field_key, key)
6334{
6335    jQuery("#mec_bfixed_fields_option_"+field_key+"_"+key).remove();
6336}
6337
6338function mec_bfixed_fields_remove(key)
6339{
6340    jQuery("#mec_bfixed_fields_"+key).remove();
6341}
6342
6343function mec_additional_organizers_listeners()
6344{
6345    jQuery('#mec_additional_organizers_add').off('click').on('click', function()
6346    {
6347        var value = jQuery('.mec-additional-organizers select').val();
6348        var text = jQuery('.mec-additional-organizers select option:selected').text();
6349
6350        var sortLabel = jQuery(this).data('sort-label');
6351        var removeLabel = jQuery(this).data('remove-label');
6352
6353        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>');
6354
6355        mec_additional_organizers_listeners();
6356    });
6357
6358    if(typeof jQuery.fn.sortable !== 'undefined')
6359    {
6360        jQuery(".mec-additional-organizers-list").sortable(
6361        {
6362            handle: '.mec-additional-organizer-sort'
6363        });
6364    }
6365}
6366
6367function mec_additional_organizers_remove(element)
6368{
6369    jQuery(element).parent().remove();
6370};

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.