PageSourceSearch

https://humancolony.org/wp-content/plugins/modern-events-calendar/assets/js/frontend.js?ver=5.12.6

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

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.