///
///
///
$(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'));
}
}
});
}