PageSourceSearch

https://urbanmatter.com/austin/wp-content/plugins/modern-events-calendar-lite/assets/js/frontend.js?ver=5.17.2

js urbanmatter.com collected 2026-09-24 06:57:32 UTC 218,659 bytes, 5,125 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                        var html = $(response.html);                        
2629                        if($('.mec-month-divider',html).length){
2630                            var df = $('.mec-month-divider:first',html).data('toggle-divider');
2631                            var dl =$("#mec_skin_events_" + settings.id+" .mec-month-divider:last").data('toggle-divider');
2632                            
2633                            if(df == dl){
2634                                $(html).find('.mec-month-divider:first').remove();
2635                                response.html = html;
2636                            }
2637
2638                        }
2639                        
2640                        // Append Items
2641                        $("#mec_skin_events_" + settings.id).append(response.html);
2642
2643                        // Remove loading Class
2644                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2645
2646                        // Update the variables
2647                        settings.end_date = response.end_date;
2648                        settings.offset = response.offset;
2649
2650                        if ( $('.mec-event-sd-countdown').length > 0 )
2651                        {
2652                            $('.mec-event-sd-countdown').each(function (event) {
2653                                var dc= $(this).attr('data-date-custom');
2654                                $(this).mecCountDown(
2655                                {
2656                                    date: dc,
2657                                    format: "off"
2658                                },
2659                                function () {
2660                                });
2661                            })
2662                        }
2663                        // Single Event Method
2664                        if (settings.sed_method != '0') {
2665                            sed();
2666                        }
2667                    }
2668                },
2669                error: function () {}
2670            });
2671        }
2672
2673        function search() {
2674            // Hide no event message
2675            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2676
2677            // Add loading Class
2678            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2679            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2680            jQuery("#gmap-data").val("");
2681
2682            $.ajax({
2683                url: settings.ajax_url,
2684                data: "action=mec_custom_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2685                dataType: "json",
2686                type: "post",
2687                success: function (response) {
2688                    if (response.count == "0") {
2689                        // Append Items
2690                        $("#mec_skin_events_" + settings.id).html('');
2691
2692                        // Remove loading Class
2693                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2694
2695                        // Hide Map
2696                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2697
2698                        // Hide it
2699                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2700
2701                        // Show no event message
2702                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2703                    } else {
2704                        // Append Items
2705                        $("#mec_skin_events_" + settings.id).html(response.html);
2706
2707                        // Remove loading Class
2708                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2709
2710                        // Show Map
2711                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2712
2713                        // Show load more button
2714                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2715                        // Hide load more button
2716                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2717
2718                        // Update the variables
2719                        settings.end_date = response.end_date;
2720                        settings.offset = response.offset;
2721
2722                        // Single Event Method
2723                        if (settings.sed_method != '0') {
2724                            sed();
2725                        }
2726                    }
2727                },
2728                error: function () {}
2729            });
2730        }
2731    };
2732
2733}(jQuery));
2734
2735// MEC TIMELINE VIEW PLUGIN
2736(function ($) {
2737    $.fn.mecTimelineView = function (options) {
2738        // Default Options
2739        var settings = $.extend({
2740            // These are the defaults.
2741            id: 0,
2742            atts: '',
2743            ajax_url: '',
2744            sf: {},
2745            end_date: '',
2746            offset: 0,
2747            start_date: '',
2748        }, options);
2749
2750        // Set onclick Listeners
2751        setListeners();
2752
2753        var sf;
2754
2755        function setListeners() {
2756            // Search Widget
2757            if (settings.sf.container !== '') {
2758                sf = $(settings.sf.container).mecSearchForm({
2759                    id: settings.id,
2760                    atts: settings.atts,
2761                    callback: function (atts) {
2762                        settings.atts = atts;
2763                        search();
2764                    }
2765                });
2766            }
2767
2768            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2769                loadMore();
2770            });
2771
2772            // Single Event Method
2773            if (settings.sed_method != '0') {
2774                sed();
2775            }
2776        }
2777
2778        function sed() {
2779            // Single Event Display
2780            $("#mec_skin_" + settings.id + " .mec-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) {
2781                e.preventDefault();
2782                var href = $(this).attr('href');
2783
2784                var id = $(this).data('event-id');
2785                var occurrence = get_parameter_by_name('occurrence', href);
2786                var time = get_parameter_by_name('time', href);
2787
2788                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2789            });
2790            $("#mec_skin_" + settings.id + " .mec-event-image a img").off('click').on('click', function (e) {
2791                e.preventDefault();
2792                var href = $(this).parent().attr('href');
2793
2794                var id = $(this).parent().data('event-id');
2795                var occurrence = get_parameter_by_name('occurrence', href);
2796                var time = get_parameter_by_name('time', href);
2797
2798                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2799            });
2800        }
2801
2802        function loadMore() {
2803            // Add loading Class
2804            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2805
2806            $.ajax({
2807                url: settings.ajax_url,
2808                data: "action=mec_timeline_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "&apply_sf_date=0",
2809                dataType: "json",
2810                type: "post",
2811                success: function (response) {
2812                    if (response.count == "0") {
2813                        // Remove loading Class
2814                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2815
2816                        // Hide load more button
2817                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2818                    } else {
2819                        // Show load more button
2820                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2821
2822                        // Append Items
2823                        $("#mec_skin_events_" + settings.id).append(response.html);
2824
2825                        // Remove loading Class
2826                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2827
2828                        // Update the variables
2829                        settings.end_date = response.end_date;
2830                        settings.offset = response.offset;
2831
2832                        // Single Event Method
2833                        if (settings.sed_method != '0') {
2834                            sed();
2835                        }
2836
2837                    }
2838                },
2839                error: function () { }
2840            });
2841        }
2842
2843        function search() {
2844            // Hide no event message
2845            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
2846
2847            // Add loading Class
2848            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
2849            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
2850
2851            $.ajax({
2852                url: settings.ajax_url,
2853                data: "action=mec_timeline_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&apply_sf_date=1",
2854                dataType: "json",
2855                type: "post",
2856                success: function (response) {
2857                    if (response.count == "0") {
2858                        // Append Items
2859                        $("#mec_skin_events_" + settings.id).html('');
2860
2861                        // Remove loading Class
2862                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2863
2864                        // Hide Map
2865                        $('.mec-skin-map-container').addClass("mec-util-hidden");
2866
2867                        // Hide it
2868                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2869
2870                        // Show no event message
2871                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
2872                    } else {
2873                        // Append Items
2874                        $("#mec_skin_events_" + settings.id).html(response.html);
2875
2876                        // Remove loading Class
2877                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
2878
2879                        // Show Map
2880                        $('.mec-skin-map-container').removeClass("mec-util-hidden");
2881
2882                        // Show load more button
2883                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2884                        // Hide load more button
2885                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2886
2887                        // Update the variables
2888                        settings.end_date = response.end_date;
2889                        settings.offset = response.offset;
2890
2891                        // Single Event Method
2892                        if (settings.sed_method != '0') {
2893                            sed();
2894                        }
2895                    }
2896                },
2897                error: function () { }
2898            });
2899        }
2900    };
2901
2902}(jQuery));
2903
2904// MEC AGENDA VIEW PLUGIN
2905(function ($) {
2906    $.fn.mecAgendaView = function (options) {
2907        // Default Options
2908        var settings = $.extend({
2909            // These are the defaults.
2910            id: 0,
2911            atts: '',
2912            ajax_url: '',
2913            sf: {},
2914            current_month_divider: '',
2915            end_date: '',
2916            offset: 0,
2917        }, options);
2918
2919        // Set onclick Listeners
2920        setListeners();
2921
2922        var sf;
2923
2924        function setListeners() {
2925            // Search Widget
2926            if (settings.sf.container !== '') {
2927                sf = $(settings.sf.container).mecSearchForm({
2928                    id: settings.id,
2929                    atts: settings.atts,
2930                    callback: function (atts) {
2931                        settings.atts = atts;
2932                        search();
2933                    }
2934                });
2935            }
2936
2937            $("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
2938                loadMore();
2939            });
2940
2941            // Single Event Method
2942            if (settings.sed_method != '0') {
2943                sed();
2944            }
2945        }
2946
2947        function sed() {
2948            // Single Event Display
2949            $("#mec_skin_" + settings.id + " .mec-agenda-event-title a").off('click').on('click', function (e) {
2950                e.preventDefault();
2951                var href = $(this).attr('href');
2952
2953                var id = $(this).data('event-id');
2954                var occurrence = get_parameter_by_name('occurrence', href);
2955                var time = get_parameter_by_name('time', href);
2956
2957                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
2958            });
2959        }
2960
2961        function loadMore() {
2962            // Add loading Class
2963            $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
2964
2965            $.ajax({
2966                url: settings.ajax_url,
2967                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",
2968                dataType: "json",
2969                type: "post",
2970                success: function (response) {
2971                    if (response.count == "0") {
2972                        // Remove loading Class
2973                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2974
2975                        // Hide load more button
2976                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
2977                    } else {
2978                        // Show load more button
2979                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
2980
2981                        // Append Items
2982                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").append(response.html);
2983
2984                        // Remove loading Class
2985                        $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
2986
2987                        // Update the variables
2988                        settings.end_date = response.end_date;
2989                        settings.offset = response.offset;
2990                        settings.current_month_divider = response.current_month_divider;
2991
2992                        // Single Event Method
2993                        if (settings.sed_method != '0') {
2994                            sed();
2995                        }
2996                        mecFluentCustomScrollbar();
2997                    }
2998                },
2999                error: function () {}
3000            });
3001        }
3002
3003        function search() {
3004            // Hide no event message
3005            $("#mec_skin_no_events_" + settings.id).addClass("mec-util-hidden");
3006
3007            // Add loading Class
3008            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3009            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3010            mecFluentCustomScrollbar();
3011
3012            $.ajax({
3013                url: settings.ajax_url,
3014                data: "action=mec_agenda_load_more&mec_start_date=" + settings.start_date + "&" + settings.atts + "&current_month_divider=0&apply_sf_date=1",
3015                dataType: "json",
3016                type: "post",
3017                success: function (response) {
3018                    if (response.count == "0") {
3019                        // Append Items
3020                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html('');
3021
3022                        // Remove loading Class
3023                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3024
3025                        // Hide it
3026                        $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3027
3028                        // Show no event message
3029                        $("#mec_skin_no_events_" + settings.id).removeClass("mec-util-hidden");
3030                    } else {
3031                        // Append Items
3032                        $("#mec_skin_events_" + settings.id + " .mec-events-agenda-container").html(response.html);
3033
3034                        // Remove loading Class
3035                        $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3036
3037                        // Show load more button
3038                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3039                        // Hide load more button
3040                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3041
3042                        // Update the variables
3043                        settings.end_date = response.end_date;
3044                        settings.offset = response.offset;
3045                        settings.current_month_divider = response.current_month_divider;
3046
3047                        // Single Event Method
3048                        if (settings.sed_method != '0') {
3049                            sed();
3050                        }
3051                    }
3052                    mecFluentCustomScrollbar();
3053                },
3054                error: function () {}
3055            });
3056        }
3057    };
3058}(jQuery));
3059
3060// MEC CAROUSEL VIEW PLUGIN
3061(function ($) {
3062    $.fn.mecCarouselView = function (options) {
3063        // Default Options
3064        var settings = $.extend({
3065            // These are the defaults.
3066            id: 0,
3067            atts: '',
3068            ajax_url: '',
3069            sf: {},
3070            items: 3,
3071            loop: true,
3072            autoplay_status: true,
3073            autoplay: '',
3074            style: 'type1',
3075            start_date: ''
3076        }, options);
3077
3078        // Init Sliders
3079        initSlider(settings);
3080
3081        // Single Event Method
3082        if (settings.sed_method != '0') {
3083            sed(settings);
3084        }
3085
3086        function initSlider(settings) {
3087            // Check RTL website
3088            if ($('body').hasClass('rtl')) {
3089                var owl_rtl = true;
3090            } else {
3091                var owl_rtl = false;
3092            }
3093
3094            if (settings.style === 'type1') {
3095
3096                // Start carousel skin
3097                var owl = $("#mec_skin_" + settings.id + " .mec-event-carousel-type1 .mec-owl-carousel");
3098
3099                owl.owlCarousel({
3100                    autoplay: settings.autoplay_status,
3101                    autoplayTimeout: settings.autoplay, // Set AutoPlay to 3 seconds
3102                    loop: settings.loop,
3103                    items: settings.items,
3104                    responsiveClass: true,
3105                    responsive: {
3106                        0: {
3107                            items: 1,
3108                        },
3109                        979: {
3110                            items: 2,
3111                        },
3112                        1199: {
3113                            items: settings.count,
3114                        }
3115                    },
3116                    dots: true,
3117                    nav: false,
3118                    autoplayHoverPause: true,
3119                    rtl: owl_rtl,
3120                });
3121                owl.bind(
3122                    "mouseleave",
3123                    function (event) {
3124                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3125                    }
3126                );
3127            } else if (settings.style === 'type4') {
3128                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3129                    autoplay: settings.autoplay_status,
3130                    loop: settings.loop,
3131                    autoplayTimeout: settings.autoplay,
3132                    items: settings.items,
3133                    dots: false,
3134                    nav: true,
3135                    responsiveClass: true,
3136                    responsive: {
3137                        0: {
3138                            items: 1,
3139                            stagePadding: 50,
3140                        },
3141                        979: {
3142                            items: 2,
3143                        },
3144                        1199: {
3145                            items: settings.count,
3146                        }
3147                    },
3148                    autoplayHoverPause: true,
3149                    navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3150                    rtl: owl_rtl,
3151                });
3152                $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
3153                    "mouseleave",
3154                    function (event) {
3155                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3156                    }
3157                );
3158            } else {
3159                $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3160                    autoplay: settings.autoplay_status,
3161                    loop: settings.loop,
3162                    autoplayTimeout: settings.autoplay,
3163                    items: settings.items,
3164                    dots: typeof settings.dots_navigation != 'undefined' ? settings.dots_navigation : false,
3165                    nav: typeof settings.navigation != 'undefined' ? settings.navigation : true,
3166                    responsiveClass: true,
3167                    responsive: {
3168                        0: {
3169                            items: 1,
3170                        },
3171                        979: {
3172                            items: 2,
3173                        },
3174                        1199: {
3175                            items: settings.count,
3176                        }
3177                    },
3178                    autoplayHoverPause: true,
3179                    navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3180                    rtl: owl_rtl,
3181                });
3182                $("#mec_skin_" + settings.id + " .mec-owl-carousel").bind(
3183                    "mouseleave",
3184                    function (event) {
3185                        $("#mec_skin_" + settings.id + " .mec-owl-carousel").trigger('play.owl.autoplay');
3186                    }
3187                );
3188            }
3189        }
3190    };
3191
3192    function sed(settings) {
3193        // Single Event Display
3194        $("#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) {
3195            var sed_method = $(this).attr('target');
3196            if( '_blank' === sed_method ){
3197
3198                return;
3199            }
3200            e.preventDefault();
3201            var href = $(this).attr('href');
3202
3203            var id = $(this).data('event-id');
3204            var occurrence = get_parameter_by_name('occurrence', href);
3205            var time = get_parameter_by_name('time', href);
3206
3207            mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3208        });
3209    }
3210}(jQuery));
3211
3212// MEC SLIDER VIEW PLUGIN
3213(function ($) {
3214    $.fn.mecSliderView = function (options) {
3215        // Default Options
3216        var settings = $.extend({
3217            // These are the defaults.
3218            id: 0,
3219            atts: '',
3220            autoplay: false,
3221            ajax_url: '',
3222            sf: {},
3223            start_date: ''
3224        }, options);
3225
3226        // Init Sliders
3227        initSlider();
3228
3229        function initSlider() {
3230            // Check RTL website
3231            if ($('body').hasClass('rtl')) {
3232                var owl_rtl = true;
3233            } else {
3234                var owl_rtl = false;
3235            }
3236
3237            $("#mec_skin_" + settings.id + " .mec-owl-carousel").owlCarousel({
3238                autoplay: true,
3239                autoplayTimeout: settings.autoplay,
3240                loop: true,
3241                items: 1,
3242                responsiveClass: true,
3243                responsive: {
3244                    0: {
3245                        items: 1,
3246                    },
3247                    960: {
3248                        items: 1,
3249                    },
3250                    1200: {
3251                        items: 1,
3252                    }
3253                },
3254                dots: false,
3255                nav: true,
3256                autoplayHoverPause: true,
3257                navText: typeof settings.navText != 'undefined' ? settings.navText : ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3258                rtl: owl_rtl,
3259            });
3260        }
3261    };
3262
3263}(jQuery));
3264
3265// MEC COUNTDOWN MODULE
3266(function ($) {
3267    $.fn.mecCountDown = function (options, callBack) {
3268        // Default Options
3269        var settings = $.extend({
3270            // These are the defaults.
3271            date: null,
3272            format: null
3273        }, options);
3274
3275        var callback = callBack;
3276        var selector = $(this);
3277
3278        startCountdown();
3279        var interval = setInterval(startCountdown, 1000);
3280
3281        function startCountdown() {
3282            var eventDate = Date.parse(settings.date) / 1000;
3283            var currentDate = Math.floor($.now() / 1000);
3284
3285            if (eventDate <= currentDate) {
3286                callback.call(this);
3287                clearInterval(interval);
3288            }
3289
3290            var seconds = eventDate - currentDate;
3291
3292            var days = Math.floor(seconds / (60 * 60 * 24));
3293            seconds -= days * 60 * 60 * 24;
3294
3295            var hours = Math.floor(seconds / (60 * 60));
3296            seconds -= hours * 60 * 60;
3297
3298            var minutes = Math.floor(seconds / 60);
3299            seconds -= minutes * 60;
3300
3301            if (days == 1) selector.find(".mec-timeRefDays").text(mecdata.day);
3302            else selector.find(".mec-timeRefDays").text(mecdata.days);
3303
3304            if (hours == 1) selector.find(".mec-timeRefHours").text(mecdata.hour);
3305            else selector.find(".mec-timeRefHours").text(mecdata.hours);
3306
3307            if (minutes == 1) selector.find(".mec-timeRefMinutes").text(mecdata.minute);
3308            else selector.find(".mec-timeRefMinutes").text(mecdata.minutes);
3309
3310            if (seconds == 1) selector.find(".mec-timeRefSeconds").text(mecdata.second);
3311            else selector.find(".mec-timeRefSeconds").text(mecdata.seconds);
3312
3313            if (settings.format === "on") {
3314                days = (String(days).length >= 2) ? days : "0" + days;
3315                hours = (String(hours).length >= 2) ? hours : "0" + hours;
3316                minutes = (String(minutes).length >= 2) ? minutes : "0" + minutes;
3317                seconds = (String(seconds).length >= 2) ? seconds : "0" + seconds;
3318            }
3319
3320            if (!isNaN(eventDate)) {
3321                selector.find(".mec-days").text(days);
3322                selector.find(".mec-hours").text(hours);
3323                selector.find(".mec-minutes").text(minutes);
3324                selector.find(".mec-seconds").text(seconds);
3325            } else {
3326                clearInterval(interval);
3327            }
3328        }
3329    };
3330
3331}(jQuery));
3332
3333// MEC TILE VIEW PLUGIN
3334(function($)
3335{
3336    $.fn.mecTileView = function(options)
3337    {
3338        var active_month;
3339        var active_year;
3340
3341        // Default Options
3342        var settings = $.extend({
3343            // These are the defaults.
3344            today: null,
3345            id: 0,
3346            events_label: 'Events',
3347            event_label: 'Event',
3348            month_navigator: 0,
3349            atts: '',
3350            active_month: {},
3351            next_month: {},
3352            sf: {},
3353            ajax_url: ''
3354        }, options);
3355
3356        // Initialize Month Navigator
3357        if(settings.month_navigator) initMonthNavigator();
3358
3359        // Load Next Month in background
3360        if(settings.load_method === 'month') setMonth(settings.next_month.year, settings.next_month.month, true);
3361
3362        active_month = settings.active_month.month;
3363        active_year = settings.active_month.year;
3364
3365        // Set onclick Listeners
3366        setListeners();
3367
3368        // Search Widget
3369        if(settings.sf.container !== '')
3370        {
3371            sf = $(settings.sf.container).mecSearchForm(
3372            {
3373                id: settings.id,
3374                atts: settings.atts,
3375                callback: function(atts)
3376                {
3377                    settings.atts = atts;
3378                    search(active_year, active_month);
3379                }
3380            });
3381        }
3382
3383        function initMonthNavigator()
3384        {
3385            $("#mec_skin_" + settings.id + " .mec-load-month").off("click").on("click", function()
3386            {
3387                var year = $(this).data("mec-year");
3388                var month = $(this).data("mec-month");
3389
3390                setMonth(year, month, false, true);
3391            });
3392        }
3393
3394        function search(year, month)
3395        {
3396            // Add Loading Class
3397            if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3398            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3399
3400            $.ajax(
3401            {
3402                url: settings.ajax_url,
3403                data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
3404                dataType: "json",
3405                type: "post",
3406                success: function(response)
3407                {
3408                    if(settings.load_method === 'month')
3409                    {
3410                        active_month = response.current_month.month;
3411                        active_year = response.current_month.year;
3412
3413                        // Append Month
3414                        $("#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>');
3415
3416                        // Append Month Navigator
3417                        $("#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>');
3418
3419                        // Re-initialize Month Navigator
3420                        initMonthNavigator();
3421
3422                        // Set onclick Listeners
3423                        setListeners();
3424
3425                        // Toggle Month
3426                        toggleMonth(response.current_month.id);
3427                    }
3428                    else
3429                    {
3430                        // Append Items
3431                        $("#mec_skin_events_" + settings.id).html(response.html);
3432
3433                        // Show load more button
3434                        if (response.count >= settings.limit) $("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
3435                        // Hide load more button
3436                        else $("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
3437
3438                        // Update the variables
3439                        settings.end_date = response.end_date;
3440                        settings.offset = response.offset;
3441
3442                        // Set onclick Listeners
3443                        setListeners();
3444                    }
3445
3446                    // Remove loading Class
3447                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3448                },
3449                error: function(){}
3450            });
3451        }
3452
3453        function setMonth(year, month, do_in_background, navigator_click)
3454        {
3455            if(typeof do_in_background === "undefined") do_in_background = false;
3456            navigator_click = navigator_click || false;
3457
3458            var month_id = year + "" + month;
3459
3460            if(!do_in_background)
3461            {
3462                active_month = month;
3463                active_year = year;
3464            }
3465
3466            // Month exists so we just show it
3467            if($("#mec_tile_month_" + settings.id + "_" + month_id).length)
3468            {
3469                // Toggle Month
3470                toggleMonth(month_id);
3471            }
3472            else
3473            {
3474                if(!do_in_background)
3475                {
3476                    // Add Loading Class
3477                    if(jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
3478                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
3479                }
3480
3481                $.ajax(
3482                {
3483                    url: settings.ajax_url,
3484                    data: "action=mec_tile_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
3485                    dataType: "json",
3486                    type: "post",
3487                    success: function(response)
3488                    {
3489                        // Append Month
3490                        $("#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>');
3491
3492                        // Append Month Navigator
3493                        $("#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>');
3494
3495                        // Re-initialize Month Navigator
3496                        initMonthNavigator();
3497
3498                        // Set onclick Listeners
3499                        setListeners();
3500
3501                        if(!do_in_background)
3502                        {
3503                            // Toggle Month
3504                            toggleMonth(response.current_month.id);
3505
3506                            // Remove loading Class
3507                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
3508
3509                            // Set Month Filter values in search widget
3510                            $("#mec_sf_month_" + settings.id).val(month);
3511                            $("#mec_sf_year_" + settings.id).val(year);
3512                        }
3513                        else
3514                        {
3515                            $("#mec_tile_month_" + settings.id + "_" + response.current_month.id).hide();
3516                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
3517                        }
3518                    },
3519                    error: function(){}
3520                });
3521            }
3522        }
3523
3524        function toggleMonth(month_id)
3525        {
3526            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
3527            var active_day = $("#mec_tile_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
3528
3529            if(active_day <= 9) active_day = "0" + active_day;
3530
3531            // Toggle Month Navigator
3532            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
3533            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
3534
3535            // Toggle Month
3536            $("#mec_skin_" + settings.id + " .mec-month-container").hide().removeClass("mec-month-container-selected");
3537            $("#mec_tile_month_" + settings.id + "_" + month_id).show().addClass("mec-month-container-selected");
3538        }
3539
3540        var sf;
3541
3542        function setListeners()
3543        {
3544            $("#mec_skin_" + settings.id + " .mec-load-more-button").off("click").on("click", function()
3545            {
3546                loadMore();
3547            });
3548
3549            $("#mec_skin_" + settings.id + " article").off("click").on("click", function(e)
3550            {
3551                // Link Clicked
3552                if(e.target.nodeName.toLowerCase() === 'a') return;
3553
3554                var href = $(this).data('href');
3555                if(!href) return;
3556
3557                var target = $(this).data('target');
3558
3559                if(target === 'blank') window.open(href, '_blank');
3560                else document.location.href = href;
3561            });
3562
3563            // Add the onclick event
3564            $("#mec_skin_" + settings.id + " .mec-has-event").off("click").on('click', function(e)
3565            {
3566                e.preventDefault();
3567
3568                // define variables
3569                var $this = $(this),
3570                    data_mec_cell = $this.data('mec-cell'),
3571                    month_id = $this.data('month');
3572
3573                $("#mec_monthly_view_month_" + settings.id + "_" + month_id + " .mec-calendar-day").removeClass('mec-selected-day');
3574                $this.addClass('mec-selected-day');
3575
3576                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3577                $('#mec_month_side_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3578
3579                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec:not([data-mec-cell=' + data_mec_cell + '])').slideUp();
3580                $('#mec_monthly_view_month_' + settings.id + '_' + month_id + ' .mec-calendar-events-sec[data-mec-cell=' + data_mec_cell + ']').slideDown();
3581            });
3582
3583            // Single Event Method
3584            if(settings.sed_method != '0')
3585            {
3586                sed();
3587            }
3588        }
3589
3590        function sed()
3591        {
3592            // Single Event Display
3593            $("#mec_skin_" + settings.id + " .mec-event-title a").off('click').on('click', function(e)
3594            {
3595                e.preventDefault();
3596                var href = $(this).attr('href');
3597
3598                var id = $(this).data('event-id');
3599                var occurrence = get_parameter_by_name('occurrence', href);
3600                var time = get_parameter_by_name('time', href);
3601
3602                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
3603            });
3604        }
3605
3606        function loadMore()
3607        {
3608            // Load More Button
3609            var $load_more_button = $("#mec_skin_" + settings.id + " .mec-load-more-button");
3610
3611            // Add loading Class
3612            $load_more_button.addClass("mec-load-more-loading");
3613
3614            $.ajax(
3615            {
3616                url: settings.ajax_url,
3617                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",
3618                dataType: "json",
3619                type: "post",
3620                success: function(response)
3621                {
3622                    if(response.count == '0')
3623                    {
3624                        // Remove loading Class
3625                        $load_more_button.removeClass("mec-load-more-loading");
3626
3627                        // Hide load more button
3628                        $load_more_button.addClass("mec-util-hidden");
3629                    }
3630                    else
3631                    {
3632                        // Show load more button
3633                        $load_more_button.removeClass("mec-util-hidden");
3634
3635                        // Append Items
3636                        $("#mec_skin_events_" + settings.id).append(response.html);
3637
3638                        // Remove loading Class
3639                        $load_more_button.removeClass("mec-load-more-loading");
3640
3641                        // Update the variables
3642                        settings.end_date = response.end_date;
3643                        settings.offset = response.offset;
3644                        settings.current_month_divider = response.current_month_divider;
3645
3646                        // Single Event Method
3647                        if(settings.sed_method != '0')
3648                        {
3649                            sed();
3650                        }
3651                    }
3652                },
3653                error: function(){}
3654            });
3655        }
3656    };
3657}(jQuery));
3658
3659function mec_gateway_selected(gateway_id) {
3660    // Hide all gateway forms
3661    jQuery('.mec-book-form-gateway-checkout').addClass('mec-util-hidden');
3662
3663    // Show selected gateway form
3664    jQuery('#mec_book_form_gateway_checkout' + gateway_id).removeClass('mec-util-hidden');
3665}
3666
3667function mec_wrap_resize() {
3668    var $mec_wrap = jQuery('.mec-wrap'),
3669        mec_width = $mec_wrap.width();
3670    if (mec_width < 959) {
3671        $mec_wrap.addClass('mec-sm959');
3672    } else {
3673        $mec_wrap.removeClass('mec-sm959');
3674    }
3675}
3676
3677function get_parameter_by_name(name, url) {
3678    if (!url) {
3679        url = window.location.href;
3680    }
3681
3682    name = name.replace(/[\[\]]/g, "\\$&");
3683    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
3684        results = regex.exec(url);
3685
3686    if (!results) return null;
3687    if (!results[2]) return '';
3688
3689    return decodeURIComponent(results[2].replace(/\+/g, " "));
3690}
3691
3692// Focus events day
3693var mec_g_month_id = null;
3694
3695function mecFocusDay(settings)
3696{
3697    if(mec_g_month_id != null)
3698    {
3699        setTimeout(function()
3700        {
3701            var id = settings.id,
3702            date = new Date(),
3703            mec_owl_year = mec_g_month_id.substr(0, 4),
3704            mec_current_year = date.getFullYear(),
3705            mec_owl_month = mec_g_month_id.substr(4, 6),
3706            mec_current_month = date.getMonth() + 1,
3707            mec_current_day = date.getDate(),
3708            mec_owl_go = jQuery("#mec-owl-calendar-d-table-" + id + "-" + mec_g_month_id),
3709            mec_day_exist = false;
3710            mec_owl_go.find('.owl-stage > div').each(function (index)
3711            {
3712                if(parseInt(jQuery(this).children('div').data("events-count")) > 0)
3713                {
3714                    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)
3715                    {
3716                        var index_plus = index + 1;
3717                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_i
3717d + (index < 10 ? '0' + index_plus : index_plus)).trigger('click');
3718                        mec_owl_go.trigger('to.owl.carousel', index_plus);
3719                        mec_day_exist = true;
3720                        return false;
3721                    }
3722                    else
3723                    {
3724                        jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3725                        mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3726                        mec_day_exist = true;
3727                        return false;
3728                    }
3729                }
3730            });
3731    
3732            if(!mec_day_exist && ((mec_owl_year == mec_current_year) && (mec_owl_month == mec_current_month)))
3733            {
3734                jQuery('#mec_daily_view_day' + id + '_' + mec_g_month_id + mec_current_day).trigger('click');
3735                mec_owl_go.trigger('to.owl.carousel', mec_current_day);
3736            }
3737        }, 1000);
3738    }
3739}
3740
3741// Focus events week
3742function mec_focus_week(id, skin) {
3743    skin = skin || 'weekly';
3744    var wrap_elem = jQuery('.mec-weeks-container .mec-weekly-view-week-active').parent();
3745    var days = wrap_elem.find('dt');
3746    var week = wrap_elem.find('dl').length;
3747    var focus_week = false;
3748    var i = j = 1;
3749    
3750    for (i = 1; i < week; i++) {
3751        setTimeout(function () {
3752            var event = new Event('click');
3753            jQuery('#mec_skin_' + id + ' .mec-previous-month.mec-load-week')[0].dispatchEvent(event);
3754        }, 33);
3755    }
3756
3757    days.each(function (i) {
3758        if (jQuery(this).data('events-count') > 0) {
3759            if (focus_week === false) {
3760                focus_week = parseInt(jQuery(this).parent().data('week-number'));
3761            }
3762
3763            if (skin == 'timetable') {
3764                if (parseInt(jQuery(this).parent().data('week-number')) == parseInt(jQuery('body').data('currentweek'))) {
3765                    focus_week = parseInt(jQuery(this).parent().data('week-number'));
3766                    return false;
3767                }
3768            }
3769            else {
3770                return false;
3771            }
3772        }
3773    });
3774
3775    if (focus_week !== false) {
3776        for (j = 1; j < focus_week; j++) {
3777            setTimeout(function () {
3778                var event = new Event('click');
3779                jQuery('#mec_skin_' + id + ' .mec-next-month.mec-load-week')[0].dispatchEvent(event);
3780            }, 33);
3781        }
3782    }
3783}
3784
3785// TODO must be cleaned JS codes
3786(function ($) {
3787    $(document).ready(function () {
3788        // Check RTL website
3789        if ($('body').hasClass('rtl')) {
3790            var owl_rtl = true;
3791        } else {
3792            var owl_rtl = false;
3793        }
3794
3795        // MEC WIDGET CAROUSEL
3796        $(".mec-widget .mec-event-grid-classic").each(function()
3797        {
3798            var loop_status = $(this).data('widget-loop');
3799            if(typeof loop_status === 'undefined') loop_status = 1;
3800
3801            var autoplay_status = $(this).data('widget-autoplay');
3802            if(typeof autoplay_status === 'undefined') autoplay_status = 1;
3803
3804            var autoplay_time = $(this).data('widget-autoplay-time');
3805            if(typeof autoplay_time === 'undefined') autoplay_time = 3000;
3806
3807            $(this).addClass('mec-owl-carousel mec-owl-theme');
3808            $(this).owlCarousel(
3809            {
3810                autoplay: (autoplay_status ? true : false),
3811                autoplayTimeout: autoplay_time,
3812                autoplayHoverPause: true,
3813                loop: (loop_status ? true : false),
3814                dots: false,
3815                nav: true,
3816                navText: ["<i class='mec-sl-arrow-left'></i>", " <i class='mec-sl-arrow-right'></i>"],
3817                items: 1,
3818                autoHeight: true,
3819                responsiveClass: true,
3820                rtl: owl_rtl,
3821            });
3822        });
3823
3824        // add mec-sm959 class if mec-wrap div size < 959
3825        mec_wrap_resize();
3826
3827        jQuery(window).bind('resize', function () {
3828            mec_wrap_resize();
3829        });
3830
3831        // Fixed: social hover in iphone
3832        $('.mec-event-sharing-wrap').hover(function () {
3833                $(this).find('.mec-event-sharing').show(0);
3834            },
3835            function () {
3836                $(this).find('.mec-event-sharing').hide(0);
3837            });
3838
3839        // Register Booking Smooth Scroll
3840        $('a.simple-booking[href^="#mec-events-meta-group-booking"]').click(function () {
3841            if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
3842                var target = $(this.hash);
3843                target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
3844
3845                if (target.length) {
3846                    var scrollTopVal = target.offset().top - 30;
3847
3848                    $('html, body').animate({
3849                        scrollTop: scrollTopVal
3850                    }, 600);
3851
3852                    return false;
3853                }
3854            }
3855        });
3856
3857        // Load Information widget under title in mobile/tablet
3858        if ($('.single-mec-events .mec-single-event:not(".mec-single-modern")').length > 0) {
3859            if ($('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').length > 0) {
3860                var html = $('.single-mec-events .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox')[0].outerHTML;
3861                if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 960) {
3862                    $('.single-mec-events .col-md-4 .mec-event-info-desktop.mec-event-meta.mec-color-before.mec-frontbox').remove();
3863                    $('.single-mec-events .mec-event-info-mobile').html(html)
3864                }
3865            }
3866        }
3867    });
3868})(jQuery);
3869
3870// Weather
3871(function ($) {
3872    // Convart fahrenheit to centigrade
3873    function convertToC(value) {
3874        return Math.round(((parseFloat(value) - 32) * 5 / 9));
3875    }
3876
3877    // Convert centigrade to fahrenheit
3878    function convertToF(value) {
3879        return Math.round(((1.8 * parseFloat(value)) + 32));
3880    }
3881
3882    // Convert miles to kilometers
3883    function MPHToKPH(value) {
3884        return Math.round(1.609344 * parseFloat(value));
3885    }
3886
3887    // Convert kilometers to miles
3888    function KPHToMPH(value) {
3889        return Math.round((0.6214 * parseFloat(value)));
3890    }
3891
3892    $(document).ready(function ($)
3893    {
3894        var degree = $('.mec-weather-summary-temp');
3895        var weather_extra = $('.mec-weather-extras');
3896        var wind = weather_extra.children('.mec-weather-wind');
3897        var visibility = weather_extra.children('.mec-weather-visibility');
3898        var feelslike = weather_extra.children('.mec-weather-feels-like');
3899
3900        //  Events
3901        $('.degrees-mode').on('click', function()
3902        {
3903            var degree_mode = degree.children('var').text().trim();
3904            var wind_text = wind.text().substring(5);
3905            var visibility_text = visibility.text().substring(11);
3906            var feelslike_text = feelslike.text().substring(12);
3907
3908            if(degree_mode == degree.data('c').trim())
3909            {
3910                degree.html(convertToF(parseInt(degree.text())) + ' <var>' + degree.data('f') + '</var>');
3911                feelslike.html('<span>Feels Like:</span> ' + convertToF(parseInt(feelslike_text)) + ' <var>' + feelslike.data('f') + '</var>');
3912                wind.html('<span>Wind:</span> ' + KPHToMPH(parseInt(wind_text)) + '<var>' + wind.data('mph') + '</var>');
3913                visibility.html('<span>Visibility:</span> ' + KPHToMPH(parseInt(visibility_text)) + '<var>' + visibility.data('mph') + '</var>');
3914                $(this).text($(this).data('metric'));
3915            }
3916            else if(degree_mode == degree.data('f').trim())
3917            {
3918                degree.html(convertToC(parseInt(degree.text())) + ' <var>' + degree.data('c') + '</var>');
3919                feelslike.html('<span>Feels Like:</span> ' + convertToC(parseInt(feelslike_text)) + ' <var>' + feelslike.data('c') + '</var>');
3920                wind.html('<span>Wind:</span> ' + MPHToKPH(parseInt(wind_text)) + '<var>' + wind.data('kph') + '</var>');
3921                visibility.html('<span>Visibility:</span> ' + MPHToKPH(parseInt(visibility_text)) + '<var>' + visibility.data('kph') + '</var>');
3922                $(this).text($(this).data('imperial'));
3923            }
3924        });
3925
3926        $('a').on('click', function () {});
3927
3928        // FES Speakers Adding
3929        $('#mec_add_speaker_button').on('click', function () {
3930            var $this = this;
3931            var content = $($this).parent().find('input');
3932            var list = $('#mec-fes-speakers-list');
3933            var key = list.find('.mec-error').length;
3934
3935            $($this).prop("disabled", true).css('cursor', 'wait');
3936            $.post(ajaxurl, {
3937                    action: "speaker_adding",
3938                    content: content.val(),
3939                    key: key
3940                })
3941                .done(function (data) {
3942                    if ($(data).hasClass('mec-error')) {
3943                        list.prepend(data);
3944                        setTimeout(function () {
3945                            $('#mec-speaker-error-${key}').remove();
3946                        }, 1500);
3947                    } else {
3948                        list.html(data);
3949                        content.val('');
3950                    }
3951
3952                    $($this).prop("disabled", false).css('cursor', 'pointer');
3953                });
3954        });
3955
3956        // Check RTL website
3957        var owl_rtl = $('body').hasClass('rtl') ? true : false;
3958
3959        // MEC FES Date Wrappers
3960        var fes_export_list = $('.mec-export-list-wrapper');
3961
3962        // MEC FES Date Item Event
3963        fes_export_list.find('.mec-export-list-item').click(function()
3964        {
3965            $('.mec-export-list-item').removeClass('fes-export-date-active');
3966            $(this).addClass('fes-export-date-active'); 
3967        });
3968
3969        // MEC BuddyPress Integration Attendees Modules
3970        var mec_bd_attendees_modules = $('.mec-attendees-list-details > ul > li');
3971        mec_bd_attendees_modules.click(function()
3972        {
3973           $(this).find('.mec-attendees-toggle').toggle();
3974        });
3975
3976        // MEC FES export csv
3977        $('.mec-event-export-csv, .mec-event-export-excel').click(function()
3978        {
3979            var mec_event_id = $(this).parent().parent().data('event-id');
3980
3981            var time = $(this).parent().parent().find($('.fes-export-date-active')).data('time');
3982            if(typeof time === 'undefined') time = 0;
3983
3984            $.ajax(
3985            {
3986                url: mecdata.ajax_url,
3987                data: "action=mec_fes_csv_export&fes_nonce=" + mecdata.fes_nonce + "&mec_event_id=" + mec_event_id + "&timestamp=" + time,
3988                dataType: 'json',
3989                type: "post",
3990                success: function (res) {
3991                    if(res.ex != 'error')
3992                    {
3993                        var $csv = $('<a>');
3994                        $csv.attr('href', res.ex);
3995                        $('body').append($csv);
3996                        $csv.attr('download', 'bookings-' + res.name + '.csv');
3997                        $csv[0].click();
3998                        $csv.remove();
3999                    }
4000                },
4001                error: function () {}
4002            });
4003        });
4004    });
4005})(jQuery);
4006
4007function mec_book_form_submit(event, unique_id)
4008{
4009    event.preventDefault();
4010    window["mec_book_form_submit" + unique_id]();
4011}
4012
4013function mec_book_form_back_btn_cache(context, unique_id)
4014{
4015    var id = jQuery(context).attr('id');
4016    var mec_form_data = jQuery('#mec_book_form' + unique_id).serializeArray();
4017
4018    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);
4019    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);
4020}
4021
4022function mec_agreement_change(context)
4023{
4024    var status = jQuery(context).is(":checked");
4025    
4026    if(status) jQuery(context).prop("checked", "checked");
4027    else jQuery(context).removeProp("checked");
4028}
4029
4030function mec_book_form_back_btn_click(context, unique_id)
4031{
4032    var id = jQuery(context).attr('id');
4033    unique_id = jQuery('body').data('unique-id');
4034
4035    jQuery('#mec_booking_message' + unique_id).hide();
4036    if(id == "mec-book-form-back-btn-step-2")
4037    {
4038        var mec_form_data_step_1 = jQuery('body').data('mec-book-form-data-step-1');
4039
4040        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-1'));
4041        jQuery.each(mec_form_data_step_1, function(index, object_item)
4042        {
4043            jQuery('[name="' + object_item.name + '"]').val(object_item.value);
4044        });
4045
4046        // Booking Refresh Recaptcha When Back Button Click.
4047        var recaptcha_check =  jQuery('#mec_booking' + unique_id).find('#g-recaptcha').length;
4048        if(recaptcha_check != 0)
4049        {
4050            jQuery('#g-recaptcha').html('');
4051            grecaptcha.render("g-recaptcha", {
4052                sitekey: mecdata.recapcha_key
4053            });
4054        }
4055
4056        var event_id = jQuery('input[name="event_id"]').val();
4057        var date = jQuery('#mec_book_form_date'+unique_id).val();
4058
4059        // Update Availability
4060        window['mec_get_tickets_availability'+unique_id](event_id, date);
4061    }
4062    else if(id == "mec-book-form-back-btn-step-3")
4063    {
4064        var mec_form_data_step_2 = jQuery('body').data('mec-book-form-data-step-2');
4065        
4066        jQuery('#mec_booking' + unique_id).html(jQuery('body').data('mec-book-form-step-2'));
4067        jQuery.each(mec_form_data_step_2, function(index, object_item)
4068        {
4069            var mec_elem = jQuery('[name="'+ object_item.name +'"]');
4070            var mec_type = mec_elem.attr('type');
4071
4072            if((mec_type == 'checkbox' || mec_type == 'radio'))
4073            {
4074                var mec_elem_len = jQuery('[name="'+ object_item.name +'"]').length;
4075
4076                if(mec_elem_len > 1)
4077                {
4078                    var id = '#' + mec_elem.attr('id').match(/mec_book_reg_field_reg.*_/g) + object_item.value.toLowerCase();
4079                    jQuery(id).prop('checked', true);
4080                }
4081                else
4082                {
4083                    mec_elem.prop('checked', true);
4084                }
4085            }
4086
4087            mec_elem.val(object_item.value);
4088        });
4089    }
4090}
4091
4092// Google map Skin
4093function gmapSkin(NewJson) {
4094    var gmap_temp = jQuery("#gmap-data");
4095    var beforeJson = gmap_temp.val();
4096    if (typeof beforeJson === 'undefined') beforeJson = '';
4097
4098    var newJson = NewJson;
4099    var jsonPush = (typeof beforeJson != 'undefined' && beforeJson.trim() == "") ? [] : JSON.parse(beforeJson);
4100    var pushState = jsonPush.length < 1 ? false : true;
4101
4102    for (var key in newJson) {
4103        if (pushState) {
4104            jsonPush.forEach(function (Item, Index) {
4105                var render_location = jsonPush[Index].latitude + "," + jsonPush[Index].longitude;
4106                if (key.trim() == render_location.trim()) {
4107                    // LightBox Count Update
4108                    newJson[key].count = newJson[key].count + jsonPush[Index].count;
4109
4110                    // LightBox Ids Update
4111                    newJson[key].event_ids = newJson[key].event_ids.concat(jsonPush[Index].event_ids);
4112
4113                    // LightBox Initialize
4114                    var dom = jQuery(newJson[key].lightbox).find("div:nth-child(2)");
4115                    var main_items = dom.html();
4116                    var new_items = jQuery(jsonPush[Index].lightbox).find("div:nth-child(2)").html();
4117
4118                    var render_items = dom.html(main_items + new_items).html();
4119                    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>';
4120                    newJson[key].lightbox = new_info_lightbox;
4121
4122                    // LightBox info                        
4123                    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>';
4124                    newJson[key].infowindow = new_info_window;
4125
4126                    // Remove before values of this location
4127                    jsonPush.splice(Index, 1);
4128                }
4129            });
4130        }
4131
4132        jsonPush.push(newJson[key]);
4133    }
4134
4135    gmap_temp.val(JSON.stringify(jsonPush));
4136    return jsonPush;
4137}
4138
4139// Fluent Scripts
4140jQuery(document).ready(function () {
4141    if (jQuery('.mec-fluent-wrap').length < 0) {
4142        return;
4143    }
4144    // Events
4145    jQuery(window).on('resize', mecFluentToggoleDisplayValueFilterContent);
4146    jQuery(document).on('click', '.mec-fluent-wrap .mec-filter-icon', mecFluentToggleFilterContent);
4147    jQuery(document).on('click', '.mec-fluent-wrap .mec-more-events-icon', mecFluentToggleMoreEvents);
4148    jQuery(document).on('click', '.mec-fluent-wrap .mec-yearly-calendar', mecFluentYearlyCalendar);
4149    jQuery(document).on('click', mecFluentOutsideEvent);
4150    jQuery(document).on('click', '.mec-fluent-more-views-icon', mecFluentMoreViewsContent);
4151    jQuery(document).on('change', '.mec-fluent-wrap .mec-filter-content select, .mec-fluent-wrap .mec-filter-content input', mecFluentSmartFilterIcon);
4152    // Run
4153    mecFluentTimeTableUI();
4154    mecFluentUI();
4155    mecFluentNiceSelect();
4156    mecFluentWrapperFullScreenWidth();
4157    jQuery(window).on('load', mecFluentWrapperFullScreenWidth);
4158    jQuery(window).on('load', mecFluentCurrentTimePosition);
4159    jQuery(window).on('resize', mecFluentWrapperFullScreenWidth);
4160    jQuery(window).on('resize', mecFluentTimeTableUI);
4161    mecFluentSliderUI();
4162    mecFluentFullCalendar();
4163    jQuery(window).on('resize', mecFluentFullCalendar);
4164    mecFluentCustomScrollbar();
4165});
4166
4167function mecFluentSinglePage() {
4168    if (jQuery().niceScroll) {
4169        jQuery('.mec-single-fluent-body .featherlight .mec-single-fluent-wrap').niceScroll({
4170            horizrailenabled:false,
4171            cursorcolor: '#C1C5C9',
4172            cursorwidth: '4px',
4173            cursorborderradius: '4px',
4174            cursorborder: 'none',
4175            railoffset: {
4176                left: 10,
4177            }
4178        });
4179    }
4180}
4181
4182function mecFluentFullCalendar() {
4183    if (jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').length > 0) {
4184        var widowWidth = jQuery(window).innerWidth();
4185        if (widowWidth<=767) {
4186            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({
4187                paddingTop: jQuery('.mec-fluent-wrap.mec-skin-full-calendar-container').children('.mec-totalcal-box').height() + 40,
4188            });
4189        } else {
4190            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({
4191                paddingTop: 32,
4192            });
4193        }
4194    }
4195}
4196
4197function mecFluentSmartFilterIcon() {
4198    var filterContent = jQuery(this).closest('.mec-filter-content');
4199    var hasValue = false;
4200    if (jQuery(this).closest('.mec-date-search').length > 0) {
4201        var yearValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_year"]').val();
4202        var monthValue = jQuery(this).closest('.mec-date-search').find('select[id*="mec_sf_month"]').val();
4203        if ((yearValue == 'none' && monthValue == 'none') || (yearValue != 'none' && monthValue != 'none')) {
4204            filterContent.hide();
4205            if ((yearValue != 'none' && monthValue != 'none')) {
4206                hasValue = true;
4207            } else {
4208                hasValue = false;
4209            }
4210        } else {
4211            return false;
4212        }
4213    } else {
4214        filterContent.hide();
4215    }
4216    if (!hasValue) {
4217        filterContent.find(':not(.mec-date-search)').find('select, input:not([type="hidden"])').each(function () {
4218            if (jQuery(this).val()) {
4219                hasValue = true;
4220                return false;
4221            }
4222        });
4223    }
4224    if (hasValue) {
4225        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').addClass('active');
4226    } else {
4227        jQuery(this).closest('.mec-search-form').find('.mec-filter-icon').removeClass('active');
4228    }
4229}
4230
4231function mecFluentMoreViewsContent() {
4232    jQuery(this).find('.mec-fluent-more-views-content').toggleClass('active');
4233}
4234
4235function mecFluentWrapperFullScreenWidth() {
4236    if (jQuery('.mec-fluent-bg-wrap').length > 0) {
4237        jQuery('.mec-fluent-bg-wrap').css({
4238            maxWidth: jQuery('body').width() + 8,
4239        });
4240    }
4241}
4242
4243function mecFluentUI() {
4244    if (typeof mecdata != 'undefined' && typeof mecdata.enableSingleFluent != 'undefined' && mecdata.enableSingleFluent) {
4245        jQuery('body').addClass('mec-single-fluent-body');
4246    }
4247    // Set filter content position
4248    jQuery(window).on('load resize', function () {
4249        if (jQuery('.mec-filter-content').length > 0) {
4250            jQuery('.mec-filter-content').css({
4251                right: -(jQuery('.mec-calendar').width() - jQuery('.mec-search-form.mec-totalcal-box').position().left - jQuery('.mec-search-form.mec-totalcal-box').width() + 40),
4252                left: -jQuery('.mec-search-form.mec-totalcal-box').position().left + 40,
4253            });
4254        }
4255        if (jQuery('.mec-filter-icon').is(':visible')) {
4256            var filterIconLeftPosition = parseInt(jQuery('.mec-search-form.mec-totalcal-box').position().left) + parseInt(jQuery('.mec-filter-icon').position().left) - 25;
4257            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>');
4258        }
4259    });
4260    // Hide empty filter content
4261    if (jQuery('.mec-filter-content').is(':empty')) {
4262        jQuery('.mec-filter-icon').hide();
4263    }
4264    // Prevend Default For Event Share Icon
4265    jQuery(document).on('click', '.mec-event-share-icon', function(e) {
4266        e.preventDefault();
4267    });
4268}
4269
4270function mecFluentCurrentTimePosition() {
4271    if (jQuery('.mec-fluent-wrap').length > 0) {
4272        jQuery('.mec-fluent-current-time').each(function() {
4273            var currentTimeMinutes = jQuery(this).data('time');
4274            var height = jQuery(this).closest('.mec-fluent-current-time-cell').height();
4275            jQuery(this).css({
4276                top: (currentTimeMinutes / 60) * height,
4277            });
4278        });
4279    }
4280}
4281
4282function mecFluentNiceSelect() {
4283    if (jQuery('.mec-fluent-wrap').length < 0) {
4284        return;
4285    }
4286    
4287    if (jQuery().niceSelect) {
4288        jQuery('.mec-fluent-wrap').find('.mec-filter-content').find('select').niceSelect();
4289    }
4290}
4291
4292function mecFluentCustomScrollbar(y) {
4293    if (jQuery('.mec-fluent-wrap').length < 0) {
4294        return;
4295    }
4296    
4297    if (jQuery().niceScroll) {
4298        jQuery('.mec-custom-scrollbar').niceScroll({
4299            cursorcolor: '#C7EBFB',
4300            cursorwidth: '4px',
4301            cursorborderradius: '4px',
4302            cursorborder: 'none',
4303            railoffset: {
4304                left: -2,
4305            }
4306        });
4307        jQuery('.mec-custom-scrollbar').getNiceScroll().resize();
4308        jQuery('.mec-custom-scrollbar').each(function () {
4309            if (jQuery(this).find('.mec-fluent-current-time-cell').length > 0) {
4310                var parentTopOffset = jQuery(this).offset().top;
4311                var currentTimeCellOffset = jQuery(this).find('.mec-fluent-current-time-cell').offset().top;
4312                jQuery(this).getNiceScroll(0).doScrollTop(currentTimeCellOffset - parentTopOffset - 16, 120);
4313                jQuery(this).on('scroll', function () {
4314                    if (jQuery(this).getNiceScroll(0).scroll.y != 0) {
4315                        jQuery(this).addClass('mec-scrolling');
4316                    } else {
4317                        jQuery(this).removeClass('mec-scrolling');
4318                    }
4319                });
4320            }
4321            if (typeof y != 'undefined') {
4322                if (jQuery(this).closest('.mec-skin-list-wrap').length > 0 || jQuery(this).closest('.mec-skin-grid-wrap').length > 0) {
4323                    jQuery(this).getNiceScroll(0).doScrollTop(0, 120);
4324                }
4325            }
4326        });
4327    }
4328}
4329
4330function mecFluentTimeTableUI() {
4331    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', 0);
4332    var maxHeight = Math.max.apply(null, jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').map(function () {
4333        return jQuery(this).height();
4334    }).get());
4335    maxHeight = maxHeight > 87 ? maxHeight : 87;
4336    jQuery('.mec-fluent-wrap.mec-timetable-wrap .mec-cell').css('min-height', maxHeight + 2);
4337}
4338
4339function mecFluentSliderUI() {
4340    jQuery(window).on('load', function () {
4341        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-next').prepend('<span>Next</span>');
4342        jQuery('.mec-fluent-wrap.mec-skin-slider-container .owl-prev').append('<span>Prev</span>');
4343    });
4344}
4345
4346function mecFluentToggleFilterContent(e) {
4347    e.preventDefault();
4348    if (jQuery('.mec-filter-content').is(':visible')) {
4349        jQuery('.mec-filter-content').css({
4350            display: 'none',
4351        });
4352    } else {
4353        const displayValue = jQuery(window).width() <= 790 ? 'block' : 'flex';
4354        jQuery('.mec-filter-content').css({
4355            display: displayValue,
4356        });
4357    }
4358}
4359
4360function mecFluentToggoleDisplayValueFilterContent() {
4361    const displayValue = jQuery(window).width() <= 767 ? 'block' : 'flex';
4362    if (jQuery('.mec-filter-content').is(':visible')) {
4363        jQuery('.mec-filter-content').css({
4364            display: displayValue,
4365        });
4366    }
4367}
4368
4369function mecFluentToggleMoreEvents(e) {
4370    e.preventDefault();
4371    const moreEventsWrap = jQuery(this).siblings('.mec-more-events-wrap');
4372    const moreEvents = moreEventsWrap.children('.mec-more-events');
4373    jQuery('.mec-more-events-wrap').removeClass('active');
4374    moreEventsWrap.addClass('active');
4375    jQuery('.mec-more-events-wrap:not(.active)').hide();
4376    if (moreEventsWrap.is(':visible')) {
4377        moreEventsWrap.hide();
4378    } else {
4379        topElement = moreEventsWrap.closest('.mec-more-events-inner-controller').length > 0 ? moreEventsWrap.closest('.mec-more-events-inner-controller') : moreEventsWrap.closest('.mec-more-events-controller');
4380        moreEventsWrap.show().css({
4381            top: topElement.offset().top - window.scrollY,
4382            left: moreEventsWrap.closest('.mec-more-events-controller').offset().left,
4383            width: moreEventsWrap.closest('.mec-more-events-controller').width(),
4384        });
4385        if (moreEventsWrap.width() > 400) {
4386            moreEvents.css({
4387                left: (moreEventsWrap.width() / 2) - (moreEvents.width() / 2),
4388                width: 400,
4389            });
4390        } else {
4391            moreEvents.css({
4392                width: moreEventsWrap.width(),
4393                left: 0,
4394            });
4395        }
4396    }
4397}
4398
4399function mecFluentOutsideEvent(e) {
4400    if (!jQuery(e.target).is('.mec-more-events-icon') && !jQuery(e.target).closest('.mec-more-events-wrap').length) {
4401        jQuery('.mec-more-events-wrap').hide();
4402    }
4403    if (!jQuery(e.target).is('.mec-filter-icon') && !jQuery(e.target).closest('.mec-filter-content').length) {
4404        jQuery('.mec-filter-content').hide();
4405    }
4406    if (!jQuery(e.target).is('.mec-fluent-more-views-icon') && !jQuery(e.target).closest('.mec-fluent-more-views-content').length) {
4407        jQuery('.mec-fluent-more-views-content').removeClass('active');
4408    }
4409}
4410
4411function mecFluentYearlyCalendar() {
4412    const monthNum = jQuery(this).data('month');
4413    const monthName = jQuery(this).find('.mec-calendar-table-title').text();
4414    jQuery('.mec-fluent-wrap').find('.mec-yearly-calendar').removeClass('active');
4415    jQuery(this).addClass('active')
4416        .closest('.mec-year-container')
4417        .find('.mec-yearly-agenda-sec-title span').text(monthName).end()
4418        .find('.mec-events-agenda').addClass('mec-util-hidden').end()
4419        .find('.mec-events-agenda[data-month=' + monthNum + ']').removeClass('mec-util-hidden');
4420    mecFluentCustomScrollbar();
4421}
4422
4423function mecFluentYearlyUI(eventID, yearID) {
4424    var fluentWrap = jQuery('#mec_skin_' + eventID + '.mec-fluent-wrap');
4425    if (fluentWrap.length < 0) {
4426        return;
4427    }
4428    var monthNum = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-events-agenda:not(.mec-util-hidden)').data('month');
4429    var activeMonth = fluentWrap.find('.mec-year-container[data-year-id=' + yearID + ']').find('.mec-yearly-calendar[data-month=' + monthNum + ']');
4430    var activeMonthName = activeMonth.find('.mec-calendar-table-title').text();
4431    activeMonth.addClass('active');
4432}
4433
4434// MEC LIST VIEW Fluent PLUGIN
4435(function ($) {
4436    $.fn.mecListViewFluent = function (options) {
4437        var active_month;
4438        var active_year;
4439
4440        // Default Options
4441        var settings = $.extend({
4442            // These are the defaults.
4443            today: null,
4444            id: 0,
4445            events_label: 'Events',
4446            event_label: 'Event',
4447            month_navigator: 0,
4448            atts: '',
4449            active_month: {},
4450            next_month: {},
4451            sf: {},
4452            ajax_url: '',
4453        }, options);
4454
4455        mecFluentCustomScrollbar();
4456
4457        initLoadMore('#mec_list_view_month_' + settings.id + '_' + settings.month_id);
4458
4459        function initLoadMore(monthID) {
4460            $(monthID).off().on('click', '.mec-load-more-button', function () {
4461                loadMore(this);
4462            });
4463        }
4464
4465        function loadMore(This) {
4466            // Add loading Class
4467            var currentLoadMore = $(This);
4468            currentLoadMore.addClass("mec-load-more-loading");
4469            var endDate = currentLoadMore.data('end-date');
4470            var maximumDate = currentLoadMore.data('maximum-date');
4471            var nextOffset = currentLoadMore.data('next-offset');
4472            var year = currentLoadMore.data('year');
4473            var month = currentLoadMore.data('month');
4474
4475            $.ajax({
4476                url: settings.ajax_url,
4477                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",
4478                dataType: "json",
4479                type: "post",
4480                success: function (response) {
4481                    currentLoadMore.parent().remove();
4482                    if (response.count != '0') {
4483                        // Append Items
4484                        $('#mec_list_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4485
4486                        // Single Event Method
4487                        if (settings.sed_method != '0') {
4488                            sed();
4489                        }
4490
4491                        mecFluentCustomScrollbar();
4492                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4493                    }
4494                },
4495                error: function () {}
4496            });
4497        }
4498
4499        // Initialize Month Navigator
4500        if (settings.month_navigator) initMonthNavigator();
4501
4502        // Load Next Month in background
4503        setMonth(settings.next_month.year, settings.next_month.month, true);
4504
4505        var initMonth;
4506        var initYear;
4507        active_month = initMonth = settings.active_month.month;
4508        active_year = initYear = settings.active_month.year;
4509
4510        // Search Widget
4511        if (settings.sf.container !== '') {
4512            sf = $(settings.sf.container).mecSearchForm({
4513                id: settings.id,
4514                atts: settings.atts,
4515                callback: function (atts) {
4516                    settings.atts = atts;
4517                    search(active_year, active_month);
4518                }
4519            });
4520        }
4521
4522        // Single Event Method
4523        if (settings.sed_method != '0') {
4524            sed();
4525        }
4526
4527        function initMonthNavigator() {
4528            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4529                var year = $(this).data("mec-year");
4530                var month = $(this).data("mec-month");
4531                setMonth(year, month, false, true);
4532            });
4533        }
4534
4535        function parseQuery(queryString) {
4536            var query = {};
4537            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
4538            for (var i = 0; i < pairs.length; i++) {
4539                var pair = pairs[i].split('=');
4540                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
4541            }
4542            return query;
4543        }
4544
4545        function updateQueryStringParameter(uri, key, val) {
4546            return uri
4547                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
4548                .replace(/^([^?&]+)&/, "$1?");
4549        }
4550        
4551        function search(year, month) {
4552            // Add Loading Class
4553            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4554            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4555
4556            var ObjAtts = parseQuery(settings.atts);
4557            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
4558                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
4559                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
4560            }
4561
4562            $.ajax({
4563                url: settings.ajax_url,
4564                data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
4565                dataType: "json",
4566                type: "post",
4567                success: function (response) {
4568                    active_month = response.current_month.month;
4569                    active_year = response.current_month.year;
4570
4571                    // Append Month
4572                    $("#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>');
4573
4574                    // Append Month Navigator
4575                    $("#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>');
4576
4577                    // Re-initialize Month Navigator
4578                    initMonthNavigator();
4579
4580                    // Toggle Month
4581                    toggleMonth(response.current_month.id);
4582
4583                    initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4584
4585                    // Remove loading Class
4586                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4587
4588                    mecFluentCustomScrollbar();
4589                },
4590                error: function () {}
4591            });
4592        }
4593
4594        function setMonth(year, month, do_in_background, navigator_click) {
4595            if (typeof do_in_background === "undefined") do_in_background = false;
4596            navigator_click = navigator_click || false;
4597            var month_id = year + "" + month;
4598
4599            if (!do_in_background) {
4600                active_month = month;
4601                active_year = year;
4602            }
4603
4604            // Month exists so we just show it
4605            if ($("#mec_list_view_month_" + settings.id + "_" + month_id).length) {
4606                // Toggle Month
4607                toggleMonth(month_id);
4608                mecFluentCustomScrollbar(0);
4609            } else {
4610                if (!do_in_background) {
4611                    // Add Loading Class
4612                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4613                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4614                }
4615
4616                $.ajax({
4617                    url: settings.ajax_url,
4618                    data: "action=mec_list_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
4619                    dataType: "json",
4620                    type: "post",
4621                    success: function (response) {
4622                        // Append Month
4623                        $("#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>');
4624
4625                        // Append Month Navigator
4626                        $("#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>');
4627
4628                        // Re-initialize Month Navigator
4629                        initMonthNavigator();
4630                        initLoadMore('#mec_list_view_month_' + settings.id + '_' + response.current_month.id);
4631
4632                        if (!do_in_background) {
4633                            // Toggle Month
4634                            toggleMonth(response.current_month.id);
4635
4636                            // Remove loading Class
4637                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4638
4639
4640                            // Set Month Filter values in search widget
4641                            $("#mec_sf_month_" + settings.id).val(month);
4642                            $("#mec_sf_year_" + settings.id).val(year);
4643                        } else {
4644                            $("#mec_list_view_month_" + settings.id + "_" + response.current_month.id).hide();
4645                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
4646                        }
4647                        if (typeof custom_month !== undefined) var custom_month;
4648                        if (typeof custom_month != undefined) {
4649                            if (custom_month == 'true') {
4650                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
4651                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
4652                                $('.mec-calendar-day').unbind('click');
4653                            }
4654                        }
4655                        if (!do_in_background) {
4656                            mecFluentCustomScrollbar(0);
4657                        }
4658                    },
4659                    error: function () {}
4660                });
4661            }
4662        }
4663
4664        function toggleMonth(month_id) {
4665            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
4666            var active_day = $("#mec_list_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
4667
4668            if (active_day <= 9) active_day = "0" + active_day;
4669
4670            // Toggle Month Navigator
4671            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
4672            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
4673
4674            // Toggle Month
4675            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
4676            $("#mec_list_view_month_" + settings.id + "_" + month_id).show();
4677
4678            // Add selected class
4679            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
4680            $("#mec_list_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
4681        }
4682
4683        var sf;
4684
4685        function sed() {
4686            // Single Event Display
4687            $(".mec-skin-list-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
4688                e.preventDefault();
4689                var href = $(this).attr('href');
4690
4691                var id = $(this).data('event-id');
4692                var occurrence = get_parameter_by_name('occurrence', href);
4693                var time = get_parameter_by_name('time', href);
4694
4695                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
4696            });
4697        }
4698    };
4699}(jQuery));
4700
4701// MEC Grid VIEW Fluent PLUGIN
4702(function ($) {
4703    $.fn.mecGridViewFluent = function (options) {
4704        var active_month;
4705        var active_year;
4706
4707        // Default Options
4708        var settings = $.extend({
4709            // These are the defaults.
4710            today: null,
4711            id: 0,
4712            events_label: 'Events',
4713            event_label: 'Event',
4714            month_navigator: 0,
4715            atts: '',
4716            active_month: {},
4717            next_month: {},
4718            sf: {},
4719            ajax_url: '',
4720        }, options);
4721
4722        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + settings.month_i
4722d);
4723
4724        function initLoadMore(monthID) {
4725            $(monthID).off().on('click', '.mec-load-more-button', function () {
4726                loadMore(this);
4727            });
4728        }
4729
4730        function loadMore(This) {
4731            // Add loading Class
4732            var currentLoadMore = $(This);
4733            currentLoadMore.addClass("mec-load-more-loading");
4734            var endDate = currentLoadMore.data('end-date');
4735            var maximumDate = currentLoadMore.data('maximum-date');
4736            var nextOffset = currentLoadMore.data('next-offset');
4737            var year = currentLoadMore.data('year');
4738            var month = currentLoadMore.data('month');
4739
4740            $.ajax({
4741                url: settings.ajax_url,
4742                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",
4743                dataType: "json",
4744                type: "post",
4745                success: function (response) {
4746                    currentLoadMore.parent().remove();
4747                    if (response.count != '0') {
4748                        // Append Items
4749                        $('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id).append(response.month);
4750
4751                        // Single Event Method
4752                        if (settings.sed_method != '0') {
4753                            sed();
4754                        }
4755
4756                        mecFluentCustomScrollbar();
4757                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4758                    }
4759                },
4760                error: function () {}
4761            });
4762        }
4763
4764        // Initialize Month Navigator
4765        if (settings.month_navigator) initMonthNavigator();
4766
4767        // Load Next Month in background
4768        setMonth(settings.next_month.year, settings.next_month.month, true);
4769
4770        var initMonth;
4771        var initYear;
4772        active_month = initMonth = settings.active_month.month;
4773        active_year = initYear = settings.active_month.year;
4774
4775        // Search Widget
4776        if (settings.sf.container !== '') {
4777            sf = $(settings.sf.container).mecSearchForm({
4778                id: settings.id,
4779                atts: settings.atts,
4780                callback: function (atts) {
4781                    settings.atts = atts;
4782                    search(active_year, active_month);
4783                }
4784            });
4785        }
4786
4787        // Single Event Method
4788        if (settings.sed_method != '0') {
4789            sed();
4790        }
4791
4792        function initMonthNavigator() {
4793            $("#mec_skin_" + settings.id + " .mec-load-month").off().on("click", function () {
4794                var year = $(this).data("mec-year");
4795                var month = $(this).data("mec-month");
4796                setMonth(year, month, false, true);
4797            });
4798        }
4799
4800        function parseQuery(queryString) {
4801            var query = {};
4802            var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
4803            for (var i = 0; i < pairs.length; i++) {
4804                var pair = pairs[i].split('=');
4805                query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
4806            }
4807            return query;
4808        }
4809
4810        function updateQueryStringParameter(uri, key, val) {
4811            return uri
4812                .replace(RegExp("([?&]" + key + "(?=[=&#]|$)[^#&]*|(?=#|$))"), "&" + key + "=" + encodeURIComponent(val))
4813                .replace(/^([^?&]+)&/, "$1?");
4814        }
4815
4816        function search(year, month) {
4817            // Add Loading Class
4818            if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4819            jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4820
4821            var ObjAtts = parseQuery(settings.atts);
4822            if (!(ObjAtts['sf[month'] || ObjAtts['sf[year]'])) {
4823                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[year]', initYear);
4824                settings.atts = updateQueryStringParameter(settings.atts.trim(), 'sf[month]', initMonth);
4825            }
4826            
4827            $.ajax({
4828                url: settings.ajax_url,
4829                data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=1",
4830                dataType: "json",
4831                type: "post",
4832                success: function (response) {
4833                    active_month = response.current_month.month;
4834                    active_year = response.current_month.year;
4835
4836                    // Append Month
4837                    $("#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>');
4838
4839                    // Append Month Navigator
4840                    $("#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>');
4841
4842                    // Re-initialize Month Navigator
4843                    initMonthNavigator();
4844
4845                    // Toggle Month
4846                    toggleMonth(response.current_month.id);
4847
4848                    initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4849
4850                    // Remove loading Class
4851                    $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4852
4853                    mecFluentCustomScrollbar();
4854                },
4855                error: function () {}
4856            });
4857        }
4858
4859        function setMonth(year, month, do_in_background, navigator_click) {
4860            if (typeof do_in_background === "undefined") do_in_background = false;
4861            navigator_click = navigator_click || false;
4862            var month_id = year + "" + month;
4863
4864            if (!do_in_background) {
4865                active_month = month;
4866                active_year = year;
4867            }
4868
4869            // Month exists so we just show it
4870            if ($("#mec_grid_view_month_" + settings.id + "_" + month_id).length) {
4871                // Toggle Month
4872                toggleMonth(month_id);
4873                mecFluentCustomScrollbar();
4874            } else {
4875                if (!do_in_background) {
4876                    // Add Loading Class
4877                    if (jQuery('.mec-modal-result').length === 0) jQuery('.mec-wrap').append('<div class="mec-modal-result"></div>');
4878                    jQuery('.mec-modal-result').addClass('mec-month-navigator-loading');
4879                }
4880
4881                $.ajax({
4882                    url: settings.ajax_url,
4883                    data: "action=mec_grid_load_month&mec_year=" + year + "&mec_month=" + month + "&" + settings.atts + "&apply_sf_date=0" + "&navigator_click=" + navigator_click,
4884                    dataType: "json",
4885                    type: "post",
4886                    success: function (response) {
4887                        // Append Month
4888                        $("#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>');
4889
4890                        // Append Month Navigator
4891                        $("#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>');
4892
4893                        // Re-initialize Month Navigator
4894                        initMonthNavigator();
4895                        initLoadMore('#mec_grid_view_month_' + settings.id + '_' + response.current_month.id);
4896
4897                        if (!do_in_background) {
4898                            // Toggle Month
4899                            toggleMonth(response.current_month.id);
4900
4901                            // Remove loading Class
4902                            $('.mec-modal-result').removeClass("mec-month-navigator-loading");
4903
4904
4905                            // Set Month Filter values in search widget
4906                            $("#mec_sf_month_" + settings.id).val(month);
4907                            $("#mec_sf_year_" + settings.id).val(year);
4908                        } else {
4909                            $("#mec_grid_view_month_" + settings.id + "_" + response.current_month.id).hide();
4910                            $("#mec_month_navigator_" + settings.id + "_" + response.current_month.id).hide();
4911                        }
4912                        if (typeof custom_month !== undefined) var custom_month;
4913                        if (typeof custom_month != undefined) {
4914                            if (custom_month == 'true') {
4915                                $(".mec-month-container .mec-calendar-day").removeClass('mec-has-event');
4916                                $(".mec-month-container .mec-calendar-day").removeClass('mec-selected-day');
4917                                $('.mec-calendar-day').unbind('click');
4918                            }
4919                        }
4920                        if (!do_in_background) {
4921                            mecFluentCustomScrollbar();
4922                        }
4923                    },
4924                    error: function () {}
4925                });
4926            }
4927        }
4928
4929        function toggleMonth(month_id) {
4930            var active_month = $("#mec_skin_" + settings.id + " .mec-month-container-selected").data("month-id");
4931            var active_day = $("#mec_grid_view_month_" + settings.id + "_" + active_month + " .mec-selected-day").data("day");
4932
4933            if (active_day <= 9) active_day = "0" + active_day;
4934
4935            // Toggle Month Navigator
4936            $("#mec_skin_" + settings.id + " .mec-month-navigator").hide();
4937            $("#mec_month_navigator_" + settings.id + "_" + month_id).show();
4938
4939            // Toggle Month
4940            $("#mec_skin_" + settings.id + " .mec-month-container").hide();
4941            $("#mec_grid_view_month_" + settings.id + "_" + month_id).show();
4942
4943            // Add selected class
4944            $("#mec_skin_" + settings.id + " .mec-month-container").removeClass("mec-month-container-selected");
4945            $("#mec_grid_view_month_" + settings.id + "_" + month_id).addClass("mec-month-container-selected");
4946        }
4947
4948        var sf;
4949
4950        function sed() {
4951            // Single Event Display
4952            $(".mec-skin-grid-wrap#mec_skin_" + settings.id).off('click').on('click', '[data-event-id]', function (e) {
4953                e.preventDefault();
4954                var href = $(this).attr('href');
4955
4956                var id = $(this).data('event-id');
4957                var occurrence = get_parameter_by_name('occurrence', href);
4958                var time = get_parameter_by_name('time', href);
4959
4960                mecSingleEventDisplayer.getSinglePage(id, occurrence, time, settings.ajax_url, settings.sed_method, settings.image_popup);
4961            });
4962        }
4963    };
4964}(jQuery));
4965
4966// MEC Booking Calendar
4967(function ($)
4968{
4969    $.fn.mecBookingCalendar = function(options)
4970    {
4971        var active_month;
4972        var active_year;
4973
4974        // Default Options
4975        var settings = $.extend({
4976            // These are the defaults.
4977            active_month: {},
4978            next_month: {},
4979            ajax_url: '',
4980            event_id: '',
4981        }, options);
4982
4983        // Initialize Month Navigator
4984        initMonthNavigator();
4985
4986        active_month = settings.active_month.month;
4987        active_year = settings.active_month.year;
4988
4989        // Set onclick Listeners
4990        setListeners();
4991
4992        function initMonthNavigator()
4993        {
4994            // Add onclick event
4995            $("#mec_booking_calendar_" + settings.id + " .mec-load-month").off('click').on('click', function()
4996            {
4997                var year = $(this).data('mec-year');
4998                var month = $(this).data('mec-month');
4999
5000                setMonth(year, month);
5001            });
5002        }
5003
5004        function setMonth(year, month)
5005        {
5006            active_month = month;
5007            active_year = year;
5008
5009            var $modal = $('.mec-modal-result');
5010
5011            // Add Loading Class
5012            if($modal.length === 0) $('.mec-wrap').append('<div class="mec-modal-result"></div>');
5013            $modal.addClass('mec-month-navigator-loading');
5014
5015            $.ajax(
5016            {
5017                url: settings.ajax_url,
5018                data: "action=mec_booking_calendar_load_month&event_id=" + settings.event_id + "&uniqueid=" + settings.id + "&year=" + year + "&month=" + month,
5019                dataType: "json",
5020                type: "post",
5021                success: function(response)
5022                {
5023                    // HTML
5024                    $('#mec_booking_calendar_wrapper'+settings.id).html(response.html);
5025
5026                    // Hide Message
5027                    $('#mec_book_form' + settings.id + ' .mec-ticket-unavailable-spots').addClass('mec-util-hidden');
5028
5029                    // Empty the Date
5030                    $('#mec_book_form_date' + settings.id).val('').trigger('change');
5031
5032                    // Remove loading Class
5033                    $modal.removeClass("mec-month-navigator-loading");
5034
5035                },
5036                error: function()
5037                {
5038                    // Remove loading Class
5039                    $modal.removeClass("mec-month-navigator-loading");
5040                }
5041            });
5042        }
5043
5044        function setListeners()
5045        {
5046            // Add the onclick event
5047            $("#mec_booking_calendar_" + settings.id + " .mec-booking-calendar-date").off('click').on('click', function(e)
5048            {
5049                e.preventDefault();
5050
5051                // Activate
5052                $("#mec_booking_calendar_" + settings.id + " .mec-booking-calendar-date").removeClass('mec-active');
5053                $("#mec_booking_calendar_" + settings.id + " .mec-calendar-day").removeClass('mec-wrap-active');
5054                $(this).addClass('mec-active');
5055                $(this).parents('.mec-calendar-day').addClass('mec-wrap-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            // Add the onclick event on calendar date
5063            $("#mec_booking_calendar_" + settings.id + " .mec-has-one-repeat-in-day").off('click').on('click', function(e)
5064            {
5065                e.preventDefault();
5066
5067                var mec_date_value = $(this).attr('data-timestamp');
5068                // Activate
5069                $("#mec_booking_calendar_" + settings.id + " .mec-has-one-repeat-in-day").removeClass('mec-active');
5070                $("#mec_booking_calendar_" + settings.id + " [data-timestamp=\"" + mec_date_value +"\"]").addClass('mec-active');
5071
5072                // Set Data
5073                var timestamp = $(this).data('timestamp');
5074                $('#mec_book_form_date' + settings.id).val(timestamp).trigger('change');
5075            });
5076
5077            // If day has some time slot
5078            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat .mec-calendar-novel-selected-day").off('click').on('click', function (e)
5079            {
5080                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-wrap-active');
5081                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-active');
5082                $(".mec-has-time-repeat").find('.mec-booking-calendar-date').hide();
5083                $(this).parents(".mec-has-time-repeat").find('.mec-booking-calendar-date').toggle();
5084                $(this).parents(".mec-has-time-repeat").addClass('mec-active');
5085            });
5086
5087            // Find more time in tooltip to set button
5088            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").on('mouseenter', function()
5089            {
5090                var moreTimeFinder = $(this).find(".mec-booking-calendar-date");
5091                if (moreTimeFinder.length >= 1) {
5092                    $(this).find(".mec-booking-tooltip").removeClass("multiple-time");
5093                    $(this).find(".mec-booking-tooltip").addClass("multiple-time");
5094                }
5095                $(this).find(".mec-booking-calendar-date").css("display", "block");
5096            });
5097
5098            $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").off('click').on('click', function()
5099            {
5100                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-wrap-active');
5101                $("#mec_booking_calendar_" + settings.id + " .mec-has-time-repeat").removeClass('mec-active');
5102                $(this).addClass("mec-active");
5103
5104                // Send message under the calendar for multiple time in one day
5105                var sendTimeToMessage   = $(this).find(".multiple-time .mec-booking-calendar-date.mec-active").text();
5106
5107                $(this).parents().eq(3).find(".mec-choosen-time-message").removeClass("disable");
5108                $(this).parents().eq(3).find(".mec-choosen-time-message .mec-choosen-time").empty();
5109                $(this).parents().eq(3).find(".mec-choosen-time-message .mec-choosen-time").append(sendTimeToMessage);
5110            });
5111
5112        }
5113    };
5114}(jQuery));
5115
5116// Booking Shortcode Scripts
5117jQuery(document).ready(function () {
5118    if (jQuery('.mec-booking-shortcode').length < 0) {
5119        return;
5120    }
5121    // Events
5122    if (jQuery().niceSelect) {
5123        jQuery('.mec-booking-shortcode').find('.mec-book-first').find('select').niceSelect();
5124    }
5125});

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.