PageSourceSearch

https://logisticpoint.net/wp-content/plugins/modern-events-calendar-lite/assets/js/frontend.js?ver=5.16.6

js logisticpoint.net collected 2026-10-02 02:13:23 UTC 217,837 bytes, 5,110 lines download raw bytes

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

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.