window.addEventListener("DOMContentLoaded", (event) => { let canonicalTag = document.querySelector('link[rel="canonical"]'); let canonicalURL = canonicalTag ? canonicalTag.getAttribute("href") : window.location.href; let metaTag = document.querySelector('meta[property="og:url"]'); if (!metaTag) { metaTag = document.createElement("meta"); metaTag.setAttribute("property", "og:url"); document.head.appendChild(metaTag); } metaTag.setAttribute("content", canonicalURL); }); $(document).ready(function () { function getReadingTime(content) { return Math.round(content.innerText.trim().split(" ").length / 183); } function getReadingTimeOnEachItem() { $(".insights-cards-list .news-collection-item").each((i, el) => { let href = $(el).find("a").attr("href"); $.ajax({ url: href, success: function (data) { $(data).each((i, element) => { if ($(element).hasClass("body")) { let readingTime = getReadingTime($(element)[0]); $(el).find(".read-time").text(`${readingTime} min read`); $(el).find(".read-time").removeClass("opacity-0"); } }); }, }); }); } if ($(".news-listing-page").length) { window.fsAttributes = window.fsAttributes || []; window.fsAttributes.push([ "cmsload", (listInstances) => { const [listInstance] = listInstances; listInstance.on("renderitems", (renderedItems) => { $("html, body").animate( { scrollTop: $(".news-listing-wrapper")[0].offsetTop }, "slow" ); getReadingTimeOnEachItem(); }); }, ]); getReadingTimeOnEachItem(); } if ($(".date-container .read-time").length) { let readingTime = getReadingTime($(".body")[0]); $(".date-container .read-time").text(`${readingTime} min read`); } $("head").append( $( "" ) ); var sheet = $(""); $("head").append(sheet); $.get( "https://cdn.prod.website-files.com/65363d385688281ce5b016ec/68f60477ff4feb8a86b565fc_globalCss.txt", function (data) { sheet.text(data); setTimeout(() => { $("body").addClass("init"); }, 300); if ($(".home").length) { setTimeout(() => { $("body").addClass("start-anim"); }, 800); } } ); let windowWitdh = $(window).width(); const hash = window.location.hash; if (hash && hash.includes("#") && $(hash).length) { $("body, html").animate( { scrollTop: $(hash).offset().top, }, 1000 ); } else { $("body, html").animate({ scrollTop: 0 }); } if ($(".text-block-18 + a").length) { var anchor = $(".text-block-18 + a").clone(); $(".text-block-18").append(anchor); $(".text-block-18 + a").remove(); } $("[data-append-id]").each(function (i, el) { $(el).attr("href", $(el).attr("href") + $(el).attr("data-append-id")); }); $("[data-link-tab]").each(function (i, el) { $(el).attr( "href", `${$(el).attr("href")}?tab=${$(el).attr("data-link-tab")}` ); }); $(".latest-submenu-dropdown, .resources").each((i, el) => { let href = $(el).find(".header-left-items>div:first-child a").attr("href"); $(el).find(".header-submenu-header").attr("href", href); }); if ($(".news-page .gallery-item").length > 0) { var rightOffset = $(window).width() > 1305 ? $(window).width() - ($(".header-container").offset().left + $(".header-container").outerWidth()) + 19 : 20; $( ".detail-page-gallery .swiper-container .gallery-item:last-child img" ).css("margin-right", rightOffset); } let currYear = new Date().getFullYear(); $(".year-copyright").text(`© ${currYear}`); $(".block-download-white-papper, .resource-body .submit-button").on( "click", function (e) { e.preventDefault(); $(".modal-form").addClass("on"); $("body").addClass("no-scroll"); if ($(".whitepaper-filename").length) { $(".whitepaper-filename").val(`${window.location.pathname}`); } } ); $(".image-icon-close").on("click", function () { $(".modal-form").removeClass("on"); $("body").removeClass("no-scroll"); $("body").removeClass("blur"); }); const search = window.location.search; if (search && search.split("?tab=").length > 0) { let currTab = search.split("?tab=")[1]; $(".tab").each(function (i, el) { if ($(el).data("w-tab")) { if (currTab == $(el).data("w-tab").toLowerCase()) { $(el).trigger("click"); } } if ($(el).data("slug")) { if (currTab == $(el).data("slug").toLowerCase()) { $(el).parent().find("input").prop("checked", true); } } }); } $("select").find("option:first").addClass("placeholder"); if ($(".margin-left .navigation-tag").length) { let observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { let offsetLeft; let padding = (screen.width - 1305) / 2; if ( $(mutation.target).hasClass("w--current") && $(".content-navigation").find($(mutation.target)).index() > 0 ) { offsetLeft = $(mutation.target).offset().left > 0 ? mutation.target.offsetLeft - padding : 0; $(".content-navigation")[0].scrollLeft = offsetLeft; } }); }); $(".margin-left .navigation-tag").each(function (i, el) { el.dataset.index = i; observer.observe(el, { attributes: true, attributeFilter: ["class"], }); }); } function slugify(str) { return String(str) .normalize("NFKD") .replace(/[\u0300-\u036f]/g, "") .trim() .toLowerCase() .replace(/[^a-z0-9 -]/g, "") .replace(/\s+/g, "+") .replace(/-+/g, "-"); } $(".header-search-btn").on("click", function () { let query = $(".search-input").val(); window.open(`/search?query=${slugify(query)}`, "_self"); }); $(".search-input").on("keydown", function (e) { if (e.key === "Enter" || e.keyCode === 13) { let query = $(".search-input").val(); window.open(`/search?query=${slugify(query)}`, "_self"); } }); $(".header-custom-filter .header-left-items [role='listitem']").on( "click", function (e) { let target = $(e.target); let category = windowWitdh < 1199 ? target.find(".hidden").text() : target.text(); let parent = target.closest(".dropdown-list"); let maxCount = parent.hasClass("offers-dropdown") ? 30 : 3; let currCount = 0; e.preventDefault(); parent.find(".submenu").removeClass("active"); target.addClass("active"); parent.find(".right-container").addClass("opacity-0"); setTimeout(() => { parent .find(".right-container-item, .latest-list .w-dyn-item") .removeClass("hidden"); parent.find(".w-dyn-list").removeClass("height-0"); parent.find(".right-container a[data-category]").each(function (i, el) { if (category !== $(el).data("category") || currCount >= maxCount) { $(el).parent().addClass("hidden"); } else { currCount = currCount + 1; } }); parent.find(".right-container").removeClass("opacity-0"); }, 200); } ); $( ".header-custom-filter .header-left-items [role='listitem']:first-child .submenu" ).trigger("click"); setTimeout(() => { $( ".header-custom-filter .header-left-items [role='listitem']:first-child .submenu" ).addClass("active"); }); $(".accordion-toggle").on("click", function (e) { let parent = $(e.target).closest(".accordion"); let height = parent[0].scrollHeight; let maxHeight = parent.hasClass("map") ? "24px" : "88px"; if (parent.hasClass("active")) { parent.removeClass("active"); parent.css("max-height", maxHeight); } else { $(".accordion").css("max-height", maxHeight); $(".accordion").removeClass("active"); parent.addClass("active"); parent.css("max-height", height); } }); $(".menu-button.w-nav-button").on("click", function () { if ($(".navbar-content").hasClass("menu-opened")) { $(".search-container.on").removeClass("on"); $(".navbar-content").removeClass("menu-opened"); $("body").removeClass("no-scroll"); } else { $("body").addClass("no-scroll"); $(".navbar-content").addClass("menu-opened"); $(".dropdown-list").attr("aria-expanded", false); $(".dropdown-list").removeClass("open"); $(".submenus-right-container").removeClass("open"); setTimeout(() => { $(".w-nav-overlay").css("max-height", "calc(100vh - 81px)"); }, 200); } }); $(".close-btn").on("click", function (e) { $(".search-container.on").removeClass("on"); $(".navbar-content").removeClass("menu-opened"); $("body").removeClass("no-scroll").removeClass("blur"); }); $(".move-back").on("click", function (e) { let parent = $(e.target).parents(".dropdown-list"); if ($(e.target).hasClass("to-level-2")) { parent.find(".right-container").removeClass("open"); } else { parent.removeClass("open"); parent.attr("aria-expanded", false); $(".dropdown")[0].removeAttribute("style"); setTimeout(() => { parent.css("max-height", 0); }, 300); } }); $(".submenu-arrow:not(.direct-link)").on("click", function (e) { let target = $(e.target); let parent = target.parents(".header-dropdown"); let isSecondLevel = target.closest(".second-level").length; let list = isSecondLevel ? target.closest(".dropdown-list") : parent.siblings(".dropdown-list"); let listHeight = 0; if (isSecondLevel) { let rightContainer = list.find(".right-container"); listHeight = rightContainer[0].scrollHeight; } else { listHeight = list[0].scrollHeight; } parent.attr("aria-expanded", true); list.addClass("open"); if (target.parents(".header-left-items").length > 0) { let container = $(e.target).closest(".header-dropdown-container"); container.find(".right-container").addClass("open"); } $(".w-nav-overlay").animate({ scrollTop: 0 }); list.css( "max-height", listHeight < window.innerHeight - 80 ? window.innerHeight - 80 : listHeight ); }); $(".submenu-arrow.direct-link").on("click", function (e) { e.preventDefault(); let href = $(e.target).attr("href"); location.href = `${href}`; }); $("[data-internal-link]").each(function (i, el) { $(el).attr("href", $(el).attr("data-internal-link")); }); $("[form-value]").each(function (i, el) { $(el).val($(el).attr("form-value")); }); /** Header submenu navigation **/ let lastTitle = ""; // Set the default option of each submenu $(".header-container .dropdown").each(function (i, el) { $(el).find(".header-submenu-item:first-child .w-radio").click(); let title = ""; if ($(el).hasClass("latest-submenu-dropdown")) { title = "Latest " + $(el).find(".header-submenu-item:first-child").data("title"); } else { title = $(el).find(".header-submenu-item:first-child").data("title"); } $(el).find(".header-submenu-title").text(title); $(el) .find(".header-submenu-description") .text($(el).find(".header-submenu-item:first-child").data("description")); $(el) .find(".header-submenu-header") .attr("href", $(el).data("internal-link")); }); let firstOfferHref = $( ".offers.header-custom-filter .left-container .header-submenu-item:first-child" ).attr("href"); $(".offers.header-custom-filter .header-submenu-header").attr( "href", firstOfferHref ); // Apply filter on click, and replace submenu header text $(document).on("click", ".dropdown .header-submenu-item", function () { if (lastTitle != $(this).data("title")) { let parent = $(this).closest(".dropdown"); parent.find(".header-submenu-info").addClass("off"); setTimeout(() => { let title = ""; if (parent.hasClass("latest-submenu-dropdown")) { title = "Latest " + $(this).data("title"); } else { title = $(this).data("title"); } parent.find(".header-submenu-title").text(title); parent .find(".header-submenu-description") .text($(this).data("description")); parent.find(".header-submenu-info").removeClass("off"); parent .find(".header-submenu-header") .attr("href", $(this).data("internal-link")); if (parent.hasClass("insights-dropdown")) { let el = $(this).find(".submenu.active"); parent.find(".header-submenu-header").attr("href", el.attr("href")); } }, 200); } lastTitle = $(this).data("title"); }); // Filter link $(".tag-filter-link").each(function (i, el) { $(el).attr("href", $(el).attr("href") + "?tag=" + $(el).data("tag")); }); /*******************************/ if ($(".cards-listing").length > 0) { const search = window.location.search; const slug = search.split("?tag="); if (slug.length > 1) { let selectedTag = slug[1]; $(".tags-list .w-dyn-item").each(function (i, el) { let tag = $(el).find(".tag").data("slug"); if (tag.toLowerCase() == selectedTag) { $(el).find(".w-radio, .w-checkbox-input").click(); setTimeout(() => { $(".cards-listing").removeClass("off"); }, 300); } }); } else { $(".cards-listing").removeClass("off"); } } /***** Search btn *********/ let searchOpened = false; $(".search-btn").on("click", function () { $(".search-container").addClass("on"); $("body").addClass("no-scroll").addClass("blur"); $(".search-input").focus(); searchOpened = true; }); $( ".navbar-content .contact-us-btn.longer-anim, .category-page .contact-us-btn, .cta-button, .detail-page .contact-us-btn, .offer-page .slider-gray-offers a, .partnership-page .contact-us-btn, .products-page .contact-us-btn, .offer-page .contact-us-btn.big-size-btn" ).on("click", function () { $(".contact-us-container").addClass("on"); $("body").addClass("blur noscroll"); }); $(".contact-us-container .close, .success-message-btn").on( "click", function () { $(".contact-us-container").removeClass("on"); $("body").removeClass("blur noscroll"); } ); // $('input[name="Looking-For"]').on("change", function () { // var sel = document.querySelectorAll('input[name="Looking-For"]:checked'); // let array = []; // const itemsArray = Array.from(sel); // itemsArray.map(function (el, i) { // if (el.dataset.value) { // array.push(el.dataset.value); // } // }); // // $(".input-to-send").val(array.join(", ")); // $(this) // .closest("#wf-form-Lets-talk-Form") // .find(".input-to-send") // .val(array.join(", ")); // }); $('input[name="Looking-For"]').on("change", function () { const checked = document.querySelectorAll( 'input[name="Looking-For"]:checked' ); let values = []; checked.forEach(function (el) { if (el.value) { values.push(el.value); } }); $(this).closest("form").find(".input-to-send").val(values.join(", ")); }); if ($(".rich-text-wrapper").length > 0) { $(".rich-text-wrapper").each(function (i, el) { getStructureFromMarkup(i); }); } function getCleanText(text) { let cleanText = text .replaceAll(/ *\|[^)]*\| */g, "") .replaceAll(/^
/g, "") .replaceAll(/
$/g, "") .replaceAll(/\ /g, "") .trim(); return cleanText; } function getSingleElement(element) { let content = element[1].trim(); let moduleHeader = element[0].slice(0, -1).trim(); let mainWrapper = $("
"); let containerDiv = $('
'); let isImage = content.indexOf("img") >= 0; let isVideo = content.indexOf("iframe") >= 0; let size = "big"; let color = ""; let date; let title = ""; let subtitle = ""; // Options let module = moduleHeader .split("|")[0] .replaceAll(" ", "-") .replace("+", "-") .toLowerCase(); let rawOptions = moduleHeader.split("|"); let optionsArr = rawOptions.length > 1 ? rawOptions.map((option) => option.split(":")[0]) : undefined; if (rawOptions.length > 1) { let optionsArr = rawOptions.map((option) => option.split(":")[0]); optionsArr.shift(); if (optionsArr.includes("Size")) { size = getDataFromMarkup(moduleHeader, "Size"); } if (optionsArr.includes("Color")) { color = getDataFromMarkup(moduleHeader, "Color"); } if (optionsArr.includes("Date")) { date = getDataFromMarkup(moduleHeader, "Date") + " |"; } if (optionsArr.includes("Title")) { // Extract title prop and exclude the rest of options title = getDataFromMarkup(moduleHeader, "Title"); title = title.charAt(0).toUpperCase() + title.slice(1); if (module != "event") { containerDiv.append(`

${title}

`); } } if (optionsArr.includes("subtitle")) { subtitle = moduleHeader.split("subtitle:")[1]; subtitle = subtitle.charAt(0).toUpperCase() + subtitle.slice(1); containerDiv.append(`

${subtitle}

`); } } containerDiv.addClass(`${size.toLowerCase()} ${color.toLowerCase()}`); mainWrapper.addClass(module.toLowerCase()); if (content.split("|->|").length > 1) { let innerContainers = content.split("|->|"); let colContent; for (let i = 0; i < innerContainers.length; i++) { let wrapper = $("
"); let hasIcon = innerContainers[i].startsWith("img:"); let img = document.createElement("img"); let imageWrapper = $("
"); if (hasIcon) { let imageTextEnding = innerContainers[i].indexOf("|"); let imgContent = innerContainers[i] .substring(0, imageTextEnding) .split("img:")[1]; let textContent = innerContainers[i].substring( imageTextEnding, innerContainers[i].length - 1 ); img.src = imgContent; let text = textContent.substring(1); colContent = getCleanText(text); } else { colContent = getCleanText(innerContainers[i]); } if (hasIcon) { imageWrapper.append(img); } wrapper.append(imageWrapper); wrapper.append(colContent); containerDiv.append(wrapper); } let firstChild = containerDiv.children("div:first-child"); let imageWrapper = $("
"); firstChild.prepend(imageWrapper); if (rawOptions[0] == "3 column text") { console.log(firstChild); } let imgSrc = getDataFromMarkup(moduleHeader, "img"); if (imgSrc) { let img = document.createElement("img"); img.src = imgSrc; imageWrapperEl.append(img); } containerDiv.addClass("flex gap"); } else if (module !== "testimony" && (isImage || isVideo)) { if (isImage || isVideo) { let mediaElement; let rawLabel = content.split("
").pop().split('"')[0]; let label = rawLabel.substring(0, rawLabel.indexOf(""); } if (isVideo) { mediaElement = $( "" ); } mediaElement.attr("src", src); containerDiv.append(mediaElement); if (label.trim().length > 0) { containerDiv.append(`
${label}
`); } } } else if (module !== "testimony") { containerDiv.append(getCleanText(content)); } if (module == "table") { content = content.replace("|----", ""); let rawTableHeader = content.split("|-|")[0]; let rawTableBody; if (content.split("|-|").length > 1) { rawTableBody = content.split("|-|")[1].trim(); } let tableHeader = rawTableHeader.split("|"); tableHeader = tableHeader .map((el) => getCleanText(el)) .filter((el) => el); let headerItems = tableHeader.length; if (rawTableBody && rawTableBody.length > 0) { var tableBodyItems = rawTableBody.split("|"); tableBodyItems.unshift(...tableHeader); tableBodyItems = tableBodyItems .map((el) => getCleanText(el)) .filter((el) => el); var bodyItems = Math.ceil(tableBodyItems.length / headerItems); // Render table for (var i = 0; i < bodyItems; i++) { const row = tableBodyItems.slice( i * headerItems, i * headerItems + headerItems ); const rowDiv = $('
'); row.forEach((item) => { if (item.length > 0) { var columnDiv = $('
'); columnDiv.text(getCleanText(item)); rowDiv.append(columnDiv); } }); containerDiv.append(rowDiv); } setTimeout(() => { //Clean table element $(".table .container") .contents() .filter(function () { return this.nodeType == 3; // Text node }) .remove(); }); } } if (module == "testimony") { let wrapper = $('
'); if (optionsArr.includes("Image")) { let imgSrc = getDataFromMarkup(moduleHeader, "Image"); let image = $(``); wrapper.append(image); } let name = getDataFromMarkup(moduleHeader, "Name"); let position = getDataFromMarkup(moduleHeader, "Position"); let company = getDataFromMarkup(moduleHeader, "Company"); let upperDiv = $(`

${name}

${position}, ${company}

${content}

`); wrapper.append(upperDiv); containerDiv.append(wrapper); } if (module == "event") { let wrapper = $('
'); let dateEl = $(`${date}`); let titleEl = $(`

${title}

`); wrapper.append(dateEl); wrapper.append(titleEl); containerDiv.append(wrapper); } mainWrapper.append(containerDiv); return mainWrapper; } function getDataFromMarkup(moduleHeader, data) { let prop = moduleHeader.split(`${data}:`)[1]; let result = prop; // If there are more props, exclude the next props if (prop && prop.indexOf("|") !== -1) { result = prop.substring(0, prop.indexOf("|")); } return result || ""; } function getStructureFromMarkup(i) { let source = $(".rich-text-wrapper").eq(i); let rawContent = source.html(); // Removing begining and ending tags rawContent = rawContent.replaceAll(/^

/g, "").replaceAll(/<\/p>$/g, ""); // Elements container // let elements = rawContent.split("|---Module:"); elements = elements .map((el) => { return el.trim(); }) .filter((el) => el); const richTextElements = []; elements = elements.map((el) => { let htmlElement = el; if (el.includes("--|")) { let module = el.split("--|"); htmlElement = getSingleElement(module); } else { let wrapper = $('

'); wrapper.append(el); htmlElement = wrapper; } richTextElements.push(htmlElement); }); // Render final html elements on screen let elementsWrapper = $('
'); richTextElements.forEach((el) => elementsWrapper.append(el)); source.empty(); if (richTextElements.length > 0) { source.append(elementsWrapper); } $(".rich-text-wrapper *:empty:not(img):not(iframe)").remove(); } }); // Form Validation code $('[wr-type="error"]').hide(), $(".error").removeClass("error"); var formErrors = !1; const fieldError = function (r) { r.parent().find('[wr-type="error"]').show(), r.addClass("error"), (formErrors = !0); }; $('[wr-type="submit"]').click(function () { formErrors = !1; $('[wr-type="error"]').hide(); $(".error").removeClass("error"); $('[wr-type="required-field"]').each(function () { const $field = $(this); const tag = $field.prop("tagName").toLowerCase(); const type = $field.attr("type"); let hasError = false; if (type === "checkbox" && !$field.is(":checked")) { fieldError($field); hasError = true; } if (!hasError && tag === "select") { if (!$field.val() || $field.prop("selectedIndex") === 0) { fieldError($field); hasError = true; } } if (!hasError && $field.val().length === 0) { fieldError($field); hasError = true; } if ( !hasError && type === "email" && (-1 === $field.val().indexOf("@") || -1 === $field.val().indexOf(".")) ) { fieldError($field); } }); formErrors || $(this).parents("form").submit(); }), $('[wr-type="required-field"], [type="checkbox"]').on( "keypress blur change", function () { const $field = $(this); $field.removeClass("error"); $field.parent().find('[wr-type="error"]').hide(); formErrors = !1; } ), $("input, textarea, select").keypress(function (r) { 13 == r.keyCode && (r.preventDefault(), $(this).trigger("change"), $('[wr-type="submit"]').click()); });