PageSourceSearch

https://bzt.bayern/wp-content/plugins/modern-events-calendar-lite/assets/js/frontend.js?ver=5.6.5

js bzt.bayern collected 2026-09-28 08:06:26 UTC 203,839 bytes, 4,766 lines download raw bytes

1// MEC Single Event Displayer
2var mecSingleEventDisplayer = {
3    getSinglePage: function (id, occurrence, time, ajaxurl, layout, image_popup) {
4        if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
5        jQuery('.mec-modal-result').addClass('mec-modal-preloader');
6
7        jQuery.ajax({
8            url: ajaxurl,
9            data: "action=mec_load_single_page&id=" + id + (occurrence != null ? "&occurrence=" + occurrence : "") + (time != null ? "&time=" + time : "") + "&layout=" + layout,
10            type: "get",
11            success: function (response) {
12                jQuery('.mec-modal-result').removeClass("mec-modal-preloader");
13                //lity(response);
14                jQuery.featherlight(response);
15
16                setTimeout(function()
17                {
18                    if(typeof grecaptcha !== 'undefined' && jQuery('#g-recaptcha').length > 0)
19                    {
20                        grecaptcha.render("g-recaptcha", {
21                            sitekey: mecdata.recapcha_key
22                        });
23                    }
24                }, 1000);
25
26                if (image_popup != 0) {
27                    if (jQuery('.featherlight-content .mec-events-content a img').length > 0) {
28                        jQuery('.featherlight-content .mec-events-content a img').each(function () {
29                            jQuery(this).closest('a').attr('data-featherlight', 'image');
30                        });
31                    }
32                } else {
33                    jQuery('.featherlight-content .mec-events-content a img').remove();
34                    jQuery('.featherlight-content .mec-events-content img').remove();
35                }
36
37                if (typeof mecdata.enableSingleFluent != 'undefined' && mecdata.enableSingleFluent) {
38                    mecFluentSinglePage();
39                }
40            },
41            error: function () {}
42        });
43    }
44};
45
46// MEC SEARCH FORM PLUGIN
47(function ($) {
48    $.fn.mecSearchForm = function (options) {
49        // Default Options
50        var settings = $.extend({
51            // These are the defaults.
52            id: 0,
53            search_form_element: '',
54            atts: '',
55            callback: function () {}
56        }, options);
57
58        $("#mec_sf_category_" + settings.id).on('change', function (e) {
59            search();
60        });
61
62        $("#mec_sf_location_" + settings.id).on('change', function (e) {
63            search();
64        });
65
66        $("#mec_sf_organizer_" + settings.id).on('change', function (e) {
67            search();
68        });
69
70        $("#mec_sf_speaker_" + settings.id).on('change', function (e) {
71            search();
72        });
73
74        $("#mec_sf_tag_" + settings.id).on('change', function (e) {
75            search();
76        });
77
78        $("#mec_sf_label_" + settings.id).on('change', function (e) {
79            search();
80        });
81
82        $("#mec_sf_s_" + settings.id).on('change', function (e) {
83            search();
84        });
85       
86        $("#mec_sf_address_s_" + settings.id).on('change', function (e) {
87            search();
88        });
89        
90        var mec_sf_month_selector = "#mec_sf_month_" + settings.id;
91        var  mec_sf_year_selector = "#mec_sf_year_" + settings.id;
92        mec_sf_month_selector += (', ' + mec_sf_year_selector);
93        
94        $(mec_sf_month_selector).on('change', function (e) {
95            if($(mec_sf_year_selector).find('option:eq(0)').val() == 'none')
96            {
97                var mec_month_val = $(mec_sf_month_selector).val();
98                var mec_year_val = $(mec_sf_year_selector).val();
99
100                if((mec_month_val != 'none' && mec_year_val != 'none') || ((mec_month_val == 'none' && mec_year_val == 'none'))) search();
101            } else search();
102        });
103
104        $("#mec_sf_event_type_" + settings.id).on('change', function (e) {
105            search();
106        });
107
108        $("#mec_sf_event_type_2_" + settings.id).on('change', function (e) {
109            search();
110        });
111        $("#mec_sf_attribute_" + settings.id).on('change', function (e) {
112            search();
113        });
114
115        if (settings.fields && settings.fields != null && settings.fields.length > 0) {
116            for (var k in settings.fields) {
117                $("#mec_sf_" + settings.fields[k] + '_' + settings.id).on('change', function (e) {
118                    search();
119                });
120            }
121        }
122
123        function search() {
124            var s = $("#mec_sf_s_" + settings.id).length ? $("#mec_sf_s_" + settings.id).val() : '';
125            var address = $("#mec_sf_address_s_" + settings.id).length ? $("#mec_sf_address_s_" + settings.id).val() : '';
126            var category = $("#mec_sf_category_" + settings.id).length ? $("#mec_sf_category_" + settings.id).val() : '';
127            var location = $("#mec_sf_location_" + settings.id).length ? $("#mec_sf_location_" + settings.id).val() : '';
128            var organizer = $("#mec_sf_organizer_" + settings.id).length ? $("#mec_sf_organizer_" + settings.id).val() : '';
129            var speaker = $("#mec_sf_speaker_" + settings.id).length ? $("#mec_sf_speaker_" + settings.id).val() : '';
130            var tag = $("#mec_sf_tag_" + settings.id).length ? $("#mec_sf_tag_" + settings.id).val() : '';
131            var label = $("#mec_sf_label_" + settings.id).length ? $("#mec_sf_label_" + settings.id).val() : '';
132            var month = $("#mec_sf_month_" + settings.id).length ? $("#mec_sf_month_" + settings.id).val() : '';
133            var year = $("#mec_sf_year_" + settings.id).length ? $("#mec_sf_year_" + settings.id).val() : '';
134            var event_type = $("#mec_sf_event_type_" + settings.id).length ? $("#mec_sf_event_type_" + settings.id).val() : '';
135            var event_type_2 = $("#mec_sf_event_type_2_" + settings.id).length ? $("#mec_sf_event_type_2_" + settings.id).val() : '';
136            var attribute = $("#mec_sf_attribute_" + settings.id).length ? $("#mec_sf_attribute_" + settings.id).val() : '';
137
138            if (year === 'none' && month === 'none') {
139                year = '';
140                month = '';
141            }
142
143            var addation_attr = '';
144
145            if (settings.fields && settings.fields != null && settings.fields.length > 0) {
146                for (var k in settings.fields) {
147                    var field = '#mec_sf_' + settings.fields[k] + '_' + settings.id;
148                    var val = $(field).length ? $(field).val() : '';
149                    addation_attr += '&sf[' + settings.fields[k] + ']=' + val;
150                }
151            }
152
153            var atts = settings.atts + '&sf[s]=' + s + '&sf[address]=' + address + '&sf[month]=' + month + '&sf[year]=' + year + '&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;
154            settings.callback(atts);
155        }
156    };
157
158}(jQuery));
159
160// MEC FULL CALENDAR PLUGIN
161(function ($) {
162    $.fn.mecFullCalendar = function (options) {
163        // Default Options
164        var settings = $.extend({
165            // These are the defaults.
166            id: 0,
167            atts: '',
168            ajax_url: '',
169            sf: {},
170            skin: '',
171        }, options);
172
173        // Set onclick Listeners
174        setListeners();
175
176        mecFluentCurrentTimePosition();
177        mecFluentCustomScrollbar();
178
179        var sf;
180
181        function setListeners() {
182            // Search Widget
183            if (settings.sf.container !== '') {
184                sf = $(settings.sf.container).mecSearchForm({
185                    id: settings.id,
186                    atts: settings.atts,
187                    callback: function (atts) {
188                        settings.atts = atts;
189                        search();
190                    }
191                });
192            }
193
194            // Add the onclick event
195            $("#mec_skin_" + settings.id + " .mec-totalcal-box .mec-totalcal-view span:not(.mec-fluent-more-views-icon)").on('click', function (e) {
196                e.preventDefault();
197                var skin = $(this).data('skin');
198                var mec_month_select = $('#mec_sf_month_' + settings.id);
199                var mec_year_select = $('#mec_sf_year_' + settings.id);
200
201                if(mec_year_select.val() == 'none')
202                {
203                    mec_year_select.find('option').each(function()
204                    {
205                        var option_val = $(this).val();
206                        if(option_val == mecdata.current_year) mec_year_select.val(option_val);
207                    });
208                }
209
210                if(skin == 'list')
211                {
212                    var mec_filter_none = '<option class="mec-none-item" value="none">' + $('#mec-filter-none').val() + '</option>';
213                    if(mec_month_select.find('.mec-none-item').length == 0) mec_month_select.prepend(mec_filter_none);
214                    if(mec_year_select.find('.mec-none-item').length == 0) mec_year_select.prepend(mec_filter_none);
215                }
216                else
217                {
218                    if(mec_month_select.find('.mec-none-item').length != 0) mec_month_select.find('.mec-none-item').remove();
219                    if(mec_year_select.find('.mec-none-item').length != 0) mec_year_select.find('.mec-none-item').remove();
220                }
221
222                $("#mec_skin_" + settings.id + " .mec-totalcal-box .mec-totalcal-view span").removeClass('mec-totalcalview-selected')
223                $(this).addClass('mec-totalcalview-selected');
224                if ($(this).closest('.mec-fluent-more-views-content').length > 0) {
225                    $('.mec-fluent-more-views-icon').addClass('active');
226                    $('.mec-fluent-more-views-content').removeClass('active');
227                } else {
228                    $('.mec-fluent-more-views-icon').removeClass('active');
229                }
230
231                loadSkin(skin);
232            });
233        }
234
235        function loadSkin(skin) {
236            // Set new Skin
237            settings.skin = skin;
238
239            // Add Loading Class
240            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
241            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
242
243            $.ajax({
244                url: settings.ajax_url,
245                data: "action=mec_full_calendar_switch_skin&skin=" + skin + "&" + settings.atts + "&apply_sf_date=1&sed=" + settings.sed_method,
246                dataType: "json",
247                type: "post",
248                success: function (response) {
249                    $("#mec_full_calendar_container_" + settings.id).html(response);
250
251                    // Remove loader
252                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
253
254                    // Focus First Active Day
255                    mecFocusDay(settings);
256
257                    mecFluentCurrentTimePosition();
258                    mecFluentCustomScrollbar();
259                },
260                error: function () {}
261            });
262        }
263
264        function search() {
265            // Add Loading Class
266            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
267            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
268
269            $.ajax({
270                url: settings.ajax_url,
271                data: "action=mec_full_calendar_switch_skin&skin=" + settings.skin + "&" + settings.atts + "&apply_sf_date=1",
272                dataType: "json",
273                type: "post",
274                success: function (response) {
275                    $("#mec_full_calendar_container_" + settings.id).html(response);
276
277                    // Remove loader
278                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
279
280                    // Focus First Active Day
281                    mecFocusDay(settings);
282
283                    // Focus First Active Week
284                    mec_focus_week(settings.id);
285
286                    mecFluentCurrentTimePosition();
287                    mecFluentCustomScrollbar();
288                },
289                error: function () {}
290            });
291        }
292    };
293
294}(jQuery));
295
296// MEC YEARLY VIEW PLUGIN
297(function ($) {
298    $.fn.mecYearlyView = function (options) {
299        var active_year;
300
301        // Default Options
302        var settings = $.extend({
303            // These are the defaults.
304            today: null,
305            id: 0,
306            events_label: 'Events',
307            event_label: 'Event',
308            year_navigator: 0,
309            atts: '',
310            next_year: {},
311            sf: {},
312            ajax_url: '',
313        }, options);
314
315        mecFluentYearlyUI(settings.id, settings.year_id);
316
317        // Initialize Year Navigator
318        if (settings.year_navigator) initYearNavigator();
319
320        // Load Next Year in background
321        if (settings.year_navigator) setYear(settings.next_year.year, true);
322
323        // Set onclick Listeners
324        setListeners();
325
326        // load more
327        $(document).on("click", "#mec_skin_events_" + settings.id + " .mec-load-more-button", function () {
328            var year = $(this).parent().parent().parent().data('year-id');
329            loadMoreButton(year);
330        });
331
332        // Search Widget
333        if (settings.sf.container !== '') {
334            sf = $(settings.sf.container).mecSearchForm({
335                id: settings.id,
336                atts: settings.atts,
337                callback: function (atts) {
338                    settings.atts = atts;
339                    active_year = $('.mec-yearly-view-wrap .mec-year-navigator').filter(function () {
340                        return $(this).css('display') == "block";
341                    });
342                    active_year = parseInt(active_year.find('h2').text());
343                    search(active_year);
344                }
345            });
346        }
347
348        function initYearNavigator() {
349            // Remove the onclick event
350            $("#mec_skin_" + settings.id + " .mec-load-year").off("click");
351
352            // Add onclick event
353            $("#mec_skin_" + settings.id + " .mec-load-year").on("click", function () {
354                var year = $(this).data("mec-year");
355                setYear(year);
356            });
357        }
358
359        function search(year) {
360            // Add Loading Class
361            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
362            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
363
364            $.ajax({
365                url: settings.ajax_url,
366                data: "action=mec_yearly_view_load_year&mec_year=" + year + "&" + settings.atts + "&apply_sf_date=1",
367                dataType: "json",
368                type: "post",
369                success: function (response) {
370                    active_year = response.current_year.year;
371
372                    // Append Year
373                    $("#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>');
374
375                    // Append Year Navigator
376                    $("#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>');
377
378                    // Re-initialize Year Navigator
379                    initYearNavigator();
380
381                    // Set onclick Listeners
382                    setListeners();
383
384                    // Toggle Year
385                    toggleYear(response.current_year.id);
386
387                    // Remove loading Class
388                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
389
390                    mecFluentYearlyUI(settings.id, active_year);
391                    mecFluentCustomScrollbar();
392
393                },
394                error: function () {}
395            });
396        }
397
398        function setYear(year, do_in_background) {
399            if (typeof do_in_background === "undefined") do_in_background = false;
400
401            var year_id = year;
402            active_year = year;
403
404            // Year exists so we just show it
405            if ($("#mec_yearly_view_year_" + settings.id + "_" + year_id).length) {
406                // Toggle Year
407                toggleYear(year_id);
408                mecFluentCustomScrollbar();
409            } else {
410                if (!do_in_background) {
411                    // Add Loading Class
412                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
413                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
414                }
415
416                $.ajax({
417                    url: settings.ajax_url,
418                    data: "action=mec_yearly_view_load_year&mec_year=" + year + "&" + settings.atts + "&apply_sf_date=0",
419                    dataType: "json",
420                    type: "post",
421                    success: function (response) {
422                        // Append Year
423                        $("#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>');
424
425                        // Append Year Navigator
426                        $("#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>');
427
428                        // Re-initialize Year Navigator
429                        initYearNavigator();
430
431                        // Set onclick Listeners
432                        setListeners();
433
434                        if (!do_in_background) {
435                            // Toggle Year
436                            toggleYear(response.current_year.id);
437
438                            // Remove loading Class
439                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
440
441                            // Set Year Filter values in search widget
442                            $("#mec_sf_year_" + settings.id).val(year);
443                        } else {
444                            $("#mec_yearly_view_year_" + settings.id + "_" + response.current_year.id).hide();
445                            $("#mec_year_navigator_" + settings.id + "_" + response.current_year.id).hide();
446                        }
447                        mecFluentYearlyUI(settings.id, year);
448                        if (!do_in_background) {
449                            mecFluentCustomScrollbar();
450                        }
451                    },
452                    error: function () {}
453                });
454            }
455        }
456
457        function toggleYear(year_id) {
458            // Toggle Year Navigator
459            $("#mec_skin_" + settings.id + " .mec-year-navigator").hide();
460            $("#mec_year_navigator_" + settings.id + "_" + year_id).show();
461
462            // Toggle Year
463            $("#mec_skin_" + settings.id + " .mec-year-container").hide();
464            $("#mec_yearly_view_year_" + settings.id + "_" + year_id).show();
465        }
466
467        var sf;
468
469        function setListeners() {
470            // Single Event Method
471            if (settings.sed_method != '0') {
472                sed();
473            }
474        }
475
476        function sed() {
477            // Single Event Display
478            $("#mec_skin_" + settings.id + " .mec-agenda-event-title a").off('click').on('click', function (e) {
479                e.preventDefault();
480                var href = $(this).attr('href');
481
482                var id = $(this).data('event-id');
483                var occurrence = get_parameter_by_name('occurrence', href);
484                var time = get_parameter_by_name('time', href);
485
486                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
487            });
488        }
489
490        function loadMoreButton(year) {
491            var $max_count, $current_count = 0;
492            $max_count = $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-yearly-max").data('count');
493            $current_count = $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").length;
494
495            if ($current_count > 10) {
496                for (var i = 0; i < 10; i++) {
497                    $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").slice(0, 2).each(function () {
498                        $(this).removeClass('mec-util-hidden');
499                    });
500                }
501            }
502
503            if ($current_count < 10 && $current_count != 0) {
504                for (var j = 0; j < $current_count; j++) {
505                    $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-util-hidden").slice(0, 2).each(function () {
506                        $(this).removeClass('mec-util-hidden');
507                        $("#mec_yearly_view_year_" + settings.id + "_" + year + " .mec-load-more-wrap").css('display', 'none');
508                    });
509                }
510            }
511        }
512    };
513
514}(jQuery));
515
516// MEC MONTHLY VIEW PLUGIN
517(function ($) {
518    $.fn.mecMonthlyView = function (options) {
519        var active_month;
520        var active_year;
521
522        // Default Options
523        var settings = $.extend({
524            // These are the defaults.
525            today: null,
526            id: 0,
527            events_label: 'Events',
528            event_label: 'Event',
529            month_navigator: 0,
530            atts: '',
531            active_month: {},
532            next_month: {},
533            sf: {},
534            ajax_url: '',
535        }, options);
536
537        // Initialize Month Navigator
538        if (settings.month_navigator) initMonthNavigator();
539
540        // Load Next Month in background
541        setMonth(settings.next_month.year, settings.next_month.month, true);
542
543        active_month = settings.active_month.month;
544        active_year = settings.active_month.year;
545
546        // Set onclick Listeners
547        setListeners();
548
549        // Search Widget
550        if (settings.sf.container !== '') {
551            sf = $(settings.sf.container).mecSearchForm({
552                id: settings.id,
553                atts: settings.atts,
554                callback: function (atts) {
555                    settings.atts = atts;
556                    search(active_year, active_month);
557                }
558            });
559        }
560
561        function initMonthNavigator() {
562            // Remove the onclick event
563            $("#mec_skin_" + settings.id + " .mec-load-month").off("click");
564
565            // Add onclick event
566            $("#mec_skin_" + settings.id + " .mec-load-month").on("click", function () {
567                var year = $(this).data("mec-year");
568                var month = $(this).data("mec-month");
569
570                setMonth(year, month, false, true);
571            });
572        }
573
574        function search(year, month) {
575            // Add Loading Class
576            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
577            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
578
579            $.ajax({
580                url: settings.ajax_url,
581                data: "action=mec_monthly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
582                dataType: "json",
583                type: "post",
584                success: function (response) {
585                    active_month = response.current_month.month;
586                    active_year = response.current_month.year;
587
588                    // Append Month
589                    $("#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>');
590
591                    // Append Month Navigator
592                    $("#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>');
593
594                    // Append Events Side
595                    $("#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>');
596
597                    // Re-initialize Month Navigator
598                    initMonthNavigator();
599
600                    // Set onclick Listeners
601                    setListeners();
602
603                    // Toggle Month
604                    toggleMonth(response.current_month.id);
605
606                    // Remove loading Class
607                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
608
609                },
610                error: function () {}
611            });
612        }
613
614        function setMonth(year, month, do_in_background, navigator_click) {
615            if (typeof do_in_background === "undefined") do_in_background = false;
616            navigator_click = navigator_click || false;
617            var month_id = year + "" + month;
618
619            if (!do_in_background) {
620                active_month = month;
621                active_year = year;
622            }
623
624            // Month exists so we just show it
625            if ($("#mec_monthly_view_month_" + settings.id + "_" + month_id).length) {
626                // Toggle Month
627                toggleMonth(month_id);
628            } else {
629                if (!do_in_background) {
630
631                    // Add Loading Class
632                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
633                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
634                }
635
636                $.ajax({
637                    url: settings.ajax_url,
638                    data: "action=mec_monthly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
639                    dataType: "json",
640                    type: "post",
641                    success: function (response) {
642                        // Append Month
643                        $("#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>');
644
645                        // Append Month Navigator
646                        $("#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>');
647
648                        // Append Events Side
649                        $("#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>');
650
651                        // Re-initialize Month Navigator
652                        initMonthNavigator();
653
654                        // Set onclick Listeners
655                        setListeners();
656
657                        if (!do_in_background) {
658                            // Toggle Month
659                            toggleMonth(response.current_month.id);
660
661                            // Remove loading Class
662                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
663
664
665                            // Set Month Filter values in search widget
666                            $("#mec_sf_month_" + settings.id).val(month);
667                            $("#mec_sf_year_" + settings.id).val(year);
668                        } else {
669                            $("#mec_monthly_view_month_" + settings.id + "_" + response.current_month.id).hide();
670                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
671                            $("#mec_month_side_" + settings.id + "_" + response.current_month.id).hide();
672                        }
673                        if (typeof custom_month !== undefined) var custom_month;
674                        if (typeof custom_month != undefined) {
675                            if (custom_month == 'true') {
676                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
677                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
678                                $('.mec-calendar-day').unbind('click');
679                            }
680                        }
681
682                    },
683                    error: function () {}
684                });
685            }
686        }
687
688        function toggleMonth(month_id) {
689            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
690            var active_day = $("#mec_monthly_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
691
692            if (active_day <= 9) active_day = "0" + active_day;
693
694            // Toggle Month Navigator
695            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
696            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
697
698            // Toggle Month
699            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
700            $("#mec_monthly_view_month_" + settings.id + "_" + month_id).show();
701
702            // Add selected class
703            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
704            $("#mec_monthly_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
705
706            // Toggle Events Side
707            $("#mec_skin_" + settings.id + " .mec-month-side").hide();
708            $("#mec_month_side_" + settings.id + "_" + month_id).show();
709        }
710
711        var sf;
712
713        function setListeners() {
714            // Remove the onclick event
715            $("#mec_skin_" + settings.id + " .mec-has-event").off("click");
716
717            // Add the onclick event
718            $("#mec_skin_" + settings.id + " .mec-has-event").on('click', function (e) {
719                e.preventDefault();
720
721                // define variables
722                var $this = $(this),
723                    data_mec_cell = $this.data('mec-cell'),
724                    month_id = $this.data('month');
725
726                $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
727                $this.addClass('mec-selected-day');
728
729                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
730                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
731
732                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
733                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
734            });
735
736            mec_tooltip();
737
738            // Single Event Method
739            if (settings.sed_method != '0') {
740                sed();
741            }
742
743            if (settings.style == 'novel') {
744                if ($('.mec-single-event-novel').length > 0) {
745                    $('.mec-single-event-novel').colourBrightness();
746                    $('.mec-single-event-novel').each(function () {
747                        $(this).colourBrightness()
748                    });
749                }
750            }
751        }
752
753        function sed() {
754            // Single Event Display
755            $("#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) {
756                e.preventDefault();
757                var href = $(this).attr('href');
758
759                var id = $(this).data('event-id');
760                var occurrence = get_parameter_by_name('occurrence', href);
761                var time = get_parameter_by_name('time', href);
762
763                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
764            });
765
766        }
767
768        function mec_tooltip() {
769            if ($('.mec-monthly-tooltip').length > 1) {
770                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) > 768) {
771                    $('.mec-monthly-tooltip').tooltipster({
772                        theme: 'tooltipster-shadow',
773                        interactive: true,
774                        delay: 100,
775                        minWidth: 350,
776                        maxWidth: 350
777                    });
778                    if (settings.sed_method != '0') {
779                        sed();
780                    }
781                } else {
782                    var touchtime = 0;
783                    $(".mec-monthly-tooltip").on("click", function (event) {
784                        event.preventDefault();
785                        if (touchtime == 0) {
786                            $('.mec-monthly-tooltip').tooltipster({
787                                theme: 'tooltipster-shadow',
788                                interactive: true,
789                                delay: 100,
790                                minWidth: 350,
791                                maxWidth: 350,
792                                trigger: "custom",
793                                triggerOpen: {
794                                    click: true,
795                                    tap: true
796                                },
797                                triggerClose: {
798                                    click: true,
799                                    tap: true
800                                }
801                            });
802                            touchtime = new Date().getTime();
803                        } else {
804                            if (((new Date().getTime()) - touchtime) < 200) {
805                                var el = $(this);
806                                var link = el.attr("href");
807                                window.location = link;
808                                touchtime = 0;
809                            } else {
810                                touchtime = new Date().getTime();
811                            }
812                        }
813                    });
814                }
815            }
816        }
817    };
818
819}(jQuery));
820
821// MEC WEEKLY VIEW PLUGIN
822(function ($) {
823    $.fn.mecWeeklyView = function (options) {
824        var active_year;
825        var active_month;
826        var active_week;
827        var active_week_number;
828
829        // Default Options
830        var settings = $.extend({
831            // These are the defaults.
832            today: null,
833            week: 1,
834            id: 0,
835            current_year: null,
836            current_month: null,
837            changeWeekElement: '.mec-load-week',
838            month_navigator: 0,
839            atts: '',
840            ajax_url: '',
841            sf: {}
842        }, options);
843
844        // Set Active Time
845        active_year = settings.current_year;
846        active_month = settings.current_month;
847
848        // Search Widget
849        if (settings.sf.container !== '') {
850            $(settings.sf.container).mecSearchForm({
851                id: settings.id,
852                atts: settings.atts,
853                callback: function (atts) {
854                    settings.atts = atts;
855                    search(active_year, active_month, active_week);
856                }
857            });
858        }
859
860        // Set The Week
861        setThisWeek(settings.month_id + settings.week);
862
863        // Set Listeners
864        setListeners();
865
866        // Initialize Month Navigator
867        if (settings.month_navigator) initMonthNavigator(settings.month_id);
868
869        function setListeners() {
870            $(settings.changeWeekElement).off('click').on('click', function (e) {
871                var week = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-id');
872                var max_weeks = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('max-weeks');
873                var new_week_number = active_week_number;
874
875                if ($(this).hasClass('mec-previous-month')) {
876                    week = parseInt(week) - 1;
877                    new_week_number--;
878                } else {
879                    week = parseInt(week) + 1;
880                    new_week_number++;
881                }
882
883                if (new_week_number <= 1 || new_week_number >= max_weeks) {
884                    // Disable Next/Previous Button
885                    $(this).css({
886                        'opacity': .6,
887                        'cursor': 'default'
888                    });
889                    $(this).find('i').css({
890                        'opacity': .6,
891                        'cursor': 'default'
892                    });
893                } else {
894                    // Enable Next/Previous Buttons
895                    $('#mec_skin_' + settings.id + ' .mec-load-week, #mec_skin_' + settings.id + ' .mec-load-week i').css({
896                        'opacity': 1,
897                        'cursor': 'pointer'
898                    });
899                }
900
901                // Week is not in valid range
902                if (new_week_number === 0 || new_week_number > max_weeks) {} else {
903                    setThisWeek(week);
904                }
905            });
906
907            // Single Event Method
908            if (settings.sed_method != '0') {
909                sed();
910            }
911        }
912
913        function setThisWeek(week, auto_focus) {
914            if (typeof auto_focus === 'undefined') auto_focus = false;
915
916            // Week is not exists
917            if (!$('#mec_weekly_view_week_' + settings.id + '_' + week).length) {
918                return setThisWeek((parseInt(week) - 1));
919            }
920
921            // Set week to active in week list
922            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week').removeClass('mec-weekly-view-week-active');
923            $('#mec_weekly_view_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
924            $('#mec_weekly_view_top_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
925
926            // Show related events
927            $('#mec_skin_' + settings.id + ' .mec-weekly-view-date-events').addClass('mec-util-hidden');
928            $('.mec-weekly-view-week-' + settings.id + '-' + week).removeClass('mec-util-hidden');
929            $('#mec_skin_' + settings.id + ' .mec-calendar-row').addClass('mec-util-hidden');
930            $('#mec_skin_' + settings.id + ' .mec-calendar-row[data-week=' + week % 10 + ']').removeClass('mec-util-hidden');
931
932            active_week = week;
933            active_week_number = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-number');
934
935            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').find('span').remove();
936            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').append('<span>' + active_week_number + '</span>');
937
938            if (active_week_number === 1) {
939                // Disable Previous Button
940                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').css({
941                    'opacity': .6,
942                    'cursor': 'default'
943                });
944                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').find('i').css({
945                    'opacity': .6,
946                    'cursor': 'default'
947                });
948            }
949
950            // Go To Event Week
951            if (auto_focus) mec_focus_week(settings.id);
952
953            mecFluentCustomScrollbar();
954        }
955
956        function initMonthNavigator(month_id) {
957            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click');
958            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').on('click', function () {
959                var year = $(this).data('mec-year');
960                var month = $(this).data('mec-month');
961
962                setMonth(year, month, active_week, true);
963            });
964        }
965
966        function search(year, month, week, navigation_click) {
967            var week_number = (String(week).slice(-1));
968
969            // Add Loading Class
970            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
971            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
972
973            $.ajax({
974                url: settings.ajax_url,
975                data: "action=mec_weekly_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=1",
976                dataType: "json",
977                type: "post",
978                success: function (response) {
979                    // Remove Loading Class
980                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
981
982                    // Append Month
983                    $("#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>');
984
985                    // Append Month Navigator
986                    $("#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>');
987
988                    // Set Listeners
989                    setListeners();
990
991                    // Toggle Month
992                    toggleMonth(response.current_month.id);
993
994                    // Set active week
995                    setThisWeek(response.week_id, true);
996                    mecFluentCustomScrollbar();
997                },
998                error: function () {}
999            });
1000        }
1001
1002        function setMonth(year, month, week, navigation_click) {
1003            var month_id = '' + year + month;
1004            var week_number = (String(week).slice(-1));
1005
1006            active_month = month;
1007            active_year = year;
1008            navigation_click = navigation_click || false;
1009
1010            // Month exists so we just show it
1011            if ($("#mec_weekly_view_month_" + settings.id + "_" + month_id).length) {
1012                // Toggle Month
1013                toggleMonth(month_id);
1014
1015                // Set active week
1016                setThisWeek('' + month_id + week_number);
1017                mecFluentCustomScrollbar();
1018            } else {
1019                // Add Loading Class
1020                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1021                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1022
1023                $.ajax({
1024                    url: settings.ajax_url,
1025                    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,
1026                    dataType: "json",
1027                    type: "post",
1028                    success: function (response) {
1029                        // Remove Loading Class
1030                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1031
1032                        $('#mec_skin_' + settings.id + ' .mec-calendar-d-top h3').after(response.topWeeks);
1033
1034                        // Append Month
1035                        $("#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>');
1036
1037                        // Append Month Navigator
1038                        $("#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>');
1039
1040                        // Set Listeners
1041                        setListeners();
1042
1043                        // Toggle Month
1044                        toggleMonth(response.current_month.id);
1045
1046                        // Set active week
1047                        setThisWeek(response.week_id, true);
1048
1049                        // Set Month Filter values in search widget
1050                        $("#mec_sf_month_" + settings.id).val(month);
1051                        $("#mec_sf_year_" + settings.id).val(year);
1052                        mecFluentCustomScrollbar();
1053                    },
1054                    error: function () {}
1055                });
1056            }
1057        }
1058
1059        function toggleMonth(month_id) {
1060            // Show related events
1061            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
1062            $('#mec_weekly_view_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1063
1064            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
1065            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1066
1067            // Initialize Month Navigator
1068            if (settings.month_navigator) initMonthNavigator(month_id);
1069        }
1070
1071        function sed() {
1072            // Single Event Display
1073            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
1074                e.preventDefault();
1075                var href = $(this).attr('href');
1076
1077                var id = $(this).data('event-id');
1078                var occurrence = get_parameter_by_name('occurrence', href);
1079                var time = get_parameter_by_name('time', href);
1080
1081                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1082            });
1083        }
1084    };
1085
1086}(jQuery));
1087
1088// MEC DAILY VIEW PLUGIN
1089(function ($) {
1090    $.fn.mecDailyView = function (options) {
1091        var active_month;
1092        var active_year;
1093        var active_day;
1094
1095        // Default Options
1096        var settings = $.extend({
1097            // These are the defaults.
1098            today: null,
1099            id: 0,
1100            changeDayElement: '.mec-daily-view-day',
1101            events_label: 'Events',
1102            event_label: 'Event',
1103            month_navigator: 0,
1104            atts: '',
1105            ajax_url: '',
1106            sf: {},
1107        }, options);
1108
1109        active_month = settings.month;
1110        active_year = settings.year;
1111        active_day = settings.day;
1112
1113        mecFluentCustomScrollbar();
1114
1115        // Set Today
1116        setToday(settings.today);
1117
1118        // Set Listeners
1119        setListeners();
1120
1121        // Initialize Month Navigator
1122        if (settings.month_navigator) initMonthNavigator(settings.month_i
1122d);
1123
1124        // Initialize Days Slider
1125        initDaysSlider(settings.month_id);
1126
1127        // Slider first event day focus when page load.
1128        mecFocusDay(settings);
1129
1130        // Search Widget
1131        if (settings.sf.container !== '') {
1132            $(settings.sf.container).mecSearchForm({
1133                id: settings.id,
1134                atts: settings.atts,
1135                callback: function (atts) {
1136                    settings.atts = atts;
1137                    search(active_year, active_month, active_day);
1138                }
1139            });
1140        }
1141
1142        function setListeners() {
1143            $(settings.changeDayElement).on('click', function () {
1144                var today = $(this).data('day-id');
1145                setToday(today);
1146                mecFluentCustomScrollbar();
1147            });
1148
1149            // Single Event Method
1150            if (settings.sed_method != '0') {
1151                sed();
1152            }
1153        }
1154
1155        var current_monthday;
1156
1157        function setToday(today) {
1158            // For caring about 31st, 30th and 29th of some months
1159            if (!$('#mec_daily_view_day' + settings.id + '_' + today).length) {
1160                setToday(parseInt(today) - 1);
1161                return false;
1162            }
1163
1164            // Set day to active in day list
1165            $('.mec-daily-view-day').removeClass('mec-daily-view-day-active mec-color');
1166            $('#mec_daily_view_day' + settings.id + '_' + today).addClass('mec-daily-view-day-active mec-color');
1167
1168            // Show related events
1169            $('.mec-daily-view-date-events').addClass('mec-util-hidden');
1170            $('#mec_daily_view_date_events' + settings.id + '_' + today).removeClass('mec-util-hidden');
1171            $('.mec-daily-view-events').addClass('mec-util-hidden');
1172            $('#mec-daily-view-events' + settings.id + '_' + today).removeClass('mec-util-hidden');
1173
1174            // Set today label
1175            var weekday = $('#mec_daily_view_day' + settings.id + '_' + today).data('day-weekday');
1176            var monthday = $('#mec_daily_view_day' + settings.id + '_' + today).data('day-monthday');
1177            var count = $('#mec_daily_view_day' + settings.id + '_' + today).data('events-count');
1178            var month_id = $('#mec_daily_view_day' + settings.id + '_' + today).data('month-id');
1179
1180            $('#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>');
1181
1182            if (monthday <= 9) current_monthday = '0' + monthday;
1183            else current_monthday = monthday;
1184        }
1185
1186        function initMonthNavigator(month_id) {
1187            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click');
1188            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').on('click', function () {
1189                var year = $(this).data('mec-year');
1190                var month = $(this).data('mec-month');
1191
1192                setMonth(year, month, current_monthday, true);
1193            });
1194        }
1195
1196        function initDaysSlider(month_id, day_id) {
1197            // Set Global Month Id
1198            mec_g_month_id = month_id;
1199
1200            // Check RTL website
1201            var owl_rtl = $('body').hasClass('rtl') ? true : false;
1202
1203            // Init Days slider
1204            var owl = $("#mec-owl-calendar-d-table-" + settings.id + "-" + month_id);
1205            owl.owlCarousel({
1206                responsiveClass: true,
1207                responsive: {
1208                    0: {
1209                        items: owl.closest('.mec-fluent-wrap').length > 0 ? 3 : 2,
1210                    },
1211                    479: {
1212                        items: 4,
1213                    },
1214                    767: {
1215                        items: 7,
1216                    },
1217                    960: {
1218                        items: 14,
1219                    },
1220                    1000: {
1221                        items: 19,
1222                    },
1223                    1200: {
1224                        items: 22,
1225                    }
1226                },
1227                dots: false,
1228                loop: false,
1229                rtl: owl_rtl,
1230            });
1231
1232            // Custom Navigation Events
1233            $("#mec_daily_view_month_" + settings.id + "_" + month_id + " .mec-table-d-next").click(function (e) {
1234                e.preventDefault();
1235                owl.trigger('next.owl.carousel');
1236            });
1237
1238            $("#mec_daily_view_month_" + settings.id + "_" + month_id + " .mec-table-d-prev").click(function (e) {
1239                e.preventDefault();
1240                owl.trigger('prev.owl.carousel');
1241            });
1242
1243            if (typeof day_id === 'undefined') day_id = $('.mec-daily-view-day-active').data('day-id');
1244
1245            var today_str = day_id.toString().substring(6, 8);
1246            var today_int = parseInt(today_str);
1247
1248            owl.trigger('owl.goTo', [today_int]);
1249        }
1250
1251        function search(year, month, day) {
1252            // Add Loading Class
1253            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1254            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1255
1256            $.ajax({
1257                url: settings.ajax_url,
1258                data: "action=mec_daily_view_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_day=" + day + "&" + settings.atts + "&apply_sf_date=1",
1259                dataType: "json",
1260                type: "post",
1261                success: function (response) {
1262                    // Remove Loading Class
1263                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1264
1265                    // Append Month
1266                    $("#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>');
1267
1268                    // Append Month Navigator
1269                    $("#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>');
1270
1271                    // Set Listeners
1272                    setListeners();
1273
1274                    active_year = response.current_month.year;
1275                    active_month = response.current_month.month;
1276
1277                    // Toggle Month
1278                    toggleMonth(response.current_month.id, '' + active_year + active_month + active_day);
1279
1280                    // Set Today
1281                    setToday('' + active_year + active_month + active_day);
1282
1283                    // Focus First Active Day
1284                    mecFocusDay(settings);
1285                    mecFluentCustomScrollbar();
1286                },
1287                error: function () {}
1288            });
1289        }
1290
1291        function setMonth(year, month, day, navigation_click) {
1292            var month_id = '' + year + month;
1293
1294            active_month = month;
1295            active_year = year;
1296            active_day = day;
1297            navigation_click = navigation_click || false;
1298
1299            // Month exists so we just show it
1300            if ($("#mec_daily_view_month_" + settings.id + "_" + month_id).length) {
1301                // Toggle Month
1302                toggleMonth(month_id);
1303
1304                // Set Today
1305                setToday('' + month_id + day);
1306            } else {
1307                // Add Loading Class
1308                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1309                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1310
1311                $.ajax({
1312                    url: settings.ajax_url,
1313                    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,
1314                    dataType: "json",
1315                    type: "post",
1316                    success: function (response) {
1317                        // Remove Loading Class
1318                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1319
1320                        // Append Month
1321                        $("#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>');
1322
1323                        // Append Month Navigator
1324                        $("#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>');
1325
1326                        // Set Listeners
1327                        setListeners();
1328
1329                        // Toggle Month
1330                        toggleMonth(response.current_month.id, '' + year + month + '01');
1331
1332                        // Set Today
1333                        setToday('' + year + month + '01');
1334
1335                        // Set Month Filter values in search widget
1336                        $("#mec_sf_month_" + settings.id).val(month);
1337                        $("#mec_sf_year_" + settings.id).val(year);
1338                        mecFluentCustomScrollbar();
1339                    },
1340                    error: function () {}
1341                });
1342            }
1343        }
1344
1345        function toggleMonth(month_id, day_id) {
1346            // Show related events
1347            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
1348            $('#mec_daily_view_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1349
1350            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
1351            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1352
1353            // Initialize Month Navigator
1354            if (settings.month_navigator) initMonthNavigator(month_id);
1355
1356            // Initialize Days Slider
1357            initDaysSlider(month_id, day_id);
1358
1359            // Focus First Active Day
1360            mecFocusDay(settings);
1361        }
1362
1363        function sed() {
1364            // Single Event Display
1365            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
1366                e.preventDefault();
1367                var href = $(this).attr('href');
1368
1369                var id = $(this).data('event-id');
1370                var occurrence = get_parameter_by_name('occurrence', href);
1371                var time = get_parameter_by_name('time', href);
1372
1373                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1374            });
1375        }
1376    };
1377
1378}(jQuery));
1379
1380// MEC TIMETABLE PLUGIN
1381(function ($) {
1382    $.fn.mecTimeTable = function (options) {
1383        var active_year;
1384        var active_month;
1385        var active_week;
1386        var active_week_number;
1387        var active_day;
1388
1389        // Default Options
1390        var settings = $.extend({
1391            // These are the defaults.
1392            today: null,
1393            week: 1,
1394            active_day: 1,
1395            id: 0,
1396            changeWeekElement: '.mec-load-week',
1397            month_navigator: 0,
1398            atts: '',
1399            ajax_url: '',
1400            sf: {}
1401        }, options);
1402
1403        // Search Widget
1404        if (settings.sf.container !== '') {
1405            $(settings.sf.container).mecSearchForm({
1406                id: settings.id,
1407                atts: settings.atts,
1408                callback: function (atts) {
1409                    settings.atts = atts;
1410                    search(active_year, active_month, active_week, active_day);
1411                }
1412            });
1413        }
1414
1415        // Set The Week
1416        setThisWeek(settings.month_id + settings.week, settings.active_day);
1417
1418        // Set Listeners
1419        setListeners();
1420
1421        // Initialize Month Navigator
1422        if (settings.month_navigator) initMonthNavigator(settings.month_id);
1423
1424        function setListeners() {
1425            // Change Week Listener
1426            $(settings.changeWeekElement).off('click').on('click', function () {
1427                var week = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-id');
1428                var max_weeks = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('max-weeks');
1429                var new_week_number = active_week_number;
1430
1431                if ($(this).hasClass('mec-previous-month')) {
1432                    week = parseInt(week) - 1;
1433                    new_week_number--;
1434                } else {
1435                    week = parseInt(week) + 1;
1436                    new_week_number++;
1437                }
1438
1439                if (new_week_number <= 1 || new_week_number >= max_weeks) {
1440                    // Disable Next/Previous Button
1441                    $(this).css({
1442                        'opacity': .6,
1443                        'cursor': 'default'
1444                    });
1445                    $(this).find('i').css({
1446                        'opacity': .6,
1447                        'cursor': 'default'
1448                    });
1449                } else {
1450                    // Enable Next/Previous Buttons
1451                    $('#mec_skin_' + settings.id + ' .mec-load-week, #mec_skin_' + settings.id + ' .mec-load-week i').css({
1452                        'opacity': 1,
1453                        'cursor': 'pointer'
1454                    });
1455                }
1456
1457                // Week is not in valid range
1458                if (new_week_number === 0 || new_week_number > max_weeks) {} else {
1459                    setThisWeek(week);
1460                }
1461            });
1462
1463            // Change Day Listener
1464            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week dt').not('.mec-timetable-has-no-event').off('click').on('click', function () {
1465                var day = $(this).data('date-id');
1466                setDay(day);
1467            });
1468
1469            // Single Event Method
1470            if (settings.sed_method != '0') {
1471                sed();
1472            }
1473        }
1474
1475        function setThisWeek(week, day) {
1476            // Week is not exists
1477            if (!$('#mec_weekly_view_week_' + settings.id + '_' + week).length) {
1478                return setThisWeek((parseInt(week) - 1), day);
1479            }
1480
1481            // Set week to active in week list
1482            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week').removeClass('mec-weekly-view-week-active');
1483            $('#mec_weekly_view_week_' + settings.id + '_' + week).addClass('mec-weekly-view-week-active');
1484
1485            setDay(day);
1486
1487            active_week = week;
1488            active_week_number = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active').data('week-number');
1489
1490            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').find('span').remove();
1491            $('#mec_skin_' + settings.id + ' .mec-calendar-d-top').find('.mec-current-week').append('<span>' + active_week_number + '</span>');
1492
1493            if (active_week_number === 1) {
1494                // Disable Previous Button
1495                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').css({
1496                    'opacity': .6,
1497                    'cursor': 'default'
1498                });
1499                $('#mec_skin_' + settings.id + ' .mec-previous-month.mec-load-week').find('i').css({
1500                    'opacity': .6,
1501                    'cursor': 'default'
1502                });
1503            }
1504        }
1505
1506        function setDay(day) {
1507            // Find the date automatically
1508            if (typeof day === 'undefined') {
1509                day = $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active dt').not('.mec-timetable-has-no-event').first().data('date-id');
1510            }
1511
1512            // Activate the date element
1513            $('#mec_skin_' + settings.id + ' dt').removeClass('mec-timetable-day-active');
1514            $('#mec_skin_' + settings.id + ' .mec-weekly-view-week-active dt[data-date-id="' + day + '"]').addClass('mec-timetable-day-active');
1515
1516            // Show related events
1517            $('#mec_skin_' + settings.id + ' .mec-weekly-view-date-events').addClass('mec-util-hidden');
1518            $('#mec_weekly_view_date_events' + settings.id + '_' + day).removeClass('mec-util-hidden');
1519        }
1520
1521        function initMonthNavigator(month_id) {
1522            $('#mec_month_navigator' + settings.id + '_' + month_id + ' .mec-load-month').off('click').on('click', function () {
1523                var year = $(this).data('mec-year');
1524                var month = $(this).data('mec-month');
1525
1526                setMonth(year, month, active_week);
1527            });
1528        }
1529
1530        function search(year, month, week) {
1531            var week_number = (String(week).slice(-1));
1532
1533            // Add Loading Class
1534            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1535            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1536
1537            // Set MEC Year And Month If Undefined
1538            year = typeof year == 'undefined' ? '' : year;
1539            month = typeof month == 'undefined' ? '' : month;
1540
1541            // Append current week to data body for used after filter.
1542            $('body').data('currentweek', $("#mec_skin_events_" + settings.id).find('.mec-current-week > span').html());
1543
1544            $.ajax({
1545                url: settings.ajax_url,
1546                data: "action=mec_timetable_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=1",
1547                dataType: "json",
1548                type: "post",
1549                success: function (response) {
1550                    // Remove Loading Class
1551                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1552
1553                    // Append Month
1554                    $("#mec_skin_events_" + settings.id).html('<div class="mec-month-container" id="mec_timetable_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1555
1556                    // Append Month Navigator
1557                    $("#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>');
1558
1559                    // Set Listeners
1560                    setListeners();
1561
1562                    // Toggle Month
1563                    toggleMonth(response.current_month.id);
1564
1565                    // Set active week
1566                    setThisWeek(response.week_id);
1567
1568                    // Focus First Active Week
1569                    mec_focus_week(settings.id, 'timetable');
1570
1571                    mecFluentCustomScrollbar();
1572                },
1573                error: function () {}
1574            });
1575        }
1576
1577        function setMonth(year, month, week) {
1578            var month_id = '' + year + month;
1579            var week_number = (String(week).slice(-1));
1580
1581            active_month = month;
1582            active_year = year;
1583
1584            // Month exists so we just show it
1585            if ($("#mec_timetable_month_" + settings.id + "_" + month_id).length) {
1586                // Toggle Month
1587                toggleMonth(month_id);
1588
1589                // Set active week
1590                setThisWeek('' + month_id + week_number);
1591            } else {
1592                // Add Loading Class
1593                if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
1594                jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
1595
1596                $.ajax({
1597                    url: settings.ajax_url,
1598                    data: "action=mec_timetable_load_month&mec_year=" + year + "&mec_month=" + month + "&mec_week=" + week_number + "&" + settings.atts + "&apply_sf_date=0",
1599                    dataType: "json",
1600                    type: "post",
1601                    success: function (response) {
1602                        // Remove Loading Class
1603                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
1604
1605                        // Append Month
1606                        $("#mec_skin_events_" + settings.id).append('<div class="mec-month-container" id="mec_timetable_month_' + settings.id + '_' + response.current_month.id + '">' + response.month + '</div>');
1607
1608                        // Append Month Navigator
1609                        $("#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>');
1610
1611                        // Set Listeners
1612                        setListeners();
1613
1614                        // Toggle Month
1615                        toggleMonth(response.current_month.id);
1616
1617                        // Set active week
1618                        setThisWeek(response.week_id);
1619
1620                        // Set Month Filter values in search widget
1621                        $("#mec_sf_month_" + settings.id).val(month);
1622                        $("#mec_sf_year_" + settings.id).val(year);
1623                    },
1624                    error: function () {}
1625                });
1626            }
1627        }
1628
1629        function toggleMonth(month_id) {
1630            // Show related events
1631            $('#mec_skin_' + settings.id + ' .mec-month-container').addClass('mec-util-hidden');
1632            $('#mec_timetable_month_' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1633
1634            $('#mec_skin_' + settings.id + ' .mec-month-navigator').addClass('mec-util-hidden');
1635            $('#mec_month_navigator' + settings.id + '_' + month_id).removeClass('mec-util-hidden');
1636
1637            // Initialize Month Navigator
1638            if (settings.month_navigator) initMonthNavigator(month_id);
1639        }
1640
1641        function sed() {
1642            // Single Event Display
1643            $("#mec_skin_" + settings.id + " .mec-timetable-event-title a").off('click').on('click', function (e) {
1644                e.preventDefault();
1645                var href = $(this).attr('href');
1646
1647                var id = $(this).data('event-id');
1648                var occurrence = get_parameter_by_name('occurrence', href);
1649                var time = get_parameter_by_name('time', href);
1650
1651                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1652            });
1653        }
1654    };
1655
1656}(jQuery));
1657
1658// MEC WEEKLY PROGRAM PLUGIN
1659(function ($) {
1660    $.fn.mecWeeklyProgram = function (options) {
1661        // Default Options
1662        var settings = $.extend({
1663            // These are the defaults.
1664            id: 0,
1665            atts: '',
1666            sf: {}
1667        }, options);
1668
1669        // Search Widget
1670        if (settings.sf.container !== '') {
1671            $(settings.sf.container).mecSearchForm({
1672                id: settings.id,
1673                atts: settings.atts,
1674                callback: function (atts) {
1675                    settings.atts = atts;
1676                    search();
1677                }
1678            });
1679        }
1680
1681        // Set Listeners
1682        setListeners();
1683
1684        function setListeners() {
1685            // Single Event Method
1686            if (settings.sed_method != '0') {
1687                sed();
1688            }
1689        }
1690
1691        function search() {
1692            var $modal = $('.mec-modal-result');
1693
1694            // Add Loading Class
1695            if ($modal.length === 0) $('.mec-wrap').append('<div class="mec-modal-result"></div>');
1696            $modal.addClass('mec-month-navigator-loading');
1697
1698            $.ajax({
1699                url: settings.ajax_url,
1700                data: "action=mec_weeklyprogram_load&" + settings.atts + "&apply_sf_date=1",
1701                dataType: "json",
1702                type: "post",
1703                success: function (response) {
1704                    // Remove Loading Class
1705                    $modal.removeClass("mec-month-navigator-loading");
1706
1707                    // Append Month
1708                    $("#mec_skin_events_" + settings.id).html(response.date_events);
1709
1710                    // Set Listeners
1711                    setListeners();
1712                },
1713                error: function () {}
1714            });
1715        }
1716
1717        function sed() {
1718            // Single Event Display
1719            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function (e) {
1720                e.preventDefault();
1721                var href = $(this).attr('href');
1722
1723                var id = $(this).data('event-id');
1724                var occurrence = get_parameter_by_name('occurrence', href);
1725                var time = get_parameter_by_name('time', href);
1726
1727                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1728            });
1729        }
1730    };
1731
1732}(jQuery));
1733
1734// MEC MASONRY VIEW PLUGIN
1735(function ($) {
1736    $.fn.mecMasonryView = function (options) {
1737        // Default Options
1738        var settings = $.extend({
1739            // These are the defaults.
1740            id: 0,
1741            atts: '',
1742            ajax_url: '',
1743            sf: {},
1744            end_date: '',
1745            offset: 0,
1746            start_date: '',
1747        }, options);
1748
1749        // Set onclick Listeners
1750        setListeners();
1751
1752        // Init Masonry
1753        jQuery(window).load(function () {
1754            
1755            initMasonry();
1756            if (typeof custom_dev !== undefined) var custom_dev;
1757            if (custom_dev == 'yes') {
1758                $(".mec-wrap").css("height", "1550");
1759                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 768) {
1760                    $(".mec-wrap").css("height", "5500");
1761                }
1762                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 480) {
1763                    $(".mec-wrap").css("height", "5000");
1764                }
1765                $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "none");
1766                $(".mec-load-more-button").on("click", function () {
1767                    $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "block");
1768                    $(".mec-wrap").css("height", "auto");
1769                    initMasonry();
1770                    $(".mec-load-more-button").hide();
1771                })
1772                $(".mec-events-masonry-cats a:first-child").on("click", function () {
1773                    $(".mec-wrap").css("height", "auto");
1774                    $(".mec-event-masonry .mec-masonry-item-wrap:nth-child(n+20)").css("display", "block");
1775                    $(".mec-load-more-button").hide();
1776                    initMasonry();
1777                })
1778                $(".mec-events-masonry-cats a:not(:first-child)").on("click", function () {
1779                    $(".mec-load-more-button").hide();
1780                    $(".mec-wrap").css("height", "auto");
1781                    $(".mec-wrap").css("min-height", "400");
1782                    $(".mec-event-masonry .mec-masonry-item-wrap").css("display", "block");
1783                    var element = document.querySelector("#mec_skin_" + settings.id + " .mec-event-masonry");
1784                    var selector = $(this).attr('data-group');
1785                    var CustomShuffle = new Shuffle(element, {
1786                        itemSelector: '.mec-masonry-item-wrap',
1787                    });
1788                    CustomShuffle.sort({
1789                        by: element.getAttribute('data-created'),
1790                    });
1791                    CustomShuffle.filter(selector != '*' ? selector : Shuffle.ALL_ITEMS);
1792                    $(".mec-event-masonry .mec-masonry-item-wrap").css("visibility", "visible");
1793                })
1794            }
1795        });
1796
1797        // Fix Elementor Masonry
1798        if ( mecdata.elementor_edit_mode != 'no' ) elementorFrontend.hooks.addAction('frontend/element_ready/global', initMasonry());
1799
1800        function initMasonry() {
1801            var $container = $("#mec_skin_" + settings.id + " .mec-event-masonry");
1802            var data_sortAscending = $("#mec_skin_" + settings.id).data('sortascending');
1803            var $grid = $container.isotope({
1804                filter: '*',
1805                itemSelector: '.mec-masonry-item-wrap',
1806                getSortData: {
1807                    date: '[data-sort-masonry]',
1808                },
1809                sortBy: 'date',
1810                sortAscending: data_sortAscending,
1811                animationOptions: {
1812                    duration: 750,
1813                    easing: 'linear',
1814                    queue: false
1815                },
1816            });
1817
1818            if (settings.fit_to_row == 1) $grid.isotope({
1819                layoutMode: 'fitRows',
1820                sortAscending: data_sortAscending,
1821            });
1822
1823            // Fix Elementor tab
1824            $('.elementor-tabs').find('.elementor-tab-title').click(function () {
1825                $grid.isotope({
1826                    sortBy: 'date',
1827                    sortAscending: data_sortAscending,
1828                });
1829            });
1830
1831            $("#mec_skin_" + settings.id + " .mec-events-masonry-cats a").click(function () {
1832                var selector = $(this).attr('data-filter');
1833                var $grid_cat = $container.isotope({
1834                    filter: selector,
1835                    itemSelector: '.mec-masonry-item-wrap',
1836                    getSortData: {
1837                        date: '[data-sort-masonry]',
1838                    },
1839                    sortBy: 'date',
1840                    sortAscending: data_sortAscending,
1841                    animationOptions: {
1842                        duration: 750,
1843                        easing: 'linear',
1844                        queue: false
1845                    },
1846                });
1847                if (settings.masonry_like_grid == 1) $grid_cat.isotope({
1848                    sortBy: 'date',
1849                    sortAscending: data_sortAscending,
1850                });
1851                return false;
1852            });
1853
1854            var $optionSets = $("#mec_skin_" + settings.id + " .mec-events-masonry-cats"),
1855                $optionLinks = $optionSets.find('a');
1856
1857            $optionLinks.click(function () {
1858                var $this = $(this);
1859
1860                // don't proceed if already selected
1861                if ($this.hasClass('selected')) return false;
1862
1863                var $optionSet = $this.parents('.mec-events-masonry-cats');
1864                $optionSet.find('.mec-masonry-cat-selected').removeClass('mec-masonry-cat-selected');
1865                $this.addClass('mec-masonry-cat-selected');
1866            });
1867        }
1868
1869        function setListeners() {
1870            if (settings.sed_method != '0') {
1871                sed();
1872            }
1873
1874        }
1875
1876        $("#mec_skin_" + settings.id + " .mec-events-masonry-cats > a").click(function()
1877        {
1878            var mec_load_more_btn = $("#mec_skin_" + settings.id + " .mec-load-more-button");
1879            var mec_filter_value = $(this).data('filter').replace('.mec-t', '');
1880
1881            if(mec_load_more_btn.hasClass('mec-load-more-loading')) mec_load_more_btn.removeClass('mec-load-more-loading');
1882            if(mec_load_more_btn.hasClass("mec-hidden-" + mec_filter_value)) mec_load_more_btn.addClass("mec-util-hidden");
1883            else mec_load_more_btn.removeClass("mec-util-hidden");
1884        });
1885        
1886        $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
1887            loadMore();
1888        });
1889
1890        function sed() {
1891            // Single Event Display
1892            $("#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) {
1893                e.preventDefault();
1894                var href = $(this).attr('href');
1895
1896                var id = $(this).data('event-id');
1897                var occurrence = get_parameter_by_name('occurrence', href);
1898                var time = get_parameter_by_name('time', href);
1899
1900                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
1901            });
1902        }
1903
1904        function loadMore() {
1905            // Add loading Class
1906            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
1907            var mec_cat_elem = $('#mec_skin_' + settings.id).find('.mec-masonry-cat-selected');
1908            var mec_filter_value = (mec_cat_elem && mec_cat_elem.data('filter') != undefined) ? mec_cat_elem.data('filter').replace('.mec-t', '') : '';
1909            var mec_filter_by = $('#mec_skin_' + settings.id).data('filterby');
1910
1911            $.ajax({
1912                url: settings.ajax_url,
1913                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",
1914                dataType: "json",
1915                type: "post",
1916                success: function (response) {
1917                    if (response.count == "0") {
1918                        // Remove loading Class
1919                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
1920
1921                        // Hide load more button
1922                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden mec-hidden-" + mec_filter_value);
1923                    } else {
1924                        // Show load more button
1925                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
1926
1927                        // Append Items
1928                        var node = $("#mec_skin_" + settings.id + " .mec-event-masonry");
1929                        var markup = '',
1930                            newItems = $(response.html).find('.mec-masonry-item-wrap');
1931
1932                        newItems.each(function (index) {
1933                            node.isotope()
1934                                .append(newItems[index])
1935                                .isotope('appended', newItems[index]);
1936                        });
1937
1938                        // Remove loading Class
1939                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
1940
1941                        // Update the variables
1942                        settings.end_date = response.end_date;
1943                        settings.offset = response.offset;
1944
1945                        // Single Event Method
1946                        if (settings.sed_method != '0') {
1947                            sed();
1948                        }
1949                    }
1950                },
1951                error: function () {}
1952            });
1953        }
1954    };
1955}(jQuery));
1956
1957// MEC LIST VIEW PLUGIN
1958(function ($) {
1959    $.fn.mecListView = function (options) {
1960        // Default Options
1961        var settings = $.extend({
1962            // These are the defaults.
1963            id: 0,
1964            atts: '',
1965            ajax_url: '',
1966            sf: {},
1967            current_month_divider: '',
1968            end_date: '',
1969            offset: 0,
1970            limit: 0
1971        }, options);
1972
1973        // Set onclick Listeners
1974        setListeners();
1975
1976        var sf;
1977
1978        function setListeners() {
1979            // Search Widget
1980            if (settings.sf.container !== '') {
1981                sf = $(settings.sf.container).mecSearchForm({
1982                    id: settings.id,
1983                    atts: settings.atts,
1984                    callback: function (atts) {
1985                        settings.atts = atts;
1986                        search();
1987                    }
1988                });
1989            }
1990
1991            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
1992                loadMore();
1993            });
1994
1995            // Accordion Toggle
1996            if (settings.style === 'accordion') {
1997                if (settings.toggle_month_divider) {
1998                    $('#mec_skin_' + settings.id + ' .mec-month-divider:first-of-type').addClass('active');
1999                    $('#mec_skin_' + settings.id + ' .mec-month-divider:first-of-type').find('i').removeClass('mec-sl-arrow-down').addClass('mec-sl-arrow-up');
2000
2001                    toggle();
2002                }
2003
2004                accordion();
2005            }
2006
2007            // Single Event Method
2008            if (settings.sed_method != '0') {
2009                sed();
2010            }
2011        }
2012
2013        function toggle() {
2014            $('#mec_skin_' + settings.id + ' .mec-month-divider').off("click").on("click", function (event) {
2015                event.preventDefault();
2016
2017                var status = $(this).hasClass('active');
2018
2019                // Remove Active Style of Month Divider
2020                $('#mec_skin_' + settings.id + ' .mec-month-divider').removeClass('active');
2021
2022                // Hide All Events
2023                $('#mec_skin_' + settings.id + ' .mec-divider-toggle').slideUp('fast');
2024
2025                if (status) {
2026                    $(this).removeClass('active');
2027                    $('.mec-month-divider').find('i').removeClass('mec-sl-arrow-up').addClass('mec-sl-arrow-down');
2028                } else {
2029                    $(this).addClass('active');
2030                    $('.mec-month-divider').find('i').removeClass('mec-sl-arrow-up').addClass('mec-sl-arrow-down')
2031                    $(this).find('i').removeClass('mec-sl-arrow-down').addClass('mec-sl-arrow-up');
2032
2033                    var month = $(this).data('toggle-divider');
2034                    $('#mec_skin_' + settings.id + ' .' + month).slideDown('fast');
2035                }
2036            });
2037        }
2038
2039        function toggleLoadmore()
2040        {
2041            $('#mec_skin_' + settings.id + ' .mec-month-divider:not(:last)').each(function ()
2042            {
2043                if($(this).hasClass('active')) $(this).removeClass('active');
2044                var month = $(this).data('toggle-divider');
2045                $('#mec_skin_' + settings.id + ' .' + month).slideUp('fast');
2046            });
2047
2048            // Set Active Class For Last Article
2049            $('#mec_skin_' + settings.id + ' .mec-month-divider:last').addClass('active');
2050
2051            // Register Listeners
2052            toggle();
2053        }
2054
2055        function accordion() {
2056            // Accordion Toggle
2057            $("#mec_skin_" + settings.id + " .mec-toggle-item-inner").off("click").on("click", function (event) {
2058                event.preventDefault();
2059
2060                var $this = $(this);
2061                $(this).parent().find(".mec-content-toggle").slideToggle("fast", function () {
2062                    $this.children("i").toggleClass("mec-sl-arrow-down mec-sl-arrow-up");
2063                });
2064
2065                // Trigger Google Map
2066                var unique_id = $(this).parent().find(".mec-modal-wrap").data('unique-id');
2067
2068                window['mec_init_gmap' + unique_id]();
2069            });
2070        }
2071
2072        function sed() {
2073            // Single Event Display
2074            $("#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) {
2075                e.preventDefault();
2076                var href = $(this).attr('href');
2077
2078                var id = $(this).data('event-id');
2079                var occurrence = get_parameter_by_name('occurrence', href);
2080                var time = get_parameter_by_name('time', href);
2081
2082                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2083            });
2084
2085            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2086                e.preventDefault();
2087                var href = $(this).parent().attr('href');
2088
2089                var id = $(this).parent().data('event-id');
2090                var occurrence = get_parameter_by_name('occurrence', href);
2091                var time = get_parameter_by_name('time', href);
2092
2093                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2094            });
2095        }
2096
2097        function loadMore() {
2098            // Add loading Class
2099            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2100
2101            $.ajax({
2102                url: settings.ajax_url,
2103                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",
2104                dataType: "json",
2105                type: "post",
2106                success: function (response) {
2107                    if (response.count == '0') {
2108                        // Remove loading Class
2109                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2110
2111                        // Hide load more button
2112                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2113                    } else {
2114                        // Show load more button
2115                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2116
2117                        // Append Items
2118                        $("#mec_skin_events_" + settings.id).append(response.html);
2119
2120                        // Remove loading Class
2121                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2122
2123                        // Update the variables
2124                        settings.end_date = response.end_date;
2125                        settings.offset = response.offset;
2126                        settings.current_month_divider = response.current_month_divider;
2127
2128                        // Single Event Method
2129                        if (settings.sed_method != '0') {
2130                            sed();
2131                        }
2132
2133                        // Accordion Toggle
2134                        if (settings.style === 'accordion') {
2135                            if (settings.toggle_month_divider) toggleLoadmore();
2136
2137                            accordion();
2138                        }
2139                    }
2140                },
2141                error: function () {}
2142            });
2143        }
2144
2145        function search() {
2146            // Hide no event message
2147            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2148
2149            // Add loading Class
2150            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2151            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2152            jQuery("#gmap-data").val("");
2153
2154            $.ajax({
2155                url: settings.ajax_url,
2156                data: "action=mec_list_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=1",
2157                dataType: "json",
2158                type: "post",
2159                success: function (response) {
2160                    if (response.count == "0") {
2161                        // Append Items
2162                        $("#mec_skin_events_" + settings.id).html('');
2163
2164                        // Remove loading Class
2165                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2166
2167                        // Hide Map
2168                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2169
2170                        // Hide it
2171                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2172
2173                        // Show no event message
2174                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2175                    } else {
2176                        // Append Items
2177                        $("#mec_skin_events_" + settings.id).html(response.html);
2178
2179                        // Remove loading Class
2180                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2181
2182                        // Show Map
2183                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2184
2185                        // Show load more button
2186                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2187                        // Hide load more button
2188                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2189
2190                        // Update the variables
2191                        settings.end_date = response.end_date;
2192                        settings.offset = response.offset;
2193                        settings.current_month_divider = response.current_month_divider;
2194
2195                        // Single Event Method
2196                        if (settings.sed_method != '0') {
2197                            sed();
2198                        }
2199
2200                        // Accordion Toggle
2201                        if (settings.style === 'accordion') {
2202                            if (settings.toggle_month_divider) toggle();
2203
2204                            accordion();
2205                        }
2206                    }
2207                },
2208                error: function () {}
2209            });
2210        }
2211    };
2212
2213}(jQuery));
2214
2215// MEC GRID VIEW PLUGIN
2216(function ($) {
2217    $.fn.mecGridView = function (options) {
2218        // Default Options
2219        var settings = $.extend({
2220            // These are the defaults.
2221            id: 0,
2222            atts: '',
2223            ajax_url: '',
2224            sf: {},
2225            end_date: '',
2226            offset: 0,
2227            start_date: '',
2228        }, options);
2229
2230        // Set onclick Listeners
2231        setListeners();
2232
2233        var sf;
2234
2235        function setListeners() {
2236            // Search Widget
2237            if (settings.sf.container !== '') {
2238                sf = $(settings.sf.container).mecSearchForm({
2239                    id: settings.id,
2240                    atts: settings.atts,
2241                    callback: function (atts) {
2242                        settings.atts = atts;
2243                        search();
2244                    }
2245                });
2246            }
2247
2248            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2249                loadMore();
2250            });
2251
2252            // Single Event Method
2253            if (settings.sed_method != '0') {
2254                sed();
2255            }
2256        }
2257
2258        function sed() {
2259            // Single Event Display
2260            $("#mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
2261                e.preventDefault();
2262                var href = $(this).attr('href');
2263
2264                var id = $(this).data('event-id');
2265                var occurrence = get_parameter_by_name('occurrence', href);
2266                var time = get_parameter_by_name('time', href);
2267
2268                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2269            });
2270            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2271                e.preventDefault();
2272                var href = $(this).parent().attr('href');
2273
2274                var id = $(this).parent().data('event-id');
2275                var occurrence = get_parameter_by_name('occurrence', href);
2276                var time = get_parameter_by_name('time', href);
2277
2278                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2279            });
2280        }
2281
2282        function loadMore() {
2283            // Add loading Class
2284            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2285
2286            $.ajax({
2287                url: settings.ajax_url,
2288                data: "action=mec_grid_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2289                dataType: "json",
2290                type: "post",
2291                success: function (response) {
2292                    if (response.count == "0") {
2293                        // Remove loading Class
2294                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2295
2296                        // Hide load more button
2297                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2298                    } else {
2299                        // Show load more button
2300                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2301
2302                        // Append Items
2303                        $("#mec_skin_events_" + settings.id).append(response.html);
2304
2305                        // Remove loading Class
2306                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2307
2308                        // Update the variables
2309                        settings.end_date = response.end_date;
2310                        settings.offset = response.offset;
2311
2312                        // Single Event Method
2313                        if (settings.sed_method != '0') {
2314                            sed();
2315                        }
2316                    }
2317                },
2318                error: function () {}
2319            });
2320        }
2321
2322        function search() {
2323            // Hide no event message
2324            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2325
2326            // Add loading Class
2327            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2328            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2329            jQuery("#gmap-data").val("");
2330
2331            $.ajax({
2332                url: settings.ajax_url,
2333                data: "action=mec_grid_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2334                dataType: "json",
2335                type: "post",
2336                success: function (response) {
2337                    if (response.count == "0") {
2338                        // Append Items
2339                        $("#mec_skin_events_" + settings.id).html('');
2340
2341                        // Remove loading Class
2342                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2343
2344                        // Hide Map
2345                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2346
2347                        // Hide it
2348                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2349
2350                        // Show no event message
2351                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2352                    } else {
2353                        // Append Items
2354                        $("#mec_skin_events_" + settings.id).html(response.html);
2355
2356                        // Remove loading Class
2357                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2358
2359                        // Show Map
2360                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2361
2362                        // Show load more button
2363                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2364                        // Hide load more button
2365                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2366
2367                        // Update the variables
2368                        settings.end_date = response.end_date;
2369                        settings.offset = response.offset;
2370
2371                        // Single Event Method
2372                        if (settings.sed_method != '0') {
2373                            sed();
2374                        }
2375                    }
2376                },
2377                error: function () {}
2378            });
2379        }
2380    };
2381
2382}(jQuery));
2383
2384// MEC CUSTOM VIEW PLUGIN
2385(function ($) {
2386    $.fn.mecCustomView = function (options) {
2387        // Default Options
2388        var settings = $.extend({
2389            // These are the defaults.
2390            id: 0,
2391            atts: '',
2392            ajax_url: '',
2393            sf: {},
2394            end_date: '',
2395            offset: 0,
2396            start_date: '',
2397        }, options);
2398
2399        // Set onclick Listeners
2400        setListeners();
2401
2402        var sf;
2403
2404        function setListeners() {
2405            // Search Widget
2406            if (settings.sf.container !== '') {
2407                sf = $(settings.sf.container).mecSearchForm({
2408                    id: settings.id,
2409                    atts: settings.atts,
2410                    callback: function (atts) {
2411                        settings.atts = atts;
2412                        search();
2413                    }
2414                });
2415            }
2416
2417            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2418                loadMore();
2419            });
2420
2421            // Single Event Method
2422            if (settings.sed_method != '0') {
2423                sed();
2424            }
2425        }
2426
2427        function sed() {
2428            // Single Event Display
2429            $("#mec_skin_" + settings.id + " .mec-event-title a, #mec_skin_" + settings.id + " .mec-booking-button").off('click').on('click', function (e) {
2430                e.preventDefault();
2431                var href = $(this).attr('href');
2432
2433                var id = $(this).data('event-id');
2434                var occurrence = get_parameter_by_name('occurrence', href);
2435                var time = get_parameter_by_name('time', href);
2436
2437                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2438            });
2439            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2440                e.preventDefault();
2441                var href = $(this).parent().attr('href');
2442
2443                var id = $(this).parent().data('event-id');
2444                var occurrence = get_parameter_by_name('occurrence', href);
2445                var time = get_parameter_by_name('time', href);
2446
2447                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2448            });
2449        }
2450
2451        function loadMore() {
2452            // Add loading Class
2453            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2454
2455            $.ajax({
2456                url: settings.ajax_url,
2457                data: "action=mec_custom_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2458                dataType: "json",
2459                type: "post",
2460                success: function (response) {
2461                    if (response.count == "0") {
2462                        // Remove loading Class
2463                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2464
2465                        // Hide load more button
2466                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2467                    } else {
2468                        // Show load more button
2469                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2470
2471                        // Append Items
2472                        $("#mec_skin_events_" + settings.id).append(response.html);
2473
2474                        // Remove loading Class
2475                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2476
2477                        // Update the variables
2478                        settings.end_date = response.end_date;
2479                        settings.offset = response.offset;
2480
2481                        if ( $('.mec-event-sd-countdown').length > 0 )
2482                        {
2483                            $('.mec-event-sd-countdown').each(function (event) {
2484                                var dc= $(this).attr('data-date-custom');
2485                                $(this).mecCountDown(
2486                                {
2487                                    date: dc,
2488                                    format: "off"
2489                                },
2490                                function () {
2491                                });
2492                            })
2493                        }
2494                        // Single Event Method
2495                        if (settings.sed_method != '0') {
2496                            sed();
2497                        }
2498                    }
2499                },
2500                error: function () {}
2501            });
2502        }
2503
2504        function search() {
2505            // Hide no event message
2506            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2507
2508            // Add loading Class
2509            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2510            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2511            jQuery("#gmap-data").val("");
2512
2513            $.ajax({
2514                url: settings.ajax_url,
2515                data: "action=mec_custom_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2516                dataType: "json",
2517                type: "post",
2518                success: function (response) {
2519                    if (response.count == "0") {
2520                        // Append Items
2521                        $("#mec_skin_events_" + settings.id).html('');
2522
2523                        // Remove loading Class
2524                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2525
2526                        // Hide Map
2527                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2528
2529                        // Hide it
2530                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2531
2532                        // Show no event message
2533                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2534                    } else {
2535                        // Append Items
2536                        $("#mec_skin_events_" + settings.id).html(response.html);
2537
2538                        // Remove loading Class
2539                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2540
2541                        // Show Map
2542                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2543
2544                        // Show load more button
2545                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2546                        // Hide load more button
2547                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2548
2549                        // Update the variables
2550                        settings.end_date = response.end_date;
2551                        settings.offset = response.offset;
2552
2553                        // Single Event Method
2554                        if (settings.sed_method != '0') {
2555                            sed();
2556                        }
2557                    }
2558                },
2559                error: function () {}
2560            });
2561        }
2562    };
2563
2564}(jQuery));
2565
2566// MEC TIMELINE VIEW PLUGIN
2567(function ($) {
2568    $.fn.mecTimelineView = function (options) {
2569        // Default Options
2570        var settings = $.extend({
2571            // These are the defaults.
2572            id: 0,
2573            atts: '',
2574            ajax_url: '',
2575            sf: {},
2576            end_date: '',
2577            offset: 0,
2578            start_date: '',
2579        }, options);
2580
2581        // Set onclick Listeners
2582        setListeners();
2583
2584        var sf;
2585
2586        function setListeners() {
2587            // Search Widget
2588            if (settings.sf.container !== '') {
2589                sf = $(settings.sf.container).mecSearchForm({
2590                    id: settings.id,
2591                    atts: settings.atts,
2592                    callback: function (atts) {
2593                        settings.atts = atts;
2594                        search();
2595                    }
2596                });
2597            }
2598
2599            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2600                loadMore();
2601            });
2602
2603            // Single Event Method
2604            if (settings.sed_method != '0') {
2605                sed();
2606            }
2607        }
2608
2609        function sed() {
2610            // Single Event Display
2611            $("#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) {
2612                e.preventDefault();
2613                var href = $(this).attr('href');
2614
2615                var id = $(this).data('event-id');
2616                var occurrence = get_parameter_by_name('occurrence', href);
2617                var time = get_parameter_by_name('time', href);
2618
2619                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2620            });
2621            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2622                e.preventDefault();
2623                var href = $(this).parent().attr('href');
2624
2625                var id = $(this).parent().data('event-id');
2626                var occurrence = get_parameter_by_name('occurrence', href);
2627                var time = get_parameter_by_name('time', href);
2628
2629                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2630            });
2631        }
2632
2633        function loadMore() {
2634            // Add loading Class
2635            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2636
2637            $.ajax({
2638                url: settings.ajax_url,
2639                data: "action=mec_timeline_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2640                dataType: "json",
2641                type: "post",
2642                success: function (response) {
2643                    if (response.count == "0") {
2644                        // Remove loading Class
2645                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2646
2647                        // Hide load more button
2648                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2649                    } else {
2650                        // Show load more button
2651                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2652
2653                        // Append Items
2654                        $("#mec_skin_events_" + settings.id).append(response.html);
2655
2656                        // Remove loading Class
2657                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2658
2659                        // Update the variables
2660                        settings.end_date = response.end_date;
2661                        settings.offset = response.offset;
2662
2663                        // Single Event Method
2664                        if (settings.sed_method != '0') {
2665                            sed();
2666                        }
2667
2668                    }
2669                },
2670                error: function () { }
2671            });
2672        }
2673
2674        function search() {
2675            // Hide no event message
2676            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2677
2678            // Add loading Class
2679            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2680            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2681
2682            $.ajax({
2683                url: settings.ajax_url,
2684                data: "action=mec_timeline_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2685                dataType: "json",
2686                type: "post",
2687                success: function (response) {
2688                    if (response.count == "0") {
2689                        // Append Items
2690                        $("#mec_skin_events_" + settings.id).html('');
2691
2692                        // Remove loading Class
2693                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2694
2695                        // Hide Map
2696                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2697
2698                        // Hide it
2699                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2700
2701                        // Show no event message
2702                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2703                    } else {
2704                        // Append Items
2705                        $("#mec_skin_events_" + settings.id).html(response.html);
2706
2707                        // Remove loading Class
2708                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2709
2710                        // Show Map
2711                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2712
2713                        // Show load more button
2714                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2715                        // Hide load more button
2716                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2717
2718                        // Update the variables
2719                        settings.end_date = response.end_date;
2720                        settings.offset = response.offset;
2721
2722                        // Single Event Method
2723                        if (settings.sed_method != '0') {
2724                            sed();
2725                        }
2726                    }
2727                },
2728                error: function () { }
2729            });
2730        }
2731    };
2732
2733}(jQuery));
2734
2735// MEC AGENDA VIEW PLUGIN
2736(function ($) {
2737    $.fn.mecAgendaView = function (options) {
2738        // Default Options
2739        var settings = $.extend({
2740            // These are the defaults.
2741            id: 0,
2742            atts: '',
2743            ajax_url: '',
2744            sf: {},
2745            current_month_divider: '',
2746            end_date: '',
2747            offset: 0,
2748        }, options);
2749
2750        // Set onclick Listeners
2751        setListeners();
2752
2753        var sf;
2754
2755        function setListeners() {
2756            // Search Widget
2757            if (settings.sf.container !== '') {
2758                sf = $(settings.sf.container).mecSearchForm({
2759                    id: settings.id,
2760                    atts: settings.atts,
2761                    callback: function (atts) {
2762                        settings.atts = atts;
2763                        search();
2764                    }
2765                });
2766            }
2767
2768            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2769                loadMore();
2770            });
2771
2772            // Single Event Method
2773            if (settings.sed_method != '0') {
2774                sed();
2775            }
2776        }
2777
2778        function sed() {
2779            // Single Event Display
2780            $("#mec_skin_" + settings.id + " .mec-agenda-event-title a").off('click').on('click', function (e) {
2781                e.preventDefault();
2782                var href = $(this).attr('href');
2783
2784                var id = $(this).data('event-id');
2785                var occurrence = get_parameter_by_name('occurrence', href);
2786                var time = get_parameter_by_name('time', href);
2787
2788                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2789            });
2790        }
2791
2792        function loadMore() {
2793            // Add loading Class
2794            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2795
2796            $.ajax({
2797                url: settings.ajax_url,
2798                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",
2799                dataType: "json",
2800                type: "post",
2801                success: function (response) {
2802                    if (response.count == "0") {
2803                        // Remove loading Class
2804                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2805
2806                        // Hide load more button
2807                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2808                    } else {
2809                        // Show load more button
2810                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2811
2812                        // Append Items
2813                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").append(response.html);
2814
2815                        // Remove loading Class
2816                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2817
2818                        // Update the variables
2819                        settings.end_date = response.end_date;
2820                        settings.offset = response.offset;
2821                        settings.current_month_divider = response.current_month_divider;
2822
2823                        // Single Event Method
2824                        if (settings.sed_method != '0') {
2825                            sed();
2826                        }
2827                        mecFluentCustomScrollbar();
2828                    }
2829                },
2830                error: function () {}
2831            });
2832        }
2833
2834        function search() {
2835            // Hide no event message
2836            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2837
2838            // Add loading Class
2839            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2840            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2841            mecFluentCustomScrollbar();
2842
2843            $.ajax({
2844                url: settings.ajax_url,
2845                data: "action=mec_agenda_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=1",
2846                dataType: "json",
2847                type: "post",
2848                success: function (response) {
2849                    if (response.count == "0") {
2850                        // Append Items
2851                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html('');
2852
2853                        // Remove loading Class
2854                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2855
2856                        // Hide it
2857                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2858
2859                        // Show no event message
2860                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2861                    } else {
2862                        // Append Items
2863                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html(response.html);
2864
2865                        // Remove loading Class
2866                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2867
2868                        // Show load more button
2869                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2870                        // Hide load more button
2871                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2872
2873                        // Update the variables
2874                        settings.end_date = response.end_date;
2875                        settings.offset = response.offset;
2876                        settings.current_month_divider = response.current_month_divider;
2877
2878                        // Single Event Method
2879                        if (settings.sed_method != '0') {
2880                            sed();
2881                        }
2882                    }
2883                    mecFluentCustomScrollbar();
2884                },
2885                error: function () {}
2886            });
2887        }
2888    };
2889}(jQuery));
2890
2891// MEC CAROUSEL VIEW PLUGIN
2892(function ($) {
2893    $.fn.mecCarouselView = function (options) {
2894        // Default Options
2895        var settings = $.extend({
2896            // These are the defaults.
2897            id: 0,
2898            atts: '',
2899            ajax_url: '',
2900            sf: {},
2901            items: 3,
2902            autoplay: '',
2903            style: 'type1',
2904            start_date: ''
2905        }, options);
2906
2907        // Init Sliders
2908        initSlider(settings);
2909
2910        // Single Event Method
2911        if (settings.sed_method != '0') {
2912            sed(settings);
2913        }
2914
2915        function initSlider(settings) {
2916            // Check RTL website
2917            if ($('body').hasClass('rtl')) {
2918                var owl_rtl = true;
2919            } else {
2920                var owl_rtl = false;
2921            }
2922
2923            if (settings.style === 'type1') {
2924
2925                // Start carousel skin
2926                var owl = $("#mec_skin_" + settings.id + " .mec-event-carousel-type1 .mec-owl-carousel");
2927
2928                owl.owlCarousel({
2929                    autoplay: true,
2930                    autoplayTimeout: settings.autoplay, // Set AutoPlay to 3 seconds
2931                    loop: true,
2932                    items: settings.items,
2933                    responsiveClass: true,
2934                    responsive: {
2935                        0: {
2936                            items: 1,
2937                        },
2938                        979: {
2939                            items: 2,
2940                        },
2941                        1199: {
2942                            items: settings.count,
2943                        }
2944                    },
2945                    dots: true,
2946                    nav: false,
2947                    autoplayHoverPause: true,
2948                    rtl: owl_rtl,
2949                });
2950                owl.bind(
2951                    "mouseleave",
2952                    function (event) {
2953                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
2954                    }
2955                );
2956            } else if (settings.style === 'type4') {
2957                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
2958                    autoplay: true,
2959                    loop: true,
2960                    autoplayTimeout: settings.autoplay,
2961                    items: settings.items,
2962                    dots: false,
2963                    nav: true,
2964                    responsiveClass: true,
2965                    responsive: {
2966                        0: {
2967                            items: 1,
2968                            stagePadding: 50,
2969                        },
2970                        979: {
2971                            items: 2,
2972                        },
2973                        1199: {
2974                            items: settings.count,
2975                        }
2976                    },
2977                    autoplayHoverPause: true,
2978                    navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
2979                    rtl: owl_rtl,
2980                });
2981                $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
2982                    "mouseleave",
2983                    function (event) {
2984                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
2985                    }
2986                );
2987            } else {
2988                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
2989                    autoplay: true,
2990                    loop: true,
2991                    autoplayTimeout: settings.autoplay,
2992                    items: settings.items,
2993                    dots: typeof settings.dots_navigation != 'undefined' ? settings.dots_navigation : false,
2994                    nav: typeof settings.navigation != 'undefined' ? settings.navigation : true,
2995                    responsiveClass: true,
2996                    responsive: {
2997                        0: {
2998                            items: 1,
2999                        },
3000                        979: {
3001                            items: 2,
3002                        },
3003                        1199: {
3004                            items: settings.count,
3005                        }
3006                    },
3007                    autoplayHoverPause: true,
3008                    navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3009                    rtl: owl_rtl,
3010                });
3011                $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
3012                    "mouseleave",
3013                    function (event) {
3014                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3015                    }
3016                );
3017            }
3018        }
3019    };
3020
3021    function sed(settings) {
3022        // Single Event Display
3023        $("#mec_skin_" + settings.id + " .mec-event-carousel-title a, #mec_skin_" + settings.id + " .mec-booking-button, #mec_skin_" + settings.id + " .mec-event-button").off('click').on('click', function (e) {
3024            e.preventDefault();
3025            var href = $(this).attr('href');
3026
3027            var id = $(this).data('event-id');
3028            var occurrence = get_parameter_by_name('occurrence', href);
3029            var time = get_parameter_by_name('time', href);
3030
3031            mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3032        });
3033    }
3034}(jQuery));
3035
3036// MEC SLIDER VIEW PLUGIN
3037(function ($) {
3038    $.fn.mecSliderView = function (options) {
3039        // Default Options
3040        var settings = $.extend({
3041            // These are the defaults.
3042            id: 0,
3043            atts: '',
3044            autoplay: false,
3045            ajax_url: '',
3046            sf: {},
3047            start_date: ''
3048        }, options);
3049
3050        // Init Sliders
3051        initSlider();
3052
3053        function initSlider() {
3054            // Check RTL website
3055            if ($('body').hasClass('rtl')) {
3056                var owl_rtl = true;
3057            } else {
3058                var owl_rtl = false;
3059            }
3060
3061            $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3062                autoplay: true,
3063                autoplayTimeout: settings.autoplay,
3064                loop: true,
3065                items: 1,
3066                responsiveClass: true,
3067                responsive: {
3068                    0: {
3069                        items: 1,
3070                    },
3071                    960: {
3072                        items: 1,
3073                    },
3074                    1200: {
3075                        items: 1,
3076                    }
3077                },
3078                dots: false,
3079                nav: true,
3080                autoplayHoverPause: true,
3081                navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3082                rtl: owl_rtl,
3083            });
3084        }
3085    };
3086
3087}(jQuery));
3088
3089// MEC COUNTDOWN MODULE
3090(function ($) {
3091    $.fn.mecCountDown = function (options, callBack) {
3092        // Default Options
3093        var settings = $.extend({
3094            // These are the defaults.
3095            date: null,
3096            format: null
3097        }, options);
3098
3099        var callback = callBack;
3100        var selector = $(this);
3101
3102        startCountdown();
3103        var interval = setInterval(startCountdown, 1000);
3104
3105        function startCountdown() {
3106            var eventDate = Date.parse(settings.date) / 1000;
3107            var currentDate = Math.floor($.now() / 1000);
3108
3109            if (eventDate <= currentDate) {
3110                callback.call(this);
3111                clearInterval(interval);
3112            }
3113
3114            var seconds = eventDate - currentDate;
3115
3116            var days = Math.floor(seconds / (60 * 60 * 24));
3117            seconds -= days * 60 * 60 * 24;
3118
3119            var hours = Math.floor(seconds / (60 * 60));
3120            seconds -= hours * 60 * 60;
3121
3122            var minutes = Math.floor(seconds / 60);
3123            seconds -= minutes * 60;
3124
3125            if (days == 1) selector.find(".mec-timeRefDays").text(mecdata.day);
3126            else selector.find(".mec-timeRefDays").text(mecdata.days);
3127
3128            if (hours == 1) selector.find(".mec-timeRefHours").text(mecdata.hour);
3129            else selector.find(".mec-timeRefHours").text(mecdata.hours);
3130
3131            if (minutes == 1) selector.find(".mec-timeRefMinutes").text(mecdata.minute);
3132            else selector.find(".mec-timeRefMinutes").text(mecdata.minutes);
3133
3134            if (seconds == 1) selector.find(".mec-timeRefSeconds").text(mecdata.second);
3135            else selector.find(".mec-timeRefSeconds").text(mecdata.seconds);
3136
3137            if (settings.format === "on") {
3138                days = (String(days).length >= 2) ? days : "0" + days;
3139                hours = (String(hours).length >= 2) ? hours : "0" + hours;
3140                minutes = (String(minutes).length >= 2) ? minutes : "0" + minutes;
3141                seconds = (String(seconds).length >= 2) ? seconds : "0" + seconds;
3142            }
3143
3144            if (!isNaN(eventDate)) {
3145                selector.find(".mec-days").text(days);
3146                selector.find(".mec-hours").text(hours);
3147                selector.find(".mec-minutes").text(minutes);
3148                selector.find(".mec-seconds").text(seconds);
3149            } else {
3150                clearInterval(interval);
3151            }
3152        }
3153    };
3154
3155}(jQuery));
3156
3157// MEC TILE VIEW PLUGIN
3158(function($)
3159{
3160    $.fn.mecTileView = function(options)
3161    {
3162        var active_month;
3163        var active_year;
3164
3165        // Default Options
3166        var settings = $.extend({
3167            // These are the defaults.
3168            today: null,
3169            id: 0,
3170            events_label: 'Events',
3171            event_label: 'Event',
3172            month_navigator: 0,
3173            atts: '',
3174            active_month: {},
3175            next_month: {},
3176            sf: {},
3177            ajax_url: ''
3178        }, options);
3179
3180        // Initialize Month Navigator
3181        if(settings.month_navigator) initMonthNavigator();
3182
3183        // Load Next Month in background
3184        if(settings.load_method === 'month') setMonth(settings.next_month.year, settings.next_month.month, true);
3185
3186        active_month = settings.active_month.month;
3187        active_year = settings.active_month.year;
3188
3189        // Set onclick Listeners
3190        setListeners();
3191
3192        // Search Widget
3193        if(settings.sf.container !== '')
3194        {
3195            sf = $(settings.sf.container).mecSearchForm(
3196            {
3197                id: settings.id,
3198                atts: settings.atts,
3199                callback: function(atts)
3200                {
3201                    settings.atts = atts;
3202                    search(active_year, active_month);
3203                }
3204            });
3205        }
3206
3207        function initMonthNavigator()
3208        {
3209            $("#mec_skin_" + settings.id + " .mec-load-month").off("click").on("click", function()
3210            {
3211                var year = $(this).data("mec-year");
3212                var month = $(this).data("mec-month");
3213
3214                setMonth(year, month, false, true);
3215            });
3216        }
3217
3218        function search(year, month)
3219        {
3220            // Add Loading Class
3221            if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3222            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3223
3224            $.ajax(
3225            {
3226                url: settings.ajax_url,
3227                data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
3228                dataType: "json",
3229                type: "post",
3230                success: function(response)
3231                {
3232                    if(settings.load_method === 'month')
3233                    {
3234                        active_month = response.current_month.month;
3235                        active_year = response.current_month.year;
3236
3237                        // Append Month
3238                        $("#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>');
3239
3240                        // Append Month Navigator
3241                        $("#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>');
3242
3243                        // Re-initialize Month Navigator
3244                        initMonthNavigator();
3245
3246                        // Set onclick Listeners
3247                        setListeners();
3248
3249                        // Toggle Month
3250                        toggleMonth(response.current_month.id);
3251                    }
3252                    else
3253                    {
3254                        // Append Items
3255                        $("#mec_skin_events_" + settings.id).html(response.html);
3256
3257                        // Show load more button
3258                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3259                        // Hide load more button
3260                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3261
3262                        // Update the variables
3263                        settings.end_date = response.end_date;
3264                        settings.offset = response.offset;
3265
3266                        // Set onclick Listeners
3267                        setListeners();
3268                    }
3269
3270                    // Remove loading Class
3271                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3272                },
3273                error: function(){}
3274            });
3275        }
3276
3277        function setMonth(year, month, do_in_background, navigator_click)
3278        {
3279            if(typeof do_in_background === "undefined") do_in_background = false;
3280            navigator_click = navigator_click || false;
3281
3282            var month_id = year + "" + month;
3283
3284            if(!do_in_background)
3285            {
3286                active_month = month;
3287                active_year = year;
3288            }
3289
3290            // Month exists so we just show it
3291            if($("#mec_tile_month_" + settings.id + "_" + month_id).length)
3292            {
3293                // Toggle Month
3294                toggleMonth(month_id);
3295            }
3296            else
3297            {
3298                if(!do_in_background)
3299                {
3300                    // Add Loading Class
3301                    if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3302                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3303                }
3304
3305                $.ajax(
3306                {
3307                    url: settings.ajax_url,
3308                    data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
3309                    dataType: "json",
3310                    type: "post",
3311                    success: function(response)
3312                    {
3313                        // Append Month
3314                        $("#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>');
3315
3316                        // Append Month Navigator
3317                        $("#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>');
3318
3319                        // Re-initialize Month Navigator
3320                        initMonthNavigator();
3321
3322                        // Set onclick Listeners
3323                        setListeners();
3324
3325                        if(!do_in_background)
3326                        {
3327                            // Toggle Month
3328                            toggleMonth(response.current_month.id);
3329
3330                            // Remove loading Class
3331                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3332
3333                            // Set Month Filter values in search widget
3334                            $("#mec_sf_month_" + settings.id).val(month);
3335                            $("#mec_sf_year_" + settings.id).val(year);
3336                        }
3337                        else
3338                        {
3339                            $("#mec_tile_month_" + settings.id + "_" + response.current_month.id).hide();
3340                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
3341                        }
3342                    },
3343                    error: function(){}
3344                });
3345            }
3346        }
3347
3348        function toggleMonth(month_id)
3349        {
3350            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
3351            var active_day = $("#mec_tile_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
3352
3353            if(active_day <= 9) active_day = "0" + active_day;
3354
3355            // Toggle Month Navigator
3356            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
3357            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
3358
3359            // Toggle Month
3360            $("#mec_skin_" + settings.id + " .mec-month-container").hide().removeClass("mec-month-container-selected");
3361            $("#mec_tile_month_" + settings.id + "_" + month_id).show().addClass("mec-month-container-selected");
3362        }
3363
3364        var sf;
3365
3366        function setListeners()
3367        {
3368            $("#mec_skin_" + settings.id + " .mec-load-more-button").off("click").on("click", function()
3369            {
3370                loadMore();
3371            });
3372
3373            // Add the onclick event
3374            $("#mec_skin_" + settings.id + " .mec-has-event").off("click").on('click', function(e)
3375            {
3376                e.preventDefault();
3377
3378                // define variables
3379                var $this = $(this),
3380                    data_mec_cell = $this.data('mec-cell'),
3381                    month_id = $this.data('month');
3382
3383                $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
3384                $this.addClass('mec-selected-day');
3385
3386                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3387                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3388
3389                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3390                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3391            });
3392
3393            // Single Event Method
3394            if(settings.sed_method != '0')
3395            {
3396                sed();
3397            }
3398        }
3399
3400        function sed()
3401        {
3402            // Single Event Display
3403            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function(e)
3404            {
3405                e.preventDefault();
3406                var href = $(this).attr('href');
3407
3408                var id = $(this).data('event-id');
3409                var occurrence = get_parameter_by_name('occurrence', href);
3410                var time = get_parameter_by_name('time', href);
3411
3412                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3413            });
3414        }
3415
3416        function loadMore()
3417        {
3418            // Load More Button
3419            var $load_more_button = $("#mec_skin_" + settings.id + " .mec-load-more-button");
3420
3421            // Add loading Class
3422            $load_more_button.addClass("mec-load-more-loading");
3423
3424            $.ajax(
3425            {
3426                url: settings.ajax_url,
3427                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",
3428                dataType: "json",
3429                type: "post",
3430                success: function(response)
3431                {
3432                    if(response.count == '0')
3433                    {
3434                        // Remove loading Class
3435                        $load_more_button.removeClass("mec-load-more-loading");
3436
3437                        // Hide load more button
3438                        $load_more_button.addClass("mec-util-hidden");
3439                    }
3440                    else
3441                    {
3442                        // Show load more button
3443                        $load_more_button.removeClass("mec-util-hidden");
3444
3445                        // Append Items
3446                        $("#mec_skin_events_" + settings.id).append(response.html);
3447
3448                        // Remove loading Class
3449                        $load_more_button.removeClass("mec-load-more-loading");
3450
3451                        // Update the variables
3452                        settings.end_date = response.end_date;
3453                        settings.offset = response.offset;
3454                        settings.current_month_divider = response.current_month_divider;
3455
3456                        // Single Event Method
3457                        if(settings.sed_method != '0')
3458                        {
3459                            sed();
3460                        }
3461                    }
3462                },
3463                error: function(){}
3464            });
3465        }
3466    };
3467}(jQuery));
3468
3469function mec_gateway_selected(gateway_id) {
3470    // Hide all gateway forms
3471    jQuery('.mec-book-form-gateway-checkout').addClass('mec-util-hidden');
3472
3473    // Show selected gateway form
3474    jQuery('#mec_book_form_gateway_checkout' + gateway_id).removeClass('mec-util-hidden');
3475}
3476
3477function mec_wrap_resize() {
3478    var $mec_wrap = jQuery('.mec-wrap'),
3479        mec_width = $mec_wrap.width();
3480    if (mec_width < 959) {
3481        $mec_wrap.addClass('mec-sm959');
3482    } else {
3483        $mec_wrap.removeClass('mec-sm959');
3484    }
3485}
3486
3487function get_parameter_by_name(name, url) {
3488    if (!url) {
3489        url = window.location.href;
3490    }
3491
3492    name = name.replace(/[\[\]]/g, "\\$&");
3493    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
3494        results = regex.exec(url);
3495
3496    if (!results) return null;
3497    if (!results[2]) return '';
3498
3499    return decodeURIComponent(results[2].replace(/\+/g, " "));
3500}
3501
3502// Focus events day
3503var mec_g_month_id = null;
3504
3505function mecFocusDay(settings)
3506{
3507    if(mec_g_month_id != null)
3508    {
3509        setTimeout(function()
3510        {
3511            var id = settings.id,
3512            date = new Date(),
3513            mec_owl_year = mec_g_month_id.substr(0, 4),
3514            mec_current_year = date.getFullYear(),
3515            mec_owl_month = mec_g_month_id.substr(4, 6),
3516            mec_current_month = date.getMonth() + 1,
3517            mec_current_day = date.getDate(),
3518            mec_owl_go = jQuery("#mec-owl-calendar-d-table-" + id + "-" + mec_g_month_id),
3519            mec_day_exist = false;
3520            mec_owl_go.find('.owl-stage > div').each(function (index)
3521            {
3522                if(parseInt(jQuery(this).children('div').data("events-count")) > 0)
3523                {
3524                    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)
3525                    {
3526                        var index_plus = index + 1;
3527                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_i
3527d + (index < 10 ? '0' + index_plus : index_plus)).trigger('click');
3528                        mec_owl_go.trigger('to.owl.carousel', index_plus);
3529                        mec_day_exist = true;
3530                        return false;
3531                    }
3532                    else
3533                    {
3534                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3535                        mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3536                        mec_day_exist = true;
3537                        return false;
3538                    }
3539                }
3540            });
3541    
3542            if(!mec_day_exist && ((mec_owl_year == mec_current_year) && (mec_owl_month == mec_current_month)))
3543            {
3544                jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3545                mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3546            }
3547        }, 1000);
3548    }
3549}
3550
3551// Focus events week
3552function mec_focus_week(id, skin) {
3553    skin = skin || 'weekly';
3554    var wrap_elem = jQuery('.mec-weeks-container .mec-weekly-view-week-active').parent();
3555    var days = wrap_elem.find('dt');
3556    var week = wrap_elem.find('dl').length;
3557    var focus_week = false;
3558    var i = j = 1;
3559    
3560    for (i = 1; i < week; i++) {
3561        setTimeout(function () {
3562            var event = new Event('click');
3563            jQuery('#mec_skin_' + id + ' .mec-previous-month.mec-load-week')[0].dispatchEvent(event);
3564        }, 33);
3565    }
3566
3567    days.each(function (i) {
3568        if (jQuery(this).data('events-count') > 0) {
3569            if (focus_week === false) {
3570                focus_week = parseInt(jQuery(this).parent().data('week-number'));
3571            }
3572
3573            if (skin == 'timetable') {
3574                if (parseInt(jQuery(this).parent().data('week-number')) == parseInt(jQuery('body').data('currentweek'))) {
3575                    focus_week = parseInt(jQuery(this).parent().data('week-number'));
3576                    return false;
3577                }
3578            }
3579            else {
3580                return false;
3581            }
3582        }
3583    });
3584
3585    if (focus_week !== false) {
3586        for (j = 1; j < focus_week; j++) {
3587            setTimeout(function () {
3588                var event = new Event('click');
3589                jQuery('#mec_skin_' + id + ' .mec-next-month.mec-load-week')[0].dispatchEvent(event);
3590            }, 33);
3591        }
3592    }
3593}
3594
3595// TODO must be cleaned JS codes
3596(function ($) {
3597    $(document).ready(function () {
3598        // Check RTL website
3599        if ($('body').hasClass('rtl')) {
3600            var owl_rtl = true;
3601        } else {
3602            var owl_rtl = false;
3603        }
3604
3605        // MEC WIDGET CAROUSEL
3606        $(".mec-widget .mec-event-grid-classic").addClass('mec-owl-carousel mec-owl-theme');
3607        $(".mec-widget .mec-event-grid-classic").owlCarousel({
3608            autoplay: true,
3609            autoplayTimeout: 3000, // Set AutoPlay to 3 seconds
3610            autoplayHoverPause: true,
3611            loop: true,
3612            dots: false,
3613            nav: true,
3614            navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3615            items: 1,
3616            autoHeight: true,
3617            responsiveClass: true,
3618            rtl: owl_rtl,
3619        });
3620
3621        // add mec-sm959 class if mec-wrap div size < 959
3622        mec_wrap_resize();
3623
3624        jQuery(window).bind('resize', function () {
3625            mec_wrap_resize();
3626        });
3627
3628        // Fixed: social hover in iphone
3629        $('.mec-event-sharing-wrap').hover(function () {
3630                $(this).find('.mec-event-sharing').show(0);
3631            },
3632            function () {
3633                $(this).find('.mec-event-sharing').hide(0);
3634            });
3635
3636        // Register Booking Smooth Scroll
3637        $('a.simple-booking[href^="#mec-events-meta-group-booking"]').click(function () {
3638            if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
3639                var target = $(this.hash);
3640                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
3641
3642                if (target.length) {
3643                    var scrollTopVal = target.offset().top - 30;
3644
3645                    $('html, body').animate({
3646                        scrollTop: scrollTopVal
3647                    }, 600);
3648
3649                    return false;
3650                }
3651            }
3652        });
3653
3654        // Load Information widget under title in mobile/tablet
3655        if ($('.single-mec-events .mec-single-event:not(".mec-single-modern")').length > 0) {
3656            if ($('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').length > 0) {
3657                var html = $('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox')[0].outerHTML;
3658                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 960) {
3659                    $('.single-mec-events .col-md-4 .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').remove();
3660                    $('.single-mec-events .mec-event-info-mobile').html(html)
3661                }
3662            }
3663        }
3664
3665        // Yearly view
3666        $('.mec-yearly-calendar .mec-has-event a').on('click', function(e) {
3667            e.preventDefault();
3668            var des = $(this).attr('href');
3669            $('.mec-events-agenda').removeClass('mec-selected');
3670            $(des).closest('.mec-events-agenda').addClass('mec-selected');
3671            var scrollTopVal = $(des).closest('.mec-events-agenda').offset().top - 35;
3672
3673            if ($(this).closest('.mec-fluent-wrap').length > 0) {
3674                var parent = jQuery(this).closest('.mec-fluent-wrap').find('.mec-yearly-agenda-sec');
3675                scrollTopVal = parent.scrollTop() + ($(des).closest('.mec-events-agenda').offset().top - parent.offset().top);
3676                jQuery(this).closest('.mec-fluent-wrap').find('.mec-yearly-agenda-sec').getNiceScroll(0).doScrollTop(scrollTopVal - 15, 120);
3677            } else {
3678                $('html, body').animate({
3679                    scrollTop: scrollTopVal
3680                }, 300);    
3681            }
3682        });
3683
3684    });
3685})(jQuery);
3686
3687// Weather
3688(function ($) {
3689    // Convart fahrenheit to centigrade
3690    function convertToC(value) {
3691        return Math.round(((parseFloat(value) - 32) * 5 / 9));
3692    }
3693
3694    // Convert centigrade to fahrenheit
3695    function convertToF(value) {
3696        return Math.round(((1.8 * parseFloat(value)) + 32));
3697    }
3698
3699    // Convert miles to kilometers
3700    function MPHToKPH(value) {
3701        return Math.round(1.609344 * parseFloat(value));
3702    }
3703
3704    // Convert kilometers to miles
3705    function KPHToMPH(value) {
3706        return Math.round((0.6214 * parseFloat(value)));
3707    }
3708
3709    $(document).ready(function ($) {
3710        var degree = $('.mec-weather-summary-temp');
3711        var weather_extra = $('.mec-weather-extras');
3712        var wind = weather_extra.children('.mec-weather-wind');
3713        var visibility = weather_extra.children('.mec-weather-visibility');
3714
3715        //  Events
3716        $('.degrees-mode').click(function () {
3717            var degree_mode = degree.children('var').text().trim();
3718            var wind_text = wind.text().substring(5);
3719            var visibility_text = visibility.text().substring(11);
3720
3721            if (degree_mode == degree.data('c').trim()) {
3722                degree.html(convertToF(parseInt(degree.text())) + ' <var>' + degree.data('f') + '</var>');
3723                wind.html('<span>Wind:</span> ' + KPHToMPH(parseInt(wind_text)) + '<var>' + wind.data('mph') + '</var>');
3724                visibility.html('<span>Visibility:</span> ' + KPHToMPH(parseInt(visibility_text)) + '<var>' + visibility.data('mph') + '</var>');
3725                $(this).text($(this).data('metric'));
3726            } else if (degree_mode == degree.data('f').trim()) {
3727                degree.html(convertToC(parseInt(degree.text())) + ' <var>' + degree.data('c') + '</var>');
3728                wind.html('<span>Wind:</span> ' + MPHToKPH(parseInt(wind_text)) + '<var>' + wind.data('kph') + '</var>');
3729                visibility.html('<span>Visibility:</span> ' + MPHToKPH(parseInt(visibility_text)) + '<var>' + visibility.data('kph') + '</var>');
3730                $(this).text($(this).data('imperial'));
3731            }
3732        });
3733
3734        $('a').on('click', function () {})
3735
3736        // FES Speakers Adding
3737        $('#mec_add_speaker_button').on('click', function () {
3738            var $this = this;
3739            var content = $($this).parent().find('input');
3740            var list = $('#mec-fes-speakers-list');
3741            var key = list.find('.mec-error').length;
3742
3743            $($this).prop("disabled", true).css('cursor', 'wait');
3744            $.post(ajaxurl, {
3745                    action: "speaker_adding",
3746                    content: content.val(),
3747                    key: key
3748                })
3749                .done(function (data) {
3750                    if ($(data).hasClass('mec-error')) {
3751                        list.prepend(data);
3752                        setTimeout(function () {
3753                            $('#mec-speaker-error-${key}').remove();
3754                        }, 1500);
3755                    } else {
3756                        list.html(data);
3757                        content.val('');
3758                    }
3759
3760                    $($this).prop("disabled", false).css('cursor', 'pointer');
3761                });
3762        });
3763
3764        // Check RTL website
3765        var owl_rtl = $('body').hasClass('rtl') ? true : false;
3766
3767        // MEC FES Date Wrappers
3768        var fes_export_list = $('.mec-export-list-wrapper');
3769
3770        // MEC FES Date Item Event
3771        fes_export_list.find('.mec-export-list-item').click(function()
3772        {
3773            $('.mec-export-list-item').removeClass('fes-export-date-active');
3774            $(this).addClass('fes-export-date-active'); 
3775        });
3776
3777        // MEC BuddyPress Integration Attendees Modules
3778        var mec_bd_attendees_modules = $('.mec-attendees-list-details > ul > li');
3779        mec_bd_attendees_modules.click(function()
3780        {
3781           $(this).find('.mec-attendees-toggle').toggle();
3782        });
3783
3784        // MEC FES export csv
3785        $('.mec-event-export-csv, .mec-event-export-excel').click(function()
3786        {
3787            var mec_event_id = $(this).parent().parent().data('event-id');
3788
3789            var time = $(this).parent().parent().find($('.fes-export-date-active')).data('time');
3790            if(typeof time === 'undefined') time = 0;
3791
3792            $.ajax(
3793            {
3794                url: mecdata.ajax_url,
3795                data: "action=mec_fes_csv_export&fes_nonce=" + mecdata.fes_nonce + "&mec_event_id=" + mec_event_id + "&timestamp=" + time,
3796                dataType: 'json',
3797                type: "post",
3798                success: function (res) {
3799                    if(res.ex != 'error')
3800                    {
3801                        var $csv = $('<a>');
3802                        $csv.attr('href', res.ex);
3803                        $('body').append($csv);
3804                        $csv.attr('download', 'bookings-' + res.name + '.csv');
3805                        $csv[0].click();
3806                        $csv.remove();
3807                    }
3808                },
3809                error: function () {}
3810            });
3811        });
3812    });
3813})(jQuery);
3814
3815function mec_book_form_submit(event, unique_id)
3816{
3817    event.preventDefault();
3818    window["mec_book_form_submit" + unique_id]();
3819}
3820
3821function mec_book_form_back_btn_cache(context, unique_id)
3822{
3823    var id = jQuery(context).attr('id');
3824    var mec_form_data = jQuery('#mec_book_form' + unique_id).serializeArray();
3825
3826    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);
3827    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);
3828}
3829
3830function mec_agreement_change(context)
3831{
3832    var status = jQuery(context).is(":checked") ? true : false;
3833    
3834    if(status) jQuery(context).attr("checked", "checked");
3835    else jQuery(context).removeAttr("checked");
3836}
3837
3838function mec_book_form_back_btn_click(context, unique_id)
3839{
3840    var id = jQuery(context).attr('id');
3841    unique_id = jQuery('body').data('unique-id');
3842
3843    jQuery('#mec_booking_message' + unique_id).hide();
3844    if(id == "mec-book-form-back-btn-step-2")
3845    {
3846        var mec_form_data_step_1 = jQuery('body').data('mec-book-form-data-step-1');
3847
3848        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-1'));
3849        jQuery.each(mec_form_data_step_1, function(index, object_item)
3850        {
3851            jQuery('[name="' + object_item.name + '"]').val(object_item.value);
3852        });
3853
3854        // Booking Refresh Recaptcha When Back Button Click.
3855        var recaptcha_check =  jQuery('#mec_booking' + unique_id).find('#g-recaptcha').length;
3856        if(recaptcha_check != 0)
3857        {
3858            jQuery('#g-recaptcha').html('');
3859            grecaptcha.render("g-recaptcha", {
3860                sitekey: mecdata.recapcha_key
3861            });
3862        }
3863    }
3864    else if(id == "mec-book-form-back-btn-step-3")
3865    {
3866        var mec_form_data_step_2 = jQuery('body').data('mec-book-form-data-step-2');
3867        
3868        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-2'));
3869        jQuery.each(mec_form_data_step_2, function(index, object_item)
3870        {
3871            var mec_elem = jQuery('[name="'+ object_item.name +'"]');
3872            var mec_type = mec_elem.attr('type');
3873
3874            if((mec_type == 'checkbox' || mec_type == 'radio'))
3875            {
3876                var mec_elem_len = jQuery('[name="'+ object_item.name +'"]').length;
3877
3878                if(mec_elem_len > 1)
3879                {
3880                    var id = '#' + mec_elem.attr('id').match(/mec_book_reg_field_reg.*_/g) + object_item.value.toLowerCase();
3881                    jQuery(id).prop('checked', true);
3882                }
3883                else
3884                {
3885                    mec_elem.prop('checked', true);
3886                }
3887            }
3888
3889            mec_elem.val(object_item.value);
3890        });
3891    }
3892}
3893
3894// Google map Skin
3895function gmapSkin(NewJson) {
3896    var gmap_temp = jQuery("#gmap-data");
3897    var beforeJson = gmap_temp.val();
3898    if (typeof beforeJson === 'undefined') beforeJson = '';
3899
3900    var newJson = NewJson;
3901    var jsonPush = (typeof beforeJson != 'undefined' && beforeJson.trim() == "") ? [] : JSON.parse(beforeJson);
3902    var pushState = jsonPush.length < 1 ? false : true;
3903
3904    for (var key in newJson) {
3905        if (pushState) {
3906            jsonPush.forEach(function (Item, Index) {
3907                var render_location = jsonPush[Index].latitude + "," + jsonPush[Index].longitude;
3908                if (key.trim() == render_location.trim()) {
3909                    // LightBox Count Update
3910                    newJson[key].count = newJson[key].count + jsonPush[Index].count;
3911
3912                    // LightBox Ids Update
3913                    newJson[key].event_ids = newJson[key].event_ids.concat(jsonPush[Index].event_ids);
3914
3915                    // LightBox Initialize
3916                    var dom = jQuery(newJson[key].lightbox).find("div:nth-child(2)");
3917                    var main_items = dom.html();
3918                    var new_items = jQuery(jsonPush[Index].lightbox).find("div:nth-child(2)").html();
3919
3920                    var render_items = dom.html(main_items + new_items).html();
3921                    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>';
3922                    newJson[key].lightbox = new_info_lightbox;
3923
3924                    // LightBox info                        
3925                    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>';
3926                    newJson[key].infowindow = new_info_window;
3927
3928                    // Remove before values of this location
3929                    jsonPush.splice(Index, 1);
3930                }
3931            });
3932        }
3933
3934        jsonPush.push(newJson[key]);
3935    }
3936
3937    gmap_temp.val(JSON.stringify(jsonPush));
3938    return jsonPush;
3939}
3940
3941// Fluent Scripts
3942jQuery(document).ready(function () {
3943    if (jQuery('.mec-fluent-wrap').length < 0) {
3944        return;
3945    }
3946    // Events
3947    jQuery(window).on('resize', mecFluentToggoleDisplayValueFilterContent);
3948    jQuery(document).on('click', '.mec-fluent-wrap .mec-filter-icon', mecFluentToggleFilterContent);
3949    jQuery(document).on('click', '.mec-fluent-wrap .mec-more-events-icon', mecFluentToggleMoreEvents);
3950    jQuery(document).on('click', '.mec-fluent-wrap .mec-yearly-calendar', mecFluentYearlyCalendar);
3951    jQuery(document).on('click', mecFluentOutsideEvent);
3952    jQuery(document).on('click', '.mec-fluent-more-views-icon', mecFluentMoreViewsContent);
3953    jQuery(document).on('change', '.mec-fluent-wrap .mec-filter-content select, .mec-fluent-wrap .mec-filter-content input', mecFluentSmartFilterIcon);
3954    // Run
3955    mecFluentTimeTableUI();
3956    mecFluentUI();
3957    mecFluentNiceSelect();
3958    mecFluentWrapperFullScreenWidth();
3959    jQuery(window).on('load', mecFluentWrapperFullScreenWidth);
3960    jQuery(window).on('load', mecFluentCurrentTimePosition);
3961    jQuery(window).on('resize', mecFluentWrapperFullScreenWidth);
3962    jQuery(window).on('resize', mecFluentTimeTableUI);
3963    mecFluentSliderUI();
3964    mecFluentFullCalendar();
3965    jQuery(window).on('resize', mecFluentFullCalendar);
3966    mecFluentCustomScrollbar();
3967});
3968
3969function mecFluentSinglePage() {
3970    if (jQuery().niceScroll) {
3971        jQuery('.mec-single-fluent-body .featherlight .mec-single-fluent-wrap').niceScroll({
3972            horizrailenabled:false,
3973            cursorcolor: '#C1C5C9',
3974            cursorwidth: '4px',
3975            cursorborderradius: '4px',
3976            cursorborder: 'none',
3977            railoffset: {
3978                left: 10,
3979            }
3980        });
3981    }
3982}
3983
3984function mecFluentFullCalendar() {
3985    if (jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').length > 0) {
3986        var widowWidth = jQuery(window).innerWidth();
3987        if (widowWidth<=767) {
3988            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({
3989                paddingTop: jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').children('.mec-totalcal-box').height() + 40,
3990            });
3991        } else {
3992            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({
3993                paddingTop: 32,
3994            });
3995        }
3996    }
3997}
3998
3999function mecFluentSmartFilterIcon() {
4000    var filterContent = jQuery(this).closest('.mec-filter-content');
4001    var hasValue = false;
4002    if (jQuery(this).closest('.mec-date-search').length > 0) {
4003        var yearValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_year"]').val();
4004        var monthValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_month"]').val();
4005        if ((yearValue == 'none' && monthValue == 'none') || (yearValue != 'none' && monthValue != 'none')) {
4006            filterContent.hide();
4007            if ((yearValue != 'none' && monthValue != 'none')) {
4008                hasValue = true;
4009            } else {
4010                hasValue = false;
4011            }
4012        } else {
4013            return false;
4014        }
4015    } else {
4016        filterContent.hide();
4017    }
4018    if (!hasValue) {
4019        filterContent.find(':not(.mec-date-search)').find('select, input:not([type="hidden"])').each(function () {
4020            if (jQuery(this).val()) {
4021                hasValue = true;
4022                return false;
4023            }
4024        });
4025    }
4026    if (hasValue) {
4027        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').addClass('active');
4028    } else {
4029        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').removeClass('active');
4030    }
4031}
4032
4033function mecFluentMoreViewsContent() {
4034    jQuery(this).find('.mec-fluent-more-views-content').toggleClass('active');
4035}
4036
4037function mecFluentWrapperFullScreenWidth() {
4038    if (jQuery('.mec-fluent-bg-wrap').length > 0) {
4039        jQuery('.mec-fluent-bg-wrap').css({
4040            maxWidth: jQuery('body').width() + 8,
4041        });
4042    }
4043}
4044
4045function mecFluentUI() {
4046    if (typeof mecdata.enableSingleFluent != 'undefined' && mecdata.enableSingleFluent) {
4047        jQuery('body').addClass('mec-single-fluent-body');
4048    }
4049    // Set filter content position
4050    jQuery(window).on('load resize', function () {
4051        if (jQuery('.mec-filter-content').length > 0) {
4052            jQuery('.mec-filter-content').css({
4053                right: -(jQuery('.mec-calendar').width() - jQuery('.mec-search-form.mec-totalcal-box').position().left - jQuery('.mec-search-form.mec-totalcal-box').width() + 40),
4054                left: -jQuery('.mec-search-form.mec-totalcal-box').position().left + 40,
4055            });
4056        }
4057        if (jQuery('.mec-filter-icon').is(':visible')) {
4058            var filterIconLeftPosition = parseInt(jQuery('.mec-search-form.mec-totalcal-box').position().left) + parseInt(jQuery('.mec-filter-icon').position().left) - 25;
4059            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>');
4060        }
4061    });
4062    // Hide empty filter content
4063    if (jQuery('.mec-filter-content').is(':empty')) {
4064        jQuery('.mec-filter-icon').hide();
4065    }
4066    // Prevend Default For Event Share Icon
4067    jQuery(document).on('click', '.mec-event-share-icon', function(e) {
4068        e.preventDefault();
4069    });
4070}
4071
4072function mecFluentCurrentTimePosition() {
4073    if (jQuery('.mec-fluent-wrap').length > 0) {
4074        jQuery('.mec-fluent-current-time').each(function() {
4075            var currentTimeMinutes = jQuery(this).data('time');
4076            var height = jQuery(this).closest('.mec-fluent-current-time-cell').height();
4077            jQuery(this).css({
4078                top: (currentTimeMinutes / 60) * height,
4079            });
4080        });
4081    }
4082}
4083
4084function mecFluentNiceSelect() {
4085    if (jQuery('.mec-fluent-wrap').length < 0) {
4086        return;
4087    }
4088    
4089    if (jQuery().niceSelect) {
4090        jQuery('.mec-fluent-wrap').find('.mec-filter-content').find('select').niceSelect();
4091    }
4092}
4093
4094function mecFluentCustomScrollbar(y) {
4095    if (jQuery('.mec-fluent-wrap').length < 0) {
4096        return;
4097    }
4098    
4099    if (jQuery().niceScroll) {
4100        jQuery('.mec-custom-scrollbar').niceScroll({
4101            cursorcolor: '#C7EBFB',
4102            cursorwidth: '4px',
4103            cursorborderradius: '4px',
4104            cursorborder: 'none',
4105            railoffset: {
4106                left: -2,
4107            }
4108        });
4109        jQuery('.mec-custom-scrollbar').getNiceScroll().resize();
4110        jQuery('.mec-custom-scrollbar').each(function () {
4111            if (jQuery(this).find('.mec-fluent-current-time-cell').length > 0) {
4112                var parentTopOffset = jQuery(this).offset().top;
4113                var currentTimeCellOffset = jQuery(this).find('.mec-fluent-current-time-cell').offset().top;
4114                jQuery(this).getNiceScroll(0).doScrollTop(currentTimeCellOffset - parentTopOffset - 16, 120);
4115                jQuery(this).on('scroll', function () {
4116                    if (jQuery(this).getNiceScroll(0).scroll.y != 0) {
4117                        jQuery(this).addClass('mec-scrolling');
4118                    } else {
4119                        jQuery(this).removeClass('mec-scrolling');
4120                    }
4121                });
4122            }
4123            if (typeof y != 'undefined') {
4124                if (jQuery(this).closest('.mec-skin-list-wrap').length > 0 || jQuery(this).closest('.mec-skin-grid-wrap').length > 0) {
4125                    jQuery(this).getNiceScroll(0).doScrollTop(0, 120);
4126                }
4127            }
4128        });
4129    }
4130}
4131
4132function mecFluentTimeTableUI() {
4133    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', 0);
4134    var maxHeight = Math.max.apply(null, jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').map(function () {
4135        return jQuery(this).height();
4136    }).get());
4137    maxHeight = maxHeight > 87 ? maxHeight : 87;
4138    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', maxHeight + 2);
4139}
4140
4141function mecFluentSliderUI() {
4142    jQuery(window).on('load', function () {
4143        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-next').prepend('<span>Next</span>');
4144        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-prev').append('<span>Prev</span>');
4145    });
4146}
4147
4148function mecFluentToggleFilterContent(e) {
4149    e.preventDefault();
4150    if (jQuery('.mec-filter-content').is(':visible')) {
4151        jQuery('.mec-filter-content').css({
4152            display: 'none',
4153        });
4154    } else {
4155        const displayValue = jQuery(window).width() <= 790 ? 'block' : 'flex';
4156        jQuery('.mec-filter-content').css({
4157            display: displayValue,
4158        });
4159    }
4160}
4161
4162function mecFluentToggoleDisplayValueFilterContent() {
4163    const displayValue = jQuery(window).width() <= 767 ? 'block' : 'flex';
4164    if (jQuery('.mec-filter-content').is(':visible')) {
4165        jQuery('.mec-filter-content').css({
4166            display: displayValue,
4167        });
4168    }
4169}
4170
4171function mecFluentToggleMoreEvents(e) {
4172    e.preventDefault();
4173    const moreEventsWrap = jQuery(this).siblings('.mec-more-events-wrap');
4174    const moreEvents = moreEventsWrap.children('.mec-more-events');
4175    jQuery('.mec-more-events-wrap').removeClass('active');
4176    moreEventsWrap.addClass('active');
4177    jQuery('.mec-more-events-wrap:not(.active)').hide();
4178    if (moreEventsWrap.is(':visible')) {
4179        moreEventsWrap.hide();
4180    } else {
4181        topElement = moreEventsWrap.closest('.mec-more-events-inner-controller').length > 0 ? moreEventsWrap.closest('.mec-more-events-inner-controller') : moreEventsWrap.closest('.mec-more-events-controller');
4182        moreEventsWrap.show().css({
4183            top: topElement.offset().top - window.scrollY,
4184            left: moreEventsWrap.closest('.mec-more-events-controller').offset().left,
4185            width: moreEventsWrap.closest('.mec-more-events-controller').width(),
4186        });
4187        if (moreEventsWrap.width() > 400) {
4188            moreEvents.css({
4189                left: (moreEventsWrap.width() / 2) - (moreEvents.width() / 2),
4190                width: 400,
4191            });
4192        } else {
4193            moreEvents.css({
4194                width: moreEventsWrap.width(),
4195                left: 0,
4196            });
4197        }
4198    }
4199}
4200
4201function mecFluentOutsideEvent(e) {
4202    if (!jQuery(e.target).is('.mec-more-events-icon') && !jQuery(e.target).closest('.mec-more-events-wrap').length) {
4203        jQuery('.mec-more-events-wrap').hide();
4204    }
4205    if (!jQuery(e.target).is('.mec-filter-icon') && !jQuery(e.target).closest('.mec-filter-content').length) {
4206        jQuery('.mec-filter-content').hide();
4207    }
4208    if (!jQuery(e.target).is('.mec-fluent-more-views-icon') && !jQuery(e.target).closest('.mec-fluent-more-views-content').length) {
4209        jQuery('.mec-fluent-more-views-content').removeClass('active');
4210    }
4211}
4212
4213function mecFluentYearlyCalendar() {
4214    const monthNum = jQuery(this).data('month');
4215    const monthName = jQuery(this).find('.mec-calendar-table-title').text();
4216    jQuery('.mec-fluent-wrap').find('.mec-yearly-calendar').removeClass('active');
4217    jQuery(this).addClass('active')
4218        .closest('.mec-year-container')
4219        .find('.mec-yearly-agenda-sec-title span').text(monthName).end()
4220        .find('.mec-events-agenda').addClass('mec-util-hidden').end()
4221        .find('.mec-events-agenda[data-month=' + monthNum + ']').removeClass('mec-util-hidden');
4222    mecFluentCustomScrollbar();
4223}
4224
4225function mecFluentYearlyUI(eventID, yearID) {
4226    var fluentWrap = jQuery('#mec_skin_' + eventID + '.mec-fluent-wrap');
4227    if (fluentWrap.length < 0) {
4228        return;
4229    }
4230    var monthNum = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-events-agenda:not(.mec-util-hidden)').data('month');
4231    var activeMonth = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-yearly-calendar[data-month=' + monthNum + ']');
4232    var activeMonthName = activeMonth.find('.mec-calendar-table-title').text();
4233    activeMonth.addClass('active');
4234}
4235
4236// MEC LIST VIEW Fluent PLUGIN
4237(function ($) {
4238    $.fn.mecListViewFluent = function (options) {
4239        var active_month;
4240        var active_year;
4241
4242        // Default Options
4243        var settings = $.extend({
4244            // These are the defaults.
4245            today: null,
4246            id: 0,
4247            events_label: 'Events',
4248            event_label: 'Event',
4249            month_navigator: 0,
4250            atts: '',
4251            active_month: {},
4252            next_month: {},
4253            sf: {},
4254            ajax_url: '',
4255        }, options);
4256
4257        mecFluentCustomScrollbar();
4258
4259        initLoadMore('#mec_list_view_month_' + settings.id + '_' + settings.month_id);
4260
4261        function initLoadMore(monthID) {
4262            $(monthID).off().on('click', '.mec-load-more-button', function () {
4263                loadMore(this);
4264            });
4265        }
4266
4267        function loadMore(This) {
4268            // Add loading Class
4269            var currentLoadMore = $(This);
4270            currentLoadMore.addClass("mec-load-more-loading");
4271            var endDate = currentLoadMore.data('end-date');
4272            var maximumDate = currentLoadMore.data('maximum-date');
4273            var nextOffset = currentLoadMore.data('next-offset');
4274            var year = currentLoadMore.data('year');
4275            var month = currentLoadMore.data('month');
4276
4277            $.ajax({
4278                url: settings.ajax_url,
4279                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",
4280                dataType: "json",
4281                type: "post",
4282                success: function (response) {
4283                    currentLoadMore.parent().remove();
4284                    if (response.count != '0') {
4285                        // Append Items
4286                        $('#mec_list_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4287
4288                        // Single Event Method
4289                        if (settings.sed_method != '0') {
4290                            sed();
4291                        }
4292
4293                        mecFluentCustomScrollbar();
4294                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4295                    }
4296                },
4297                error: function () {}
4298            });
4299        }
4300
4301        // Initialize Month Navigator
4302        if (settings.month_navigator) initMonthNavigator();
4303
4304        // Load Next Month in background
4305        setMonth(settings.next_month.year, settings.next_month.month, true);
4306
4307        var initMonth;
4308        var initYear;
4309        active_month = initMonth = settings.active_month.month;
4310        active_year = initYear = settings.active_month.year;
4311
4312        // Search Widget
4313        if (settings.sf.container !== '') {
4314            sf = $(settings.sf.container).mecSearchForm({
4315                id: settings.id,
4316                atts: settings.atts,
4317                callback: function (atts) {
4318                    settings.atts = atts;
4319                    search(active_year, active_month);
4320                }
4321            });
4322        }
4323
4324        // Single Event Method
4325        if (settings.sed_method != '0') {
4326            sed();
4327        }
4328
4329        function initMonthNavigator() {
4330            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4331                var year = $(this).data("mec-year");
4332                var month = $(this).data("mec-month");
4333                setMonth(year, month, false, true);
4334            });
4335        }
4336
4337        function parseQuery(queryString) {
4338            var query = {};
4339            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
4340            for (var i = 0; i < pairs.length; i++) {
4341                var pair = pairs[i].split('=');
4342                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
4343            }
4344            return query;
4345        }
4346
4347        function updateQueryStringParameter(uri, key, val) {
4348            return uri
4349                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
4350                .replace(/^([^?&]+)&/, "$1?");
4351        }
4352        
4353        function search(year, month) {
4354            // Add Loading Class
4355            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4356            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4357
4358            var ObjAtts = parseQuery(settings.atts);
4359            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
4360                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
4361                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
4362            }
4363
4364            $.ajax({
4365                url: settings.ajax_url,
4366                data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
4367                dataType: "json",
4368                type: "post",
4369                success: function (response) {
4370                    active_month = response.current_month.month;
4371                    active_year = response.current_month.year;
4372
4373                    // Append Month
4374                    $("#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>');
4375
4376                    // Append Month Navigator
4377                    $("#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>');
4378
4379                    // Re-initialize Month Navigator
4380                    initMonthNavigator();
4381
4382                    // Toggle Month
4383                    toggleMonth(response.current_month.id);
4384
4385                    initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4386
4387                    // Remove loading Class
4388                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4389
4390                    mecFluentCustomScrollbar();
4391                },
4392                error: function () {}
4393            });
4394        }
4395
4396        function setMonth(year, month, do_in_background, navigator_click) {
4397            if (typeof do_in_background === "undefined") do_in_background = false;
4398            navigator_click = navigator_click || false;
4399            var month_id = year + "" + month;
4400
4401            if (!do_in_background) {
4402                active_month = month;
4403                active_year = year;
4404            }
4405
4406            // Month exists so we just show it
4407            if ($("#mec_list_view_month_" + settings.id + "_" + month_id).length) {
4408                // Toggle Month
4409                toggleMonth(month_id);
4410                mecFluentCustomScrollbar(0);
4411            } else {
4412                if (!do_in_background) {
4413                    // Add Loading Class
4414                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4415                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4416                }
4417
4418                $.ajax({
4419                    url: settings.ajax_url,
4420                    data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
4421                    dataType: "json",
4422                    type: "post",
4423                    success: function (response) {
4424                        // Append Month
4425                        $("#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>');
4426
4427                        // Append Month Navigator
4428                        $("#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>');
4429
4430                        // Re-initialize Month Navigator
4431                        initMonthNavigator();
4432                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4433
4434                        if (!do_in_background) {
4435                            // Toggle Month
4436                            toggleMonth(response.current_month.id);
4437
4438                            // Remove loading Class
4439                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4440
4441
4442                            // Set Month Filter values in search widget
4443                            $("#mec_sf_month_" + settings.id).val(month);
4444                            $("#mec_sf_year_" + settings.id).val(year);
4445                        } else {
4446                            $("#mec_list_view_month_" + settings.id + "_" + response.current_month.id).hide();
4447                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
4448                        }
4449                        if (typeof custom_month !== undefined) var custom_month;
4450                        if (typeof custom_month != undefined) {
4451                            if (custom_month == 'true') {
4452                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
4453                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
4454                                $('.mec-calendar-day').unbind('click');
4455                            }
4456                        }
4457                        if (!do_in_background) {
4458                            mecFluentCustomScrollbar(0);
4459                        }
4460                    },
4461                    error: function () {}
4462                });
4463            }
4464        }
4465
4466        function toggleMonth(month_id) {
4467            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
4468            var active_day = $("#mec_list_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
4469
4470            if (active_day <= 9) active_day = "0" + active_day;
4471
4472            // Toggle Month Navigator
4473            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
4474            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
4475
4476            // Toggle Month
4477            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
4478            $("#mec_list_view_month_" + settings.id + "_" + month_id).show();
4479
4480            // Add selected class
4481            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
4482            $("#mec_list_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
4483        }
4484
4485        var sf;
4486
4487        function sed() {
4488            // Single Event Display
4489            $(".mec-skin-list-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
4490                e.preventDefault();
4491                var href = $(this).attr('href');
4492
4493                var id = $(this).data('event-id');
4494                var occurrence = get_parameter_by_name('occurrence', href);
4495                var time = get_parameter_by_name('time', href);
4496
4497                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
4498            });
4499        }
4500    };
4501}(jQuery));
4502
4503// MEC Grid VIEW Fluent PLUGIN
4504(function ($) {
4505    $.fn.mecGridViewFluent = function (options) {
4506        var active_month;
4507        var active_year;
4508
4509        // Default Options
4510        var settings = $.extend({
4511            // These are the defaults.
4512            today: null,
4513            id: 0,
4514            events_label: 'Events',
4515            event_label: 'Event',
4516            month_navigator: 0,
4517            atts: '',
4518            active_month: {},
4519            next_month: {},
4520            sf: {},
4521            ajax_url: '',
4522        }, options);
4523
4524        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + settings.month_i
4524d);
4525
4526        function initLoadMore(monthID) {
4527            $(monthID).off().on('click', '.mec-load-more-button', function () {
4528                loadMore(this);
4529            });
4530        }
4531
4532        function loadMore(This) {
4533            // Add loading Class
4534            var currentLoadMore = $(This);
4535            currentLoadMore.addClass("mec-load-more-loading");
4536            var endDate = currentLoadMore.data('end-date');
4537            var maximumDate = currentLoadMore.data('maximum-date');
4538            var nextOffset = currentLoadMore.data('next-offset');
4539            var year = currentLoadMore.data('year');
4540            var month = currentLoadMore.data('month');
4541
4542            $.ajax({
4543                url: settings.ajax_url,
4544                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",
4545                dataType: "json",
4546                type: "post",
4547                success: function (response) {
4548                    currentLoadMore.parent().remove();
4549                    if (response.count != '0') {
4550                        // Append Items
4551                        $('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4552
4553                        // Single Event Method
4554                        if (settings.sed_method != '0') {
4555                            sed();
4556                        }
4557
4558                        mecFluentCustomScrollbar();
4559                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4560                    }
4561                },
4562                error: function () {}
4563            });
4564        }
4565
4566        // Initialize Month Navigator
4567        if (settings.month_navigator) initMonthNavigator();
4568
4569        // Load Next Month in background
4570        setMonth(settings.next_month.year, settings.next_month.month, true);
4571
4572        var initMonth;
4573        var initYear;
4574        active_month = initMonth = settings.active_month.month;
4575        active_year = initYear = settings.active_month.year;
4576
4577        // Search Widget
4578        if (settings.sf.container !== '') {
4579            sf = $(settings.sf.container).mecSearchForm({
4580                id: settings.id,
4581                atts: settings.atts,
4582                callback: function (atts) {
4583                    settings.atts = atts;
4584                    search(active_year, active_month);
4585                }
4586            });
4587        }
4588
4589        // Single Event Method
4590        if (settings.sed_method != '0') {
4591            sed();
4592        }
4593
4594        function initMonthNavigator() {
4595            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4596                var year = $(this).data("mec-year");
4597                var month = $(this).data("mec-month");
4598                setMonth(year, month, false, true);
4599            });
4600        }
4601
4602        function parseQuery(queryString) {
4603            var query = {};
4604            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
4605            for (var i = 0; i < pairs.length; i++) {
4606                var pair = pairs[i].split('=');
4607                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
4608            }
4609            return query;
4610        }
4611
4612        function updateQueryStringParameter(uri, key, val) {
4613            return uri
4614                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
4615                .replace(/^([^?&]+)&/, "$1?");
4616        }
4617
4618        function search(year, month) {
4619            // Add Loading Class
4620            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4621            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4622
4623            var ObjAtts = parseQuery(settings.atts);
4624            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
4625                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
4626                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
4627            }
4628            
4629            $.ajax({
4630                url: settings.ajax_url,
4631                data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
4632                dataType: "json",
4633                type: "post",
4634                success: function (response) {
4635                    active_month = response.current_month.month;
4636                    active_year = response.current_month.year;
4637
4638                    // Append Month
4639                    $("#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>');
4640
4641                    // Append Month Navigator
4642                    $("#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>');
4643
4644                    // Re-initialize Month Navigator
4645                    initMonthNavigator();
4646
4647                    // Toggle Month
4648                    toggleMonth(response.current_month.id);
4649
4650                    initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4651
4652                    // Remove loading Class
4653                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4654
4655                    mecFluentCustomScrollbar();
4656                },
4657                error: function () {}
4658            });
4659        }
4660
4661        function setMonth(year, month, do_in_background, navigator_click) {
4662            if (typeof do_in_background === "undefined") do_in_background = false;
4663            navigator_click = navigator_click || false;
4664            var month_id = year + "" + month;
4665
4666            if (!do_in_background) {
4667                active_month = month;
4668                active_year = year;
4669            }
4670
4671            // Month exists so we just show it
4672            if ($("#mec_grid_view_month_" + settings.id + "_" + month_id).length) {
4673                // Toggle Month
4674                toggleMonth(month_id);
4675                mecFluentCustomScrollbar();
4676            } else {
4677                if (!do_in_background) {
4678                    // Add Loading Class
4679                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4680                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4681                }
4682
4683                $.ajax({
4684                    url: settings.ajax_url,
4685                    data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
4686                    dataType: "json",
4687                    type: "post",
4688                    success: function (response) {
4689                        // Append Month
4690                        $("#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>');
4691
4692                        // Append Month Navigator
4693                        $("#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>');
4694
4695                        // Re-initialize Month Navigator
4696                        initMonthNavigator();
4697                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4698
4699                        if (!do_in_background) {
4700                            // Toggle Month
4701                            toggleMonth(response.current_month.id);
4702
4703                            // Remove loading Class
4704                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4705
4706
4707                            // Set Month Filter values in search widget
4708                            $("#mec_sf_month_" + settings.id).val(month);
4709                            $("#mec_sf_year_" + settings.id).val(year);
4710                        } else {
4711                            $("#mec_grid_view_month_" + settings.id + "_" + response.current_month.id).hide();
4712                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
4713                        }
4714                        if (typeof custom_month !== undefined) var custom_month;
4715                        if (typeof custom_month != undefined) {
4716                            if (custom_month == 'true') {
4717                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
4718                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
4719                                $('.mec-calendar-day').unbind('click');
4720                            }
4721                        }
4722                        if (!do_in_background) {
4723                            mecFluentCustomScrollbar();
4724                        }
4725                    },
4726                    error: function () {}
4727                });
4728            }
4729        }
4730
4731        function toggleMonth(month_id) {
4732            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
4733            var active_day = $("#mec_grid_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
4734
4735            if (active_day <= 9) active_day = "0" + active_day;
4736
4737            // Toggle Month Navigator
4738            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
4739            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
4740
4741            // Toggle Month
4742            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
4743            $("#mec_grid_view_month_" + settings.id + "_" + month_id).show();
4744
4745            // Add selected class
4746            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
4747            $("#mec_grid_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
4748        }
4749
4750        var sf;
4751
4752        function sed() {
4753            // Single Event Display
4754            $(".mec-skin-grid-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
4755                e.preventDefault();
4756                var href = $(this).attr('href');
4757
4758                var id = $(this).data('event-id');
4759                var occurrence = get_parameter_by_name('occurrence', href);
4760                var time = get_parameter_by_name('time', href);
4761
4762                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
4763            });
4764        }
4765    };
4766}(jQuery));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.