PageSourceSearch

https://www.chestergolfclub.ca/wp-content/cache/wpfc-minified/8upixbvw/3uqkn.js

js chestergolfclub.ca collected 2026-10-02 13:48:23 UTC 274,499 bytes, 6,638 lines download raw bytes

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

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.