PageSourceSearch

https://www.mortgagestrategy.co.uk/content/plugins/modern-events-c…/js/frontend.js?ver=5.17.6-1790808976

js mortgagestrategy.co.uk collected 2026-10-02 05:32:15 UTC 219,912 bytes, 5,165 lines download raw bytes

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

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.