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