PageSourceSearch

https://paralympic.sk/wp-content/plugins/modern-events-calendar-lite/assets/js/frontend.js?ver=5.21.5

js paralympic.sk collected 2026-10-02 20:42:25 UTC 229,262 bytes, 5,251 lines download raw bytes

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

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.