(function () {
'use strict'
const $html = document.getElementsByTagName("html")[0],
$body = document.getElementsByTagName("body")[0];
let ua = window.navigator.userAgent,
isMobile = false,
ms_edge = false,
isiPhone = false,
isiPad = false,
isIOS = false,
isAndroid = false,
$admin_bar = document.getElementById('wpadminbar'),
isSafari = false,
hasTouch = false;
if (ua.indexOf("Edge") > -1) {
ms_edge = true;
$html.classList.add("ms_edge");
}
function isTouchDevice() {
return (('ontouchstart' in window) ||
(navigator.maxTouchPoints > 0) ||
(navigator.msMaxTouchPoints > 0));
}
const checkTouch = isTouchDevice();
if(checkTouch){
hasTouch = true;
$html.classList.add('touch-enabled');
}
const deviceAgent = navigator.userAgent.toLowerCase();
isMobile = deviceAgent.match(/(iphone|ipod|ipad|android|iemobile)/);
if (deviceAgent.match(/(iphone|ipod)/)) {
$html.classList.add('iphone');
isiPhone = true;
}
if (deviceAgent.match(/(ipad)/)) {
$html.classList.add('ipad');
isiPad = true;
}
if (deviceAgent.match(/(iphone|ipod|ipad)/)) {
$html.classList.add('ios');
isIOS = true;
}
if (deviceAgent.match(/(android)/)) {
$html.classList.add('android');
isAndroid = true;
}
if (navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent) {
$html.classList.add('safari');
isSafari = true;
}
backToTop();
document.addEventListener('scroll',function(e) {
backToTop();
});
var h_sticky = 200;
function backToTop() {
if (window.pageYOffset > h_sticky) {
$html.classList.remove('attop');
} else {
$html.classList.add('attop');
}
}
document.getElementById('back-top').onclick = function getTop(e) {
e.preventDefault();
window.scrollTo(0,0);
}
const slugify = str => str
.toLowerCase()
.trim()
.replace(/[^\w\s-]/g, '')
.replace(/[\s_-]+/g, '-')
.replace(/^-+|-+$/g, '');
var onpagelinks = document.querySelectorAll('a[href^="#"]:not(.custom-toc-link)');
for (var i = 0, len = onpagelinks.length; i < len; i++) {
onpagelinks[i].addEventListener("click", function(e) {
e.preventDefault();
var id = this.getAttribute("href");
id = id.replace("#", "");
if(id != ''){
var yOffset = -95;
var element = document.getElementById(id);
if (typeof(element) != 'undefined' && element != null){
var y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
});
}
var popmakelinks = document.querySelectorAll('a.popmake');
for (var i = 0, len = popmakelinks.length; i < len; i++) {
popmakelinks[i].addEventListener("click", function(e) {
e.preventDefault();
e.stopPropagation();
var id = this.getAttribute("data-modal");
var element = document.getElementById(id);
if (typeof(element) != 'undefined' && element != null){
popMake(id);
element.focus();
}
});
}
var subtoc = document.querySelectorAll('.sub-toc');
for (var i = 0, len = subtoc.length; i < len; i++) {
let toclist = subtoc[i].querySelectorAll('.ez-toc-list');
getNextToc(subtoc[i], toclist[0], i);
}
function getNextToc(element, inilist, i) {
if (typeof(element) != 'undefined' && element != null){
let nextelm = element.nextElementSibling;
if(nextelm && nextelm.tagName && nextelm.tagName.toLowerCase() != 'h2'){
if(nextelm.tagName && nextelm.tagName.toLowerCase() == 'h3'){
let htext = nextelm.textContent;
let hslug = slugify(htext);
nextelm.classList.add('toc-made');
let org_html = nextelm.innerHTML;
let new_html = "" + org_html + "" ;
nextelm.innerHTML = new_html;
let li = document.createElement("li");
li.classList.add('ez-toc-page-1');
let makelink = ""+ htext +""
li.innerHTML = makelink;
inilist.append(li);
if(inilist){
inilist.classList.add('generated');
}
}
getNextToc(nextelm, inilist, i);
} else {
return;
}
}
}
var toclinks = document.querySelectorAll('.custom-toc-link');
for (var i = 0, len = toclinks.length; i < len; i++) {
toclinks[i].addEventListener("click", function(e) {
e.preventDefault();
var id = this.getAttribute("href");
id = id.replace("#", "");
if(id != ''){
var element = document.getElementById(id);
if (typeof(element) != 'undefined' && element != null){
element.scrollIntoView({behavior: "smooth"});
}
}
});
}
var closecta = document.querySelectorAll('.cta-pop');
for (var i = 0, len = closecta.length; i < len; i++) {
closecta[i].addEventListener("click", function(e) {
//e.preventDefault();
var inmod = this.getElementsByClassName('cta-pop-in'),
closex = this.getElementsByClassName('close-ctapop'),
secclose = this.getElementsByClassName('close-sec');
if (typeof(inmod) != 'undefined' && inmod != null){
if (inmod[0].contains(e.target) && !closex[0].contains(e.target) && !secclose[0].contains(e.target)){
//alert('clicked inside + not close btn');
} else{
//alert('clicked out or close btn');
e.preventDefault();
$body.classList.remove("ctaover");
this.classList.add('d-none');
}
}
});
trapFocus(closecta[i]);
}
function trapFocus(element) {
var focusableEls = element.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');
var firstFocusableEl = focusableEls[0];
var lastFocusableEl = focusableEls[focusableEls.length - 1];
var KEYCODE_TAB = 9;
element.addEventListener('keydown', function(e) {
var isTabPressed = (e.key === 'Tab' || e.keyCode === KEYCODE_TAB);
if (!isTabPressed) {
return;
}
if ( e.shiftKey ) /* shift + tab */ {
if (document.activeElement === firstFocusableEl) {
lastFocusableEl.focus();
e.preventDefault();
}
} else /* tab */ {
if (document.activeElement === lastFocusableEl) {
firstFocusableEl.focus();
e.preventDefault();
}
}
});
}
var catnav = document.querySelectorAll('.trigg-nav');
for (var i = 0, len = catnav.length; i < len; i++) {
catnav[i].addEventListener("click", function(e) {
e.preventDefault();
var catwrap = this.parentElement,
cattrig = catwrap.getElementsByClassName('trigg-nav-inn');
if (typeof(cattrig) != 'undefined' && cattrig != null){
cattrig[0].classList.toggle("active");
}
});
}
var footacc = document.querySelectorAll('.footer-row .widget > p');
for (var i = 0, len = footacc.length; i < len; i++) {
footacc[i].addEventListener("click", function(e) {
e.preventDefault();
var footacc_wrap = this.parentElement;
if (typeof(footacc_wrap) != 'undefined' && footacc_wrap != null){
footacc_wrap.classList.toggle("active");
}
});
}
var conslink = document.querySelectorAll('.amsive-toggle-consent a');
for (var i = 0, len = conslink.length; i < len; i++) {
conslink[i].addEventListener("click", function(e) {
e.preventDefault();
var reallTrigg = document.getElementById("ot-sdk-btn");
if (typeof(reallTrigg) != 'undefined' && reallTrigg != null){
reallTrigg.click();
}
});
}
var fadedlink = document.querySelectorAll('.toggle-fadded');
for (var i = 0, len = fadedlink.length; i < len; i++) {
fadedlink[i].addEventListener("click", function(e) {
e.preventDefault();
var parentTrigg = this.closest('.fadded');
if (typeof(parentTrigg) != 'undefined' && parentTrigg != null){
parentTrigg.classList.toggle("fadded");
}
});
}
})();
/**
* jquery function to make sibling elements of the specified parent equal height
* @param options
*/
// usage : minHeightClasses('asexc', 'blog-list');
function minHeightClasses($elementClass, $parentClass) {
var elems = null;
var modHeightLoop = function () {
if (typeof($parentClass) != 'undefined' && $parentClass != null){
var parents = document.getElementsByClassName($parentClass);
if(parents.length){
for (var i = 0; i < parents.length; i++) {
elems = parents[i].getElementsByClassName($elementClass);
modHeightFix(elems);
}
}
} else {
elems = document.getElementsByClassName($elementClass);
modHeightFix(elems);
}
}
function modHeightFix(elems) {
var minHeight = -1;
if(elems && elems.length){
for (var i = 0; i < elems.length; i++) {
elems[i].style.minHeight = null;
minHeight = minHeight > elems[i].offsetHeight ? minHeight : elems[i].offsetHeight;
}
for (var i = 0; i < elems.length; i++) {
elems[i].style.minHeight = minHeight + "px";
elems[i].classList.add("eq-heights-active");
}
}
}
window.onload = modHeightLoop();
window.addEventListener("resize", modHeightLoop, false);
window.addEventListener("orientationchange", modHeightLoop, false);
};
function popMake($blockid){
var modal = document.getElementById($blockid);
if (typeof(modal) != 'undefined' && modal != null){
$body.classList.add("ctaover");
modal.classList.remove('d-none');
}
}
function newsletterPrecheck(cform) {
var f = cform.getElementsByClassName('gform-body');
var m = document.getElementById("news-err-w");
if (m) {
m.remove();
}
var error_arr = [];
var inputs = cform.querySelectorAll('.gfield_contains_required *[aria-required="true"]');
if(inputs && inputs.length){
for (var i = 0; i < inputs.length; i++) {
var inpVal = inputs[i].value;
if(inpVal != "" && inpVal != 'undefined' && inpVal != null){
if (!inputs[i].checkValidity()) {
error_arr.push(inputs[i].validationMessage);
}
} else {
error_arr.push('Please fill required fields ');
}
}
}
//console.log(error_arr);
if (typeof error_arr !== 'undefined' && error_arr.length > 0) {
var unique = error_arr.filter((v, i, a) => a.indexOf(v) === i);
let msg = error_arr.join("
");
generateErrorResponse(msg, f[0], false);
} else {
var formData = new FormData(cform);
cform.classList.add("amsive_processing");
var fID = cform.id;
if (fID) {
fidout = fID;
} else {
fidout = '';
}
var formProps = Object.fromEntries(formData);
var data = JSON.stringify(formProps);
fetch(ajax.url, {
method: 'POST',
body: 'action=purejs_gf&fid='+fidout+'&data='+data,
headers: {
'Accept': 'application/x-www-form-urlencoded; charset=UTF-8',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).then((response) => {
if (response.status >= 200 && response.status < 400) {
//console.log("Post successfully created!");
}
return response.json()
}).then((data) => {
//console.log(data);
if(data.is_valid){
cform.closest(".loadform").innerHTML = data.confirmation_message;
} else {
//console.log('data');
cform.classList.remove("amsive_processing");
var errors = data.validation_messages;
for (const [key, value] of Object.entries(errors)) {
error_arr.push(value);
}
let msg = error_arr.join("
");
generateErrorResponse(msg, f[0], true);
}
}).catch((error) => {
//console.log('error');
})
}
}
function generateErrorResponse(msg, target, replace){
var d = document.createElement("div"),
w = document.createElement("h2"),
p = document.createElement("span"),
b = document.createElement("span");
d.classList.add("gform_validation_errors"),
w.classList.add("gform_submission_error", "hide_summary", "text-start"),
p.classList.add("gform-icon", "gform-icon--close"),
d.id = "news-err-w",
b.id = "news-err",
d.appendChild(w),
w.appendChild(p),
w.appendChild(b);
target.prepend(d);
b.innerHTML = msg;
}
;
document.addEventListener("DOMContentLoaded", onReady, false);
var Tooltip = {
create: function(elm) {
elm_edges = elm.getBoundingClientRect(); // relative to the viewport
//tooltip_text = document.createTextNode(elm.getAttribute('data-tooltip'));
//tooltip.appendChild(tooltip_text);
tooltip = elm.querySelector('.tooltip-container');
// Remove no-display + set the correct classname based on the position
// of the elm.
//console.log(elm_edges);
if (elm_edges.left > (window.innerWidth /2)) {
tooltip.className ='tooltip-container tooltip-left';
} else if ((elm_edges.left + (elm_edges.width / 2)) < 100) {
tooltip.className = 'tooltip-container tooltip-right';
} else {
tooltip.className = 'tooltip-container tooltip-center';
}
},
position: function(elm) {
tooltip = elm.querySelector('.tooltip-container');
var elm_top = elm_edges.top + elm_edges.height + 10; // 10 = arrow height
// position tooltip on the left side of the elm.
// 220 = the max width + arrow width of the tooltip.
if (elm_edges.left > (window.innerWidth /2)) {
tooltip.style.right = (window.innerWidth - elm_edges.left + 20) + 'px';
} else if ((elm_edges.left + (elm_edges.width / 2)) > 100) {
// position tooltip on the right side of the elm.
tooltip.style.left = (elm_edges.left + elm_edges.width + 20) + 'px';
} else {
// Position the toolbox in the center of the elm.
var centered = (elm_edges.left + (elm_edges.width / 2)) - (tooltip.offsetWidth / 2);
tooltip.style.left = centered + 'px';
}
if (elm_edges.top > (window.innerHeight /2)) {
tooltip.style.bottom = (window.innerHeight - elm_top )+ elm_edges.height + 'px';
} else {
tooltip.style.top = elm_top + 'px';
}
},
};
function showTooltip(evt) {
if(evt.type == "keydown" && evt.keyCode != 13) {
return;
}
var item = Object.create(Tooltip);
item.create(evt.currentTarget);
item.position(evt.currentTarget);
}
function hideTooltip() {
var tooltip_active = document.querySelectorAll('.tooltip-container');
for (var i = 0, len = tooltip_active.length; i < len; i++) {
tooltip_active[i].className = 'tooltip-container no-display';
tooltip_active[i].removeAttribute('style');
}
}
function onReady() {
var tooltip_elms = document.querySelectorAll('.amsive-tooltip');
for (var i = 0, len = tooltip_elms.length; i < len; i++) {
elm = tooltip_elms[i];
elm.addEventListener('click', showTooltip , false);
elm.addEventListener('keydown', showTooltip , false);
elm.addEventListener('blur', hideTooltip, false);
document.addEventListener('scroll', hideTooltip, false);
}
}
;