File: /var/www/tana/frontend/build/assets/scripts/app.min.js
(function() {
/**
* Returns a function, that, as long as it continues to be invoked, will not
* be triggered. The function will be called after it stops being called for
* N milliseconds. If `immediate` is passed, trigger the function on the
* leading edge, instead of the trailing.
* @param {Function} func - Function to be debounced.
* @param {Number} wait - Debounce time in milliseconds.
* @param {Boolean} immediate - Trigger the function on the leading edge if true.
*/
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this;
var args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
/**
* Custom easing function.
* @param {number} pos
*/
function easeOutCubic(pos) {
return Math.pow(pos - 1, 3) + 1;
}
/**
*
* @param {HTMLElement} element - Element from which classes will be removed
* @param {string} prefix - Class prefix that is used to search for specific classes. For example 'theme' will remove all classes that start with theme (theme-one, theme-blue etc.).
*/
function removeClassesWithPrefix(element, prefix) {
var classes = element.className.split(' ').filter(function(c) {
return c.lastIndexOf(prefix, 0) !== 0;
});
element.className = classes.join(' ').trim();
}
function findGetParameter(parameterName) {
var result = null,
tmp = [];
location.search
.substr(1)
.split('&')
.forEach(function(item) {
tmp = item.split('=');
if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
});
return result;
}
function checkDomain(url) {
if (url.indexOf('//') === 0) {
url = window.location.protocol + url;
}
return url
.toLowerCase()
.replace(/([a-z])?:\/\//, '$1')
.split('/')[0];
};
function isUrlExternal(url) {
return (url.indexOf(':') > -1 || url.indexOf('//') > -1) && checkDomain(window.location.href) !== checkDomain(url);
};
function getRandomIntInclusive(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min; //The maximum is inclusive and the minimum is inclusive
}
// CSS used for one page scroll, needs to only be injected when needed otherwise it kills scrolling on other pages because of overflow hiding
var pageScrollCSS =
".onepage-wrapper,.onepage-wrapper .section{width:100%;height:100%}body,html{margin:0;overflow:hidden;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;transition:opacity .4s}.onepage-wrapper,body,html{display:block;position:static;padding:0;width:100%;height:100%}.onepage-wrapper{display:block;position:relative;padding:0;-webkit-transform-style:preserve-3d}.onepage-pagination{position:absolute;right:10px;top:50%;z-index:5;list-style:none;margin:0;padding:0}.onepage-pagination li{padding:0;text-align:center}.onepage-pagination li a{padding:10px;width:4px;height:4px;display:block}.onepage-pagination li a:before{content:'';position:absolute;width:4px;height:4px;background:rgba(0,0,0,.85);border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:10px}.onepage-pagination li a.active:before{width:10px;height:10px;background:0 0;border:1px solid #000;margin-top:-4px;left:8px}.disabled-onepage-scroll,.disabled-onepage-scroll .wrapper{overflow:auto}.disabled-onepage-scroll .onepage-wrapper .section{position:relative!important;top:auto!important;left:auto!important}.disabled-onepage-scroll .onepage-wrapper{-webkit-transform:none!important;-moz-transform:none!important;transform:none!important;-ms-transform:none!important;min-height:100%}.disabled-onepage-scroll .onepage-pagination{display:none}.disabled-onepage-scroll .onepage-wrapper,body.disabled-onepage-scroll,html{position:inherit}";
// Injecting CSS
/**
* Inject CSS `<style>` tag with desired CSS and `id` into the `<head>` element
* @param {string} rule - String of CSS to be injected
* @param {string} id - id for the style node that will be appended.
*/
function injectCSS(rule, id) {
var css = document.createElement('style'); // Creates <style></style>
css.type = 'text/css'; // Specifies the type
css.id = id;
if (css.styleSheet) css.styleSheet.cssText = rule;
// Support for IE
else css.appendChild(document.createTextNode(rule)); // Support for the rest
document.getElementsByTagName('head')[0].appendChild(css); // Specifies where to place the css
}
var handleMenuToggle = function() {
if (!document.body.classList.contains('menu-open')) {
document.body.classList.add('menu-open');
} else {
document.body.classList.remove('menu-open');
}
};
$('body').on('click', '#menuToggle', handleMenuToggle);
// Onepage scroll
function initOnepageScroll() {
var $scrolledPages = $('.scrolled-pages__container');
if ($scrolledPages.length) {
injectCSS(pageScrollCSS, 'pageScrollCSS'); // maybe not needed now with some new tweaks
var body = document.body;
var navbar = document.querySelector('.navbar');
var sliderOptions = {
sectionContainer: '.scrolled-pages__page',
pagination: false,
animationTime: 600,
ease: 'linear',
loop: false,
responsiveFallback: 768,
};
$scrolledPages.onepage_scroll(sliderOptions);
}
}
initOnepageScroll();
function subpageOpen() {
if (!pageBody.classList.contains('secondary-page-open')) {
pageBody.classList.add('secondary-page-open');
document.getElementById('secondaryPage').scrollTop = 0;
}
if ($('.scrolled-pages__container').length && window.innerWidth > 768) {
$('.scrolled-pages__container').revertToNativeScroll();
}
}
function tertiarySubpageOpen() {
if (!pageBody.classList.contains('tertiary-page-open')) {
pageBody.classList.add('tertiary-page-open');
document.getElementById('tertiaryPage').scrollTop = 0;
}
if ($('.scrolled-pages__container').length && window.innerWidth > 768) {
$('.scrolled-pages__container').revertToNativeScroll();
}
}
function getSecondaryPageHTML(secondaryPageData, additionalClass) {
additionalClass = additionalClass || '';
var secondaryPageHTML = '';
var secondaryPageImage = '';
var secondaryPageLeadText = '';
var articlePublishDate = '';
if (secondaryPageData.image) {
secondaryPageImage += '<div class="col-xs-12">' + '<img src="' + secondaryPageData.image + '" alt="" class="secondary-page__image">' + '</div>';
}
if (secondaryPageData.h_text) {
secondaryPageLeadText = '<div class="col-xs-12 col-sm-8">' + '<div class="secondary-page__post-lead">' + secondaryPageData.h_text + '</div>' + '</div>';
}
if (secondaryPageData.publish_date) {
articlePublishDate = '<div class="col-xs-12">' + '<div class="secondary-page__date">' + secondaryPageData.publish_date + '</div>' + '</div>';
}
secondaryPageHTML +=
'<div class="container">' +
'<div class="row">' +
'<div class="col-xs-12 col-sm-8 col-sm-offset-2 col-lg-6 col-lg-offset-3">' +
'<div class="row">' +
articlePublishDate +
'<div class="col-xs-12">' +
'<h2 class="secondary-page__title">' +
secondaryPageData.title +
'</h2>' +
'</div>' +
secondaryPageImage +
'<div class="col-xs-12">' +
'<div class="secondary-page__post">' +
'<div class="row">' +
secondaryPageLeadText +
'<div class="col-xs-12">' +
'<div class="secondary-page__post-content ' +
additionalClass +
'">' +
secondaryPageData.text +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="circle-part circle-part--bottom">' +
'<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 1440 345"><path fill="#1428aa" d="M719.5 345.4A1056 1056 0 0 0 1440 61.8V0c-184.3 185.5-439.1 300.4-720 300.4S184.3 185.5 0 0v62.8a1056.2 1056.2 0 0 0 719.5 282.6z"/></svg>' +
'</div>';
return secondaryPageHTML;
}
function getRandomPageImageURL(imagesSource) {
if (imagesSource && imagesSource.length > 0) {
var randomNumber = getRandomIntInclusive(0, imagesSource.length - 1);
return imagesSource[randomNumber].url;
}
return null;
}
var handleSubpageOpening = function(event) {
event.preventDefault();
var clickedElement = event.currentTarget;
var subpageURL = clickedElement.href;
var subpage = document.getElementById('secondaryPage');
var subpageContent = subpage.querySelector('.secondary-page__content');
$.ajax(subpageURL).then(function(response) {
var tempElement = document.createElement('div');
tempElement.innerHTML = response;
var fetchedPageContent = tempElement.querySelector('.secondary-page__content');
var subpageImagesData = JSON.parse(fetchedPageContent.getAttribute('data-subpage-images'));
var imageSource = getRandomPageImageURL(subpageImagesData);
subpageContent.innerHTML = fetchedPageContent.innerHTML;
if (imageSource) {
subpageContent.querySelector('.secondary-page__image').src = imageSource
}
subpageOpen();
window.history.pushState({}, '', subpageURL);
})
};
var handleTertiaryOpening = function(event) {
var clickedElement = event.currentTarget;
var clickedUrl = clickedElement.href;
if (!isUrlExternal(clickedUrl)) {
event.preventDefault();
$.ajax(clickedUrl).then(function(response) {
var tempContent = document.createElement('div');
tempContent.innerHTML = response;
var fetchedPageContent = tempContent.querySelector('.secondary-page__content');
var tertiarySubpageContent = document.getElementById('tertiaryPage').querySelector('.tertiary-page__content');
tertiarySubpageContent.innerHTML = fetchedPageContent.innerHTML;
tertiarySubpageOpen();
});
}
};
$('body').on('click', '[data-open-subpage]', handleSubpageOpening);
$('body').on('click', '.special-editor-content a', handleTertiaryOpening);
var handleSubpageClosing = function() {
if (document.body.classList.contains('secondary-page-open')) {
document.body.classList.remove('secondary-page-open');
window.history.back();
}
if (window.innerWidth > 768 && $('.scrolled-pages__container').length && $('.scrolled-pages__container').reinitOnepageScroll) {
$('.scrolled-pages__container').reinitOnepageScroll();
}
};
var handleTertiaryClosing = function() {
if (document.body.classList.contains('tertiary-page-open')) {
document.body.classList.remove('tertiary-page-open');
}
if (window.innerWidth > 768 && $('.scrolled-pages__container').length && $('.scrolled-pages__container').reinitOnepageScroll) {
$('.scrolled-pages__container').reinitOnepageScroll();
}
};
$('body').on('click', '.secondary-page__close', handleSubpageClosing);
$('body').on('click', '.tertiary-page__close', handleTertiaryClosing);
// Full Page switching transition
var pageBody = document.body;
function addTransitionCircle() {
var transitionCircleHTML = '<div class="transition-circle">' + '<div class="transition-circle__inner-circle">' + '</div>' + '</div>';
return transitionCircleHTML;
}
function removeTransitionCircles() {
var transitionCircle = document.querySelectorAll('.transition-circle');
transitionCircle.forEach(function(singleCircle) {
singleCircle.parentNode.removeChild(singleCircle);
});
}
function getNavbarHTML() {
return document.getElementById('navbar').outerHTML;
}
var handleNavLinkClick = function(event) {
var windowWidth = window.innerWidth;
var clickedNavItem = event.currentTarget;
if (windowWidth < 768) return;
var clickedPageID = parseInt(clickedNavItem.getAttribute('data-target'), 10);
// If clicked page is the one user is already on, don't do anything.
if (clickedPageID === parseInt(pageBody.id) || pageBody.classList.contains('page-transition-starting')) {
event.preventDefault();
return;
}
event.preventDefault();
var pageHref = clickedNavItem.href;
if ($('.scrolled-pages__container').revertToNativeScroll) {
$('.scrolled-pages__container').revertToNativeScroll();
}
var visibleWrapper = document.querySelector('.content-wrapper');
var invisibleWrapper = document.querySelector('.content-wrapper-second');
var newPageHTML = '';
var newPageTheme = '';
visibleWrapper.insertAdjacentHTML('beforeend', addTransitionCircle());
invisibleWrapper.insertAdjacentHTML('beforeend', addTransitionCircle());
setTimeout(function() {
pageBody.classList.add('page-transition-starting');
}, 100);
var requestData = {
action: 'tana_pages_ajax',
'page-id': clickedPageID,
};
var ajaxSettings = {
async: true,
url: ajaxurl,
data: requestData,
method: 'POST',
dataType: 'json',
};
$.ajax(ajaxSettings).done(function(pageResult) {
pageResult = pageResult[0];
newPageHTML += getNavbarHTML();
newPageHTML += pageResult.content;
newPageTheme = pageResult.theme;
currentArticlePage = 1;
invisibleWrapper.insertAdjacentHTML('afterbegin', newPageHTML);
pageBody.id = clickedPageID;
invisibleWrapper.querySelector('.navbar-nav__item--active') &&
invisibleWrapper.querySelector('.navbar-nav__item--active').classList.remove('navbar-nav__item--active');
invisibleWrapper.querySelector('.navbar-nav__item a[data-target="' + clickedPageID + '"]').parentNode.classList.add('navbar-nav__item--active');
invisibleWrapper.style.display = 'block';
removeClassesWithPrefix(pageBody, 'theme');
removeClassesWithPrefix(invisibleWrapper, 'theme');
setTimeout(function() {
visibleWrapper.style.transform = 'translateX(-100%)';
invisibleWrapper.style.transform = 'translateX(0)';
if (newPageTheme != 'none') {
invisibleWrapper.classList.add('theme-' + newPageTheme);
}
// Removes onepage scroll CSS if it exists on page because it messes with other pages and should only be used on homepage.
document.getElementById('pageScrollCSS') && document.getElementById('pageScrollCSS').parentNode.removeChild(document.getElementById('pageScrollCSS'));
window.history.pushState('', '', pageHref);
document.title = clickedNavItem.textContent + ' | Tana';
setTimeout(function() {
visibleWrapper.innerHTML = '';
fadeElements();
if (newPageTheme === 'none') {
initOnepageScroll();
initSliders();
}
if (window.innerWidth >= 768) {
activateCategorySticky();
}
if (newPageTheme === 'gray-alternate') {
contactsPageFullCircle();
}
}, 400);
setTimeout(function() {
pageBody.classList.remove('page-transition-starting');
visibleWrapper.style.display = 'none';
setTimeout(function() {
visibleWrapper.classList.add('content-wrapper-second');
visibleWrapper.classList.remove('content-wrapper');
invisibleWrapper.classList.add('content-wrapper');
invisibleWrapper.classList.remove('content-wrapper-second');
removeClassesWithPrefix(pageBody, 'theme');
if (newPageTheme != null) {
pageBody.classList.add('theme-' + newPageTheme);
}
visibleWrapper.style = '';
invisibleWrapper.style = '';
removeTransitionCircles();
}, 400);
}, 800);
}, 1200);
});
};
$('body').on('click', '.navbar-nav__item a', handleNavLinkClick);
// Position: sticky stuff
var stickyElementInstance = null;
function activateCategorySticky() {
var stickyElement = document.querySelectorAll('.sticky-follow');
Stickyfill.add(stickyElement);
// Add special class on position sticky items when they get "stuck"
var stickyScrollHandler = debounce(function() {
var stickyElements = document.getElementsByClassName('sticky-follow');
var scrollY = window.pageYOffset;
for (var i = stickyElements.length - 1; i >= 0; i--) {
if (scrollY >= stickyElements[i].getAttribute('data-top')) stickyElements[i].classList.add('js-is-sticky');
else {
stickyElements[i].classList.remove('js-is-sticky');
}
}
}, 5);
window.addEventListener('scroll', stickyScrollHandler);
var stickyElements = document.getElementsByClassName('sticky-follow');
for (var i = stickyElements.length - 1; i >= 0; i--) {
stickyElements[i].setAttribute('data-top', stickyElements[i].offsetTop);
Stickyfill.add(stickyElements[i]);
}
}
var handleStickyOnResize = debounce(function() {
var windowWidth = window.innerWidth;
if (windowWidth >= 768 && !stickyElementInstance) {
activateCategorySticky();
} else if (windowWidth < 768) {
if (stickyElementInstance && stickyElementInstance.removeAll) {
stickyElementInstance.removeAll();
stickyElementInstance = null;
}
}
}, 300);
if (window.innerWidth > 768) {
activateCategorySticky();
}
window.addEventListener('resize', handleStickyOnResize);
// Fade containers one after each other //
/**
* Add faded--in class to single element.
* @param {HTMLElement} singleElement - Single element to fade in.
*/
function fadeSingleIn(singleElement) {
singleElement.classList.add('faded--in');
}
/**
* Fade in array of elements.
* @param {Array} allElements - Array of elements to fade. Best to send result of document.getElementsByClassName here (or any other DOM method like that)
* @param {*} delay - Delay in miliseconds (ms) between each fade. Default 200.
*/
function fadeAllIn(allElements, delay) {
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
var index = 0;
var i = 0;
for (i = 0; i < allElements.length; i += 1) {
setTimeout(function() {
fadeSingleIn(allElements[index]);
index += 1;
}, delay * (i + 1));
}
}
function fadeElements() {
var elementsToFade = document.getElementsByClassName('faded');
if (elementsToFade.length) {
fadeAllIn(elementsToFade);
}
}
/**
* Set the fill of the SVG circle. 0 is empty, 100 is full.
* @param {number} percent - Circle percentage fill, passed without '%'.
* @param {number} circumference - Circle circumference.
*/
function setProgress(percent, circumference) {
var offset = circumference - (percent / 100) * circumference;
return offset;
}
function contactsPageFullCircle() {
document.getElementById('fullPageCircle').innerHTML = '';
var draw = SVG('fullPageCircle').size('100%', '100%');
draw.viewbox(0, 0, 100, 100);
var circle = draw.circle(1000).attr({
fill: 'transparent',
stroke: 'transparent',
'stroke-width': '3.5px',
r: '68%',
cx: '50%',
cy: '50%',
});
setTimeout(function() {
var circleElement = circle.node;
var circleRadius = circleElement.r.baseVal.value;
var circleCircumference = circleRadius * 2 * Math.PI;
circleElement.setAttribute('preserveAspectRatio', 'none');
circle.rotate(-90, 50, 50);
circle.attr({
'stroke-dasharray': circleCircumference + ' ' + circleCircumference,
'stroke-dashoffset': circleCircumference,
stroke: '#1428aa',
});
circle.attr({
'stroke-dashoffset': setProgress(1, circleCircumference),
});
circle.animate(1500, easeOutCubic).attr({
'stroke-dashoffset': setProgress(100, circleCircumference),
});
}, 200);
}
// For contacts page only
if (window.innerWidth > 992 && pageBody.classList.contains('theme-gray-alternate')) {
contactsPageFullCircle();
}
var handleContactCircleOnResize = debounce(function() {
if (document.getElementById('fullPageCircle') && !document.getElementById('fullPageCircle').querySelector('svg') && window.innerWidth > 992) {
contactsPageFullCircle();
}
}, 200);
window.addEventListener('resize', handleContactCircleOnResize);
function getLinksHTML(linksData) {
var linksHTML = '';
var itemCounter = 1;
linksData.forEach(function(singleItem) {
if (itemCounter === 1) {
linksHTML += '<div class="col-md-4">';
}
linksHTML +=
'<div class="links-grid__single faded">' +
'<h4 class="links-grid__single-title">' +
singleItem.title +
'</h4>' +
'<ul class="list list--unstyled links-grid__single-list">';
singleItem.links_2.forEach(function(singleItemLinks) {
linksHTML += '<li>' + '<a href="' + singleItemLinks.link_url + '">' + singleItemLinks.link_title + '</a>' + '</li>';
});
linksHTML += '</ul>' + '</div>';
if (itemCounter === 3) {
linksHTML += '</div>';
itemCounter = 1;
} else {
itemCounter += 1;
}
});
return linksHTML;
}
var currentArticlePage = 1;
var activeType = 'post';
var activeCategory = null;
var activeCategoryName = 'all';
// Fetching articles
var handleCategoryLinkClick = function(event) {
event.preventDefault();
var clickedLink = event.currentTarget;
if (clickedLink.classList.contains('list-categories__item--active')) return;
var resultsContainer = document.querySelector('.results-container');
var requestData = {};
var ajaxSettings = {
async: true,
url: ajaxurl,
method: 'POST',
data: requestData,
};
currentArticlePage = 1;
if (!clickedLink.hasAttribute('data-type')) {
// All articles
requestData.action = 'tana_posts_load_more';
requestData.paged = 1;
requestData['page-id'] = pageBody.id;
$.ajax(ajaxSettings).done(function(result) {
activeType = 'post';
activeCategory = null;
activeCategoryName = 'all';
if (resultsContainer) {
resultsContainer.querySelector('.row').innerHTML = result;
}
window.history.pushState({}, '', window.location.origin + '/insights-resources/');
fadeElements();
});
} else {
var clickedType = clickedLink.getAttribute('data-type');
var perPage = 9;
if (clickedType === 'links') {
requestData['page-id'] = pageBody.id;
requestData['data-subpage-type'] = 'links-grid';
requestData.action = 'tana_secondary_pages_ajax';
$.ajax(ajaxSettings).done(function(result) {
result = result[0];
activeType = 'links';
if (resultsContainer) {
resultsContainer.querySelector('.row').innerHTML = getLinksHTML(result);
}
window.history.pushState({}, '', window.location.origin + '/insights-resources/?category=links');
fadeElements();
});
} else {
requestData.action = 'tana_posts_category_load_more';
requestData.category = clickedType;
requestData.offset = 0;
requestData.ppp = perPage;
$.ajax(ajaxSettings).done(function(result) {
activeType = 'post';
activeCategory = clickedType;
activeCategoryName = clickedLink.textContent.toLowerCase();
if (resultsContainer) {
resultsContainer.querySelector('.row').innerHTML = result;
}
window.history.pushState({}, '', window.location.origin + '/insights-resources/?category=' + encodeURI(clickedLink.textContent.toLowerCase()));
fadeElements();
});
}
}
document.getElementsByClassName('list-categories__item--active')[0] &&
document.getElementsByClassName('list-categories__item--active')[0].classList.remove('list-categories__item--active');
clickedLink.classList.add('list-categories__item--active');
infiniteScrollDone = true;
};
$('body').on('click', '.list-categories__item', handleCategoryLinkClick);
var infiniteScrollDone = true;
var contentWrapper = document.getElementsByClassName('content-wrapper')[0];
var handleArticlesInfiniteScroll = debounce(function() {
if (!resultsContainer) return;
var isNearBottom = window.innerHeight + window.pageYOffset + 100 >= contentWrapper.scrollHeight - 2;
if (isNearBottom && activeType === 'post' && infiniteScrollDone) {
infiniteScrollDone = false;
var perPage = currentArticlePage === 1 ? 9 : 6;
var resultsContainer = document.querySelector('.results-container');
var requestData = {};
if (activeCategory !== null) {
requestData.action = 'tana_posts_category_load_more';
requestData.offset = currentArticlePage * perPage;
requestData.category = activeCategory;
} else {
requestData.action = 'tana_posts_load_more';
requestData.paged = currentArticlePage + 1;
}
var ajaxSettings = {
async: true,
url: ajaxurl,
method: 'POST',
data: requestData,
};
$.ajax(ajaxSettings).done(function(result) {
infiniteScrollDone = true;
currentArticlePage += 1;
if (resultsContainer) {
resultsContainer.querySelector('.row').insertAdjacentHTML('beforeend', result);
}
fadeAllIn(document.querySelectorAll('.faded:not(.faded--in)'), 250);
});
}
}, 50);
window.addEventListener('scroll', handleArticlesInfiniteScroll);
// Homepage slider using simple-slider.js
function initSliders() {
var sliderContainers = document.querySelectorAll('.slider');
sliderContainers.forEach(function(singleSliderContainer) {
var singleSliderInstance = simpleslider.getSlider({
container: singleSliderContainer,
children: singleSliderContainer.querySelectorAll('.slider__image'),
duration: 1,
delay: 3,
unit: '',
prop: 'opacity',
show: 1,
end: 0,
});
singleSliderContainer.classList.add('first-slider-animation-started');
});
}
initSliders();
function routingAbout() {
var subpageLink = findGetParameter('subpage');
if (subpageLink) {
document.querySelector('[data-subpage-type="about"]').click();
}
}
function routingServices() {
var subpageLink = findGetParameter('country');
var subpageLinkServices = findGetParameter('service');
if (subpageLink) {
$('#servicesMap a[data-lowercase="' + subpageLink + '"]').trigger('click');
}
if (subpageLinkServices) {
$('#servicesList [data-service-title="' + subpageLinkServices + '"').trigger('click');
}
}
function routingKnowHow() {
var articlesCategory = findGetParameter('category');
var articleID = findGetParameter('article');
if (articlesCategory) {
document.querySelector('.list-categories__item[data-category-name="' + articlesCategory + '"]').click();
} else {
document.querySelector('.list-categories__item[data-category-name="all"]').click();
}
if (articleID) {
var subpage = document.getElementById('secondaryPage');
var subpageContent = subpage.querySelector('.secondary-page__content');
var subpageContentHTML = '';
var currentPageID = pageBody.id;
var requestData = {
action: 'tana_secondary_pages_ajax',
'data-subpage-type': 'article',
'page-id': currentPageID,
'article-id': articleID,
};
var ajaxSettings = {
async: true,
url: ajaxurl,
method: 'POST',
data: requestData,
dataType: 'json',
};
$.ajax(ajaxSettings).done(function(result) {
subpageContentHTML = getSecondaryPageHTML(result[0]);
subpageContent.innerHTML = subpageContentHTML;
subpageOpen();
if (!findGetParameter('category') || !findGetParameter('article')) {
window.history.pushState(
{},
'',
window.location.origin + window.location.pathname + '?category=' + encodeURI(activeCategoryName) + '&article=' + articleID
);
}
});
}
}
function routingContacts() {
var subpageLink = findGetParameter('subpage');
if (subpageLink) {
document.querySelector('[data-subpage-type="team"]').click();
}
}
var rootLink = window.location.origin;
function handlePageRouting(event) {
var pageLocation = window.location.pathname;
switch (pageLocation) {
case '/':
routingAbout(event);
break;
case '/services/':
routingServices(event);
break;
case '/insights-resources/':
routingKnowHow(event);
break;
case '/contacts/':
routingContacts(event);
break;
default:
break;
}
handleSubpageClosing();
}
function setSubpageImageOnLoad() {
var secondaryContentElement = document.getElementsByClassName('secondary-page__content')[0];
if (secondaryContentElement && secondaryContentElement.hasAttribute('data-subpage-images')) {
var imagesSource = JSON.parse(secondaryContentElement.getAttribute('data-subpage-images'));
var randomImageUrl = getRandomPageImageURL(imagesSource);
if (randomImageUrl) {
document.getElementsByClassName('secondary-page__image')[0].src = randomImageUrl;
}
}
}
setSubpageImageOnLoad();
handlePageRouting();
fadeElements();
window.addEventListener('popstate', handlePageRouting);
})();