PageSourceSearch

https://karmadechencholing.eu/wp-content/plugins/modern-events-calendar/assets/js/frontend.js?ver=6.6.0

js karmadechencholing.eu collected 2026-10-10 01:03:19 UTC 246,049 bytes, 5,780 lines download raw bytes

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

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.