$(document).ready(function(){$(document).off(".articleViewPortlet");var API_SERVER_URL=location.origin;var API_BASE_URL=API_SERVER_URL+"/o/rest-api";var API_SERVICE_COMPARISON_ENDPOINT=API_BASE_URL+"/comparison/service-articles";var comparedServices=[];var articleId=$(".article").first().data("serviceId");var ddmStructureKey=$(".article").first().data("ddmStructureKey");var $addToCompareButton=$(".article").find(".button.button--add-to-compare");var comparisonItemsLimit=0;$(document).on("addServiceToFavouriteList.articleViewPortlet",
function(event,data){setButtonAsRemoveFromList(data.articleId)});$(document).on("removeServiceFromFavouriteList.articleViewPortlet",function(event,data){setButtonAsSaveToList(data.articleId)});$(document).on("compareProductsUpdate.articleViewPortlet",function(event,data){if(!data)return;comparisonItemsLimit=data.limit||comparisonItemsLimit;var sameType=!!data.services.filter(function(item){return+item.ddmStructureKey===+ddmStructureKey}).length;var selected=!!data.services.filter(function(item){return+item.articleId===
+articleId}).length;var count=data.services.length;if(count&&!sameType||count>=comparisonItemsLimit&&!selected)$(".article").find(".button.button--add-to-compare").addClass("button--disabled");else $(".article").find(".button.button--add-to-compare").removeClass("button--disabled")});$(document).on("removeServiceFromComparison.articleViewPortlet",function(event,data){if(+data!==+articleId)return;setAddToCompareButtonText(false);comparedServices=comparedServices.filter(function(item){return+item.articleId!==
+data})});$addToCompareButton.on("click",addToCompareButtonClickHandler);getComparedServices().then(function(resolve){comparedServices=resolve;var isArticleInCompareList=checkIsArticleAddedToCompareList(articleId);setAddToCompareButtonText(isArticleInCompareList)},function(reject){console.error("rejected",reject)});generatePDFButtonClickHandler();function setAddToCompareButtonText(articleCompared){var compareButtonText=articleCompared?"ArticleView.RemoveFromCompare":"ArticleView.AddToCompare";$addToCompareButton.text(compareButtonText)}
function checkIsArticleAddedToCompareList(articleId){return comparedServices.find(function(item){return+item.articleId===+articleId})}function addToCompareButtonClickHandler(){var isArticleInCompareList=checkIsArticleAddedToCompareList(articleId);if(isArticleInCompareList)removeServiceFromComparisonRequest(articleId).then(function(resolve){comparedServices=comparedServices.filter(function(item){return+item.articleId!==+articleId});setAddToCompareButtonText(false);$(document).trigger("removeProductFromComparisonList",
articleId)},function(reject){console.error("Rejected",reject)});else addServiceToComparisonRequest(articleId).then(function(resolve){comparedServices.push(resolve);setAddToCompareButtonText(true);$(document).trigger("addServiceToComparison",resolve)},function(reject){console.error("Rejected",reject)})}function generatePDFButtonClickHandler(){$("#service").find(".generate-pdf").on("click",function(){var tableLayouts={exampleLayout:{hLineWidth:function(i,node){if(i===0||i===node.table.body.length)return 0;
return 1},vLineWidth:function(i){return 0},hLineColor:function(i){return"#CCCCCC"},paddingLeft:function(i){return i===0?0:8},paddingRight:function(i,node){return i===node.table.widths.length-1?0:8}}};var data={};var pdf;$("[data-property]").map(function(element){if($(this).data().hasOwnProperty("list")&&$(this).data("list")){var parent=data[$(this).data("property")]=[];$(this).children("[data-property-items]").each(function(index){if(index>9)return false;parent.push($(this).text().trim())});if($(this).children("[data-property-items]").length>
10)parent.push("And more...")}else data[$(this).data("property")]=$(this).text().trim()});var docDefinition={pageMargin:[40],pageOrientation:"portrait",pageSize:"A4",defaultStyle:{color:"#09253e",fontSize:12},styles:{sectionHeader:{fontSize:18,margin:[0,0,0,10]},sectionGap:{margin:[0,0,0,20]}}};var content=[{alignment:"center",style:["docHeader","sectionGap"],text:"SERVICE"},{alignment:"center",style:["sectionHeader"],text:data.serviceName},{alignment:"center",text:data.organizationName,style:["sectionGap"]},
{alignment:"left",text:"Product description"+":",style:["sectionHeader"]},{alignment:"justify",text:data.productDescription,style:["sectionGap"]},{alignment:"left",text:"Taxonomies"+":",style:["sectionHeader"]},{type:"square",ul:data.taxonomiesList.map(function(item){return{margin:[0,0,0,5],text:item}})}];docDefinition["content"]=content;if(window.pdfMake){pdfMake.tableLayouts=tableLayouts;pdf=pdfMake.createPdf(docDefinition,false,false,pdfMake.vfs);pdf.open();return}window.pdfMake=window.pdfMake||
{};$.getScript(Liferay.ThemeDisplay.getPathThemeRoot()+"/vendor/pdfmake/pdfmake.js").then(function(resolve){return $.getScript(Liferay.ThemeDisplay.getPathThemeRoot()+"/vendor/pdfmake/vfs_fonts.js")}).then(function(resolve){pdfMake.tableLayouts=tableLayouts;pdf=pdfMake.createPdf(docDefinition,false,false,pdfMake.vfs);pdf.open()})})}function generateKeyValueTable(element,labels){var data=[];var productDetailsRow={};var property=$(element).data("property");productDetailsRow.propertyLabel=labels[property];
productDetailsRow.values=[];if(element.hasClass("list")){var elementsList=element.find(".list__item");elementsList.each(function(item){var text=$(this).text();var link=null;if($(this).is("a"))link=$(this).attr("href");productDetailsRow.values.push({text:text,url:link})});data.push([{text:labels[property]},{layout:"noBorders",table:{headerRows:0,widths:["*"],body:productDetailsRow.values.map(function(item){var row={bold:true,text:item.text};if(item.url){row.link=item.url;row.decoration="underline"}return[row]})}}])}else data.push([{text:labels[property]},
{bold:true,text:$(element).text().trim()}]);return data}function getComparedServices(){return $.ajax({method:"GET",url:API_SERVICE_COMPARISON_ENDPOINT})}function removeServiceFromComparisonRequest(articleId){return $.ajax({method:"DELETE",url:API_SERVICE_COMPARISON_ENDPOINT+"/"+articleId})}function addServiceToComparisonRequest(articleId){return $.ajax({method:"PUT",url:API_SERVICE_COMPARISON_ENDPOINT+"/"+articleId})}$favouriteButton=$("#service .button.button--favourite");if(!Liferay.ThemeDisplay.isSignedIn()){$favouriteButton.remove();
return}else $favouriteButton.removeClass("d-none");if(!$favouriteButton.length)return;let userId=Liferay.ThemeDisplay.getUserId();$.ajax({method:"GET",url:location.origin+"/o/rest-api/users/"+userId+"/bookmarked-services/"+articleId}).done(function(resolve){$(document).trigger("addServiceToFavouriteList",{articleId:articleId})}).fail(function(reject){$(document).trigger("removeServiceFromFavouriteList",{articleId:articleId})}).always(function(){favouriteButtonClickHandler()});function setButtonAsSaveToList(articleId){var $button=
$("#service[data-service-id\x3d"+articleId+"]").find(".button.button--favourite");if(!$button.length)return;$button.find(".button__text").text("Save to list");$button.find(".icon").removeClass("eo-icon-star-filled");$button.data("bookmarked",false)}function setButtonAsRemoveFromList(articleId){var $button=$("#service[data-service-id\x3d"+articleId+"]").find(".button.button--favourite");if(!$button.length)return;$button.find(".button__text").text("Remove from list");$button.find(".icon").addClass("eo-icon-star-filled");
$button.data("bookmarked",true)}function favouriteButtonClickHandler(){$favouriteButton.click(function(event){let favouriteButtonData=$favouriteButton.data();if(favouriteButtonData.bookmarked)$.ajax({method:"DELETE",url:location.origin+"/o/rest-api/users/"+userId+"/bookmarked-services/"+articleId}).then(function(resolve){$(document).trigger("removeServiceFromFavouriteList",{articleId:articleId})});else $.ajax({method:"POST",url:location.origin+"/o/rest-api/users/"+userId+"/bookmarked-services/"+articleId}).then(function(resolve){$(document).trigger("addServiceToFavouriteList",
{articleId:articleId})})})}});
(function(){var API_SERVER_URL=location.origin;var API_BASE_URL=API_SERVER_URL+"/o/rest-api";if(!$("#contact_form").length)return false;$("#contact_form .form-control").on("change",function(){if(!$(this).hasClass("check"))$(this).addClass("check")});$('#contact_form [type\x3d"submit"]').on("click",function(){$("#contact_form .form-control").addClass("check")});$(window).on("load",function(){var recaptcha=$("#g-recaptcha-response");if(recaptcha.length){recaptcha.attr("required","required");recaptcha.attr("aria-hidden",
"true");recaptcha.attr("aria-label","do not use");recaptcha.attr("aria-readonly","true")}});contactFormSuccessBuild();$("#contact_form form").off().on("submit",function(e){e.preventDefault();var action=$(this).attr("action");var data=$(this).serialize();contactFormSender(action,data).then(function(resolve){if(typeof resolve.status==="boolean"&&resolve.status===true)contactFormResult("Your message has been sent successfully. We will contact with as soon as possible.");else contactFormResult("Failed to sent your message. Please verify that your message does not look like a spam message and please try again later.")},
function(reject){console.error("Contact form rejected: ",reject);contactFormResult("Failed to sent your message. Please verify that your message does not look like a spam message and please try again later.")});var formData=$(this).serializeArray();var categoryId=formData[3].value;var category=$(".form-control option[value\x3d"+categoryId+"]").text();if(formData[0].value==="true")fetchCurrentUser().then(function(currentUser){ga("send","event","Internal messaging","message sent to operator",category,
{"dimension4":currentUser.country,"dimension5":currentUser.interests.toString(),"dimension6":currentUser.organizationType,transport:"beacon"})});else{var companyName=$(".article .button--contact-us").data("company-name");fetchCurrentUser().then(function(currentUser){ga("send","event","Internal messaging","message sent to organization",category,{"dimension3":companyName,"dimension4":currentUser.country,"dimension5":currentUser.interests.toString(),"dimension6":currentUser.organizationType,transport:"beacon"})})}grecaptcha.reset()});
if($(".article .button--contact-us").length){var button=$(".article .button--contact-us");button.on("click",function(){var companyName='"'+button.data("company-name")+'" ';var companyId=button.data("company-id");$('#contact_form input[label\x3d"contactOperator"]').val("false");$('#contact_form input[label\x3d"organizationId"]').val(companyId);$("#contact_form span.contact_form__company_name").text(companyName);var targetPosition=$("#contact_form").offset().top;$("html, body").stop(true,true).animate({scrollTop:targetPosition},
1E3,"swing");return false})}function contactFormSender(action,data){var requestUrl=action;return $.ajax({method:"POST",url:requestUrl,data:data,dataType:"json"})}function contactFormSuccessBuild(){if(!$(".contact-form__modal").length){var buttonCloseIcon='\x3ci class\x3d"eo-icon-cross"\x3e\x3c/i\x3e';var headerMsg="Thank You!";var contentMsg="Your message has been sent successfully. We will contact with as soon as possible.";var buttonTxtOk="Ok";var html="";html+='\x3cdiv class\x3d"contact-form__modal"\x3e';
html+='\x3cdiv class\x3d"contact-form__modal-content"\x3e';html+='\x3cdiv class\x3d"contact-form__modal-header"\x3e';html+="\x3cspan\x3e"+headerMsg+"\x3c/span\x3e";html+='\x3cbutton class\x3d"contact-form__modal_close_btn close_modal" aria-label\x3d"close"\x3e'+buttonCloseIcon+"\x3c/button\x3e ";html+="\x3c/div\x3e";html+="\x3cp\x3e"+contentMsg+"\x3c/p\x3e";html+='\x3cdiv class\x3d"text-right"\x3e\x3cbutton class\x3d"btn btn-primary button--force-color close_modal"\x3e'+buttonTxtOk+"\x3c/button\x3e";
html+="\x3c/div\x3e";html+="\x3c/div\x3e";$("body").append(html);$(".contact-form__modal .close_modal").on("click",function(){$(".contact-form__modal").removeClass("active");$("#contact_form .check").removeClass("check");$("#contact_form form input, #contact_form form select, #contact_form form textarea").not("input[name$\x3d'contactOperator']").not("input[name$\x3d'organizationId']").not("input[name$\x3d'senderName']").not("input[name$\x3d'senderEmail']").val("");$("#contact_form iframe").attr("src",
$("#contact_form iframe").attr("src"))})}}function contactFormResult(message){$(".contact-form__modal-content p").text(message);$(".contact-form__modal").addClass("active");setTimeout(function(){$(".contact-form__modal .close_modal").click()},4E3)}function fetchCurrentUser(){return $.ajax({method:"GET",url:API_BASE_URL+"/portal/currentUser"})}})();
$(document).ready(function(){let apiPath="/o/rest-api";function initializeCategoriesSelect(){let $categorySelect=$("#header_search select");if($categorySelect.length)$categorySelect.select2({minimumResultsForSearch:Infinity})}function mainpageSearchInputHandler(){let $mainpageSearch=$("#header_search");let $mainpageSearchInput=$mainpageSearch.find(".autocomplete input");let searchCallDelay=300;let searchTimeoutId;let $suggestionsList=buildSuggestionsList();$mainpageSearchInput.on("input",function(event){if(event.target.value.length<
2){removeChildren($suggestionsList);return}if(searchTimeoutId)clearTimeout(searchTimeoutId);searchTimeoutId=setTimeout(function(){let category=$("#header_search select").val();getSuggestions(event.target.value,category,0,5).then(function(resolve){let suggestions=resolve.items;removeChildren($suggestionsList);let $suggestionsItems=$(suggestions.map(function(item){return buildSuggestionsListItem(item)[0]}));$suggestionsList.append($suggestionsItems);$mainpageSearch.find(".autocomplete").append($suggestionsList);
$suggestionsItems.click(function(event){let suggestion=$(this).data();$mainpageSearchInput.val(suggestion.title);$suggestionsList.empty()});$mainpageSearchInput.focus()},function(reject){console.error("Cannot fetch suggestions",reject.responseText)})},searchCallDelay)}).on("blur",function(){setTimeout(function(){$(".list--suggestions").empty()},250)})}function buildSuggestionsList(){let $suggestionsList=$("\x3cul\x3e\x3c/ul\x3e");$suggestionsList.addClass("list list--suggestions suggestions");return $suggestionsList}
function mapSuggestionType(rawType){rawType=rawType.toLowerCase();switch(rawType){case "companies":return"Company";case "services":return"Service";case "success_stories":return"Success Story";case "taxonomy":return"Taxonomy";default:console.error("Unknown type of article:",rawType);return""}}function buildSuggestionsListItem(suggestion){let $suggestionItem=$("\x3cli\x3e\x3c/li\x3e");let $suggestionType=$("\x3cspan\x3e\x3c/span\x3e").addClass("suggestion_type").text(mapSuggestionType(suggestion.type)+
": ");$suggestionItem.append($suggestionType,suggestion.title);$suggestionItem.addClass("list__item list__item--suggestion text-truncate");$suggestionItem.data(suggestion);return $suggestionItem}function removeChildren(list){list.empty()}function getSuggestions(phrase,type,from,limit){if(!phrase||!type||!Number.isInteger(from)||!Number.isInteger(limit)){console.log("Missing parameter(s) in getSuggetsions().");return}let queryString="/eopages/suggestions?like\x3d"+encodeURIComponent(phrase)+"\x26type\x3d"+
encodeURIComponent(type)+"\x26from\x3d"+from+"\x26limit\x3d"+limit;return $.ajax({method:"GET",url:location.origin+apiPath+queryString})}$(".header__search_form_trigger").on("click touch",function(){let $navigationHeaderContainer=$("#portlet_com_eversis_esa_eomall_eopages_search_headersearchbar_HeaderSearchBar");$navigationHeaderContainer.slideToggle()});initializeCategoriesSelect();mainpageSearchInputHandler()});
(function(){$(document).off(".servicesListPortlet");var defaultCompanyLogoUrl=Liferay.ThemeDisplay.getPathThemeImages()+"/default_company_logo.png";var state={from:0,currentCount:0,showMoreCount:0,allCount:0};$(function(){initState();registerOnLoadMoreEvent()});function initState(){var initialServicesCount=$("input#initialServicesCount").val();if(initialServicesCount&&parseInt(initialServicesCount))state.currentCount=parseInt(initialServicesCount);var loadMoreServicesCount=$("input#loadMoreServicesCount").val();
if(loadMoreServicesCount&&parseInt(loadMoreServicesCount))state.showMoreCount=parseInt(loadMoreServicesCount);var allServicesCount=$("input#allServicesCount").val();if(allServicesCount&&parseInt(allServicesCount))state.allCount=parseInt(allServicesCount);updateShowMoreButtonVisibility();adjustHeights(".section--separated.service",[".section__title",".section__detail.taxonomy",".section__detail.overview"],2)}function appendServices(services){if(services&&services.constructor==Array)for(var index in services){appendService(services[index]);
state.currentCount++}}function registerOnLoadMoreEvent(){$("button#load-more-services").click(function(event){state.from=state.currentCount;var url=$("#loadMoreServicesURL").val();var namespace=$("#portletNamespace").val();var data={};data[namespace+"from"]=state.from;data[namespace+"limit"]=state.showMoreCount;$.ajax({url:url,data:data,success:function(data){services=JSON.parse(data);appendServices(services);updateShowMoreButtonVisibility();adjustHeights(".section--separated.service",[".section__title",
".section__detail.taxonomy",".section__detail.overview"],2)}});ga("send","event","Home page","load more services","load more")})}function updateShowMoreButtonVisibility(){if(state.currentCount>=state.allCount)$("button#load-more-services").hide();else $("button#load-more-services").show()}function appendService(item){if(item){type=item.taxonomy;var $sectionElement=$('\x3cdiv class\x3d"col-12 col-sm-6 col-lg-3 section section--separated service"\x3e\x3c/div\x3e').attr("data-article-id",item.articleId).attr("data-ddm-structure-key",
item.ddmStructureKey);var $sectionElementRow=$('\x3cdiv class\x3d"d-flex flex-column height-100 margin-bottom-10"\x3e\x3c/div\x3e');var $sectionTextElement=$("\x3cdiv\x3e\x3c/div\x3e").addClass("section__text d-flex flex-column flex-1 margin-top-0 w-100");var $sectionTextWrapperElement=$("\x3cdiv\x3e\x3c/div\x3e").addClass("section__text_wrapper height-100 d-flex flex-column flex-1");var $companyLogoElementWrapper=$("\x3cdiv\x3e\x3c/div\x3e");var $companyLogoElement=$('\x3cimg loading\x3d"lazy"\x3e').attr("src",
item.companyLogoSrc||defaultCompanyLogoUrl).attr("alt",item.organizationName).attr("onerror","this.src\x3d'"+defaultCompanyLogoUrl+"'").addClass("section__logo");$companyLogoElementWrapper.append($companyLogoElement);$sectionTextWrapperElement.append($companyLogoElementWrapper);var $sectionTitleElement=$("\x3ca\x3e\x3c/a\x3e").attr("href",item.articleUrl).addClass("section__title text-truncate multiline lines-3").text(item.name);var $sectionDetailTaxonomyElement=$("\x3cdiv\x3e\x3c/div\x3e").addClass("section__detail taxonomy margin-bottom-15 text-truncate text-uppercase").text(type);
var $sectionDetailOverviewElement=$("\x3cdiv\x3e\x3c/div\x3e").addClass("section__detail overview margin-bottom-15 text-truncate multiline lines-3").text(item.overview);$sectionTextWrapperElement.append([$sectionTitleElement,$sectionDetailTaxonomyElement,$sectionDetailOverviewElement]);var $sectionBottomElement=$("\x3cdiv\x3e\x3c/div\x3e").addClass("section__bottom justify-content-between d-flex flex-1");var $readMoreElementWrapper=$("\x3cdiv\x3e\x3c/div\x3e");var $readMoreElement=$("\x3ca\x3e").attr("href",
item.articleUrl).attr("title","Read more").text("Read more");$readMoreElementWrapper.append($readMoreElement);$sectionBottomElement.append($readMoreElementWrapper);$sectionTextElement.append([$sectionTextWrapperElement,$sectionBottomElement]);$sectionElementRow.append($sectionTextElement);$sectionElement.append($sectionElementRow);$sectionElement.insertBefore("div#show-more-row-services")}}})();
