/// /// /// $(document).ready(function () { // set search button tabindex $('.events__top__submit').attr('tabindex', 0); // move result not found to container $('.result_not_found').insertBefore($('.events__content__cards')); // set dropdown if ($('#events-type-dropdown').length > 0) { var eventsTypeDropdown = new Menubutton(document.getElementById('events-type-dropdown')); eventsTypeDropdown.init(); } if ($('#events-date-dropdown').length > 0) { var eventsDateDropdown = new Menubutton(document.getElementById('events-date-dropdown')); eventsDateDropdown.init(); } if ($('#events-date-2-dropdown').length > 0) { var eventsDate2Dropdown = new Menubutton(document.getElementById('events-date-2-dropdown')); eventsDate2Dropdown.init(); } if ($('#events-location-dropdown').length > 0) { var eventsLocationDropdown = new Menubutton(document.getElementById('events-location-dropdown')); eventsLocationDropdown.init(); } // get json data for cards var region = getUrlParameter('region'); var isSearching = false; var totalPageCount; var eventCardJSON; var eventCardTopJSON; var isLoading = false; var nextPage = ''; var eventsCardApi = apiDomain + "/api/events?language=" + htmlLang; var cardTopPage = apiDomain + "/api/highlight-card?type=events&language=" + htmlLang; var totalItemCount; // get templates var normalCard = $('script[data-template="eventCard"]').text().split(/\$\{(.+?)\}/g); var eventCardColor = $('script[data-template="eventCardColor"]').text().split(/\$\{(.+?)\}/g); var eventsCardTop = $('script[data-template="eventsCardTop"]').text().split(/\$\{(.+?)\}/g); closeAllSocial(); // generate the calandars genCalander('events__content', 'eventCard'); // bind keyword input press enter $('.events .events__top__input input').keypress(function (e) { if (e.which == 13) { e.preventDefault(); $('.events__top__submit').click(); } }); // Search events $('.events__top__submit').click(function (e) { eventsTopSubmitClick(e); }); $('.events__top__submit').keydown(function (e) { if (e.keyCode == 13) { eventsTopSubmitClick(e); isKeyboardUser = true; } }); function eventsTopSubmitClick(e) { e.preventDefault(); isSearching = true; isFirstPage = true; // init load more button // $('.case-studies__moreContainer').hide(0) $('.events__more').addClass('hidden'); // add loading and clear all cards $('.events__content__cards').html(''); $('
').appendTo($('.events__content__cards')); var formData = $('#searchEvents').serialize(); getEventCards(eventsCardApi + '&' + formData); } if (typeof region == 'undefined') { region = ''; } setDropdownAndSearch(); //first load getEventCards(eventsCardApi); getEventCardsTop(cardTopPage); //load more news $('.loadMoreButton').click(function () { getEventCards(nextPage); }); // events date type change $('body').on("dropdownChange", function (e, obj) { var eventType = obj.parents('.events__1').find('input').val(); if (obj.parents('.events__top__container').hasClass('events__1')) { if (eventType == '1') { // upcoming $('.events__top__container.upcoming_events').show().find('input').removeAttr('disabled'); $('.events__top__container.past_events').hide().find('input').attr('disabled', 'disabled'); } else { // past $('.events__top__container.upcoming_events').hide().find('input').attr('disabled', 'disabled'); $('.events__top__container.past_events').show().find('input').removeAttr('disabled'); } } }); function setDropdownAndSearch() { if (region != '') { region = decodeURIComponent(region); var obj_1 = $('.events__top__search input[name="region"]').parents('.events__top__container').find('ul li'); obj_1.each(function (index) { if (region == $(this).find('a').attr('data-value')) { obj_1.eq(index).click(); } }); } if (region != '') { // search setTimeout(function () { $('.events__top__submit').click(); }, 500); } } // get json data for cards function getEventCards(currentPage) { if (!isLoading) { isLoading = true; currentPage = currentPage; $.ajax({ url: currentPage }).done(function (data) { // get data eventCardJSON = data._items; nextPage = data._metadata.next; totalItemCount = data._metadata.total_count; // bind data to templates if (totalItemCount <= 0 || typeof nextPage == 'undefined' || typeof eventCardJSON == 'undefined') { $('.result_not_found').addClass('active'); $('.loadMoreButton').addClass('hidden'); $('.events__content__cards .loader').remove(); } else { $('.result_not_found').removeClass('active'); $('.loadMoreButton').removeClass('hidden'); $('.events__content__cards').append(eventCardJSON.map(function (item) { if (item.image != null) { return normalCard.map(render(item)).join(''); } else { return eventCardColor.map(render(item)).join(''); } })); } // display cards loadJSONCards({ cardsToDisplay: 8, cardClass: 'eventCard', loadMoreButtonClass: 'events__more', cardParent: 'events__content__cards', totalCards: totalItemCount }); // load social sharing displaySocial('.events__content', '.eventCard__share', '.eventCard, .eventTop'); if (nextPage == '') { $('.events__more').addClass('hidden'); } templateReplaceAttribute(); cssObjectFit($('.eventCard__image')); isLoading = false; if (isSearching) { isSearching = false; setTimeout(function () { scrollToResults(); }, 100); } setEventsCardTitle(); setWechat(); }); } } function getEventCardsTop(currentPage) { // get json data for cards $.ajax({ url: currentPage }).done(function (data) { // get data eventCardTopJSON = data; // bind data to templates $('.eventCarousell').append(eventCardTopJSON.map(function (item) { return eventsCardTop.map(render(item)).join(''); })); // display // load cards loadAsset('eventTop'); // load images loadSliderImages(); function loadSliderImages() { $('.eventCarousell').waitForImages(function () { $('.eventCarousell').removeClass('hidden'); $('.eventCarousell').closest('.events__inner').find('.loader').remove(); // slider setTimeout(function () { $('.eventCarousell').slick({ prevArrow: "", nextArrow: "", dots: true }).on('beforeChange', function () { // close all social in case that the social share is active in one of the slides closeAllSocial(); }); $('.eventTop.slick-slide').removeAttr('tabindex'); //resetEventsSliderNav(); }, 100); }); } // load social sharing displaySocial('.events__content', '.eventCard__share', '.eventCard, .eventTop'); templateReplaceAttribute(); cssObjectFit($('.eventTop__right')); setEventsCardTopTitle(); setTimeout(function () { setWechat(); }, 100); }); } }); function resetEventsSliderNav() { setInterval(function () { // slide top var slickTextHeader = $(document).find('.events .slick-slide.slick-active .eventTop__text'); if ($(window).width() > 1023) { $('.events .slick-dots').css({ 'left': slickTextHeader.offset().left + 'px' }); } else { $('.events .slick-dots').removeAttr('style'); } }, 5); } function scrollToResults() { var headerHeight = $('#header').outerHeight(true); var breadcrumbsHeight = $('.breadcrumbs').outerHeight(true); var eventsHeader = $('.events__header').outerHeight(true); var eventCarousell = $('.eventCarousell').outerHeight(true); var elementAboveTop = headerHeight + breadcrumbsHeight + eventsHeader + eventCarousell; var bufferHeight; var toPosTop; if ($(window).width() > 1200) { bufferHeight = 60; } else if ($(window).width() > 580 && $(window).width() <= 1200) { bufferHeight = 90; } else if ($(window).width() <= 580) { bufferHeight = 70; } toPosTop = elementAboveTop - bufferHeight; $('html, body').animate({ scrollTop: toPosTop + 'px' }, 800, function () { // set focus to first item if (isKeyboardUser) { isKeyboardUser = false; setTimeout(function () { $('.eventCard:first a:first').focus(); }, 30); } }); } function setEventsCardTopTitle() { $('.eventTop__card').each(function () { $(this).find('.eventTop__link > a').attr('aria-label', $(this).find('.eventTop__text').text()); }); } function setEventsCardTitle() { $('.eventCard').each(function () { $(this).find('.eventCard__link > a').attr('aria-label', $(this).find('.eventCard__text').text()); }); } var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : sParameterName[1]; } } }; function setWechat() { $(document).find('.socialShare__icon .icon-wechat-icon').parent().find('a').click(function (e) { if ($(this).parents('.eventCard').length > 0) { openWechatLightbox(e, $(this), $(this).parents('.eventCard').find('.eventCard__link a').attr('href')); } else { openWechatLightbox(e, $(this), $(this).parents('.slick-slide').find('.eventTop__card .eventTop__link a').attr('href')); } }); $(document).on('keydown', ".socialShare__icon .icon-wechat-icon", function (e) { if ($(this).parents('.eventCard').length > 0) { if (e.keyCode == 13) { openWechatLightbox(e, $(this).parent().find('a'), $(this).parents('.eventCard').find('.eventCard__link a').attr('href')); } } else { if (e.keyCode == 13) { openWechatLightbox(e, $(this).parent().find('a'), $(this).parents('.slick-slide').find('.eventTop__card .eventCard__link a').attr('href')); } } }); }