{"version":3,"sources":["main.js"],"names":["isRTL","$","attr","winWidth","window","width","winHeight","height","match_Media","gsap","registerPlugin","ScrollTrigger","matchMedia","eventClick","mapContent","browserDetect","tem","ua","M","navigator","sayswho","userAgent","match","test","exec","slice","join","replace","appName","appVersion","splice","addClass","addVideoPlugin","plyrScriptElement","get","document","createElement","setAttribute","customVariables","baseURL","body","appendChild","jsVideoDirect","on","setTimeout","length","horizontalScrollDisAlula","targetSliderClass","headerLight","data","loadInitiativeCarousel","find","click","keyup","e","keyCode","timeLeft","startCountdown","interval","countdownElement","getElementById","setInterval","minutes","Math","floor","seconds","formattedTime","concat","toString","padStart","textContent","clearInterval","addEventListener","players","jsVideo","each","i","thisParent","this","parent","Plyr","playsinline","videoId","html","initIsotopes","qsRegex","buttonFilter","currentPage","$grid","isotope","itemSelector","originLeft","filter","$this","searchMatch","text","buttonMatch","is","pageIndex","index","updatePagination","itemCount","pageCount","ceil","empty","$button","append","searchText","val","RegExp","initIsotopesDataLibrary","layoutMode","initiativeCarousel","$slider","$paginationLabel","event","slick","currentSlide","nextSlide","totalSlides","slideCount","arrows","dots","infinite","slidesToShow","slidesToScroll","fade","rtl","responsive","breakpoint","settings","customPaging","slider","$slideTrack","css","initiativeCarouselResearch","handleNoSlider","imageCarousel","$prevArrow","$nextArrow","closest","currentSlideNumber","totalSlidesNumber","asNavFor","nextSlideNumber","removeClass","imageCarousel2","$slider1","prev","centerMode","focusOnSelect","isElementInViewport","elem","$elem","docViewTop","scrollTop","docViewBottom","elemTop","offset","top","headerHeight","innerHeight","haveHeaderLight","intlTelInputInit","input","querySelectorAll","forEach","iti","intlTelInput","separateDialCode","initialCountry","jttBannerAnim","$bg_img","$bg_img_backdrop","$bg_img_arch_guy","$bg_img_leaves","$bg_img_light_arc","$textPara","add","tl","TimelineMax","paused","to","translateY","duration","delay","opacity","scale","onComplete","animateWords","ease","rotateZ","left","classList","play","set","clearProps","quoteWords","trim","split","quoteTextContainer","timeline","defaults","word","space","wordElement","className","fromTo","random","$arrowWrap","children","$secPostContentInfo","leadershipCarousel","contentSlider","imageSlider","$contentSlider","$imageSlider","updatePaginationLabel","current","total","$label","$paginationLabel1","toggleArrowVisibility","adaptiveHeight","keyprojectCarousel","mapCarousel","sliderBool","slideNumber","$arrowDiv","hasClass","draggable","jQuery","hide","initializeFirstSlider","$loadInitiativeCarousel1","totalSlidesGlobal","$slides","next","console","error","initializeSlider","sliderSelector","paginationLabelSelector","prevArrowSelector","nextArrowSelector","numberOfSides","show","portfolioSlider","sliderName","eServicesSlider","bannerSlider","appendDots","onMouseHover","mouseenter","not","mouseleave","possibilitiesTabs","siblings","hover","addClassOnUl","showandHideMobileMenu","HamburgerBtn","querySelector","HamOpenBtn","onclick","toggleClass","HamCloseBtn","style","display","showMobileMenuDropdown","subDropdownsLink1","subDropdownsLink2","subDropdownsLink3","element","dropdownIcon","toggle","menuItems","item","remove","nextElementSibling","contains","dropdownItem","showReportDownloadDiv","reportDivs","reportDownload","banners","reportDiv","prepend","div","downloadDiv","report","year","banner","_document$querySelect","showUploadFieldName","fileInput","fileUploadWrapper","fileName","files","name","discoverSlider","variableWidth","autoplay","autoplaySpeed","masterplanCarousel","$sliderMasterplan","$container","slideIndex","dataTrim","charLimit","parseInt","maxLength","substring","lastIndexOf","mediaSlider","headerStickyFunctionality","header","scrollY","ready","select2","lastScrollTop","scroll","st","megaMenuFunction","dataSubMenu","sub","id","ChangeToSvg","$img","imgID","imgClass","imgURL","$svg","removeAttr","replaceWith","natureContentSlider","preventDefault","slideno","natureBgSlider","formValidation","button","form","target","isValid","emailElement","$select","$errorMessage","fieldType","fieldVal","isValidEmail","isValidNumber","confirmEmailElement","passwordElement","value","confirmPasswordElement","togglePasswordIcons","togglePasswordSlashIcons","togglePasswordVisibility","clickedIcon","passwordField","parentNode","relatedIcon","previousElementSibling","type","icon","Slashicon","validatePassword","password","field","lengthValidation","maxLengthValidation","caseValidation","numberValidation","spaceValidation","maxSectorsSelection","errorElement","checkbox","fileUploadfunctionality","_fileInput$getAttribu","maxSize","getAttribute","allowedTypes","map","fileSize","errorMessage","errorFileType","errorFileSize","file","size","includes","downloadBtnFormValidation","textInput","emailInput","textError","emailError","invalidEmailError","email","String","toLowerCase","updateTextareaCounter","textarea","counter","inputText","inputLength","key","scrollDirection","scrollWidth","secWidth","horizontalSection","direction","innerWidth","x","xPercent","scrollTrigger","trigger","start","pin","scrub","invalidateOnRefresh","markers","min","max","end","paginationNum","openModal","modalId","modal","idNo","lastCh","mapModal","marker","locationId","slideDown","openTab","evt","tabName","tablinks","isLoad","arguments","undefined","modalcontent","getElementsByClassName","currentTarget","openModalByIndex","openLastModal","openTab2","tabName1","tablinks1","isLoad1","activeModal","modalcontent1","j","openTab4","openAllModalsExceptLast","modals","openModalByClass","initializeMediaCards","$modal","$modalImg","$modalVideo","$mediaTitle","$mediaDescription","$downloadBtn","$listItems","currentIndex","mediaItems","displayMedia","mediaItem","source","fadeIn","title","description","mediaType","mediaSource","mediaTitle","mediaDescription","push","podcastLink","open","fadeOut","prevIndex","prevItem","nextIndex","nextItem","lightboxSlideCounter","updateSlideCounter","number","smoothScrolling","headerSpace","outerHeight","animate","history","replaceState","toggleView","activeClassOnlyAll","check","navLinks","navLink","filterDrawer","filterCounter","updateCounter","allCheckbox","checkboxes","checkedCount","allChecked","_document$getElementB","checked","optionAll","typeId","prop","first","change","rankingsAwardsSlider","newsPressSlider","textCharacterTrancut","$heading","originalText","mapSlider","initializeMediaCardsGridView","cards","lightbox","lightboxImg","lightboxVideo","prevBtn","nextBtn","downloadBtn","closeBtn","LightboxContent","card","fetch","then","res","blob","url","URL","createObjectURL","a","href","download","revokeObjectURL","initializeMediaCardsListView","pause","initializeMediaAnnualPdf","date","topic","handleMobileView","audioPlayer","wavesurfer","playBtn","pauseBtn","waveformElement","audioElement","audioUrl","src","WaveSurfer","create","container","waveColor","progressColor","barWidth","barRadius","playPause","stop","navigateToSlide","dropDownIconMove","checkStickyContent","footerNewsletterValidation","accordionhoverState","accordionClickState","resize","initializeSearchFunctionality","textareas","counters","tabVisibility","navActiveToggle","eSrvicesSearch","ResultSearchFunctionality","headerSearchDrawer","setupLoadMoreFunctionality","classToggle","setupSearchDrawer","cookieBanner","removeEmptyPara","addClasstoPara","filterSlider","PdfImagesSlider","navPillSlider","slideUp","mapSliderContent","jsImageSliderStatus","keydown","right","starRatingLibrary","flatpickr","dateFormat","currentSlider","containers","isAlreadyShown","ulElement","otherUlElement","submenu","stopPropagation","selectedValue","scrollOver600","scrollUnder600","scrollItems","mCustomScrollbar","axis","onload","iconWrappers","updateArrows","totalNavItemsWidth","outerWidth","viewportWidth","slickOptions","log","prevArrow","nextArrow","textAnim","textWrapper","innerHTML","animationTriggered","IntersectionObserver","entries","observer","entry","isIntersecting","anime","loop","targets","translateX","translateZ","easing","el","unobserve","threshold","observe","searchTerm","iconWrapper","highlightBox","box","currentPosition","sectionTop","sectionBottom","currentSection","initMapLogic","mainMap","activeMarker","removeActiveClass","HeaderSearchFunctionality","focus","$gridItems","$loadMoreBtn","totalItems","visibleItems","textTrancut","$body","truncateText","targetId","targetOffset","searchBtn","cancelBtn","resultTex","tabText","toggleStickyClass","$element","acceptButton","rejectButton","localStorage","getItem","setItem","logo","lat","lng","zoom","google","maps","Map","center","disableDefaultUI","styles","featureType","stylers","color","elementType","visibility","init","addListenerOnce","iconSrc","imgSrc","markerClass","activeIconSrc","markersInoWin","markersLength","self","markerSize","scaledSize","Size","openInfo","setIcon","close","infowindow","outerHTML","Marker","position","InfoWindow","content","addListener","customInfoWindow","iwOuter","iwBackground","s","box-shadow","z-index","transform","border-radius","overflow","background","border","itemNo","faqContainer","resultCount","updateNoResultsVisibility","allTitleText","cardText","headingBox","searchAccordion","$FilterSlider","filterValue","isNaN","inputVal","parentElement","getElementsByTagName","StarRating","windowHeight","windowWidth","totalSteps","submit","parentFieldset","parents","currentActiveStep","nextWizardStep","emailRegex","phoneRegex","numberRegex","urlRegex","errorMessages","thisValue","thisField","radioButtons","errorDiv","errorDivCheckbox","locationRadioButtons","tmpThis","_contents$","tabs","contents","_tabs$","tab","tabId","dropdownOpen","_","check25","check50","check75","check100","scrollAmount","documentHeight","scrollPercent","pageURL","location","scrollGTMEvent","dataLayer","Page_URL","Scroll_Percentage"],"mappings":"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","file":"scripts.min.js","sourcesContent":["var isRTL = ($('html').attr('dir') == \"rtl\") ? true : false,\r\n winWidth = $(window).width(),\r\n winHeight = $(window).height();\r\n gsap.registerPlugin(ScrollTrigger);\r\n const match_Media = gsap.matchMedia();\r\n\r\nvar eventClick = false;\r\nvar mapContent = 0;\r\n\r\n$(function () {\r\n browserDetect();\r\n});\r\n\r\n$(window).on('load', function () {\r\n setTimeout(function () {\r\n addVideoPlugin();\r\n }, 4000);\r\n if (1 == 2) {\r\n textAnim();\r\n }\r\n if ($('.horizontal-scroll').length > 0) {\r\n horizontalScrollDisAlula();\r\n }\r\n\r\n});\r\n\r\n$(window).on('resize orientationchange', function () {\r\n // Do on resize\r\n winWidth = $(window).width(),\r\n winHeight = $(window).height();\r\n headerLight();\r\n if ($('.js-initiate-link').length > 0) {\r\n if($(window).width() > 991){ \r\n var targetSliderClass = $('.js-initiate-link.active').data('slider'); \r\n loadInitiativeCarousel($(targetSliderClass));\r\n }else{ \r\n $('.current').find('.js-initiate-link.active').click(); \r\n }\r\n }\r\n});\r\n\r\n$(document).keyup(function (e) {\r\n if (e.keyCode == 27) {\r\n //Do on ESC press\r\n }\r\n});\r\n\r\nfunction browserDetect() {\r\n navigator.sayswho = (function () {\r\n var ua = navigator.userAgent,\r\n tem,\r\n M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n if (/trident/i.test(M[1])) {\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return 'IE ' + (tem[1] || '');\r\n }\r\n if (M[1] === 'Chrome') {\r\n tem = ua.match(/\\b(OPR|Edge)\\/(\\d+)/);\r\n if (tem != null) return tem.slice(1).join('').replace('OPR', 'Opera');\r\n }\r\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\r\n if ((tem = ua.match(/version\\/(\\d+)/i)) != null) M.splice(1, 1, tem[1]);\r\n return M.join(' ');\r\n })();\r\n $('body').addClass(navigator.sayswho);\r\n}\r\n\r\nfunction addVideoPlugin() {\r\n if (winWidth > 1024 && $('.js-video').get(0)) {\r\n var plyrScriptElement = document.createElement(\"script\");\r\n if (isRTL) {\r\n plyrScriptElement.setAttribute('src', customVariables.baseURL + '../assets/js/plyr.min.js');\r\n } else {\r\n plyrScriptElement.setAttribute('src', customVariables.baseURL + 'assets/js/plyr.min.js');\r\n }\r\n plyrScriptElement.setAttribute('async', 'true');\r\n document.body.appendChild(plyrScriptElement);\r\n } else {\r\n jsVideoDirect();\r\n }\r\n}\r\n\r\n\r\n// CTA countdown\r\nlet timeLeft = 60; // Set initial countdown time in seconds (e.g., 1 minute)\r\n\r\nfunction startCountdown() {\r\n const countdownElement = document.getElementById('countdown');\r\n \r\n if (!countdownElement) {\r\n return;\r\n }\r\n\r\n // console.log('Countdown element found:', countdownElement);\r\n\r\n const interval = setInterval(() => {\r\n const minutes = Math.floor(timeLeft / 60);\r\n const seconds = timeLeft % 60;\r\n \r\n const formattedTime = `Resend in ${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\r\n countdownElement.textContent = formattedTime;\r\n timeLeft--;\r\n\r\n if (timeLeft < 0) {\r\n clearInterval(interval);\r\n countdownElement.textContent = 'Resent';\r\n }\r\n }, 1000);\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n \r\n startCountdown();\r\n});\r\n\r\nvar players = [];\r\n\r\nfunction jsVideo() {\r\n // Custom player\r\n if ($('.js-video').length) {\r\n $('.js-video').each(function (i) {\r\n var thisParent = $(this).parent();\r\n players[i] = new Plyr(this, {\r\n playsinline: true,\r\n });\r\n thisParent.find('.plyr').attr('data-video-instance', i);\r\n });\r\n }\r\n}\r\n\r\nfunction jsVideoDirect() {\r\n if ($('.js-video').length) {\r\n $('.js-video').each(function (i) {\r\n $(this).attr('data-video-instance', i);\r\n var videoId = $(this).attr('data-plyr-embed-id');\r\n $(this).html('');\r\n });\r\n }\r\n}\r\n\r\n// Alila section onclick \r\n$('.toggle').click(function () {\r\n $(this).addClass('active').siblings().removeClass('active');\r\n});\r\nfunction initIsotopes() {\r\n var qsRegex;\r\n var buttonFilter;\r\n var itemsPerPage = 1000;\r\n var currentPage = 1;\r\n\r\n var $grid = $(\".gridWrapper\").isotope({\r\n itemSelector: \".element-item\",\r\n originLeft: isRTL ? false : true, // for rtl\r\n // layoutMode: \"fitRows\",\r\n filter: function () {\r\n var $this = $(this);\r\n var searchMatch = qsRegex ? $this.text().match(qsRegex) : true;\r\n var buttonMatch = buttonFilter ? $this.is(buttonFilter) : true;\r\n var pageIndex = $this.index();\r\n var itemStart = (currentPage - 1) * itemsPerPage;\r\n var itemEnd = currentPage * itemsPerPage;\r\n return searchMatch && buttonMatch && pageIndex >= itemStart && pageIndex < itemEnd;\r\n },\r\n });\r\n\r\n function updatePagination() {\r\n var itemCount = qsRegex || buttonFilter\r\n ? $grid.find(\".element-item\").filter(function () {\r\n var $this = $(this);\r\n var searchMatch = qsRegex ? $this.text().match(qsRegex) : true;\r\n var buttonMatch = buttonFilter ? $this.is(buttonFilter) : true;\r\n return searchMatch && buttonMatch;\r\n }).length\r\n : $grid.find(\".element-item\").length;\r\n\r\n var pageCount = Math.ceil(itemCount / itemsPerPage);\r\n $(\".pagination-box11\").empty();\r\n\r\n for (var i = 1; i <= pageCount; i++) {\r\n var $button = \"\";\r\n if (pageCount > 1) {\r\n var btnCSS = \"page-num body1\";\r\n if (currentPage == i) {\r\n btnCSS = \"page-num body1 active\";\r\n }\r\n $button = $(\"
  • \" + i + \"
  • \");\r\n $button.on(\"click\", function () {\r\n currentPage = $(this).text();\r\n $grid.isotope();\r\n });\r\n $(\".pagination-box11\").append($button);\r\n }\r\n }\r\n }\r\n\r\n $(\".txt-search\").on(\"input\", function () {\r\n var searchText = $(this).val();\r\n qsRegex = new RegExp(searchText, \"gi\");\r\n currentPage = 1;\r\n updatePagination();\r\n $grid.isotope();\r\n });\r\n\r\n $('.button-group').on('click', 'button', function () {\r\n buttonFilter = $(this).attr('data-filter');\r\n currentPage = 1; // Reset to the first page whenever a button filter is applied\r\n updatePagination();\r\n $grid.isotope();\r\n });\r\n\r\n updatePagination();\r\n $grid.isotope();\r\n}\r\nfunction initIsotopesDataLibrary() {\r\n var qsRegex;\r\n var buttonFilter;\r\n var itemsPerPage = 1000;\r\n var currentPage = 1;\r\n\r\n var $grid = $(\".js-gridWrapper\").isotope({\r\n itemSelector: \".js-card-wrapper\",\r\n originLeft: isRTL ? false : true, // for rtl\r\n layoutMode: \"fitRows\",\r\n filter: function () {\r\n var $this = $(this);\r\n var searchMatch = qsRegex ? $this.text().match(qsRegex) : true;\r\n var buttonMatch = buttonFilter ? $this.is(buttonFilter) : true;\r\n var pageIndex = $this.index();\r\n var itemStart = (currentPage - 1) * itemsPerPage;\r\n var itemEnd = currentPage * itemsPerPage;\r\n return searchMatch && buttonMatch && pageIndex >= itemStart && pageIndex < itemEnd;\r\n },\r\n });\r\n\r\n function updatePagination() {\r\n var itemCount = qsRegex || buttonFilter\r\n ? $grid.find(\".js-card-wrapper\").filter(function () {\r\n var $this = $(this);\r\n var searchMatch = qsRegex ? $this.text().match(qsRegex) : true;\r\n var buttonMatch = buttonFilter ? $this.is(buttonFilter) : true;\r\n return searchMatch && buttonMatch;\r\n }).length\r\n : $grid.find(\".js-card-wrapper\").length;\r\n\r\n var pageCount = Math.ceil(itemCount / itemsPerPage);\r\n $(\".pagination-box11\").empty();\r\n\r\n for (var i = 1; i <= pageCount; i++) {\r\n var $button = \"\";\r\n if (pageCount > 1) {\r\n var btnCSS = \"page-num body1\";\r\n if (currentPage == i) {\r\n btnCSS = \"page-num body1 active\";\r\n }\r\n $button = $(\"
  • \" + i + \"
  • \");\r\n $button.on(\"click\", function () {\r\n currentPage = $(this).text();\r\n $grid.isotope();\r\n });\r\n $(\".pagination-box11\").append($button);\r\n }\r\n }\r\n }\r\n\r\n $(\".txt-search\").on(\"input\", function () {\r\n var searchText = $(this).val();\r\n qsRegex = new RegExp(searchText, \"gi\");\r\n currentPage = 1;\r\n updatePagination();\r\n $grid.isotope();\r\n });\r\n\r\n $('.js-gridWrapper-link').on('click', function () {\r\n buttonFilter = $(this).attr('data-filter');\r\n currentPage = 1; // Reset to the first page whenever a button filter is applied\r\n updatePagination();\r\n $grid.isotope();\r\n });\r\n\r\n updatePagination();\r\n $grid.isotope();\r\n}\r\nfunction initiativeCarousel() {\r\n var $slider = $('.js-initiative-slider1');\r\n var $paginationLabel = $('.custom-pagination-label');\r\n\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text((slick.currentSlide + 1) + '/' + totalSlides);\r\n });\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $($slider).parent().find('.custom-arrows.prev').click(function () {\r\n $slider.slick('slickPrev');\r\n });\r\n\r\n $($slider).parent().find('.custom-arrows.next').click(function () {\r\n $slider.slick('slickNext');\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text((nextSlide + 1) + '/' + totalSlides);\r\n });\r\n}\r\n\r\n//slider class is not in html \r\nfunction initiativeCarouselResearch() {\r\n var $slider = $('.js-initiative-slider-research');\r\n if (!handleNoSlider($slider, 1)) return;\r\n var $paginationLabel = $('.custom-pagination-label');\r\n\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text((slick.currentSlide + 1) + '/' + totalSlides);\r\n });\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n $slider.parent().find('.custom-arrows.prev').click(function () {\r\n $slider.slick('slickPrev');\r\n });\r\n\r\n $slider.parent().find('.custom-arrows.next').click(function () {\r\n $slider.slick('slickNext');\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text((nextSlide + 1) + '/' + totalSlides);\r\n });\r\n}\r\n\r\n\r\nfunction imageCarousel($slider) {\r\n if (!handleNoSlider($slider, 1)) return;\r\n var $paginationLabel = $slider.closest('.sec-royal-commission').find('.js-royal-commission-pagination-label');\r\n var $prevArrow = $slider.closest('.sec-royal-commission').find('.js-royal-commission-arrow .custom-arrows.prev');\r\n var $nextArrow = $slider.closest('.sec-royal-commission').find('.js-royal-commission-arrow .custom-arrows.next');\r\n\r\n $slider.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n var currentSlideNumber = (slick.currentSlide + 1).toString().padStart(2, '0');\r\n var totalSlidesNumber = totalSlides.toString().padStart(2, '0');\r\n $paginationLabel.html('' + currentSlideNumber + ' / ' + totalSlidesNumber + '');\r\n // toggleArrowVisibility(slick.currentSlide, totalSlides, $prevArrow, $nextArrow);\r\n $slider.addClass('animationClass');\r\n });\r\n\r\n $slider.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n rtl: isRTL,\r\n asNavFor: '.js-royal-commission-nav',\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 601,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: false\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n }).on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $prevArrow.click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $nextArrow.click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n var totalSlidesNumber = totalSlides.toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlidesNumber + '');\r\n $slider.removeClass('animationClass');\r\n });\r\n\r\n $slider.on('afterChange', function (event, slick, currentSlide) {\r\n $slider.addClass('animationClass');\r\n });\r\n\r\n\r\n}\r\n\r\nfunction imageCarousel2($slider1) {\r\n if (!handleNoSlider($slider1, 1)) return;\r\n\r\n $slider1.on('init', function (event, slick) {\r\n $slider1.find('.slick-slide').removeClass('prevSlide');\r\n $slider1.find('.slick-active').prev().addClass('prevSlide');\r\n });\r\n\r\n $slider1.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n asNavFor: '.js-royal-commission-main',\r\n centerMode: true,\r\n focusOnSelect: true,\r\n arrows: false,\r\n infinite: true,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n });\r\n\r\n // Update prevSlide class on beforeChange event\r\n $slider1.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n $slider1.find('.slick-active').prev().addClass('prevSlide');\r\n });\r\n\r\n // Remove prevSlide class on afterChange event\r\n $slider1.on('afterChange', function (event, slick, currentSlide) {\r\n $slider1.find('.slick-slide').removeClass('prevSlide');\r\n });\r\n\r\n}\r\n\r\nfunction isElementInViewport(elem) {\r\n var $elem = $(elem);\r\n var docViewTop = $(window).scrollTop() - 20;\r\n var docViewBottom = docViewTop + $(window).height();\r\n var elemTop = $elem.offset().top;\r\n var elemBottom = elemTop + $elem.height();\r\n return elemBottom >= docViewTop && elemTop <= docViewBottom;\r\n}\r\n\r\nfunction headerLight() {\r\n if ($('.header-light').length > 0) {\r\n var headerHeight = $('.header').innerHeight();\r\n $('.page--wrapper').css(\"padding-top\", headerHeight);\r\n } else {\r\n $('.page--wrapper').css(\"padding-top\", headerHeight);\r\n }\r\n}\r\n\r\n$(document).ready(function () {\r\n setInterval(function () {\r\n $(\".mega-menu\").css(\"top\", $(\".header\").innerHeight()); \r\n },50);\r\n checkStickyContent();\r\n downloadBtnFormValidation()\r\n footerNewsletterValidation();\r\n \r\n if ($(\".gridWrapper\").length > 0) {\r\n initIsotopes();\r\n }\r\n if($(window).width() > 991){\r\n accordionhoverState();\r\n }else{\r\n accordionClickState();\r\n } \r\n bannerSlider();\r\n onMouseHover();\r\n if ($(\".header\").length > 0) {\r\n showandHideMobileMenu();\r\n }\r\n $(window).resize(function () {\r\n $(\".mega-menu\").css(\"top\", $(\".header\").innerHeight());\r\n headerLight();\r\n });\r\n possibilitiesTabs();\r\n addClassOnUl();\r\n initIsotopesDataLibrary();\r\n discoverSlider();\r\n showMobileMenuDropdown();\r\n showReportDownloadDiv();\r\n headerStickyFunctionality();\r\n dataTrim();\r\n headerStickyFunctionality();\r\n scrollTop();\r\n megaMenuFunction();\r\n ChangeToSvg();\r\n natureContentSlider();\r\n natureBgSlider();\r\n formValidation();\r\n maxSectorsSelection();\r\n fileUploadfunctionality();\r\n $('.sec-faq-search').each(function () {\r\n initializeSearchFunctionality($(this));\r\n });\r\n $(\".sec-nature-wildlife\").find(\".left-col\").find('.slide-btn:first-child').addClass(\"active\");\r\n $(\".sec-interactive-width\").find(\".img-grid\").find('.icon-box img').addClass(\"js-tosvg\");\r\n $(\".sec-interactive-width\").find(\".img-grid\").find('.icon-box img').addClass(\"insvg\");\r\n const textareas = document.querySelectorAll('textarea[id=\"message\"]');\r\n const counters = document.querySelectorAll('span.counter');\r\n textareas.forEach((textarea, index) => {\r\n updateTextareaCounter(textarea, counters[index]);\r\n });\r\n if ($('.map-tabs').length > 0) {\r\n $('.map-tabs .sec-wrapper .btn-wrapper .tab-button:first-child').addClass(\"active\");\r\n }\r\n if ($('.tab-items').length > 0) {\r\n \r\n }\r\n \r\n\r\n if ($('.js-modal').length > 0) {\r\n mapModal();\r\n }\r\n paginationNum();\r\n filterDrawer();\r\n toggleView();\r\n smoothScrolling();\r\n tabVisibility();\r\n textCharacterTrancut();\r\n initializeMediaCardsGridView();\r\n initializeMediaCardsListView();\r\n handleMobileView();\r\n audioPlayer();\r\n filterCounter();\r\n dropDownIconMove();\r\n initializeMediaAnnualPdf();\r\n navActiveToggle();\r\n eSrvicesSearch();\r\n ResultSearchFunctionality();\r\n headerSearchDrawer();\r\n setupLoadMoreFunctionality();\r\n classToggle();\r\n setupSearchDrawer();\r\n cookieBanner();\r\n haveHeaderLight();\r\n removeEmptyPara();\r\n addClasstoPara();\r\n if($('.phone-number-input').length > 0){\r\n intlTelInputInit();\r\n }\r\n \r\n $('.js-form-button').click(function () {\r\n $(\".js-form-content\").removeClass('tab-active');\r\n $(\".js-form-content[data-id='\" + $(this).attr('data-id') + \"']\").addClass(\"tab-active\");\r\n $(\".js-form-button\").removeClass('active');\r\n $(\".js-form-button[data-id='\" + $(this).attr('data-id') + \"']\").addClass(\"active\");\r\n });\r\n\r\n if ($('#quoteTextValue').length > 0) {\r\n jttBannerAnim();\r\n }\r\n\r\n $(document).mouseleave(function () {\r\n $('body').removeClass('menuOpen');\r\n $('.menu-link').removeClass('active');\r\n });\r\n\r\n $(\".mega-menu\").css(\"top\", $(\".header\").innerHeight());\r\n\r\n\r\n if ($(\".js-filter-slider\").length > 0) {\r\n $('.sec-media-resources').each((i, elem) => {\r\n const $filterSlider = $(elem).find('.js-filter-slider');\r\n filterSlider($filterSlider, $(elem));\r\n });\r\n }\r\n\r\n initializeFirstSlider();\r\n\r\n $('.js-initiate-link').on('shown.bs.tab', function (e) {\r\n var targetSliderClass = $(e.target).data('slider');\r\n if ($(targetSliderClass).hasClass('slick-initialized')) {\r\n $(targetSliderClass).slick('setPosition');\r\n var $arrowWrap = $(targetSliderClass).parent().find(\".arrow-wrap\");\r\n $arrowWrap.removeClass('noSlider--pagination'); \r\n } else {\r\n \r\n loadInitiativeCarousel($(targetSliderClass));\r\n }\r\n });\r\n\r\n if ($(\".js-masterplan-slider\").length > 0) {\r\n $('.sec-masterplan').each((i, elem) => {\r\n const $masterplanCarousel = $(elem).find('.js-masterplan-slider');\r\n masterplanCarousel($masterplanCarousel, $(elem));\r\n });\r\n }\r\n\r\n if ($(\".js-sec-images-slider\").length > 0) {\r\n $('.image-slider').each((i, elem) => {\r\n const $PdfImagesSlider = $(elem).find('.js-sec-images-slider');\r\n PdfImagesSlider($PdfImagesSlider, $(elem));\r\n });\r\n }\r\n\r\n if ($(\".js-sec-press-release-post\").length > 0) {\r\n $('.sec-press-release').each((i, elem) => {\r\n const $initializeSlider = $(elem).find('.js-sec-press-release-post');\r\n initializeSlider($initializeSlider, '.js-press-release-pagination-label', '.js-press-release-arrows .custom-arrows.prev', '.js-press-release-arrows .custom-arrows.next');\r\n });\r\n }\r\n\r\n if ($(\".js-nav-slider-items\").length > 0) {\r\n $('.e-services-listing').each((i, elem) => {\r\n const $navPillSlider = $(elem).find('.js-nav-slider-items');\r\n navPillSlider($navPillSlider);\r\n });\r\n }\r\n if ($(\".js-sec-news-and-press\").length > 0) {\r\n $('.sec-press-release').each((i, elem) => {\r\n const $newsPressSlider = $(elem).find('.js-sec-news-and-press');\r\n newsPressSlider($newsPressSlider);\r\n });\r\n }\r\n if ($(\".js-e-services\").length > 0) {\r\n $('.sec-e-services').each((i, elem) => {\r\n const $eServicesSlider = $(elem).find('.js-e-services');\r\n eServicesSlider($eServicesSlider);\r\n });\r\n }\r\n if ($(\".js-portolioSlider\").length > 0) {\r\n $('.portfolio-detail-sec').each((i, elem) => {\r\n const $portfolioSlider = $(elem).find('.js-portolioSlider');\r\n portfolioSlider($portfolioSlider);\r\n });\r\n }\r\n if ($(\".js-royal-commission-main\").length > 0) {\r\n $('.sec-royal-commission').each((i, elem) => {\r\n const $imageCarousel = $(elem).find('.js-royal-commission-main');\r\n imageCarousel($imageCarousel);\r\n });\r\n }\r\n if ($(\".js-royal-commission-nav\").length > 0) {\r\n $('.sec-royal-commission').each((i, elem) => {\r\n const $imageCarousel2 = $(elem).find('.js-royal-commission-nav');\r\n imageCarousel2($imageCarousel2);\r\n });\r\n }\r\n if ($(\".js-rankings-slider-1\").length > 0) {\r\n $('.rankings-awards').each((i, elem) => {\r\n const $rankingsAwardsSlider = $(elem).find('.js-rankings-slider-1');\r\n rankingsAwardsSlider($rankingsAwardsSlider);\r\n });\r\n }\r\n\r\n $('.slider-expand').click(function () {\r\n\r\n if ($(this).hasClass('accordianactive')) {\r\n mapContent = 1;\r\n // $(this).removeClass('accordianactive');\r\n $('.slider-expand').removeClass('accordianactive');\r\n $('.sec-alula-map').removeClass('height--modify');\r\n $('.slide-items').slideUp(300);\r\n $('.slide-detail').fadeOut();\r\n $('.slider-arrow-pagination').fadeOut();\r\n $('.js-slide-arrow').css('display', 'none');\r\n $('.js-map-slider').slick('slickSetOption', {\r\n\r\n draggable: false,\r\n\r\n }, true);\r\n $('.js-map-slider').slick('slickSetOption', {\r\n\r\n }, true);\r\n\r\n } else {\r\n mapContent = 0;\r\n // $(this).addClass('accordianactive');\r\n $('.slider-expand').addClass('accordianactive');\r\n $('.sec-alula-map').addClass('height--modify');\r\n $('.slide-items').slideDown(300);\r\n $('.slide-detail').fadeIn();\r\n $('.js-slide-arrow').css('display', 'block');\r\n $('.slider-arrow-pagination').fadeIn();\r\n }\r\n \r\n });\r\n\r\n if ($(window).width() < 601) {\r\n $('.sec-alula-map').addClass('height--modify');\r\n }\r\n\r\n\r\n $(document).on('click', '.nextSlideButton', function () {\r\n var $contentSlider = $(this).closest('.sec-keyproject').find('.js-keyproject-content-slider');\r\n $contentSlider.slick('slickNext');\r\n });\r\n \r\n if ($('.js-initiate-link').length > 0) {\r\n if($(window).width() > 991){ \r\n \r\n var targetSliderClass = $('.js-initiate-link.active').data('slider'); \r\n loadInitiativeCarousel($(targetSliderClass));\r\n }else{ \r\n if(eventClick == false){\r\n $('.js-initiate-link.active').click(); \r\n eventClick = true;\r\n }else{\r\n $('.current').find('.js-initiate-link.active').click(); \r\n }\r\n \r\n }\r\n }\r\n\r\n // Check if slide 1 exists in the page than load\r\n if ($(\".js-media-slider-1\").length > 0) {\r\n $('.media-slider-box').each((i, elem) => {\r\n const $mediaSlider = $(elem).find('.js-media-slider-1');\r\n mediaSlider($mediaSlider);\r\n });\r\n }\r\n\r\n\r\n if ($(\".single-map\").find(\".js-map-slider-content-1\").length > 0) {\r\n var mapSliderContent = document.querySelector('.js-map-slider-content-1');\r\n // Check if the parent div exists\r\n if (mapSliderContent) {\r\n // Get all child divs with the class map-content-box\r\n var childDivs = mapSliderContent.querySelectorAll('.map-content-box');\r\n if (childDivs.length > 1) {\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n\r\n }\r\n else {\r\n mapCarousel(\".js-map-slider-content-1\", false, 0);\r\n }\r\n\r\n }\r\n }\r\n\r\n $('.sec-faq-search .search-box .btn-search').attr(\"href\",\"javascript:void(0)\");\r\n\r\n\r\n if ($(\".js-keyproject-image-slider\").length > 0) {\r\n $('.sec-keyproject').each((i, elem) => {\r\n const $contentSlider = $(elem).find('.js-keyproject-content-slider');\r\n const $imageSlider = $(elem).find('.js-keyproject-image-slider');\r\n keyprojectCarousel($imageSlider, $contentSlider);\r\n });\r\n }\r\n\r\n\r\n if($(\".js-leadership-tab\").length > 0 ){\r\n var jsImageSliderStatus = $(\".sec-leadership-team .nav-pills .nav-item:first-child\").find(\".js-leadership-tab\").attr(\"data-image-slider\");\r\n if(!($(jsImageSliderStatus).hasClass(\"slick-initialized\"))){\r\n $(\".sec-leadership-team .nav-pills .nav-item:first-child\").find(\".js-leadership-tab\").click();\r\n } \r\n}\r\n\r\n // Function to check if element is in viewport\r\n setTimeout(function () {\r\n if ($(window).scrollTop() === 0) {\r\n $('.header').addClass('header-animate');\r\n }\r\n\r\n $('.level1').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate');\r\n }\r\n });\r\n $('.level2').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate2');\r\n }\r\n });\r\n $('.level3').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate3');\r\n }\r\n });\r\n $('.level4').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate4');\r\n }\r\n });\r\n $('.level5').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate5');\r\n }\r\n });\r\n $('.level6').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate6');\r\n }\r\n });\r\n $('.level7').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate7');\r\n }\r\n });\r\n $('.level8').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate8');\r\n }\r\n });\r\n $('.level9').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate9');\r\n }\r\n });\r\n $('.level10').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate10');\r\n }\r\n });\r\n $('.level11').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate11');\r\n }\r\n });\r\n $('.level12').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate12');\r\n }\r\n });\r\n $('.level13').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate13');\r\n }\r\n });\r\n $('.level14').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate14');\r\n }\r\n });\r\n $('.level15').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate15');\r\n }\r\n });\r\n }, 1000);\r\n\r\n\r\n // Add class when element is in viewport\r\n $(window).scroll(function () {\r\n $('.level1').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate');\r\n }\r\n });\r\n\r\n $('.level2').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate2');\r\n }\r\n });\r\n\r\n $('.level3').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate3');\r\n }\r\n });\r\n\r\n $('.level4').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate4');\r\n }\r\n });\r\n $('.level5').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate5');\r\n }\r\n });\r\n $('.level6').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate6');\r\n }\r\n });\r\n $('.level7').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate7');\r\n }\r\n });\r\n $('.level8').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate8');\r\n }\r\n });\r\n $('.level9').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate9');\r\n }\r\n });\r\n $('.level10').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate10');\r\n }\r\n });\r\n $('.level11').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('sec-animate11');\r\n }\r\n });\r\n\r\n $('.header').each(function () {\r\n if (isElementInViewport(this)) {\r\n $(this).addClass('header-animate');\r\n }\r\n });\r\n\r\n });\r\n\r\n $('.img-grid').mouseenter(function () {\r\n $(this).addClass('expand');\r\n $('.img-grid').not(this).addClass('contract');\r\n });\r\n\r\n $('.img-grid').mouseleave(function () {\r\n $(this).removeClass('expand');\r\n $('.img-grid').not(this).removeClass('contract');\r\n });\r\n\r\n $(document).keydown(function (event) {\r\n if (event.key === \"Escape\") {\r\n $(\".side-popup\").animate({ right: '-900px' }, 300);\r\n $(\"body\").removeClass(\"popup-open\");\r\n $(\".overlay\").remove();\r\n }\r\n });\r\n\r\n if ($('.card-box').length > 0) {\r\n $('.card-box').parent().addClass('hover0');\r\n $('.card-box').first().addClass('active');\r\n }\r\n\r\n // Calling star rating library function\r\n starRatingLibrary ();\r\n headerLight();\r\n\r\n});\r\n\r\nfunction haveHeaderLight(){\r\n if ($('body').find(\".banner-home, .hero-banner, .sec-annual-report-hero\").length) {\r\n $('body').removeClass(\"header-light\");\r\n } else {\r\n $('body').addClass(\"header-light\");\r\n $('.page--wrapper').addClass(\"sec-padding--top\");\r\n }\r\n}\r\n\r\nfunction intlTelInputInit() {\r\n const input = document.querySelectorAll(\".phone-number-input\");\r\n if (input && input.length > 0) {\r\n input.forEach((input) => {\r\n var iti = window.intlTelInput(input, {\r\n separateDialCode: true,\r\n initialCountry: \"sa\",\r\n });\r\n window.iti = iti;\r\n });\r\n }\r\n}\r\n\r\n\r\n// flatpickr\r\n\r\n$(\".datePicker\").flatpickr({\r\n dateFormat: \"d-m-Y\" ,\r\n});\r\n\r\n\r\nfunction jttBannerAnim() {\r\n const $bg_img = $('.js-anim-bg-img');\r\n const $bg_img_backdrop = $('.js-anim-bg-backdrop');\r\n const $bg_img_arch_guy = $('.js-anim-arch-guy-img');\r\n const $bg_img_leaves = $('.js-anim-leaves-img');\r\n const $bg_img_light_arc = $('.js-anim-light-arch-img');\r\n const $textPara = $(\".js-anim-para\");\r\n var animationMediaQuery = `(min-width: 991px)`;\r\n match_Media.add(animationMediaQuery, () => {\r\n\r\n const tl = new TimelineMax({\r\n paused: true,\r\n });\r\n tl.to($bg_img, {\r\n translateY: '-50vh',\r\n duration: 2,\r\n delay: 2\r\n }).to($bg_img_backdrop, {\r\n opacity: 0,\r\n duration: 2,\r\n }, '<').to($bg_img_arch_guy, {\r\n translateY: '0',\r\n duration: 2,\r\n }, `-=1`).to($bg_img_leaves, {\r\n translateY: '0',\r\n duration: 2,\r\n }, `-=1.7`).to($bg_img_light_arc, {\r\n scale: 1,\r\n duration: 1,\r\n onComplete: () => {\r\n // Text animation after bg_img_light_arc animation\r\n\r\n if ($(\"#quoteTextValue\").length > 0) {\r\n animateWords();\r\n }\r\n\r\n }\r\n }).to(\r\n $textPara,\r\n {\r\n duration: 1,\r\n delay: 2,\r\n ease: \"power2.inOut\",\r\n opacity: 1,\r\n filter: \"blur(0px)\"\r\n }, `-=1`).to($bg_img_light_arc, {\r\n rotateZ: 25,\r\n duration: 1.5,\r\n\r\n }).to($bg_img_light_arc, {\r\n rotateZ: -70,\r\n left: '14.8%',\r\n duration: 1.9,\r\n delay: 1,\r\n\r\n })\r\n document.body.classList.add(\"loaded\");\r\n tl.play();\r\n\r\n return () => {\r\n gsap.set([$bg_img, $bg_img_backdrop, $bg_img_arch_guy, $bg_img_leaves, $bg_img_light_arc, $textPara], {\r\n clearProps: \"all\",\r\n });\r\n };\r\n });\r\n}\r\n\r\n\r\n// Function to animate the words\r\nfunction animateWords() {\r\n const quoteTxt = document.getElementById(\"quoteTextValue\").textContent.trim();\r\n \r\n // Split the text into words\r\n const quoteWords = quoteTxt.split(\" \");\r\n\r\n // Get the container element\r\n const quoteTextContainer = document.getElementById(\"quoteText\");\r\n const minDuration = 0.5;\r\n const maxDuration = 0.5;\r\n const maxDelay = 0;\r\n\r\n const tl = gsap.timeline({ delay: 1, defaults: { ease: \"power1.out\" } });\r\n\r\n // Animate quote icon into view\r\n // tl.fromTo(\".quote__icon\", { opacity: 0 }, { opacity: 0.3, duration: 0.5 });\r\n\r\n // Animate each word\r\n quoteWords.forEach((word, index) => {\r\n const space = index === quoteWords.length - 1 ? \"\" : \" \";\r\n const wordElement = document.createElement(\"span\");\r\n wordElement.className = `quote-word word-${index}`;\r\n wordElement.textContent = word + space;\r\n quoteTextContainer.appendChild(wordElement);\r\n\r\n tl.fromTo(\r\n wordElement,\r\n {\r\n opacity: 0,\r\n filter: \"blur(80px)\"\r\n },\r\n {\r\n duration: () => Math.random() * maxDuration + minDuration,\r\n delay: () => Math.random() * maxDelay,\r\n ease: \"power2.inOut\",\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n },\r\n \"-=0.5\"\r\n );\r\n });\r\n}\r\n\r\n// function handleNoSlider\r\nfunction handleNoSlider($slider, slidesToShow) {\r\n\r\n var totalSlides = $slider?.children().length;\r\n\r\n if (totalSlides <= slidesToShow) {\r\n $slider.addClass('noSlider');\r\n\r\n var $arrowWrap = $slider.parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.addClass('noSlider--pagination');\r\n } else {\r\n $arrowWrap = $slider.parent().parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.addClass('noSlider--pagination');\r\n }\r\n }\r\n\r\n var $secPostContentInfo = $slider.parent().find(\".sec-post-content-info\");\r\n if ($secPostContentInfo.length) {\r\n $secPostContentInfo.css('transform', 'none');\r\n }\r\n\r\n } else {\r\n $slider.removeClass('noSlider');\r\n\r\n var $arrowWrap = $slider.parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.removeClass('noSlider--pagination');\r\n } else {\r\n $arrowWrap = $slider.parent().parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.removeClass('noSlider--pagination');\r\n }\r\n }\r\n\r\n return true; // slider should be initialized\r\n }\r\n return false; // slider should not be initialized\r\n}\r\n\r\nfunction leadershipCarousel(contentSlider, imageSlider) {\r\n var $contentSlider = $(contentSlider);\r\n var $imageSlider = $(imageSlider);\r\n\r\n if (!handleNoSlider($contentSlider, 1) && !handleNoSlider($imageSlider, 1)) {\r\n return;\r\n }\r\n\r\n // Initialize the content slider\r\n $contentSlider.on('init', function (event, slick) {\r\n let $paginationLabel1 = $(this).parent().find('.js-leadership-content-slider-pagination-label');\r\n updatePaginationLabel(1, slick.slideCount, $paginationLabel1);\r\n toggleArrowVisibility(slick.currentSlide, slick.slideCount, $contentSlider);\r\n });\r\n\r\n $contentSlider.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n infinite: false,\r\n rtl: isRTL,\r\n asNavFor: imageSlider,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n dots: true,\r\n adaptiveHeight: true\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n let $paginationLabel1 = $(this).parent().find('.js-leadership-content-slider-pagination-label');\r\n updatePaginationLabel(nextSlide + 1, slick.slideCount, $paginationLabel1);\r\n });\r\n\r\n $imageSlider.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: false,\r\n dots: false,\r\n infinite: false,\r\n rtl: isRTL,\r\n asNavFor: contentSlider,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n // return '
    ';\r\n }\r\n })\r\n .on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n toggleArrowVisibility(nextSlide, slick.slideCount, $imageSlider);\r\n });\r\n\r\n $imageSlider.on('init', function (event, slick) {\r\n toggleArrowVisibility(slick.currentSlide, slick.slideCount, $imageSlider);\r\n });\r\n\r\n $imageSlider.parent().find('.custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $imageSlider.slick('slickNext');\r\n } else {\r\n $imageSlider.slick('slickPrev');\r\n }\r\n\r\n });\r\n\r\n $imageSlider.parent().find('.custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $imageSlider.slick('slickPrev');\r\n } else {\r\n $imageSlider.slick('slickNext');\r\n }\r\n });\r\n\r\n function updatePaginationLabel(current, total, $label) {\r\n $label.text(current + '/' + total);\r\n }\r\n\r\n}\r\n\r\nfunction keyprojectCarousel(contentSlider, imageSlider) {\r\n // Content Slider\r\n var $slider = $(contentSlider);\r\n if (!handleNoSlider($slider, 1)) return;\r\n\r\n var $paginationLabel = $(contentSlider).parent().find('.js-keyproject-image-slide-pagination-label');\r\n\r\n $slider.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text(1 + '/' + totalSlides);\r\n toggleArrowVisibility(slick.currentSlide, slick.slideCount, $slider);\r\n });\r\n\r\n $slider.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n infinite: false,\r\n fade: true,\r\n rtl: isRTL,\r\n asNavFor: imageSlider,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $(contentSlider).parent().find('.js-keyproject-image-slide-arrow.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $(contentSlider).parent().find('.js-keyproject-image-slide-arrow.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text((nextSlide + 1) + '/' + totalSlides);\r\n toggleArrowVisibility(nextSlide, slick.slideCount, $slider);\r\n });\r\n\r\n var $slider1 = $(imageSlider);\r\n\r\n $slider1.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: false,\r\n dots: false,\r\n rtl: isRTL,\r\n // adaptiveHeight: true,\r\n asNavFor: contentSlider,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ],\r\n })\r\n\r\n}\r\n\r\nfunction mapCarousel(imageSlider, sliderBool, slideNumber) {\r\n var $slider1 = $(imageSlider);\r\n var $paginationLabel = $(imageSlider).parent().find('.custom-pagination-label');\r\n var $arrowDiv = $(imageSlider).parent().find('.js-slide-arrow');\r\n var totalSlides = $(imageSlider).find(\".map-content-box\").length;\r\n $(\".slick-initialized\").slick(\"refresh\");\r\n // Set pagination label text\r\n $paginationLabel.text(1 + '/' + totalSlides);\r\n\r\n // Initialize Slick slider only if there are two or more slides\r\n if (totalSlides > 1 && !($(imageSlider).hasClass('slick-initialized'))) {\r\n\r\n $slider1.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: false,\r\n dots: false,\r\n rtl: isRTL,\r\n draggable: true,\r\n adaptiveHeight: true,\r\n infinite: false,\r\n responsive: [\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ],\r\n });\r\n\r\n $slider1.slick('slickGoTo', slideNumber);\r\n\r\n // Enable custom arrows\r\n $(imageSlider).parent().find('.custom-arrows.prev').click(function () {\r\n // $slider1.slick('slickPrev');\r\n if (isRTL) {\r\n $slider1.slick('slickNext');\r\n } else {\r\n $slider1.slick('slickPrev');\r\n }\r\n });\r\n\r\n $(imageSlider).parent().find('.custom-arrows.next').click(function () {\r\n // $slider1.slick('slickNext');\r\n if (isRTL) {\r\n $slider1.slick('slickPrev');\r\n } else {\r\n $slider1.slick('slickNext');\r\n }\r\n });\r\n\r\n }\r\n if (totalSlides > 1 && jQuery('.slider-expand').hasClass('accordianactive')) {\r\n $(imageSlider).parent().find('.js-slide-arrow').css('display', 'block');\r\n $(imageSlider).parent().find('.slider-arrow-pagination').css('display', 'block');\r\n }else {\r\n $arrowDiv.hide();\r\n $(imageSlider).parent().find('.js-slide-arrow').css('display', 'none');\r\n $(imageSlider).parent().find('.slider-arrow-pagination').css('display', 'none');\r\n }\r\n\r\n}\r\n\r\n$('.js-initiate-link').click(function () {\r\n\r\n if($(window).width() < 991){\r\n $('.js-initiate-link').removeClass(\"active\"); \r\n var currentSlider = $('.js-initiate-link').attr('data-slider');\r\n var sliderExists = $(currentSlider + '.slick-initialized').length;\r\n\r\n if (sliderExists == 0) {\r\n setTimeout(function () {\r\n loadInitiativeCarousel(currentSlider);\r\n }, 160);\r\n }\r\n } \r\n \r\n\r\n});\r\n\r\n$('.js-nav-action-media').click(function () {\r\n var currentSlider = $(this).attr('data-slider');\r\n var sliderExists = $(currentSlider + '.slick-initialized').length;\r\n\r\n if (sliderExists == 0) {\r\n setTimeout(function () {\r\n mediaSlider(currentSlider);\r\n }, 160);\r\n }\r\n\r\n});\r\n\r\n$('.js-leadership-tab').click(function () {\r\n var contentSlider = $(this).attr('data-content-slider');\r\n var imageSlider = $(this).attr('data-image-slider');\r\n var sliderExists = $(contentSlider + '.slick-initialized').length;\r\n\r\n if (sliderExists == 0) {\r\n setTimeout(function () {\r\n leadershipCarousel(contentSlider, imageSlider);\r\n }, 160);\r\n \r\n }\r\n\r\n \r\n\r\n});\r\n\r\nfunction initializeFirstSlider() {\r\n if ($(\".js-initiative-slider-1\").length > 0) {\r\n const $loadInitiativeCarousel1 = $('.js-initiative-slider-1');\r\n if ($loadInitiativeCarousel1.length > 0) {\r\n loadInitiativeCarousel($loadInitiativeCarousel1);\r\n }\r\n }\r\n}\r\n\r\nfunction loadInitiativeCarousel($slider) {\r\n\r\n if (!handleNoSlider($slider, 1)) return;\r\n\r\n let totalSlidesGlobal\r\n let slidesToShow = 1\r\n $slider = $($slider);\r\n if (!$slider.length) {\r\n console.error(\"Slider element not found\");\r\n return;\r\n }\r\n $slider.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n totalSlidesGlobal = totalSlides;\r\n if (totalSlides > 0) {\r\n var currentSlideNumber = (slick.currentSlide + 1).toString().padStart(2, '0');\r\n var $paginationLabel = $slider.closest('.tab-pane').find('.js-initiative-pagination-label');\r\n\r\n if ($paginationLabel.length > 0) {\r\n $paginationLabel.html('' + currentSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n }\r\n toggleArrowVisibility(slick.currentSlide, slick.slideCount, $slider);\r\n $(slick.$slides.get([2])).addClass('slick-next-slide');\r\n }\r\n });\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n rtl: isRTL,\r\n focusOnSelect: true,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n });\r\n\r\n // Enable custom arrows\r\n $slider.closest('.tab-pane').find('.js-initiative-arrow.prev').click(function () {\r\n \r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $slider.closest('.tab-pane').find('.js-initiative-arrow.next').click(function () {\r\n \r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n var $paginationLabel = $slider.closest('.tab-pane').find('.js-initiative-pagination-label');\r\n\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n toggleArrowVisibility(nextSlide, slick.slideCount, $slider);\r\n });\r\n\r\n $slider.on('afterChange', function (event, slick, currentSlide) {\r\n var totalSlides = slick.slideCount;\r\n $slider.find(\".slick-slide\").removeClass('slick-next-slide');\r\n $slider.find(\".slick-active\").next().addClass('slick-next-slide');\r\n\r\n if (totalSlides == (currentSlide + 1)) {\r\n $(slick.$slides.get([0])).addClass('slick-next-slide');\r\n }\r\n });\r\n\r\n if (totalSlidesGlobal <= slidesToShow) {\r\n \r\n\r\n var $arrowWrap = $slider.parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.addClass('noSlider--pagination');\r\n } else {\r\n $arrowWrap = $slider.parent().parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.addClass('noSlider--pagination');\r\n }\r\n }\r\n\r\n } else {\r\n \r\n\r\n var $arrowWrap = $slider.parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.removeClass('noSlider--pagination');\r\n } else {\r\n $arrowWrap = $slider.parent().parent().find(\".arrow-wrap\");\r\n if ($arrowWrap.length) {\r\n $arrowWrap.removeClass('noSlider--pagination');\r\n }\r\n }\r\n\r\n \r\n }\r\n}\r\n\r\n\r\nfunction toggleArrowVisibility(currentSlide, slideCount, $slider) {\r\n\r\n var $prevArrow = $slider.parent().find('.custom-arrows.prev');\r\n var $nextArrow = $slider.parent().find('.custom-arrows.next');\r\n\r\n if (currentSlide === 0) {\r\n // $prevArrow.addClass('disabled');\r\n if (isRTL) {\r\n $nextArrow.addClass('disabled');\r\n } else {\r\n $prevArrow.addClass('disabled');\r\n }\r\n } else {\r\n // $prevArrow.removeClass('disabled');\r\n if (isRTL) {\r\n $nextArrow.removeClass('disabled');\r\n } else {\r\n $prevArrow.removeClass('disabled');\r\n }\r\n }\r\n\r\n if (currentSlide === slideCount - 1) {\r\n // $nextArrow.addClass('disabled');\r\n if (isRTL) {\r\n $prevArrow.addClass('disabled');\r\n } else {\r\n $nextArrow.addClass('disabled');\r\n }\r\n } else {\r\n // $nextArrow.removeClass('disabled');\r\n if (isRTL) {\r\n $prevArrow.removeClass('disabled');\r\n } else {\r\n $nextArrow.removeClass('disabled');\r\n }\r\n }\r\n}\r\n\r\nfunction initializeSlider(sliderSelector, paginationLabelSelector, prevArrowSelector, nextArrowSelector) {\r\n try {\r\n var $slider = $(sliderSelector);\r\n var numberOfSides = 3;\r\n if(winWidth > 991){\r\n numberOfSides = 3;\r\n }else if (winWidth > 599){\r\n numberOfSides = 2;\r\n }else{\r\n numberOfSides = 1;\r\n }\r\n if (!handleNoSlider($slider, numberOfSides)) return;\r\n\r\n var $paginationLabel = $slider.closest('.sec-press-release').find(paginationLabelSelector);\r\n var $prevArrow = $slider.closest('.sec-press-release').find(prevArrowSelector);\r\n var $nextArrow = $slider.closest('.sec-press-release').find(nextArrowSelector);\r\n\r\n if (!$slider.length || !$paginationLabel.length || !$prevArrow.length || !$nextArrow.length) {\r\n console.error('One or more required elements not found.');\r\n return; // Exit the function if any required elements are missing\r\n }\r\n\r\n $slider.on('init', function (event, slick) {\r\n try {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // var slidesToShow = slick.options.slidesToShow;\r\n var slidesToShow = numberOfSides;\r\n \r\n\r\n // Hide arrows if total slides are less than slidesToShow\r\n if (totalSlides <= slidesToShow) {\r\n $prevArrow.hide();\r\n $nextArrow.hide();\r\n $paginationLabel.hide();\r\n } else {\r\n $prevArrow.show();\r\n $nextArrow.show();\r\n $paginationLabel.show();\r\n }\r\n } catch (error) {\r\n console.error('Error in slick init event handler:', error);\r\n }\r\n });\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1,\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n }).on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $prevArrow.click(function () {\r\n // $slider.slick('slickPrev');\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $nextArrow.click(function () {\r\n // $slider.slick('slickNext');\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n try {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(totalSlides, $prevArrow, $nextArrow);\r\n } catch (error) {\r\n console.error('Error in beforeChange event handler:', error);\r\n }\r\n });\r\n } catch (error) {\r\n console.error('Error in initializeSlider function:', error);\r\n }\r\n}\r\n\r\nfunction portfolioSlider(sliderName) {\r\n var $slider = $(sliderName);\r\n if (!handleNoSlider($slider, 1)) return;\r\n var $paginationLabel = $('.js-portolioSlider-pagination-label');\r\n\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(slick.currentSlide, totalSlides, '.js-portolioSlider-arrow .custom-arrows.prev', '.js-portolioSlider-arrow .custom-arrows.next');\r\n });\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n fade: true,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $('.js-portolioSlider-arrow .custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $('.js-portolioSlider-arrow .custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n });\r\n\r\n}\r\n\r\n\r\nfunction eServicesSlider(sliderName) {\r\n var $slider = $(sliderName);\r\n if (!handleNoSlider($slider, 3)) return;\r\n var $paginationLabel = $('.js-e-services-pagination-label');\r\n\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n \r\n });\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n adaptiveHeight: true,\r\n \r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n });\r\n\r\n // Enable custom arrows\r\n $('.js-e-services-arrow .custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $('.js-e-services-arrow .custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n \r\n });\r\n\r\n}\r\n\r\n// home banner servises slider on mobile view start //\r\nfunction bannerSlider() {\r\n if ($(window).width() <= 991) {\r\n // Initialize Slick slider only on mobile screens\r\n $('.js-mobile-vw-slider').slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n arrows: false,\r\n rtl: isRTL,\r\n appendDots: $('.custom-bullets'), // Specify the container for dots\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n });\r\n } else {\r\n // If not on mobile screens, destroy the Slick slider if it was previously initialized\r\n if ($('.js-mobile-vw-slider').hasClass('slick-initialized')) {\r\n $('.js-mobile-vw-slider').slick('unslick');\r\n }\r\n }\r\n}\r\n\r\nfunction onMouseHover() {\r\n $('.img-grid').mouseenter(function () {\r\n $(this).addClass('expand');\r\n $('.img-grid').not(this).addClass('contract');\r\n });\r\n $('.img-grid').mouseleave(function () {\r\n $(this).removeClass('expand');\r\n $('.img-grid').not(this).removeClass('contract');\r\n });\r\n}\r\n\r\n\r\nfunction possibilitiesTabs() {\r\n $('.card-box').click(function () {\r\n $(this).addClass('active').siblings().removeClass('active');\r\n $('.video-bg').addClass('active').siblings().removeClass('active');\r\n });\r\n\r\n // nature&Wildlifr slide btn click\r\n $('.slide-btn').click(function () {\r\n $(this).addClass('active').siblings().removeClass('active');\r\n });\r\n\r\n // Remove active class from siblings when hovering over them\r\n $('.card-box').hover(function () {\r\n $(this).siblings().removeClass('active');\r\n });\r\n}\r\n\r\n\r\n// Add and show classes Start\r\nfunction addClassOnUl() {\r\n\r\n function megaMenu1() {\r\n $('[data-mega-menu-1]').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n $($(this).data('mega-menu-1')).addClass('showCol');\r\n });\r\n\r\n $('.menu-link').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.no-subitems').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.has-subitems-1').hover(function () {\r\n $('.mega-col-3 .ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.page--wrapper').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n }\r\n megaMenu1();\r\n\r\n function megaMenu2() {\r\n $('[data-mega-menu-2]').hover(function () {\r\n $($(this).data('mega-menu-2')).addClass('showCol');\r\n });\r\n\r\n $('.menu-link').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.page--wrapper').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n });\r\n }\r\n megaMenu2();\r\n\r\n function megaMenu3() {\r\n $('[data-mega-menu-3]').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n $($(this).data('mega-menu-3')).addClass('showCol');\r\n });\r\n\r\n $('.menu-link').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.page--wrapper').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n });\r\n }\r\n megaMenu3();\r\n\r\n function megaMenu4() {\r\n $('[data-mega-menu-4]').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n $($(this).data('mega-menu-4')).addClass('showCol');\r\n });\r\n\r\n $('.menu-link').hover(function () {\r\n $('.ul-wrapper').removeClass('showCol');\r\n });\r\n\r\n $('.page--wrapper').hover(function () {\r\n $('.mega-col-2 .ul-wrapper').removeClass('showCol');\r\n });\r\n }\r\n megaMenu4();\r\n\r\n $(\".header .mbl-menu-wrapper\").css(\"top\", $(\".header\").innerHeight());\r\n}\r\n// Add and show classes End\r\n\r\n// Function to Show and Hide Menu on Hamburger Click Start \r\n\r\nfunction showandHideMobileMenu() {\r\n const HamburgerBtn = document.querySelector(\".mbl-menu-wrapper\")\r\n document.querySelector('.ham-open-close').onclick = function () {\r\n $(HamburgerBtn).toggleClass('active');\r\n $('body').toggleClass('active');\r\n }\r\n\r\n const HamOpenBtn = document.querySelector(\".hamburger-mobile\")\r\n const HamCloseBtn = document.querySelector(\".hamburger-close\")\r\n document.querySelector('.hamburger-mobile').onclick = function () {\r\n HamOpenBtn.style.display = \"none\";\r\n HamCloseBtn.style.display = \"block\";\r\n }\r\n\r\n document.querySelector('.hamburger-close').onclick = function () {\r\n HamCloseBtn.style.display = \"none\";\r\n HamOpenBtn.style.display = \"block\";\r\n }\r\n}\r\n\r\n// Function to Show and Hode Menu on Hamburger Click End \r\n\r\n// Show and Hide Mobile Dropdown Menu Start\r\nfunction showMobileMenuDropdown() {\r\n const subDropdownsLink1 = document.querySelectorAll('.has-mbl-dropdown .has-second');\r\n const subDropdownsLink2 = document.querySelectorAll('.has-mbl-dropdown .has-third');\r\n const subDropdownsLink3 = document.querySelectorAll('.has-mbl-dropdown .has-fourth');\r\n\r\n $(subDropdownsLink1).click(function () {\r\n // Remove class from all dropdowns except the clicked one\r\n $('.mbl-submenu').not($(this).siblings('.mbl-submenu')).removeClass('show-submenu');\r\n $(this).siblings('.mbl-submenu').toggleClass('show-submenu');\r\n $('.menu-dropdown-icon').removeClass('rotate');\r\n\r\n });\r\n\r\n $(subDropdownsLink2).click(function () {\r\n $(this).siblings('.mbl-submenu').toggleClass('show-submenu');\r\n });\r\n\r\n $(subDropdownsLink3).click(function () {\r\n $(this).siblings('.mbl-submenu').toggleClass('show-submenu');\r\n });\r\n\r\n var body3Elements = document.querySelectorAll('.has-mbl-dropdown .body3');\r\n body3Elements.forEach(function (element) {\r\n element.addEventListener('click', function () {\r\n var dropdownIcon = element.querySelector('.menu-dropdown-icon');\r\n if (dropdownIcon) {\r\n dropdownIcon.classList.toggle('rotate');\r\n }\r\n });\r\n });\r\n\r\n\r\n var menuItems = document.querySelectorAll('.mbl-menu-wrapper .body3');\r\n $(menuItems).click(function () {\r\n // $(this).toggleClass('active');\r\n if ( $(this).hasClass('active') ) {\r\n $(this).removeClass('active');\r\n } else {\r\n $('.mbl-menu-wrapper .body3').removeClass('active');\r\n $(this).addClass('active');\r\n }\r\n });\r\n menuItems.forEach(function (item) {\r\n item.addEventListener('click', function (event) {\r\n menuItems.forEach(function (item) {\r\n item.classList.remove('black-text');\r\n item.classList.add('gray');\r\n });\r\n\r\n if (item.nextElementSibling && item.nextElementSibling.classList.contains('mbl-submenu')) {\r\n var dropdownItems = item.nextElementSibling.querySelectorAll('.body3');\r\n dropdownItems.forEach(function (dropdownItem) {\r\n dropdownItem.classList.remove('gray');\r\n dropdownItem.classList.add('black-text');\r\n });\r\n }\r\n });\r\n });\r\n\r\n}\r\n\r\n// Show and Hide Mobile Dropdown Menu End\r\n\r\n// Show download report on click yearwise start\r\n\r\nfunction showReportDownloadDiv() {\r\n const reportDivs = document.querySelectorAll('.report');\r\n const reportDownload = document.querySelector('.report-download');\r\n const banners = document.querySelectorAll('.banner-img');\r\n\r\n reportDivs.forEach(reportDiv => {\r\n reportDiv.addEventListener('click', function () {\r\n reportDownload.prepend(this);\r\n document.querySelectorAll('.report').forEach(div => {\r\n $(div).removeClass('active');\r\n });\r\n $(this).addClass('active');\r\n document.querySelectorAll('.download-div').forEach(downloadDiv => {\r\n $(downloadDiv).removeClass('active');\r\n });\r\n $(this).find('.download-div').addClass('active');\r\n });\r\n });\r\n\r\n reportDivs.forEach(report => {\r\n report.addEventListener('click', function () {\r\n const year = this.classList[1].split('-')[1];\r\n banners.forEach(banner => {\r\n banner.classList.remove('active-banner');\r\n });\r\n document.querySelector(`.banner-${year}`)?.classList.add('active-banner');\r\n });\r\n });\r\n\r\n}\r\n// Show download report on click yearwise end \r\n\r\n// Show upload file name as a field label start \r\n\r\nfunction showUploadFieldName() {\r\n const fileInput = document.getElementById('file-upload-field');\r\n const fileUploadWrapper = document.querySelector('.file-upload-wrapper');\r\n\r\n fileInput.addEventListener('change', function () {\r\n if (this.files.length > 0) {\r\n const fileName = this.files[0].name;\r\n fileUploadWrapper.setAttribute('data-text', fileName);\r\n } else {\r\n fileUploadWrapper.setAttribute('data-text', 'Upload Resume');\r\n }\r\n });\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n var containers = document.querySelectorAll('.has-submenu');\r\n\r\n containers.forEach(function (container) {\r\n container.addEventListener('click', function () {\r\n // Check if the clicked container already has the 'show' class\r\n var isAlreadyShown = container.classList.contains('show');\r\n\r\n // Toggle 'show--options' class for the clicked container's UL element\r\n var ulElement = container.querySelector('.submenu');\r\n if (ulElement) {\r\n ulElement.classList.toggle('show--options');\r\n }\r\n\r\n // Add or remove 'show' class based on current state\r\n if (isAlreadyShown) {\r\n container.classList.remove('show');\r\n } else {\r\n container.classList.add('show');\r\n }\r\n\r\n // Remove 'show' class and 'show--options' class from all other containers\r\n containers.forEach(function (item) {\r\n if (item !== container) {\r\n item.classList.remove('show');\r\n var otherUlElement = item.querySelector('.submenu');\r\n if (otherUlElement) {\r\n otherUlElement.classList.remove('show--options');\r\n }\r\n }\r\n });\r\n });\r\n\r\n // Prevent event propagation when clicking on the submenu\r\n var submenu = container.querySelector('.submenu');\r\n if (submenu) {\r\n submenu.addEventListener('click', function (event) {\r\n event.stopPropagation();\r\n });\r\n }\r\n });\r\n});\r\n\r\n\r\n\r\n\r\n\r\n// sec - about - discovering - alula Start\r\nfunction discoverSlider() {\r\n if ($(window).width() <= 600) {\r\n $('.js-ada-slider').slick({\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n rtl: isRTL,\r\n variableWidth: true,\r\n autoplay: true,\r\n autoplaySpeed: 2000,\r\n\r\n });\r\n }\r\n else {\r\n // If not on mobile screens, destroy the Slick slider if it was previously initialized\r\n if ($('.js-ada-slider').hasClass('slick-initialized')) {\r\n $('.js-ada-slider').slick('unslick');\r\n }\r\n }\r\n}\r\n// sec - about - discovering - alula End\r\n\r\nfunction masterplanCarousel($sliderMasterplan, $container) {\r\n if (!handleNoSlider($sliderMasterplan, 1)) return;\r\n var $paginationLabel = $container.find('.custom-pagination-label');\r\n\r\n $sliderMasterplan.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n var currentSlideNumber = (slick.currentSlide + 1).toString().padStart(2, '0');\r\n var totalSlidesNumber = totalSlides.toString().padStart(2, '0');\r\n $paginationLabel.html('' + currentSlideNumber + ' / ' + totalSlidesNumber + '');\r\n toggleArrowVisibility(slick.currentSlide, slick.slideCount, $sliderMasterplan);\r\n $(slick.$slides.get([2])).addClass('slick-next-slide');\r\n });\r\n\r\n $sliderMasterplan.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n fade: true,\r\n rtl: isRTL,\r\n focusOnSelect: true,\r\n responsive: [\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n dots: true,\r\n }\r\n },\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n });\r\n\r\n $container.find('.custom-arrows.prev').click(function () {\r\n \r\n if (isRTL) {\r\n $sliderMasterplan.slick('slickNext');\r\n } else {\r\n $sliderMasterplan.slick('slickPrev');\r\n }\r\n });\r\n\r\n $container.find('.custom-arrows.next').click(function () {\r\n \r\n if (isRTL) {\r\n $sliderMasterplan.slick('slickPrev');\r\n } else {\r\n $sliderMasterplan.slick('slickNext');\r\n }\r\n });\r\n\r\n $sliderMasterplan.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n var totalSlidesNumber = totalSlides.toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlidesNumber + '');\r\n toggleArrowVisibility(nextSlide, slick.slideCount, $sliderMasterplan);\r\n\r\n \r\n\r\n\r\n\r\n });\r\n\r\n $container.find('.js-slider-title').click(function () {\r\n var slideIndex = $(this).data('slide-index');\r\n // Remove 'active-slide' class from all buttons within the same container\r\n $container.find('.js-slider-title').removeClass('active-slide');\r\n // Add 'active-slide' class to the clicked button\r\n $(this).addClass('active-slide');\r\n // Move to the corresponding slide\r\n $sliderMasterplan.slick('slickGoTo', slideIndex);\r\n });\r\n\r\n $sliderMasterplan.on('afterChange', function (event, slick, currentSlide) {\r\n var totalSlides = slick.slideCount; \r\n $container.find(\".slick-slide\").removeClass('slick-next-slide');\r\n $container.find(\".slick-active\").next().addClass('slick-next-slide');\r\n $container.find(\".js-slider-title\").removeClass('active-slide');\r\n if (totalSlides == currentSlide + 1) {\r\n $(slick.$slides.get([0])).addClass('slick-next-slide');\r\n }\r\n $('.js-slider-title').each(function(index) {\r\n // Add a class based on the index number\r\n if (index == currentSlide) {\r\n $(this).addClass('active-slide');\r\n } \r\n });\r\n\r\n var $nextArrow = isRTL ? $container.find('.custom-arrows.prev') : $container.find('.custom-arrows.next');\r\n var $prevArrow = isRTL ? $container.find('.custom-arrows.next') : $container.find('.custom-arrows.prev');\r\n if (currentSlide === 0) {\r\n $prevArrow.addClass('arrow-visibility');\r\n $nextArrow.removeClass('arrow-visibility');\r\n } else if (currentSlide === (totalSlides-1)) {\r\n $nextArrow.addClass('arrow-visibility');\r\n $prevArrow.removeClass('arrow-visibility');\r\n } else {\r\n $prevArrow.removeClass('arrow-visibility');\r\n $nextArrow.removeClass('arrow-visibility');\r\n }\r\n\r\n});\r\n\r\n}\r\n\r\nfunction dataTrim() {\r\n var ellipsis = \"...\";\r\n $(\"[data-trim]\").each(function () {\r\n var text = $(this).html();\r\n var charLimit = parseInt($(this).attr(\"data-trim\"));\r\n $(this).html(TrimLength(text, charLimit));\r\n $(this).addClass(\"is--trimmed\");\r\n });\r\n\r\n function TrimLength(text, maxLength) {\r\n text = $.trim(text);\r\n if (text.length > maxLength) {\r\n text = text.substring(0, maxLength - ellipsis.length);\r\n return text.substring(0, text.lastIndexOf(\" \")) + ellipsis;\r\n } else return text;\r\n }\r\n}\r\n\r\n\r\n$('.dropdown').on('click', function () {\r\n if ($('.dropdown-menu').hasClass('current')) {\r\n $('.dropdown-menu').removeClass('current');\r\n } else {\r\n $('.dropdown-menu').addClass('current');\r\n }\r\n});\r\n$('#dropdown').val('selectedvalue');\r\n$('.dropdown-item').on('click', function () {\r\n var selectedValue = $(this).text();\r\n $('.last-item').text(selectedValue);\r\n});\r\n\r\n\r\n// media gallery slider Start\r\nfunction mediaSlider(sliderName) {\r\n var $slider = $(sliderName);\r\n if (!handleNoSlider($slider, 4)) return;\r\n\r\n var $paginationLabel = $(sliderName).parent().find('.js-media-slider-pagination-label');\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(slick.currentSlide, totalSlides, '.js-media-slider-arrow .custom-arrows.prev', '.js-media-slider-arrow .custom-arrows.next');\r\n });\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n variableWidth: true,\r\n responsive: [\r\n {\r\n breakpoint: 991,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n }).on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $(sliderName).parent().find('.js-media-slider-arrow .custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n $(sliderName).parent().find('.js-media-slider-arrow .custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(nextSlide, totalSlides, '.js-media-slider-arrow .custom-arrows.prev', '.js-media-slider-arrow .custom-arrows.next');\r\n });\r\n}\r\n\r\n// media gallery slider End\r\n\r\n// Header sticky start \r\nfunction headerStickyFunctionality() {\r\n window.addEventListener('scroll', function () {\r\n const header = document.querySelector('.header');\r\n const scrollPosition = window.scrollY;\r\n\r\n if (scrollPosition > 50) {\r\n $(header).addClass('header-scrolled');\r\n } else {\r\n $(header).removeClass('header-scrolled');\r\n }\r\n });\r\n\r\n $(document).ready(function () {\r\n $('.js-select2').select2();\r\n });\r\n}\r\n// Header sticky end\r\n\r\nfunction scrollTop() {\r\n\r\n var lastScrollTop = 0;\r\n $(window).scroll(function () {\r\n var st = $(this).scrollTop();\r\n if (st > lastScrollTop) {\r\n $('body').removeClass('menuOpen');\r\n $('.menu-link').removeClass('active');\r\n $('.sub-menu .sub-list').removeClass('show--menu');\r\n $('.sub-menu').removeClass('show');\r\n $('.sub-menu .sub-menu-link').removeClass('active');\r\n $('.sub-menu .additional-menu').removeClass('show--menu');\r\n } else {\r\n $('body').addClass('scrollTop');\r\n $('body').removeClass('bodyScrolled');\r\n }\r\n if (st === 0) {\r\n $('body').removeClass('scrollTop');\r\n $('body').removeClass('bodyScrolled');\r\n }\r\n lastScrollTop = st;\r\n });\r\n}\r\n\r\nfunction megaMenuFunction() {\r\n if (winWidth > 1201) {\r\n $('.has-dropdown').click(function () {\r\n if ($(this).hasClass('active')) {\r\n // If the clicked element already has 'active' class\r\n $(this).removeClass('active');\r\n $('body').removeClass('menuOpen');\r\n } else {\r\n // If the clicked element doesn't have 'active' class\r\n $('.menu-link').removeClass('active'); // Remove 'active' class from all menu-links\r\n $(this).addClass('active'); // Add 'active' class to the clicked menu-link\r\n $('.sub-menu').addClass('show');\r\n $('body').addClass('menuOpen');\r\n $('.sub-menu .additional-menu').removeClass('show--menu');\r\n $('.sub-menu .sub-menu-link').removeClass('active');\r\n }\r\n });\r\n\r\n $('.main-menu .has-dropdown').on('mouseenter', function () {\r\n\r\n $('.main-menu .menu-link').removeClass('active');\r\n $(this).addClass('active');\r\n $('body').addClass('menuOpen');\r\n $('.mega-menu').addClass('hide');\r\n var dataSubMenu = $(this).data('sub-menu');\r\n\r\n if (dataSubMenu) {\r\n $('.mega-menu').each(function (i, sub) {\r\n if (sub.id === dataSubMenu) {\r\n $(sub).addClass('show--menu');\r\n } else {\r\n $(sub).removeClass('show--menu');\r\n }\r\n });\r\n } else {\r\n $('.sub-menu .sub-list').each(function (i, sub) {\r\n $(sub).removeClass('show--menu');\r\n });\r\n }\r\n\r\n });\r\n\r\n $('.sub-list-items .sub-menu-link.has--additionalMenu').each(function () {\r\n $(this).mouseenter(function () {\r\n $(this).addClass('active');\r\n $('.additional-menu').addClass('show--menu');\r\n });\r\n });\r\n }\r\n\r\n\r\n $('.page--wrapper,.no-dropdown').hover(function () {\r\n $('body').removeClass('menuOpen');\r\n $('.menu-link').removeClass('active');\r\n });\r\n\r\n $('.header').hover(\r\n function () {\r\n },\r\n function () {\r\n $('body').removeClass('menuOpen');\r\n $('.menu-link').removeClass('active');\r\n }\r\n );\r\n\r\n $('.has-subitems-1').hover(\r\n function () {\r\n $(this).addClass('active');\r\n $(\".mega-col-1 li a\").css(\"opacity\", 0.6);\r\n $(this).find('a').css(\"opacity\", 1);\r\n },\r\n );\r\n $('.no-subitems').hover(\r\n function () {\r\n $('.has-subitems-1').removeClass('active');\r\n $(\".mega-col-1 li a\").css(\"opacity\", 1);\r\n },\r\n );\r\n $('.has-subitems-2').hover(\r\n function () {\r\n $(this).addClass('active');\r\n $(\".mega-col-2 li a\").css(\"opacity\", 0.6);\r\n $('.has-subitems-2 a').css(\"opacity\", 1);\r\n },\r\n );\r\n $('.mega-col-1 li:not(:first-child),.mega-col-2 li:not(:first-child)').hover(\r\n function () {\r\n $('.has-subitems-2').removeClass('active');\r\n $('.has-subitems-3').removeClass('active');\r\n $(\".mega-col-2 li a\").css(\"opacity\", 1);\r\n },\r\n );\r\n $('.has-subitems-3').hover(\r\n function () {\r\n $(this).addClass('active');\r\n },\r\n );\r\n\r\n $('.has-dropdown').hover(\r\n function () {\r\n $(\".has-subitems-1\").removeClass('active');\r\n $(\".mega-col-1 li a\").css(\"opacity\", 1);\r\n },\r\n );\r\n\r\n}\r\n\r\nfunction ChangeToSvg() {\r\n $(\"img.js-tosvg\").each(function () {\r\n var $img = $(this);\r\n var imgID = $img.attr(\"id\");\r\n var imgClass = $img.attr(\"class\");\r\n var imgURL = $img.attr(\"src\");\r\n $.get(\r\n imgURL,\r\n function (data) {\r\n var $svg = $(data).find(\"svg\");\r\n if (typeof imgID !== \"undefined\") {\r\n $svg = $svg.attr(\"id\", imgID);\r\n }\r\n if (typeof imgClass !== \"undefined\") {\r\n $svg = $svg.attr(\"class\", imgClass + \" insvg\");\r\n }\r\n $svg = $svg.removeAttr(\"xmlns:a\");\r\n if (\r\n !$svg.attr(\"viewBox\") &&\r\n $svg.attr(\"height\") &&\r\n $svg.attr(\"width\")\r\n ) {\r\n $svg.attr(\r\n \"viewBox\",\r\n \"0 0 \" + $svg.attr(\"height\") + \" \" + $svg.attr(\"width\")\r\n );\r\n }\r\n $img.replaceWith($svg);\r\n },\r\n \"xml\"\r\n );\r\n });\r\n}\r\n\r\nfunction natureContentSlider() {\r\n var $slider = $('.js-nature-content-slider');\r\n $slider.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n asNavFor: '.js-nature-bg-slider',\r\n dots: true,\r\n draggable: false,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n draggable: false,\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n draggable: false,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return $('.custom-dot[data-index=\"' + i + '\"]').html();\r\n }\r\n })\r\n $('a[data-slide]').click(function (e) {\r\n e.preventDefault();\r\n var slideno = $(this).data('slide');\r\n $('.js-nature-content-slider').slick('slickGoTo', slideno - 1);\r\n });\r\n}\r\n\r\nfunction natureBgSlider() {\r\n var $slider1 = $('.js-nature-bg-slider');\r\n var $container = $('.js-nature-content-slider');\r\n $slider1.slick({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n asNavFor: '.js-nature-content-slider',\r\n centerMode: true,\r\n focusOnSelect: true,\r\n arrows: false,\r\n infinite: true,\r\n draggable: false,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: false,\r\n }\r\n }\r\n ]\r\n })\r\n $slider1.on('afterChange', function (event, slick, currentSlide) {\r\n var totalSlides = slick.slideCount;\r\n $(\".slide-btn\").removeClass('active');\r\n $('.slide-btn').each(function(index) {\r\n // Add a class based on the index number\r\n if (index == currentSlide) {\r\n $(this).addClass('active');\r\n } \r\n });\r\n\r\n});\r\n\r\n}\r\n\r\n\r\n\r\n(function ($) {\r\n // Define an array of class names for which you want to apply custom scrollbar\r\n var scrollOver600 = [\".content-slider-wrap\"];\r\n var scrollUnder600 = [\".js-slide-content\"];\r\n var scrollItems = [\".js-slide-items\"];\r\n var className = [\".content-slider-wrap\"]\r\n\r\n // Function to initialize or destroy custom scrollbar based on window width\r\n function initializeCustomScrollbar() {\r\n // Loop through each class name\r\n if ($('.content-slider-wrap').length > 0) {\r\n scrollOver600.forEach(function (className) {\r\n if ($(window).width() > 600) {\r\n // Initialize custom scrollbar if window width is greater than 600 pixels\r\n $(className).mCustomScrollbar({\r\n axis: \"y\"\r\n });\r\n } else {\r\n // Destroy custom scrollbar if window width is 600 pixels or less\r\n $(className).mCustomScrollbar(\"destroy\");\r\n }\r\n },\r\n );\r\n }\r\n\r\n if ($('.js-slide-content').length > 0) {\r\n scrollUnder600.forEach(function (className) {\r\n if ($(window).width() < 600) {\r\n // Initialize custom scrollbar if window width is greater than 600 pixels\r\n $(className).mCustomScrollbar({\r\n axis: \"y\"\r\n });\r\n } else {\r\n // Destroy custom scrollbar if window width is 600 pixels or less\r\n $(className).mCustomScrollbar(\"destroy\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n if ($('.js-slide-items').length > 0) {\r\n scrollItems.forEach(function (className) {\r\n $(className).mCustomScrollbar({\r\n axis: \"y\"\r\n });\r\n }\r\n );\r\n }else {\r\n // Destroy custom scrollbar if window width is 600 pixels or less\r\n $(className).mCustomScrollbar(\"destroy\");\r\n }\r\n }\r\n\r\n // Call the function when window is resized\r\n $(window).ready(initializeCustomScrollbar);\r\n})(jQuery);\r\n\r\n\r\nfunction formValidation() {\r\n const submitBtn = document.querySelectorAll(\".Formsubmit\");\r\n\r\n submitBtn.forEach(function (button) {\r\n\r\n button.addEventListener('click', function (event) {\r\n event.preventDefault();\r\n var form = event.target.closest('form');\r\n var isValid = true;\r\n\r\n $(form).find(\".form-row-dropdown, .form-fields-row\").each(function () {\r\n var $select = $(this).find(\"select\");\r\n var $errorMessage = $(this).find(\".error\");\r\n var $select2Container = $(this).find(\".select2-container\");\r\n\r\n if ($select.val() == null || $select.val() == \"1\") {\r\n isValid = false;\r\n $errorMessage.show();\r\n } else {\r\n $errorMessage.hide();\r\n }\r\n });\r\n\r\n $(form).find(\".required\").each(function () {\r\n var fieldType = $(this).attr('type');\r\n var fieldVal = $(this).val().trim();\r\n if (fieldVal === \"\") {\r\n isValid = false;\r\n $(this).siblings('.invalid-email-error').hide();\r\n $(this).siblings('.invalid-number-error').hide();\r\n $(this).siblings('.error').show();\r\n } else if (fieldType === \"email\" && !isValidEmail(fieldVal)) {\r\n isValid = false;\r\n $(this).siblings('.error').hide();\r\n $(this).siblings('.invalid-email-error').show();\r\n } else if ($(this).hasClass('number-input') && !isValidNumber(fieldVal)) {\r\n isValid = false;\r\n $(this).siblings('.error').hide();\r\n $(this).siblings('.invalid-number-error').show();\r\n } else {\r\n $(this).siblings('.error').hide();\r\n $(this).siblings('.invalid-email-error').hide();\r\n $(this).siblings('.invalid-number-error').hide();\r\n }\r\n });\r\n\r\n var emailElement = document.getElementById('email');\r\n var confirmEmailElement = document.getElementById('confirm-email');\r\n\r\n if (emailElement && confirmEmailElement) {\r\n var email = emailElement.value.trim();\r\n var confirmEmail = confirmEmailElement.value.trim();\r\n if (email !== confirmEmail) {\r\n isValid = false;\r\n document.querySelector('.email-mismatch-error').style.display = 'block';\r\n } else {\r\n document.querySelector('.email-mismatch-error').style.display = 'none';\r\n }\r\n }\r\n\r\n var passwordElement = document.getElementById('password');\r\n var confirmPasswordElement = document.getElementById('confirm-password');\r\n\r\n if (passwordElement && confirmPasswordElement) {\r\n var password = passwordElement.value;\r\n var confirmPassword = confirmPasswordElement.value;\r\n\r\n if (password !== confirmPassword) {\r\n isValid = false;\r\n document.querySelector('.password-mismatch-error').style.display = 'block';\r\n } else {\r\n document.querySelector('.password-mismatch-error').style.display = 'none';\r\n }\r\n }\r\n\r\n if (!isValid) {\r\n event.preventDefault();\r\n }\r\n });\r\n });\r\n\r\n var togglePasswordIcons = document.querySelectorAll('.eye-icon');\r\n var togglePasswordSlashIcons = document.querySelectorAll('.eye-slash-icon');\r\n\r\n togglePasswordIcons.forEach(function (icon) {\r\n icon.addEventListener('click', function () {\r\n togglePasswordVisibility(icon);\r\n });\r\n });\r\n\r\n togglePasswordSlashIcons.forEach(function (Slashicon) {\r\n Slashicon.addEventListener('click', function () {\r\n togglePasswordVisibility(Slashicon);\r\n });\r\n });\r\n\r\n function togglePasswordVisibility(clickedIcon) {\r\n var passwordField = clickedIcon.parentNode.querySelector('.password-field');\r\n var relatedIcon = clickedIcon.classList.contains('eye-icon') ?\r\n clickedIcon.nextElementSibling :\r\n clickedIcon.previousElementSibling;\r\n\r\n if (passwordField.type === 'password') {\r\n passwordField.type = 'text';\r\n clickedIcon.style.display = 'none';\r\n relatedIcon.style.display = 'block';\r\n } else {\r\n passwordField.type = 'password';\r\n clickedIcon.style.display = 'none';\r\n relatedIcon.style.display = 'block';\r\n }\r\n }\r\n\r\n var passwordField = document.getElementById('password');\r\n\r\n passwordField?.addEventListener('input', function () {\r\n validatePassword(passwordField);\r\n });\r\n\r\n function validatePassword(field) {\r\n var password = field.value;\r\n var lengthValidation = document.getElementById('length-validation');\r\n var maxLengthValidation = document.getElementById('max-length-validation');\r\n var caseValidation = document.getElementById('case-validation');\r\n var numberValidation = document.getElementById('number-validation');\r\n var spaceValidation = document.getElementById('space-validation');\r\n\r\n // Validate length\r\n if (password.length >= 8) {\r\n lengthValidation.classList.add('valid');\r\n lengthValidation.classList.remove('not-valid');\r\n } else {\r\n lengthValidation.classList.add('not-valid');\r\n lengthValidation.classList.remove('valid');\r\n }\r\n\r\n // Validate max length\r\n if (password.length <= 18) {\r\n maxLengthValidation.classList.add('valid');\r\n maxLengthValidation.classList.remove('not-valid');\r\n } else {\r\n maxLengthValidation.classList.add('not-valid');\r\n maxLengthValidation.classList.remove('valid');\r\n }\r\n\r\n // Validate case\r\n if (/[A-Z]/.test(password) && /[a-z]/.test(password)) {\r\n caseValidation.classList.add('valid');\r\n caseValidation.classList.remove('not-valid');\r\n } else {\r\n caseValidation.classList.add('not-valid');\r\n caseValidation.classList.remove('valid');\r\n }\r\n\r\n // Validate number/punctuation\r\n if (/[0-9]/.test(password) || /[!@#$%^&*(),.?\":{}|<>]/.test(password)) {\r\n numberValidation.classList.add('valid');\r\n numberValidation.classList.remove('not-valid');\r\n } else {\r\n numberValidation.classList.add('not-valid');\r\n numberValidation.classList.remove('valid');\r\n }\r\n\r\n // Validate space/unicode\r\n if (!/\\s/.test(password) && !/[^\\x00-\\x7F]/.test(password)) {\r\n spaceValidation.classList.add('valid');\r\n spaceValidation.classList.remove('not-valid');\r\n } else {\r\n spaceValidation.classList.add('not-valid');\r\n spaceValidation.classList.remove('valid');\r\n }\r\n }\r\n}\r\n\r\nfunction maxSectorsSelection() {\r\n const maxSelection = 5;\r\n const errorElement = document.querySelector('.error-message');\r\n const checkboxes = document.querySelectorAll('.checkbox-options input[type=\"checkbox\"]');\r\n checkboxes.forEach(function (checkbox) {\r\n checkbox.addEventListener('change', function () {\r\n const checkedCheckboxes = document.querySelectorAll('.checkbox-options input[type=\"checkbox\"]:checked');\r\n if (checkedCheckboxes.length > maxSelection) {\r\n errorElement.textContent = `Please select a maximum of ${maxSelection} sectors.`;\r\n } else {\r\n errorElement.textContent = ''; // Clear error message\r\n }\r\n });\r\n });\r\n}\r\n// Form Field Validation End\r\n\r\n// Add file upload file name on data text start\r\nfunction fileUploadfunctionality() {\r\n const fileInputs = document.querySelectorAll('.js-file-upload-field');\r\n\r\n fileInputs.forEach((fileInput) => {\r\n const fileUploadWrapper = fileInput.closest('.file-upload-wrapper');\r\n const maxSize = parseInt(fileInput.getAttribute('data-file-size'), 10) * 1024 * 1024; // Convert MB to bytes\r\n const allowedTypes = fileInput.getAttribute('data-allow-type')?.split(', ').map(type => {\r\n switch (type.trim()) {\r\n case '.pdf': return 'application/pdf';\r\n case '.doc': return 'application/msword';\r\n case '.docx': return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\r\n case '.txt': return 'text/plain';\r\n case '.png': return 'image/png';\r\n case '.jpg': return 'image/jpeg';\r\n case '.jpeg': return 'image/jpeg';\r\n case '.xls': return 'application/vnd.ms-excel';\r\n case '.xlsx': return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n default: return type;\r\n }\r\n });\r\n\r\n fileInput.addEventListener('change', function () {\r\n const errorMessage = fileUploadWrapper.querySelector('.error');\r\n const errorFileType = fileUploadWrapper.querySelector('.invalid-file-type-error');\r\n const errorFileSize = fileUploadWrapper.querySelector('.invalid-file-size-error');\r\n errorMessage.style.display = 'none'; // Hide error message initially\r\n errorFileType.style.display = 'none'; // Hide error message initially\r\n errorFileSize.style.display = 'none'; // Hide error message initially\r\n\r\n if (this.files.length > 0) {\r\n const file = this.files[0];\r\n const fileName = file.name;\r\n const fileType = file.type;\r\n const fileSize = file.size;\r\n\r\n if (!allowedTypes.includes(fileType)) {\r\n \r\n errorFileType.style.display = 'block';\r\n fileInput.value = ''; // Clear the input\r\n fileUploadWrapper.setAttribute('data-text', 'Upload File');\r\n return;\r\n }\r\n\r\n if (fileSize > maxSize) {\r\n \r\n errorFileSize.style.display = 'block';\r\n fileInput.value = ''; // Clear the input\r\n fileUploadWrapper.setAttribute('data-text', 'Upload File');\r\n return;\r\n }\r\n\r\n fileUploadWrapper.setAttribute('data-text', fileName);\r\n } else {\r\n fileUploadWrapper.setAttribute('data-text', 'Upload File');\r\n }\r\n });\r\n });\r\n}\r\n// Add file upload file name on data text end\r\n\r\n// Form onblur Validation start\r\nfunction downloadBtnFormValidation() {\r\n // Function to validate email format\r\n function validateEmail(email) {\r\n const re = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return re.test(String(email).toLowerCase());\r\n }\r\n\r\n // Select the input fields\r\n const textInput = document.querySelector('.download-form input[type=\"text\"]');\r\n const emailInput = document.querySelector('.download-form input[type=\"email\"]');\r\n\r\n // Select the error message elements\r\n const textError = textInput?.nextElementSibling;\r\n const emailError = emailInput?.nextElementSibling;\r\n const invalidEmailError = emailError?.nextElementSibling;\r\n\r\n // Add onblur event listener for text input\r\n textInput?.addEventListener('blur', function () {\r\n if (textInput.value.trim() === '') {\r\n textError.style.display = 'block';\r\n } else {\r\n textError.style.display = 'none';\r\n }\r\n });\r\n\r\n // Add onblur event listener for email input\r\n emailInput?.addEventListener('blur', function () {\r\n if (emailInput.value.trim() === '') {\r\n emailError.style.display = 'block';\r\n invalidEmailError.style.display = 'none';\r\n } else if (!validateEmail(emailInput.value)) {\r\n emailError.style.display = 'none';\r\n invalidEmailError.style.display = 'block';\r\n } else {\r\n emailError.style.display = 'none';\r\n invalidEmailError.style.display = 'none';\r\n }\r\n });\r\n}\r\n// Form onblur Validation end\r\n\r\n// Update counter on textarea start \r\nfunction updateTextareaCounter(textarea, counter) {\r\n const maxChars = 100;\r\n let charCount = 0;\r\n\r\n const updateCounter = () => {\r\n const inputText = textarea.value;\r\n const inputLength = inputText.length;\r\n\r\n if (inputLength <= maxChars) {\r\n charCount = inputLength;\r\n counter.textContent = charCount;\r\n } else {\r\n textarea.value = inputText.slice(0, maxChars); // Truncate if more than 100 characters\r\n }\r\n };\r\n\r\n textarea.addEventListener('input', updateCounter);\r\n textarea.addEventListener('keydown', (event) => {\r\n if (event.key !== 'Backspace' && textarea.value.length >= maxChars && event.key.length === 1) {\r\n event.preventDefault();\r\n }\r\n });\r\n}\r\n// Update counter on textarea end \r\n\r\n// Gsap for images marque \r\nfunction horizontalScrollDisAlula() {\r\n setTimeout(function() { \r\n // Check if there are elements with the class .horizontal-scroll\r\n var horizontalSection = $('.horizontal');\r\n \r\n // Exit the function if no elements with the class .horizontal-scroll are found\r\n if (horizontalSection.length === 0) {\r\n return;\r\n }\r\n \r\n var direction = $('html').attr('dir') || 'ltr'; // Get document direction or default to 'ltr'\r\n \r\n // Function to check if the device is a mobile device\r\n function isMobileDevice() {\r\n return window.innerWidth <= 600; // Adjust the width as needed for your definition of a mobile device\r\n }\r\n \r\n if (!isMobileDevice()) {\r\n // Determine the scroll direction based on document direction\r\n var scrollDirection = direction === 'rtl' ? 1 : -1;\r\n var scrollWidth = (scrollDirection * horizontalSection[0].scrollWidth) / 1.5;\r\n var secWidth = $('.horizontal').width();\r\n const xPer = scrollDirection === 1 ? -100 : 100;\r\n \r\n // Initialize ScrollTrigger only if it's not a mobile device\r\n gsap.to(horizontalSection, {\r\n x: scrollWidth,\r\n xPercent: xPer,\r\n scrollTrigger: {\r\n trigger: horizontalSection[0],\r\n start: 'center center',\r\n pin: '.horizontal-scroll',\r\n scrub: 1,\r\n invalidateOnRefresh: true,\r\n markers: false,\r\n duration: { min: 0.2, max: 5 },\r\n delay: 0.3,\r\n end: `+=${secWidth}`,\r\n }\r\n });\r\n }\r\n }, 2000)\r\n\r\n}\r\n\r\n// Alila section onclick \r\nfunction paginationNum() {\r\n\r\n // pagination\r\n $('.page-num').click(function () {\r\n $(this).addClass('active').siblings().removeClass('active');\r\n });\r\n}\r\n\r\nfunction openModal(modalId) {\r\n var modals = document.querySelectorAll('.js-modal');\r\n // Close all modals\r\n modals.forEach(function (modal) {\r\n $(modal).removeClass('active-modal'); // Remove active class from all modals\r\n $(modal).css('display', ''); \r\n });\r\n // Open specific modal\r\n var modal = document.getElementById(modalId);\r\n $(modal).addClass('active-modal'); // Add active class to the opened modal\r\n var idNo = modalId.split(\"\");\r\n var lastCh = idNo[idNo.length - 1]\r\n if(mapContent == 0 ){\r\n $(\".js-map-slider-content-\" + lastCh).parent().find('.slider-expand').addClass('accordianactive');\r\n $(\".js-map-slider-content-\" + lastCh).find('.slide-detail').css('display', 'block');\r\n mapContent = 1;\r\n }\r\n mapCarousel(\".js-map-slider-content-\" + lastCh, true, 0);\r\n\r\n}\r\nfunction mapModal() {\r\n document.querySelectorAll('.marker').forEach(function (marker) {\r\n marker.addEventListener('click', function () {\r\n var locationId = this.getAttribute('data-location');\r\n var modalId = 'modal' + locationId;\r\n var slideNumber = this.getAttribute('data-slide');\r\n \r\n openModal(modalId);\r\n $('.slide-items').slideDown();\r\n // Add active class to the clicked marker\r\n document.querySelectorAll('.marker').forEach(function (marker) {\r\n $(marker).removeClass('active');\r\n });\r\n $(this).addClass('active');\r\n \r\n if(mapContent == 0 ){\r\n $(\".js-map-slider-content-\" + locationId).parent().find('.slider-expand').addClass('accordianactive');\r\n $(\".js-map-slider-content-\" + lastCh).find('.slide-detail').css('display', 'block');\r\n mapContent = 1;\r\n }\r\n mapCarousel(\".js-map-slider-content-\" + locationId, true, slideNumber);\r\n\r\n });\r\n });\r\n\r\n}\r\n// Define the openTab function\r\nfunction openTab(evt, tabName, isLoad = false) {\r\n\r\n var i, modalcontent, tablinks;\r\n // Hide all tab content\r\n modalcontent = document.getElementsByClassName(\"js-map-tabs\");\r\n for (i = 0; i < modalcontent.length; i++) {\r\n modalcontent[i].style.display = \"none\";\r\n }\r\n tablinks = document.getElementsByClassName(\"tab-button\");\r\n for (i = 0; i < tablinks.length; i++) {\r\n if (isLoad && tabName == 'tab1') {\r\n tablinks[0].classList.toggle(\"active\");\r\n } else {\r\n tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\r\n }\r\n }\r\n document.getElementById(tabName).style.display = \"block\";\r\n evt.currentTarget.className += \" active\";\r\n if (tabName === 'tab2') {\r\n $('#map').addClass('markers-visible');\r\n $('.tab-button').parent().addClass('color--modify');\r\n $('.heading2').addClass('color--modify');\r\n } else {\r\n $('#map').removeClass('markers-visible');\r\n $('.tab-button').parent().removeClass('color--modify');\r\n $('.heading2').removeClass('color--modify');\r\n }\r\n switch (tabName) {\r\n case 'tab1':\r\n openModalByIndex(0);\r\n break;\r\n case 'tab2':\r\n openModal('modal1');\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n case 'tab3':\r\n openLastModal();\r\n break;\r\n }\r\n}\r\nfunction openTab2(evt, tabName1, isLoad1 = false, activeModal) {\r\n\r\n var j, modalcontent1, tablinks1;\r\n // Hide all tab content\r\n modalcontent1 = document.getElementsByClassName(\"js-map-tabs-new\");\r\n for (j = 0; j < modalcontent1.length; j++) {\r\n modalcontent1[j].style.display = \"none\";\r\n }\r\n tablinks1 = document.getElementsByClassName(\"js-tab-button\");\r\n for (j = 0; j < tablinks1.length; j++) {\r\n if (isLoad1 && tabName1 == 'overviewtab1') {\r\n tablinks1[0].classList.add(\"active\");\r\n } else {\r\n tablinks1[j].className = tablinks1[j].className.replace(\" active\", \"\");\r\n }\r\n }\r\n document.getElementById(tabName1).style.display = \"block\";\r\n evt.currentTarget.className += \" active\";\r\n\r\n if (tabName1 === 'overviewtab1') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set1').addClass('markers-visible');\r\n } else if (tabName1 === 'overviewtab2') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set2').addClass('markers-visible');\r\n } else if (tabName1 === 'overviewtab3') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set3').addClass('markers-visible');\r\n } else {\r\n $('#map').removeClass('markers-visible');\r\n }\r\n switch (tabName1) {\r\n case 'overviewtab1':\r\n if(activeModal){\r\n openModalByIndex(activeModal);\r\n openModal(activeModal);\r\n\r\n } else{\r\n\r\n openModalByIndex(0);\r\n openModal('modal1')\r\n }\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n case 'overviewtab2':\r\n openModal('modal8');\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n case 'overviewtab3':\r\n openModal('modal11');\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n }\r\n}\r\n\r\n// kmz map popup \r\nfunction openTab4(evt, tabName1, isLoad1 = false, activeModal) {\r\n\r\n var j, modalcontent1, tablinks1;\r\n // Hide all tab content\r\n modalcontent1 = document.getElementsByClassName(\"js-map-tabs-new\");\r\n for (j = 0; j < modalcontent1.length; j++) {\r\n modalcontent1[j].style.display = \"none\";\r\n }\r\n tablinks1 = document.getElementsByClassName(\"js-map-ctg-btn\");\r\n for (j = 0; j < tablinks1.length; j++) {\r\n if (isLoad1 && tabName1 == 'overviewtab1') {\r\n tablinks1[0].classList.add(\"active-tab\");\r\n } else {\r\n tablinks1[j].className = tablinks1[j].className.replace(\" active-tab\", \"\");\r\n }\r\n }\r\n document.getElementById(tabName1).style.display = \"block\";\r\n evt.currentTarget.className += \" active-tab\";\r\n\r\n if (tabName1 === 'overviewtab1') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set1').addClass('markers-visible');\r\n } else if (tabName1 === 'overviewtab2') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set2').addClass('markers-visible');\r\n } else if (tabName1 === 'overviewtab3') {\r\n $('.map-slider-wrap').removeClass('markers-visible');\r\n $('.map-slider-wrap.marker-set3').addClass('markers-visible');\r\n } else {\r\n $('#map').removeClass('markers-visible');\r\n }\r\n switch (tabName1) {\r\n case 'overviewtab1':\r\n if(activeModal){\r\n openModalByIndex(activeModal);\r\n openModal(activeModal);\r\n\r\n } else{\r\n\r\n openModalByIndex(0);\r\n openModal('modal1')\r\n }\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n case 'overviewtab2':\r\n openModal('modal8');\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n case 'overviewtab3':\r\n openModal('modal11');\r\n mapCarousel(\".js-map-slider-content-1\", true, 0);\r\n break;\r\n }\r\n}\r\n\r\n// Call openTab with 'tab1' to open it by default\r\nwindow.onload = function () {\r\n if ($('.js-map-tabs').length > 0) {\r\n openTab(event, 'tab1', true);\r\n }\r\n if ($('.js-map-tabs-new').length > 0) {\r\n openTab2(event, 'overviewtab1', true);\r\n openTab4(event, 'overviewtab1', true);\r\n }\r\n};\r\nfunction openModalByIndex(index) {\r\n var modals = document.getElementsByClassName(\"js-modal\");\r\n modals[index].style.display = \"block\";\r\n}\r\n\r\nfunction openAllModalsExceptLast() {\r\n var modals = document.getElementsByClassName(\"js-modal\");\r\n for (var i = 0; i < modals.length - 1; i++) {\r\n modals[i].style.display = \"block\";\r\n }\r\n}\r\n\r\nfunction openLastModal() {\r\n var modals = document.getElementsByClassName(\"js-modal\");\r\n var lastIndex = modals.length - 1;\r\n modals[lastIndex].style.display = \"block\";\r\n}\r\nfunction openModalByClass(className) {\r\n var modals = document.getElementsByClassName(className);\r\n var lastModal = modals[modals.length - 1];\r\n lastModal.style.display = \"block\";\r\n}\r\n\r\n// CUSTOM LIGHTBOX STARTS\r\nfunction initializeMediaCards() {\r\n let $modal = $(\"#myModal\");\r\n let $modalImg = $(\"#modalImg\");\r\n let $modalVideo = $(\"#modalVideo\");\r\n let $mediaTitle = $(\"#media-title\");\r\n let $mediaDescription = $(\"#media-description\");\r\n let $downloadBtn = $(\"#downloadBtn\");\r\n let $listItems = $(\".list-items\");\r\n let currentIndex = 0;\r\n let mediaItems = [];\r\n let selectedCategory = \"all\"; // Default to display all categories\r\n\r\n // Populate mediaItems array\r\n $listItems.each(function () {\r\n let mediaType = $(this).data(\"type\");\r\n let mediaSource = $(this).data(\"source\");\r\n let mediaTitle = $(this).data(\"title\");\r\n let mediaDescription = $(this).data(\"description\");\r\n mediaItems.push({\r\n type: mediaType,\r\n source: mediaSource,\r\n title: mediaTitle,\r\n description: mediaDescription,\r\n });\r\n });\r\n\r\n // Trigger click event on the \"All\" tab button by default\r\n $(\".js-tab[data-filter='all']\").click();\r\n\r\n // Event listener for list items\r\n $listItems.on(\"click\", function () {\r\n let mediaItem = mediaItems[$(this).index()];\r\n\r\n if (mediaItem.type !== \"podcast\") {\r\n currentIndex = $(this).index();\r\n displayMedia(currentIndex);\r\n $modal.fadeIn(300); // Display modal\r\n } else {\r\n let podcastLink = $(this).data(\"source\");\r\n window.open(podcastLink, \"_blank\"); // Redirect to the podcast page in a new tab\r\n }\r\n });\r\n\r\n // Event listener for close button\r\n $(\".close\").on(\"click\", function () {\r\n $modal.fadeOut(300); // Hide modal\r\n });\r\n\r\n // Event listener for previous button\r\n $(\".prev\").on(\"click\", function () {\r\n let prevIndex =\r\n (currentIndex - 1 + mediaItems.length) % mediaItems.length;\r\n let prevItem = getMediaItem(prevIndex);\r\n\r\n // Check if the previous media item is of the same type as the current one\r\n if (\r\n prevItem &&\r\n (selectedCategory === \"all\" || prevItem.type === selectedCategory)\r\n ) {\r\n currentIndex = prevIndex;\r\n displayMedia(currentIndex);\r\n }\r\n });\r\n\r\n // Event listener for next button\r\n $(\".next\").on(\"click\", function () {\r\n let nextIndex = (currentIndex + 1) % mediaItems.length;\r\n let nextItem = getMediaItem(nextIndex);\r\n\r\n // Check if the next media item is of the same type as the current one\r\n if (\r\n nextItem &&\r\n (selectedCategory === \"all\" || nextItem.type === selectedCategory)\r\n ) {\r\n currentIndex = nextIndex;\r\n displayMedia(currentIndex);\r\n }\r\n });\r\n\r\n // Function to retrieve the media item at a given index\r\n function getMediaItem(index) {\r\n return mediaItems[index];\r\n }\r\n\r\n // Function to display media based on currentIndex\r\n function displayMedia(index) {\r\n let mediaItem = mediaItems[index];\r\n\r\n if (mediaItem.type === \"image\") {\r\n $modalImg.attr(\"src\", mediaItem.source);\r\n $modalImg.fadeIn(200);\r\n $modalVideo.hide();\r\n } else if (mediaItem.type === \"video\") {\r\n $modalVideo.attr(\"src\", mediaItem.source);\r\n $modalVideo.fadeIn(200);\r\n $modalImg.hide();\r\n }\r\n\r\n $mediaTitle.text(mediaItem.title);\r\n $mediaDescription.text(mediaItem.description);\r\n $downloadBtn.attr(\"href\", mediaItem.source);\r\n }\r\n\r\n // Event listener for podcast links\r\n $(\".podcast-item\").on(\"click\", function (event) {\r\n let podcastLink = $(this).data(\"source\");\r\n window.open(podcastLink, \"_blank\"); // Redirect to the podcast page in a new tab\r\n event.preventDefault(); // Prevent default behavior (opening modal or navigating to \"#\")\r\n });\r\n}\r\nfunction lightboxSlideCounter() {\r\n // Initialize slide counter variables\r\n var currentSlide = 1;\r\n var totalSlides = 30; // Update this value with your actual total number of slides\r\n\r\n // Update the initial slide counter text\r\n updateSlideCounter();\r\n\r\n // Function to update the slide counter text\r\n function updateSlideCounter() {\r\n $('.dynamic-value').text(padNumber(currentSlide) + ' / ' + totalSlides);\r\n }\r\n\r\n // Function to pad single-digit numbers with leading zeros (e.g., 01 instead of 1)\r\n function padNumber(number) {\r\n return number < 10 ? '0' + number : number;\r\n }\r\n\r\n // Click event handler for the next button\r\n $('.next').click(function () {\r\n if (currentSlide < totalSlides) {\r\n currentSlide++; // Increment the current slide number\r\n updateSlideCounter(); // Update the slide counter text\r\n // Add logic to change to the next slide in your lightbox modal\r\n }\r\n });\r\n\r\n // Click event handler for the previous button\r\n $('.prev').click(function () {\r\n if (currentSlide > 1) {\r\n currentSlide--; // Decrement the current slide number\r\n updateSlideCounter(); // Update the slide counter text\r\n // Add logic to change to the previous slide in your lightbox modal\r\n }\r\n });\r\n}\r\n// CUSTOM LIGHTBOX ENDS\r\n\r\n// smoth scroll\r\nfunction smoothScrolling() {\r\n $(\".js-btn-list .body3\").on('click', function (event) {\r\n // Prevent default link behavior\r\n event.preventDefault();\r\n\r\n // Remove active class from all siblings\r\n $(this).closest('.js-btn-list').find('.body3').removeClass('active');\r\n\r\n // Add active class to clicked link\r\n $(this).addClass('active');\r\n\r\n // Smooth scroll to the target section\r\n var target = $(this).attr('href');\r\n var headerSpace = $('.header').outerHeight();\r\n if ($(target).length) {\r\n $('html, body').animate({\r\n scrollTop: $(target).offset().top - headerSpace\r\n }, 500, function () {\r\n history.replaceState(null, null, target);\r\n });\r\n }\r\n\r\n });\r\n}\r\n\r\n\r\n// View type grid and list start\r\nfunction toggleView() {\r\n $(\".js-view-type .grid-view-action\").on('click', function (event) {\r\n // Prevent default link behavior\r\n event.preventDefault();\r\n activeClassOnlyAll(\"media-gallery\");\r\n // Remove active class from all siblings\r\n $(this).closest('.js-view-type').find('.grid-view-action').addClass('active');\r\n $(this).closest('.js-view-type').find('.list-view-action').removeClass('active');\r\n\r\n // Add appropriate class to media listing\r\n $('.media-listing').removeClass('list-view-listing').addClass('grid-view-listing');\r\n initIsotopes();\r\n initIsotopesDataLibrary();\r\n });\r\n\r\n $(\".js-view-type .list-view-action\").on('click', function (event) {\r\n // Prevent default link behavior\r\n event.preventDefault();\r\n activeClassOnlyAll(\"media-gallery\");\r\n // Remove active class from all siblings\r\n $(this).closest('.js-view-type').find('.list-view-action').addClass('active');\r\n $(this).closest('.js-view-type').find('.grid-view-action').removeClass('active');\r\n\r\n // Add appropriate class to media listing\r\n $('.media-listing').removeClass('grid-view-listing').addClass('list-view-listing');\r\n initIsotopes();\r\n initIsotopesDataLibrary();\r\n });\r\n}\r\nfunction activeClassOnlyAll(check) {\r\n check === \"media-gallery\" &&\r\n navLinks.forEach((navLink, index) => {\r\n if (index === 0) {\r\n // Add 'active' class to the first element\r\n navLink.classList.add(\"active\");\r\n } else {\r\n // Remove 'active' class from other elements\r\n navLink.classList.remove(\"active\");\r\n }\r\n });\r\n}\r\n// View type grid and list End\r\n\r\n// filter drawer \r\nfunction filterDrawer() {\r\n $(\".js-filter-drawer, .js-filter-drawer-eServises \").click(function () {\r\n $('body').addClass(\"no-scroll\");\r\n });\r\n $(\".filter-close, .filter-btn\").click(function () {\r\n $('body').removeClass(\"no-scroll\");\r\n });\r\n // closing filter side on pressing escape key\r\n $(document).on('keydown', function(e) {\r\n if (e.key === 'Escape') {\r\n $('body').removeClass(\"no-scroll\");\r\n }\r\n });\r\n // filter counter Function to update counter Start\r\n}\r\n\r\nfunction filterCounter() {\r\n function updateCounter() {\r\n var checkedCount = $('.tag-btn input[type=\"checkbox\"]:checked').length;\r\n var allChecked = document.getElementById(\"option1\")?.checked;\r\n var optionAll = document.getElementById(\"option1\");\r\n const typeId = optionAll?.getAttribute('data-option');\r\n\r\n if (allChecked && typeId == 'all') {\r\n // If the first checkbox is checked and its type is 'all', treat it as the \"select all\" checkbox\r\n $('.tag-btn input[type=\"checkbox\"]').prop(\"checked\", true);\r\n checkedCount = $('.tag-btn input[type=\"checkbox\"]:checked').length - 1;\r\n $(\".counter-no\").text(\"(\" + checkedCount + \")\");\r\n } else {\r\n // Treat the first checkbox as a normal checkbox if its type is not 'all'\r\n var allCheckbox = $('.tag-btn input[type=\"checkbox\"]').first();\r\n var checkboxes = $('.tag-btn input[type=\"checkbox\"]');\r\n\r\n if (typeId == 'all') {\r\n var allChecked = true;\r\n\r\n checkboxes.each(function () {\r\n if (!$(this).prop(\"checked\")) {\r\n allChecked = false;\r\n return false;\r\n }\r\n });\r\n\r\n if (allChecked) {\r\n allCheckbox.prop(\"checked\", true);\r\n checkboxes.prop(\"disabled\", true);\r\n } else {\r\n allCheckbox.prop(\"checked\", false);\r\n checkboxes.prop(\"disabled\", false);\r\n }\r\n }\r\n\r\n var checkedCount = checkboxes.filter(\":checked\").length;\r\n $(\".counter-no\").text(\"(\" + checkedCount + \")\");\r\n }\r\n }\r\n updateCounter();\r\n\r\n // Update counter when checkbox state changes\r\n $('.tag-btn input[type=\"checkbox\"]').change(function () {\r\n updateCounter();\r\n });\r\n\r\n // Function to reset content to 0\r\n function resetContent() {\r\n $('.tag-btn input[type=\"checkbox\"]').prop('checked', false);\r\n $('.tag-btn input[type=\"radio\"]').prop('checked', false);\r\n updateCounter();\r\n }\r\n\r\n // Reset content when clear button is clicked\r\n $('.clear-btn').click(function () {\r\n resetContent();\r\n });\r\n}\r\n\r\nfunction rankingsAwardsSlider(sliderName) {\r\n\r\n var $slider = $(sliderName);\r\n if (!handleNoSlider($slider, 4)) return;\r\n\r\n var $paginationLabel = $(sliderName).parent().find('.js-rankings-slider-pagination-label');\r\n // var totalSlides = $(sliderName + \" .slide\").length;\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(slick.currentSlide, totalSlides, '.js-rankings-slider-arrow .custom-arrows.prev', '.js-rankings-slider-arrow .custom-arrows.next');\r\n });\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $(sliderName).parent().find('.js-rankings-slider-arrow .custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $(sliderName).parent().find('.js-rankings-slider-arrow .custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(nextSlide, totalSlides, '.js-rankings-slider-arrow .custom-arrows.prev', '.js-rankings-slider-arrow .custom-arrows.next');\r\n });\r\n}\r\n\r\n$('.js-rank-slider').click(function () {\r\n var currentSlider = $(this).attr('data-slider');\r\n var sliderExists = $(currentSlider + '.slick-initialized').length;\r\n\r\n if (sliderExists == 0) {\r\n setTimeout(function () {\r\n rankingsAwardsSlider(currentSlider);\r\n }, 160);\r\n }\r\n});\r\n\r\nfunction newsPressSlider(sliderName) {\r\n var $slider = $(sliderName);\r\n if (!handleNoSlider($slider, 4)) return;\r\n\r\n var $paginationLabel = $('.js-news-and-press-pagination-label');\r\n\r\n $slider.on('init', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(slick.currentSlide, totalSlides, '.js-news-and-press-arrow .custom-arrows.prev', '.js-news-and-press-arrow .custom-arrows.next');\r\n });\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n })\r\n .on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $('.js-news-and-press-arrow .custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $('.js-news-and-press-arrow .custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n // toggleArrowVisibility(nextSlide, totalSlides, '.js-news-and-press-arrow .custom-arrows.prev', '.js-news-and-press-arrow .custom-arrows.next');\r\n });\r\n\r\n}\r\n\r\n\r\n//listing card text Character trancut\r\nfunction textCharacterTrancut() {\r\n var maxLength = 80;\r\n var $heading = $('.list-view-item .heading3');\r\n\r\n function truncateText(text, maxLength) {\r\n if (text.length > maxLength) {\r\n return text.substring(0, maxLength) + '...'; // Truncate and append ellipsis\r\n }\r\n return text;\r\n }\r\n\r\n var originalText = $heading.text();\r\n\r\n $heading.text(truncateText(originalText, maxLength));\r\n}\r\n\r\nfunction mapSlider(sliderName) {\r\n var $slider = $(sliderName);\r\n var $paginationLabel = $(sliderName).parent().find('.custom-pagination-label');\r\n var totalSlides = $(sliderName).find(\".carousel-items\").length;\r\n $paginationLabel.text(1 + '/' + totalSlides);\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n variableWidth: true,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n }).on(\"setPosition\", function (event, slick) {\r\n slick.$slideTrack.css(\"height\", slick.$slideTrack.height() + \"px\");\r\n //ChangeToSvg();\r\n });\r\n\r\n // Enable custom arrows\r\n $(sliderName).parent().find('.custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n $(sliderName).parent().find('.custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.text(nextSlide + 1 + '/' + totalSlides);\r\n });\r\n}\r\n\r\n// CUSTOM LIGHTBOX STARTS\r\nfunction initializeMediaCardsGridView() {\r\n $(document).ready(function () {\r\n const cards = $(\".js-grid-view-item\");\r\n const lightbox = $(\"#myModal\");\r\n const lightboxImg = $(\"#modalImg\");\r\n const lightboxVideo = $(\"#modalVideo\");\r\n const prevBtn = $(\"#prevBtn\");\r\n const nextBtn = $(\"#nextBtn\");\r\n const downloadBtn = $(\"#downloadBtn\");\r\n const closeBtn = $(\"#closeBtn\");\r\n const counter = $(\"#counter-modal\");\r\n const modalOpenBtns = $(\".open-modal-btn\");\r\n let currentIndex = 0;\r\n\r\n // Update media items counter\r\n function updateCounter() {\r\n counter.text(`${currentIndex + 1} / ${cards.length}`);\r\n }\r\n\r\n // Event listeners for cards\r\n cards.each(function (index, card) {\r\n $(card).on(\"click\", function (event) {\r\n if (!$(event.target).hasClass(\"open-modal-btn\")) {\r\n return; // Ignore click if not on the modal open button\r\n }\r\n currentIndex = index;\r\n LightboxContent();\r\n updateCounter();\r\n // lightbox.css(\"display\", \"flex\");\r\n lightbox.fadeIn(500); // Fade in the modal\r\n });\r\n });\r\n\r\n // Event listener for previous button\r\n prevBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex - 1 + cards.length) % cards.length;\r\n LightboxContent();\r\n // updateCounter();\r\n });\r\n\r\n // Event listener for next button\r\n nextBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex + 1) % cards.length;\r\n LightboxContent();\r\n // updateCounter();\r\n });\r\n\r\n // Event listener for download button\r\n downloadBtn.on(\"click\", function () {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n if (type === \"image\" || type === \"video\") {\r\n fetch(source)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n const url = URL.createObjectURL(blob);\r\n const a = $(\"\").attr({\r\n href: url,\r\n download: type === \"image\" ? \"image.jpg\" : \"video.mp4\",\r\n target: \"_blank\"\r\n });\r\n $(\"body\").append(a);\r\n a[0].click();\r\n a.remove();\r\n URL.revokeObjectURL(url);\r\n })\r\n .catch(error => console.error(\"Error downloading media:\", error));\r\n }\r\n });\r\n\r\n // Event listener for close button\r\n closeBtn.on(\"click\", function () {\r\n lightbox.fadeOut(500);\r\n });\r\n\r\n // lightbox content based on currentIndex\r\n function LightboxContent() {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n const title = $(cards[currentIndex]).data(\"title\");\r\n const description = $(cards[currentIndex]).data(\"description\");\r\n\r\n if (type === \"image\") {\r\n lightboxImg.css(\"display\", \"block\");\r\n lightboxVideo.css(\"display\", \"none\");\r\n lightboxImg.attr(\"src\", source);\r\n lightboxVideo.attr(\"src\", \"\");\r\n } else if (type === \"video\") {\r\n lightboxImg.css(\"display\", \"none\");\r\n lightboxVideo.css(\"display\", \"block\");\r\n lightboxVideo.attr(\"src\", source);\r\n lightboxImg.attr(\"src\", \"\");\r\n }\r\n\r\n // Title and description in the lightbox\r\n $(\"#media-title\").text(title);\r\n $(\"#media-description\").text(description);\r\n }\r\n\r\n // Initial update of lightbox content and counter\r\n LightboxContent();\r\n updateCounter();\r\n });\r\n}\r\nfunction initializeMediaCardsListView() {\r\n $(document).ready(function () {\r\n const cards = $(\".js-list-view-item\");\r\n const lightbox = $(\"#myModal\");\r\n const lightboxImg = $(\"#modalImg\");\r\n const lightboxVideo = $(\"#modalVideo\");\r\n const prevBtn = $(\"#prevBtn\");\r\n const nextBtn = $(\"#nextBtn\");\r\n const downloadBtn = $(\"#downloadBtn\");\r\n const closeBtn = $(\"#closeBtn\");\r\n const counter = $(\"#counter-modal\");\r\n const modalOpenBtns = $(\".open-modal-btn\");\r\n let currentIndex = 0;\r\n\r\n // Update media items counter\r\n function updateCounter() {\r\n counter.text(`${currentIndex + 1} / ${cards.length}`);\r\n }\r\n\r\n // Event listeners for cards\r\n cards.each(function (index, card) {\r\n $(card).on(\"click\", function (event) {\r\n if (!$(event.target).hasClass(\"open-modal-btn\")) {\r\n return; // Ignore click if not on the modal open button\r\n }\r\n currentIndex = index;\r\n LightboxContent();\r\n updateCounter();\r\n lightbox.css(\"display\", \"flex\");\r\n });\r\n });\r\n\r\n // Event listener for previous button\r\n prevBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex - 1 + cards.length) % cards.length;\r\n LightboxContent();\r\n // updateCounter();\r\n });\r\n\r\n // Event listener for next button\r\n nextBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex + 1) % cards.length;\r\n LightboxContent();\r\n // updateCounter();\r\n });\r\n\r\n // Event listener for download button\r\n downloadBtn.on(\"click\", function () {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n if (type === \"image\" || type === \"video\") {\r\n fetch(source)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n const url = URL.createObjectURL(blob);\r\n const a = $(\"\").attr({\r\n href: url,\r\n download: type === \"image\" ? \"image.jpg\" : \"video.mp4\",\r\n target: \"_blank\"\r\n });\r\n $(\"body\").append(a);\r\n a[0].click();\r\n a.remove();\r\n URL.revokeObjectURL(url);\r\n })\r\n .catch(error => console.error(\"Error downloading media:\", error));\r\n }\r\n });\r\n\r\n // Event listener for close button\r\n closeBtn.on(\"click\", function () {\r\n lightbox.css(\"display\", \"none\");\r\n lightboxVideo[0].pause();\r\n });\r\n\r\n // Update lightbox content based on currentIndex\r\n function LightboxContent() {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n const title = $(cards[currentIndex]).data(\"title\");\r\n const description = $(cards[currentIndex]).data(\"description\");\r\n\r\n if (type === \"image\") {\r\n lightboxImg.css(\"display\", \"block\");\r\n lightboxVideo.css(\"display\", \"none\");\r\n lightboxImg.attr(\"src\", source);\r\n lightboxVideo.attr(\"src\", \"\");\r\n } else if (type === \"video\") {\r\n lightboxImg.css(\"display\", \"none\");\r\n lightboxVideo.css(\"display\", \"block\");\r\n lightboxVideo.attr(\"src\", source);\r\n lightboxImg.attr(\"src\", \"\");\r\n }\r\n\r\n // Update title and description in the lightbox\r\n $(\"#media-title\").text(title);\r\n $(\"#media-description\").text(description);\r\n }\r\n\r\n // Initial update of lightbox content and counter\r\n LightboxContent();\r\n updateCounter();\r\n });\r\n\r\n}\r\n\r\nfunction initializeMediaAnnualPdf() {\r\n $(document).ready(function () {\r\n const cards = $(\".js-annual-pdf\");\r\n const lightbox = $(\"#myModal\");\r\n const lightboxImg = $(\"#modalImg\");\r\n const lightboxVideo = $(\"#modalVideo\");\r\n const prevBtn = $(\"#prevBtn\");\r\n const nextBtn = $(\"#nextBtn\");\r\n const downloadBtn = $(\"#downloadBtn\");\r\n const closeBtn = $(\"#closeBtn\");\r\n const counter = $(\"#counter-modal\");\r\n const modalOpenBtns = $(\".open-modal-btn\");\r\n let currentIndex = 0;\r\n\r\n // Update media items counter\r\n function updateCounter() {\r\n \r\n counter.html('' + `${(currentIndex + 1).toString().padStart(2, '0')}` + ' / ' + `${(cards.length).toString().padStart(2, '0')}` + '');;\r\n }\r\n\r\n // Event listeners for cards\r\n cards.each(function (index, card) {\r\n $(card).on(\"click\", function (event) {\r\n if (!$(event.target).hasClass(\"open-modal-btn\")) {\r\n return; // Ignore click if not on the modal open button\r\n }\r\n currentIndex = index;\r\n LightboxContent();\r\n updateCounter();\r\n lightbox.fadeIn(500); // Fade in the modal\r\n });\r\n });\r\n\r\n // Event listener for previous button\r\n prevBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex - 1 + cards.length) % cards.length;\r\n LightboxContent();\r\n updateCounter();\r\n });\r\n\r\n // Event listener for next button\r\n nextBtn.on(\"click\", function () {\r\n currentIndex = (currentIndex + 1) % cards.length;\r\n LightboxContent();\r\n updateCounter();\r\n });\r\n\r\n // Event listener for download button\r\n downloadBtn.on(\"click\", function () {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n if (type === \"image\" || type === \"video\") {\r\n fetch(source)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n const url = URL.createObjectURL(blob);\r\n const a = $(\"\").attr({\r\n href: url,\r\n download: type === \"image\" ? \"image.jpg\" : \"video.mp4\",\r\n target: \"_blank\"\r\n });\r\n $(\"body\").append(a);\r\n a[0].click();\r\n a.remove();\r\n URL.revokeObjectURL(url);\r\n })\r\n .catch(error => console.error(\"Error downloading media:\", error));\r\n }\r\n });\r\n\r\n // Event listener for close button\r\n closeBtn.on(\"click\", function () {\r\n lightbox.fadeOut(500);\r\n });\r\n\r\n // Lightbox content based on currentIndex\r\n function LightboxContent() {\r\n const type = $(cards[currentIndex]).data(\"type\");\r\n const source = $(cards[currentIndex]).data(\"source\");\r\n const title = $(cards[currentIndex]).data(\"title\");\r\n const description = $(cards[currentIndex]).data(\"description\");\r\n const file = $(cards[currentIndex]).data(\"file\");\r\n const date = $(cards[currentIndex]).data(\"date\");\r\n const topic = $(cards[currentIndex]).data(\"topic\");\r\n\r\n if (type === \"image\") {\r\n lightboxImg.css(\"display\", \"block\");\r\n lightboxVideo.css(\"display\", \"none\");\r\n lightboxImg.attr(\"src\", source);\r\n lightboxVideo.attr(\"src\", \"\");\r\n } else if (type === \"video\") {\r\n lightboxImg.css(\"display\", \"none\");\r\n lightboxVideo.css(\"display\", \"block\");\r\n lightboxVideo.attr(\"src\", source);\r\n lightboxImg.attr(\"src\", \"\");\r\n }\r\n\r\n // Title and description in the lightbox\r\n $(\"#media-title\").text(title);\r\n $(\"#media-description\").text(description);\r\n $(\"#media-file\").text(file);\r\n $(\"#media-date\").text(date);\r\n $(\"#media-topic\").text(topic);\r\n }\r\n\r\n // Initial update of lightbox content and counter\r\n LightboxContent();\r\n updateCounter();\r\n });\r\n}\r\n// CUSTOM LIGHTBOX ENDS\r\n\r\n// LUGHTBOX HANDLE MOBILE VIEW STARTS\r\nfunction handleMobileView() {\r\n $(document).ready(function () {\r\n $('.mobile-view').hide();\r\n\r\n $('.for-mbl-submit').click(function (event) {\r\n event.preventDefault();\r\n $('.mobile-view').show();\r\n $('.for-mbl-submit').hide();\r\n });\r\n\r\n $('.back-btn').click(function (event) {\r\n event.preventDefault();\r\n $('.mobile-view').hide();\r\n $('.for-mbl-submit').show();\r\n });\r\n });\r\n}\r\n// LUGHTBOX HANDLE MOBILE VIEW ENDS\r\n\r\n//Podcast Audio Function Start\r\nfunction audioPlayer() {\r\n const waveformElement = document.getElementById('waveform');\r\n const audioElement = document.querySelector('.audio');\r\n if (!waveformElement || !audioElement) {\r\n return; // Exit the function if either #waveform or .audio element is not found\r\n }\r\n\r\n function podcastPlayer(audioUrl) {\r\n const wavesurfer = WaveSurfer.create({\r\n container: '#waveform',\r\n waveColor: '#F9F7F3',\r\n progressColor: '#E5E0D0',\r\n url: audioUrl,\r\n barWidth: 6,\r\n responsive: true,\r\n height: 90,\r\n barRadius: 4,\r\n });\r\n\r\n const playBtn = document.querySelector('.playBtn');\r\n const pauseBtn = document.querySelector('.pauseBtn');\r\n\r\n playBtn.addEventListener('click', () => {\r\n wavesurfer.playPause();\r\n pauseBtn.style.display = 'block';\r\n playBtn.style.display = 'none';\r\n });\r\n\r\n pauseBtn.addEventListener('click', () => {\r\n wavesurfer.playPause();\r\n pauseBtn.style.display = 'none';\r\n playBtn.style.display = 'block';\r\n });\r\n\r\n wavesurfer.on('finish', function () {\r\n wavesurfer.stop();\r\n playBtn.style.display = 'block';\r\n pauseBtn.style.display = 'none';\r\n });\r\n }\r\n\r\n const audioUrl = audioElement.src;\r\n podcastPlayer(audioUrl);\r\n}\r\n//Podcast Audio Function End\r\n\r\n\r\n$(\".js-logo-grid\").click(function () {\r\n $(\".side-popup\").animate({ right: '0' }, 300);\r\n $(\"body\").addClass(\"popup-open\");\r\n $(\"body\").append('
    ');\r\n $(\".overlay\").fadeIn();\r\n var slideIndex = $(this).data('slide-index');\r\n navigateToSlide(slideIndex);\r\n\r\n});\r\n\r\n$(\".close-popup\").click(function () {\r\n $(\".side-popup\").animate({ right: '-900px' }, 300);\r\n $(\"body\").removeClass(\"popup-open\");\r\n $(\".overlay\").remove();\r\n});\r\nfunction navigateToSlide(slideIndex) {\r\n $('.js-portolioSlider').slick('slickGoTo', slideIndex);\r\n}\r\n\r\n// form arrow icon move \r\nfunction dropDownIconMove() {\r\n $('.js-select2').select2();\r\n\r\n $('.js-select2').on('select2:open', function (e) {\r\n $('.dropdown-icon').addClass('rotate');\r\n });\r\n\r\n $('.js-select2').on('select2:close', function (e) {\r\n $('.dropdown-icon').removeClass('rotate');\r\n });\r\n}\r\n\r\n\r\n\r\nvar iconWrappers = document.querySelectorAll('.icons-wrapper');\r\n\r\niconWrappers.forEach(function (iconWrapper) {\r\n iconWrapper.addEventListener('click', function () {\r\n var highlightBox = this.closest('.highlight-box');\r\n\r\n if (highlightBox) {\r\n // Remove 'expand' class from all highlight boxes\r\n document.querySelectorAll('.highlight-box').forEach(function (box) {\r\n if (box !== highlightBox) {\r\n box.classList.remove('expand');\r\n box.classList.add('contract');\r\n }\r\n });\r\n\r\n // Toggle 'expand' class on the clicked highlight box\r\n if (highlightBox.classList.contains('expand')) {\r\n highlightBox.classList.remove('expand');\r\n highlightBox.classList.add('contract');\r\n } else {\r\n highlightBox.classList.remove('contract');\r\n highlightBox.classList.add('expand');\r\n }\r\n }\r\n });\r\n});\r\n// Show highlights description on click end\r\n\r\n\r\n// E-services nav convert to slider// \r\nfunction navPillSlider(sliderName) {\r\n\r\n var totalNavItemsWidth = 0;\r\n $('.js-nav-slider-items .nav-item').each(function () {\r\n totalNavItemsWidth += $(this).outerWidth(true);\r\n });\r\n\r\n var breakpoint = 678; // define your breakpoint value\r\n breakpoint = $('.js-nav-slider-items').parent().outerWidth(true);\r\n var viewportWidth = $(window).width();\r\n\r\n \r\n\r\n if (totalNavItemsWidth > breakpoint && viewportWidth >= 600) {\r\n var slickOptions = {\r\n slidesToShow: 1, // adjust this value as needed\r\n slidesToScroll: 1,\r\n infinite: false,\r\n rtl: isRTL,\r\n prevArrow: isRTL ? $(sliderName).parent().find('.custom-arrows.next') : $(sliderName).parent().find('.custom-arrows.prev'),\r\n nextArrow: isRTL ? $(sliderName).parent().find('.custom-arrows.prev') : $(sliderName).parent().find('.custom-arrows.next'),\r\n variableWidth: true,\r\n };\r\n\r\n var $slider = $(sliderName); // Define $slider before initializing slick\r\n // if (!handleNoSlider($slider, 5)) return;\r\n\r\n $slider.on('init', function (event, slick) {\r\n updateArrows(slick);\r\n });\r\n\r\n $slider.on('afterChange', function (event, slick, currentSlide) {\r\n updateArrows(slick);\r\n });\r\n\r\n $slider.slick(slickOptions); // Initialize slick on $slider\r\n\r\n function updateArrows(slick) {\r\n var $nextArrow = isRTL ? $(sliderName).parent().find('.custom-arrows.prev') : $(sliderName).parent().find('.custom-arrows.next');\r\n var $prevArrow = isRTL ? $(sliderName).parent().find('.custom-arrows.next') : $(sliderName).parent().find('.custom-arrows.prev');\r\n\r\n\r\n // Enable custom arrows\r\n $prevArrow.click(function () {\r\n // $slider.slick('slickPrev');\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n console.log(slick.slideCount)\r\n });\r\n\r\n $nextArrow.click(function () {\r\n // $slider.slick('slickNext');\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n console.log(slick.slideCount);\r\n \r\n });\r\n \r\n\r\n // If slider is at the last slide, hide next arrow\r\n if (slick.currentSlide == slick.slideCount-1) {\r\n \r\n $nextArrow.css('opacity', 0);\r\n } else {\r\n $nextArrow.css('opacity', 1);\r\n }\r\n }\r\n }else{\r\n $(sliderName).parent().addClass('noSlider');\r\n $(sliderName).parent().find(\".arrow-wrap\").addClass('noSlider--pagination');\r\n }\r\n}\r\n\r\n// Scroll Top\r\n\r\n$(document).ready(function () {\r\n $(window).scroll(function () {\r\n var currentPosition = $(this).scrollTop();\r\n\r\n // Loop through each section\r\n $('section').each(function () {\r\n var sectionTop = $(this).offset().top;\r\n var sectionBottom = sectionTop + $(this).outerHeight();\r\n\r\n // Check if the current position is within the bounds of this section\r\n if (currentPosition >= sectionTop && currentPosition <= sectionBottom) {\r\n var currentSection = $(this).attr('id');\r\n\r\n if ($(currentSection + 200).addClass('active')) {\r\n $(this).addClass('active')\r\n } else {\r\n $(this).removeClass('active')\r\n }\r\n } else {\r\n $(this).removeClass('active')\r\n }\r\n });\r\n });\r\n});\r\n\r\nfunction textAnim() {\r\n if (!isRTL) {\r\n var textWrappers = document.querySelectorAll('.headingAnimate .wordAnimateWrap');\r\n textWrappers.forEach(textWrapper => {\r\n textWrapper.innerHTML = textWrapper.textContent.replace(/\\S/g, \"$&\");\r\n\r\n var animationTriggered = false;\r\n\r\n function triggerAnimation(entries, observer) {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting && !animationTriggered) {\r\n anime.timeline({ loop: false })\r\n .add({\r\n targets: textWrapper.querySelectorAll('.wordAnimate'),\r\n translateY: [\"1.1em\", 0],\r\n translateX: [\"0.55em\", 0],\r\n translateZ: 0,\r\n rotateZ: [180, 0],\r\n duration: 850,\r\n easing: \"easeOutExpo\",\r\n delay: (el, i) => 50 * i\r\n }).add({\r\n targets: '.headingAnimate',\r\n // opacity: 0,\r\n duration: 2000,\r\n easing: \"easeOutExpo\",\r\n delay: 10000\r\n });\r\n animationTriggered = true; // Set flag to true after animation triggers\r\n observer.unobserve(entry.target); // Stop observing once animation has triggered\r\n }\r\n });\r\n }\r\n\r\n // Setting up the observer for each textWrapper\r\n var observer = new IntersectionObserver(triggerAnimation, { threshold: 0.5 });\r\n observer.observe(textWrapper);\r\n });\r\n\r\n }\r\n}\r\n\r\n// E-services search functionality\r\nfunction eSrvicesSearch() {\r\n $('.txt-search').on('keyup', function () {\r\n var searchTerm = $(this).val().toLowerCase();\r\n\r\n // Iterate through each list item\r\n $('.list-item').each(function () {\r\n var itemText = $(this).text().toLowerCase();\r\n\r\n // Check if the search term is present in the item text\r\n if (itemText.includes(searchTerm)) {\r\n $(this).show();\r\n } else {\r\n $(this).hide();\r\n }\r\n });\r\n });\r\n}\r\n\r\n// E-services nav active class toogle\r\nfunction navActiveToggle() {\r\n $('.js-nav-slider-items .nav-item').click(function () {\r\n $('.js-nav-slider-items .nav-link').removeClass('active');\r\n\r\n $(this).find('.js-nav-slider-items .nav-link').addClass('active');\r\n });\r\n}\r\n\r\nconst navLinks = document.querySelectorAll('.js-navLinks');\r\n\r\n// Function to remove 'active' class from all nav-links\r\nfunction removeActiveClass() {\r\n navLinks.forEach(navLink => {\r\n navLink.classList.remove('active');\r\n });\r\n}\r\n\r\n// Add click event listener to each nav-link\r\nnavLinks.forEach(navLink => {\r\n navLink.addEventListener('click', function () {\r\n // Remove 'active' class from all nav-links\r\n removeActiveClass();\r\n // Add 'active' class to the clicked nav-link\r\n this.classList.add('active');\r\n });\r\n});\r\n\r\n// Header Search drawer\r\nfunction headerSearchDrawer() {\r\n $(\".js-header-search-drawer\").click(function () {\r\n $('body').toggleClass(\"header-search-overlay\"); // Toggle header-search-overlay class\r\n if (!$('body').hasClass(\"header-light\")) {\r\n $('body').addClass(\"header-light\");\r\n }\r\n HeaderSearchFunctionality();\r\n });\r\n\r\n // Esc key press handler\r\n $(document).keydown(function (event) {\r\n if (event.keyCode === 27) { // 27 is the keycode for the 'esc' key\r\n $('body').removeClass(\"header-search-overlay\");\r\n }\r\n });\r\n\r\n // Click handler for inner elements\r\n $(\".filter-close, .filter-btn\").click(function (event) {\r\n event.stopPropagation(); // Stop event propagation\r\n $('body').removeClass(\"header-search-overlay\");\r\n });\r\n}\r\n\r\n\r\n\r\n// header search input\r\nfunction HeaderSearchFunctionality() {\r\n // Input event handler for text input\r\n $('.txt-search').on('input', function () {\r\n var inputText = $(this).val().trim();\r\n if (inputText !== '') {\r\n $('.cancel-icon').show();\r\n $('.search-icon').hide();\r\n } else {\r\n $('.cancel-icon').hide();\r\n $('.search-icon').show();\r\n }\r\n });\r\n\r\n // Click event handler for the cancel icon\r\n $('.cancel-icon').on('click', function () {\r\n $('.txt-search').val('').focus();\r\n $('.cancel-icon').hide();\r\n $('.search-icon').show();\r\n });\r\n\r\n}\r\n// header search input for result page\r\nfunction ResultSearchFunctionality() {\r\n // Input event handler for text input\r\n $('.js-resualt-search').on('input', function () {\r\n var inputText = $(this).val().trim();\r\n if (inputText !== '') {\r\n $('.cancel-icon').show();\r\n $('.search-icon').hide();\r\n } else {\r\n $('.cancel-icon').hide();\r\n $('.search-icon').show();\r\n }\r\n });\r\n\r\n // Click event handler for the cancel icon\r\n $('.cancel-icon').on('click', function () {\r\n $('.js-resualt-search').val('').focus();\r\n $('.cancel-icon').hide();\r\n $('.search-icon').show();\r\n });\r\n}\r\n\r\n// Search result page load more \r\nfunction setupLoadMoreFunctionality() {\r\n var itemsPerPage = 4;\r\n\r\n // Function to handle load more button click\r\n function handleLoadMore($gridItems, $loadMoreBtn) {\r\n var totalItems = $gridItems.length;\r\n var visibleItems = itemsPerPage;\r\n\r\n // Hide extra items initially\r\n $gridItems.slice(itemsPerPage).hide();\r\n\r\n // Show load more button if there are more items\r\n if (totalItems > itemsPerPage) {\r\n $loadMoreBtn.show();\r\n } else {\r\n $loadMoreBtn.hide();\r\n }\r\n\r\n // Load more button click event\r\n $loadMoreBtn.on('click', function () {\r\n $gridItems.filter(':hidden').slice(0, itemsPerPage).show();\r\n visibleItems += itemsPerPage;\r\n\r\n // Hide load more button if no more items to show\r\n if (visibleItems >= totalItems) {\r\n $loadMoreBtn.hide();\r\n }\r\n });\r\n }\r\n\r\n // Loop through each grid item and set up load more functionality\r\n for (var i = 1; i <= 8; i++) {\r\n var $gridItems = $('#searchItem' + i + ' .search-result-grid');\r\n var $loadMoreBtn = $('#searchItem' + i + ' .js-loadMoreBtn');\r\n handleLoadMore($gridItems, $loadMoreBtn);\r\n }\r\n}\r\n\r\n\r\n//Search result card text Character trancut\r\nfunction textTrancut() {\r\n var maxLengthHeading = 55;\r\n var maxLengthBody = 160;\r\n\r\n var $heading = $('.heading-para-box .heading5');\r\n var $body = $('.heading-para-box .body3');\r\n\r\n // Function to truncate text\r\n function truncateText(text, maxLength) {\r\n if (text.length > maxLength) {\r\n return text.substring(0, maxLength) + '...'; // Truncate and append ellipsis\r\n }\r\n return text;\r\n }\r\n\r\n // Truncate heading5 text\r\n $heading.each(function () {\r\n var originalText = $(this).text();\r\n $(this).text(truncateText(originalText, maxLengthHeading));\r\n });\r\n\r\n // Truncate body3 text\r\n $body.each(function () {\r\n var originalText = $(this).text();\r\n $(this).text(truncateText(originalText, maxLengthBody));\r\n });\r\n}\r\n\r\n// Search result nav active add class toggle and smooth scroll\r\nfunction classToggle() {\r\n $('.js-btn-toggle .title-text').click(function () {\r\n $('.js-btn-toggle .body3').removeClass('active');\r\n\r\n $(this).find('.body3').toggleClass('active');\r\n });\r\n\r\n $('.js-btn-toggle .body3').click(function (event) {\r\n event.preventDefault();\r\n\r\n var targetId = $(this).attr('href');\r\n\r\n if ($(targetId).length) {\r\n var targetOffset = $(targetId).offset().top - 260;\r\n\r\n $('html, body').animate({\r\n scrollTop: targetOffset\r\n }, 1000);\r\n }\r\n });\r\n}\r\n\r\n// Search result page input\r\nfunction setupSearchDrawer() {\r\n $('.result-tex').show();\r\n $('.cancel-btn').show(); // Show the cancel button by default\r\n\r\n $('.input-field').on('input', function () {\r\n var value = $(this).val().trim().toLowerCase();\r\n var searchBtn = $('.search-btn');\r\n var cancelBtn = $('.cancel-btn');\r\n var resultTex = $('.result-tex');\r\n\r\n if (value === 'sustainability') {\r\n resultTex.show();\r\n } else {\r\n resultTex.hide();\r\n }\r\n\r\n if (value.length > 0) {\r\n searchBtn.hide();\r\n cancelBtn.show();\r\n } else {\r\n searchBtn.show();\r\n cancelBtn.hide();\r\n }\r\n });\r\n\r\n $('.cancel-btn').on('click', function () {\r\n $('.input-field').val('').focus();\r\n $(this).hide();\r\n $('.search-btn').show();\r\n $('.result-tex').hide();\r\n });\r\n\r\n $('.tab').on('click', function () {\r\n var tabText = $(this).text();\r\n $('.input-field').val(tabText); // Insert tab's text into search field\r\n $('.input-field').trigger('input'); // Trigger input event to perform search\r\n });\r\n}\r\n\r\n\r\n// PDF Images Slider \r\n\r\nfunction PdfImagesSlider($slider, $container) {\r\n var $paginationLabel = $container.find('.js-image-slider-pagination-label');\r\n if (!handleNoSlider($slider, 1)) return;\r\n\r\n $slider.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n });\r\n\r\n $slider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n responsive: [\r\n {\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n });\r\n\r\n // Enable custom arrows\r\n $container.find('.custom-arrows.prev').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickNext');\r\n } else {\r\n $slider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $container.find('.custom-arrows.next').click(function () {\r\n if (isRTL) {\r\n $slider.slick('slickPrev');\r\n } else {\r\n $slider.slick('slickNext');\r\n }\r\n });\r\n\r\n // Update pagination label on beforeChange event\r\n $slider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n });\r\n}\r\n\r\n// Search resualt page tab sticky toggleStickyClass add Start\r\nfunction toggleStickyClass() {\r\n var scroll = $(window).scrollTop();\r\n var $element = $(\".search-tabs-sticky\");\r\n\r\n if (scroll >= 200) {\r\n $element.addClass(\"sticky\");\r\n } else {\r\n $element.removeClass(\"sticky\");\r\n }\r\n}\r\n\r\n$(window).scroll(function () {\r\n toggleStickyClass();\r\n});\r\n// Search resualt page tab sticky toggleStickyClass add End\r\n\r\n\r\n// Show Logo after document loaded \r\n\r\n$(window).on('load', function () {\r\n var logo = document.querySelector(\".header-logo\");\r\n setTimeout(function () {\r\n $(logo).addClass(\"show\");\r\n }, 50);\r\n});\r\n\r\n\r\nfunction cookieBanner() {\r\n $(document).ready(function () {\r\n var banner = $('.js-cookie-banner');\r\n var acceptButton = $('.js-cookie-accept');\r\n var rejectButton = $('.js-cookie-reject');\r\n\r\n // Check if the user has accepted or rejected cookies\r\n if (localStorage.getItem('cookieAccepted') === 'true') {\r\n banner.hide();\r\n } else if (localStorage.getItem('cookieRejected') === 'true') {\r\n banner.hide();\r\n // Perform actions for rejected cookies\r\n } else {\r\n banner.show();\r\n }\r\n\r\n // Event listener for accepting cookies\r\n acceptButton.on('click', function () {\r\n banner.slideUp(300);\r\n localStorage.setItem('cookieAccepted', 'true');\r\n });\r\n\r\n // Event listener for rejecting cookies\r\n rejectButton.on('click', function () {\r\n banner.slideUp(300);\r\n localStorage.setItem('cookieRejected', 'true');\r\n // Additional actions for rejected cookies can be added here\r\n });\r\n });\r\n\r\n}\r\n\r\nif ($('.c-sec-map').length > 0) {\r\n\r\n var markers = [],\r\n mainMap,\r\n activeMarker = null; // Track the currently active marker\r\n\r\n function initMapLogic(lat, lng, zoom) {\r\n // Init Map\r\n mainMap = new google.maps.Map(document.getElementById('festival-map'), {\r\n zoom: zoom,\r\n center: { lat: lat, lng: lng },\r\n disableDefaultUI: true,\r\n styles: [\r\n { featureType: \"water\", stylers: [{ \"color\": \"blue\" }] },\r\n {\r\n \"featureType\": \"road\",\r\n \"elementType\": \"geometry\",\r\n \"stylers\": [{ \"color\": \"#DED4C1\" }]\r\n },\r\n {\r\n \"elementType\": \"labels.text.fill\",\r\n \"stylers\": [{ \"color\": \"#AC956C\" }]\r\n },\r\n {\r\n \"elementType\": \"labels.icon\",\r\n \"stylers\": [{ \"visibility\": \"off\", }]\r\n },\r\n ],\r\n });\r\n\r\n\r\n for (var i = markers.length - 1; i >= 0; i--) {\r\n if (markers[i] !== undefined && markers[i] !== null) {\r\n markers[i].map = mainMap;\r\n markers[i].init();\r\n } else {\r\n // console.error(`Marker at index ${i} is undefined or null.`);\r\n }\r\n }\r\n\r\n // Class for Info Window\r\n google.maps.event.addListenerOnce(mainMap, 'idle', function () {\r\n $('.gm-style iframe').prev().addClass('c-info-window');\r\n });\r\n }\r\n\r\n // Custom Marker Constructor\r\n var markersInoWin = [];\r\n var markersLength = 0;\r\n\r\n\r\n function marker(map, lat, lng, iconSrc, imgSrc, title, markerClass) {\r\n var self = this;\r\n this.map = map;\r\n this.lat = lat;\r\n this.lng = lng;\r\n this.iconSrc = iconSrc;\r\n this.imgSrc = imgSrc;\r\n this.title = title;\r\n this.markerClass = markerClass;\r\n this.activeIconSrc = iconSrc.replace('.png', '-active.png'); // Active icon path\r\n\r\n if (winWidth < 768) {\r\n var markerSize = 30;\r\n } else {\r\n // console.error(Marker at index ${i} is undefined or null.);\r\n }\r\n }\r\n\r\n // Class for Info Window\r\n google.maps.event.addListenerOnce(mainMap, 'idle', function () {\r\n $('.gm-style iframe').prev().addClass('c-info-window');\r\n });\r\n}\r\n\r\n// Custom Marker Constructor\r\nvar markersInoWin = [];\r\nvar markersLength = 0;\r\n\r\nfunction marker(map, lat, lng, iconSrc, imgSrc, title, markerClass) {\r\n var self = this;\r\n this.map = map;\r\n this.lat = lat;\r\n this.lng = lng;\r\n this.iconSrc = iconSrc;\r\n this.imgSrc = imgSrc;\r\n this.title = title;\r\n this.markerClass = markerClass;\r\n this.activeIconSrc = iconSrc.replace('.png', '-active.png'); // Active icon path\r\n\r\n if (winWidth < 768) {\r\n var markerSize = 30;\r\n } else {\r\n var markerSize = 80;\r\n }\r\n\r\n this.iconSrc = {\r\n url: iconSrc,\r\n scaledSize: new google.maps.Size(markerSize, markerSize)\r\n }\r\n\r\n this.activeIconSrc = {\r\n url: this.activeIconSrc,\r\n scaledSize: new google.maps.Size(markerSize, markerSize)\r\n }\r\n\r\n this.openInfo = function () {\r\n // Deactivate the previously active marker\r\n if (activeMarker !== null && activeMarker !== self) {\r\n activeMarker.marker.setIcon(activeMarker.iconSrc);\r\n }\r\n\r\n // Set the current marker to the active icon\r\n self.marker.setIcon(self.activeIconSrc);\r\n activeMarker = self; // Update the active marker\r\n\r\n // Fadeout info\r\n $('.c-info-window').removeClass('this-show');\r\n setTimeout(function () {\r\n // Close all info windows\r\n for (var i = markersInoWin.length - 1; i >= 0; i--) {\r\n markersInoWin[i].close();\r\n }\r\n // Open info window\r\n self.infowindow.open(this.map, self.marker);\r\n setTimeout(function () {\r\n $('.c-info-window').addClass('this-show');\r\n }, 10);\r\n // Remove close event\r\n setTimeout(function () {\r\n var element = $('.gm-style-iw').next()[0];\r\n $('.gm-style-iw').prev().addClass('gm-style-iw_prev');\r\n $('.gm-style-iw').parent().addClass('gm-style-iw_parent');\r\n element.outerHTML = element.outerHTML;\r\n if (winWidth < 1300) {\r\n $(\"html, body\").animate({ scrollTop: 0 }, 500);\r\n }\r\n $('.gm-style-iw').next().click(function () {\r\n $('.c-info-window').removeClass('this-show');\r\n setTimeout(function () {\r\n for (var i = markersInoWin.length - 1; i >= 0; i--) {\r\n markersInoWin[i].close();\r\n }\r\n }, 250);\r\n });\r\n }, 100);\r\n }, 250);\r\n };\r\n\r\n this.init = function () {\r\n // Assign Marker\r\n this.marker = new google.maps.Marker({\r\n position: { lat: this.lat, lng: this.lng },\r\n map: this.map,\r\n icon: this.iconSrc\r\n });\r\n\r\n // Assign InfoWin\r\n this.infowindow = new google.maps.InfoWindow({\r\n content: \"
    \" + this.title + \"
    \"\r\n });\r\n\r\n // Keep ref for all infoWindow\r\n markersInoWin[markersLength] = this.infowindow;\r\n markersLength++;\r\n\r\n // Marker Click\r\n this.marker.addListener('click', function () {\r\n self.openInfo();\r\n var temp = self.title;\r\n openModal(temp);\r\n });\r\n\r\n google.maps.event.addListener(this.infowindow, 'domready', function () { customInfoWindow(this); });\r\n };\r\n}\r\n\r\nfunction customInfoWindow(target) {\r\n // Reference to the DIV that wraps the bottom of infowindow\r\n var iwOuter = $('.gm-style-iw');\r\n var iwBackground = iwOuter.prev();\r\n\r\n // Removes background shadow DIV\r\n iwBackground.children(':nth-child(2)').css({ 'display': 'none' });\r\n // Removes white background DIV\r\n iwBackground.children(':nth-child(4)').css({ 'display': 'none' });\r\n // Moves the infowindow 115px to the right.\r\n iwOuter.parent().css({ 'width': 0, 'height': 0 })\r\n iwOuter.parent().parent().css({ left: '-5px', top: '25px' });\r\n // Moves the shadow of the arrow 76px to the left margin.\r\n iwBackground.children(':nth-child(1)').attr('style', function (i, s) { return s + 'left: 73px !important;' });\r\n // Moves the arrow 76px to the left margin.\r\n iwBackground.children(':nth-child(3)').attr('style', function (i, s) { return s + 'left: 73px !important;' });\r\n // Changes the desired tail shadow color.\r\n iwOuter.parent().find('> div:first-child > div:first-child').css('display', 'none');\r\n iwBackground.children(':nth-child(3)').find('div').children().css({ 'box-shadow': '0 1px 6px rgba(178, 178, 178, 0.6)', 'z-index': '1', 'width': '20px' });\r\n iwBackground.children(':nth-child(3)').find('div:nth-child(1)').children().css({ 'transform': 'skewX(55deg)' });\r\n iwBackground.children(':nth-child(3)').find('div:nth-child(2)').children().css({ 'transform': 'skewX(-55deg)' });\r\n iwBackground.children(':nth-child(3)').children().css({ 'width': '26px', 'height': '20px' });\r\n iwBackground.children(':nth-child(3)').children(':nth-child(1)').css({ 'left': '-11px' });\r\n iwBackground.children(':nth-child(3)').children(':nth-child(2)').css({ 'left': '15px' });\r\n\r\n var iwCloseBtn = iwOuter.next();\r\n iwCloseBtn.css({\r\n 'border-radius': '999px',\r\n 'overflow': 'hidden',\r\n 'opacity': '1',\r\n 'box-shadow': 'rgba(0, 0, 0, 0.2) 0px 0px 5px',\r\n 'background': '#fff',\r\n 'border': '5px solid rgb(255, 255, 255)',\r\n 'width': '23px',\r\n 'height': '23px',\r\n 'top': '-3px',\r\n 'right': '3px'\r\n });\r\n\r\n // If the content of infowindow not exceed the set maximum height, then the gradient is removed.\r\n if ($('.iw-content').height() < 140) {\r\n $('.iw-bottom-gradient').css({ display: 'none' });\r\n }\r\n}\r\n\r\nfunction accordionhoverState() {\r\n $(\".card-box\").mouseenter(function () {\r\n var itemNo = $(this).index();\r\n $(\".card-box\").removeClass(\"active\");\r\n $(this).parent().removeClass(\"hover0\");\r\n $(this).parent().removeClass(\"hover1\");\r\n $(this).parent().removeClass(\"hover2\"); \r\n $(this).addClass(\"active\");\r\n $(this).parent().addClass(\"hover\" + itemNo);\r\n });\r\n}\r\nfunction accordionClickState() {\r\n $('.card-box')\r\n .on('taphold', {delay: 50}, function () {\r\n // taphold actions\r\n var itemNo = $(this).index();\r\n $(\".card-box\").removeClass(\"active\");\r\n $(this).parent().removeClass(\"hover0\");\r\n $(this).parent().removeClass(\"hover1\");\r\n $(this).parent().removeClass(\"hover2\"); \r\n $(this).addClass(\"active\");\r\n $(this).parent().addClass(\"hover\" + itemNo);\r\n })\r\n .on('click', function () {\r\n // normal actions\r\n var itemNo = $(this).index();\r\n $(\".card-box\").removeClass(\"active\");\r\n $(this).parent().removeClass(\"hover0\");\r\n $(this).parent().removeClass(\"hover1\");\r\n $(this).parent().removeClass(\"hover2\"); \r\n $(this).addClass(\"active\");\r\n $(this).parent().addClass(\"hover\" + itemNo);\r\n });\r\n}\r\nvar modal = document.getElementById(\"myModal\");\r\ndocument.addEventListener('keydown', function (event) {\r\n if (event.key === 'Escape') {\r\n modal.style.display = \"none\";\r\n }\r\n});\r\n\r\njQuery(document).ready(function () {\r\n // Determine the number of steps dynamically\r\n var totalSteps = $('.wizard-fieldset').length;\r\n $('.form-wizard-next-btn').on('click', function () {\r\n var currentStep = $('.wizard-fieldset.active').data('content');\r\n if (currentStep == totalSteps) {\r\n $(this).closest('form').submit();\r\n }\r\n });\r\n});\r\n\r\njQuery(document).ready(function () {\r\n jQuery('.form-wizard-next-btn').click(function () {\r\n var parentFieldset = jQuery(this).parents('.wizard-fieldset');\r\n // console.log('parentFieldset-->', parentFieldset);\r\n var currentActiveStep = jQuery(this).parents('.wrapper').find('.form-wizard-steps .active');\r\n // console.log('currentActiveStep-->', currentActiveStep);\r\n var next = jQuery(this);\r\n var nextWizardStep = true;\r\n\r\n // Regex patterns\r\n var emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n var phoneRegex = /^\\d{10}$/;\r\n var numberRegex = /^\\d+$/;\r\n var urlRegex = /^((https?|ftp|smtp):\\/\\/)?(www.)?[a-z0-9]+(\\.[a-z]{2,}){1,3}(#?\\/?[a-zA-Z0-9#]+)*\\/?(\\?[a-zA-Z0-9-_]+=[a-zA-Z0-9-%]+&?)?$/;\r\n\r\n // Custom error messages\r\n var errorMessages = {\r\n empty: \"This field is required.\",\r\n invalidEmail: \"Please enter a valid email address.\",\r\n invalidPhone: \"Please enter a valid 10-digit phone number.\",\r\n invalidNumber: \"Please enter a valid number.\",\r\n invalidUrl: \"Please enter a valid Url.\"\r\n };\r\n\r\n // Check if all fields on the current page are filled and valid\r\n parentFieldset.find('.wizard-required').each(function () {\r\n var thisValue = jQuery(this).val();\r\n var thisField = jQuery(this);\r\n var thisType = thisField.attr('type');\r\n var isValid = true;\r\n var errorMessage = errorMessages.empty;\r\n\r\n if (thisValue === \"\") {\r\n isValid = false;\r\n } else {\r\n if (thisField.hasClass('email')) {\r\n isValid = emailRegex.test(thisValue);\r\n if (!isValid) errorMessage = errorMessages.invalidEmail;\r\n } else if (thisField.hasClass('telephone')) {\r\n isValid = phoneRegex.test(thisValue);\r\n if (!isValid) errorMessage = errorMessages.invalidPhone;\r\n } else if (thisField.hasClass('number')) {\r\n isValid = numberRegex.test(thisValue);\r\n if (!isValid) errorMessage = errorMessages.invalidNumber;\r\n } else if (thisField.hasClass('webUrl')) {\r\n isValid = urlRegex.test(thisValue);\r\n if (!isValid) errorMessage = errorMessages.invalidUrl;\r\n }\r\n }\r\n\r\n if (!isValid) {\r\n thisField.siblings(\".error\").text(errorMessage).slideDown();\r\n nextWizardStep = false;\r\n } else {\r\n thisField.siblings(\".error\").slideUp();\r\n }\r\n });\r\n\r\n // Check if checkboxes are selected\r\n var checkboxes = parentFieldset.find('.contact-rcu-form input[type=\"checkbox\"]');\r\n if (checkboxes.length > 0 && !checkboxes.is(':checked')) {\r\n let errorDiv = parentFieldset.find('#errorRadio');\r\n let errorDivCheckbox = parentFieldset.find('#error');\r\n errorDiv.removeClass('error').addClass('custom-error').text(\"Please select at least one checkbox.\");\r\n errorDivCheckbox.removeClass('error').addClass('custom-error').text(\"Please select at least one checkbox.\");\r\n nextWizardStep = false;\r\n } else {\r\n parentFieldset.find('#errorRadio').removeClass('custom-error').addClass('error').text(\"\");\r\n }\r\n\r\n // Check if radio buttons are selected\r\n var radioButtons = parentFieldset.find('.incentive-radios input[type=\"radio\"]');\r\n if (radioButtons.length > 0 && !radioButtons.is(':checked')) {\r\n let errorDiv = parentFieldset.find('#errorRadio1');\r\n errorDiv.removeClass('error').addClass('custom-error').text(\"Please select an option.\");\r\n nextWizardStep = false;\r\n } else {\r\n parentFieldset.find('#errorRadio1').removeClass('custom-error').addClass('error').text(\"\");\r\n }\r\n\r\n // Check if location radios are selected\r\n var locationRadioButtons = parentFieldset.find('.location-radios input[type=\"radio\"]');\r\n if (locationRadioButtons.length > 0 && !locationRadioButtons.is(':checked')) {\r\n let errorDiv = parentFieldset.find('#errorRadioLocation');\r\n errorDiv.removeClass('error').addClass('custom-error').text(\"Please select a location.\");\r\n nextWizardStep = false;\r\n } else {\r\n parentFieldset.find('#errorRadioLocation').removeClass('custom-error').addClass('error').text(\"\");\r\n }\r\n\r\n // Proceed to the next step if all conditions are met\r\n if (nextWizardStep) {\r\n parentFieldset.removeClass(\"active 400\");\r\n currentActiveStep.removeClass('active').addClass('activated').removeClass('disabled')\r\n .next().addClass('active 400');\r\n parentFieldset.next('.wizard-fieldset').addClass(\"active 400\");\r\n }\r\n\r\n });\r\n\r\n\r\n // Focus on input field check empty or not\r\n jQuery(\".form-control\").on('focus', function () {\r\n var tmpThis = jQuery(this).val();\r\n if (tmpThis == '') {\r\n jQuery(this).parent().addClass(\"focus-input\");\r\n } else if (tmpThis != '') {\r\n jQuery(this).parent().addClass(\"focus-input\");\r\n }\r\n }).on('blur', function () {\r\n var tmpThis = jQuery(this).val();\r\n if (tmpThis == '') {\r\n jQuery(this).parent().removeClass(\"focus-input\");\r\n jQuery(this).siblings('.error').text(\"This field is required.\").slideDown(\"3000\");\r\n } else if (tmpThis != '') {\r\n jQuery(this).parent().addClass(\"focus-input\");\r\n jQuery(this).siblings('.error').slideUp(\"3000\");\r\n }\r\n });\r\n});\r\n``\r\n\r\n\r\njQuery(document).ready(function () {\r\n const tabs = document.querySelectorAll('.js-form-tab');\r\n const contents = document.querySelectorAll('.js-form-content');\r\n\r\n // Activate the first tab by default\r\n tabs[0]?.classList?.add('active');\r\n contents[0]?.classList?.add('active');\r\n\r\n // Disable tabs after the first one\r\n for (let i = 1; i < tabs.length; i++) {\r\n if (!tabs[i].classList.contains('activated')) {\r\n tabs[i].classList.add('disabled');\r\n }\r\n }\r\n\r\n tabs.forEach((tab, index) => {\r\n tab.addEventListener('click', function () {\r\n const tabId = this.getAttribute('data-tab');\r\n\r\n // Remove active class from all tabs and contents\r\n tabs.forEach(tab => tab.classList.remove('active', 'disabled'));\r\n contents.forEach(content => content.classList.remove('active'));\r\n\r\n // Add active class to the clicked tab and corresponding content\r\n this.classList.add('active');\r\n document.querySelector(`.js-form-content[data-content=\"${tabId}\"]`).classList.add('active');\r\n\r\n // Disable tabs after the active one\r\n for (let i = index + 1; i < tabs.length; i++) {\r\n if (!tabs[i].classList.contains('activated')) {\r\n tabs[i].classList.add('disabled');\r\n }\r\n }\r\n });\r\n });\r\n});\r\n\r\n$(document).ready(function () {\r\n // Check if a div has the class 'ktc-file-component-wrapper'\r\n $('div.ktc-file-component-wrapper').each(function () {\r\n // Add the class 'file-upload-wrapper' if the condition is met\r\n $(this).addClass('file-upload-wrapper');\r\n });\r\n});\r\n\r\nfunction initializeSearchFunctionality(faqContainer) {\r\n var resultCount = 0;\r\n\r\n // Hide the cancel icon by default\r\n faqContainer.find('.cancel-icon').hide();\r\n\r\n faqContainer.find('.txt-search').on('input', function () {\r\n resultCount = 0;\r\n var inputText = $(this).val().trim();\r\n if (inputText !== '') {\r\n faqContainer.find('.cancel-icon').show();\r\n faqContainer.find('.search-icon').hide();\r\n } else {\r\n faqContainer.find('.cancel-icon').hide();\r\n faqContainer.find('.search-icon').show();\r\n }\r\n\r\n var searchText = inputText.toLowerCase();\r\n faqContainer.find('.heading-box').hide();\r\n faqContainer.find('.title-text').hide();\r\n const allTitleText = faqContainer[0].querySelectorAll('.button-list .title-text');\r\n\r\n // Iterate over each card\r\n faqContainer.find('.card').each(function () {\r\n var cardText = $(this).text().toLowerCase();\r\n var headingBox = $(this).closest('.accordion').find('.heading-box');\r\n\r\n if (cardText.includes(searchText)) {\r\n resultCount++;\r\n $(this).show();\r\n $(this).parent().find('.heading-box .wrapper-heading .heading2').addClass('sec-animate');\r\n headingBox.show();\r\n\r\n const searchAccordion = $(this).closest('.accordion').attr(\"data-accordion-id\");\r\n $(allTitleText[searchAccordion - 1]).show();\r\n } else {\r\n $(this).hide();\r\n }\r\n });\r\n\r\n updateNoResultsVisibility(faqContainer);\r\n updateSearchResultMessage(searchText, faqContainer);\r\n\r\n cancelIconButtonFunctionality(faqContainer);\r\n });\r\n\r\n function updateSearchResultMessage(searchText, faqContainer) {\r\n faqContainer.find('.result-count').text(resultCount);\r\n faqContainer.find('.search-text').text(searchText);\r\n if (resultCount === 0 || searchText === '') {\r\n faqContainer.find('.searchResults').hide();\r\n } else {\r\n faqContainer.find('.searchResults').show();\r\n }\r\n }\r\n\r\n function updateNoResultsVisibility(faqContainer) {\r\n if (faqContainer.find('.card:visible').length === 0) { // Changed .accordion to .card\r\n faqContainer.find('.no-results').show();\r\n } else {\r\n faqContainer.find('.no-results').hide();\r\n }\r\n }\r\n\r\n function cancelIconButtonFunctionality(faqContainer) {\r\n faqContainer.find('.btn-search .cancel-icon').click(function () {\r\n faqContainer.find('.txt-search').val('');\r\n faqContainer.find('.cancel-icon').hide();\r\n faqContainer.find('.search-icon').show();\r\n faqContainer.find('.accordion .card').show();\r\n faqContainer.find('.title-text').show();\r\n faqContainer.find('.heading-box').show();\r\n faqContainer.find('.searchResults').hide();\r\n updateNoResultsVisibility(faqContainer);\r\n });\r\n }\r\n\r\n}\r\n\r\n//all the above code is estable\r\nfunction filterSlider($FilterSlider, $container) {\r\n var $paginationLabel = $container.find('.custom-pagination-label');\r\n var $prevArrow = $container.find('.custom-arrows.prev');\r\n var totalSlides = $FilterSlider.children().length;\r\n let slidesToShow = 4\r\n $FilterSlider.on('init', function (event, slick) {\r\n var totalSlides = slick.slideCount;\r\n $paginationLabel.html('01 / ' + totalSlides.toString().padStart(2, '0') + '');\r\n });\r\n\r\n $FilterSlider.slick({\r\n arrows: false,\r\n dots: false,\r\n infinite: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n rtl: isRTL,\r\n draggable: false,\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 601,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n dots: true,\r\n }\r\n }\r\n ],\r\n customPaging: function (slider, i) {\r\n return '
    ';\r\n }\r\n });\r\n\r\n $container.find('.custom-arrows.prev').click(function () {\r\n // $FilterSlider.slick('slickPrev');\r\n if (isRTL) {\r\n $FilterSlider.slick('slickNext');\r\n } else {\r\n $FilterSlider.slick('slickPrev');\r\n }\r\n });\r\n\r\n $container.find('.custom-arrows.next').click(function () {\r\n // $FilterSlider.slick('slickNext');\r\n if (isRTL) {\r\n $FilterSlider.slick('slickPrev');\r\n } else {\r\n $FilterSlider.slick('slickNext');\r\n }\r\n });\r\n\r\n $FilterSlider.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n var totalSlides = slick.slideCount;\r\n var nextSlideNumber = (nextSlide + 1).toString().padStart(2, '0');\r\n $paginationLabel.html('' + nextSlideNumber + ' / ' + totalSlides.toString().padStart(2, '0') + '');\r\n });\r\n\r\n // Handle filter click\r\n $container.find(\".filter .nav-link\").on('click', function () {\r\n var filterValue = $(this).data('filter');\r\n $FilterSlider.slick('slickUnfilter');\r\n\r\n if (filterValue == '.category-tab1') {\r\n $FilterSlider.slick('slickFilter', '.category-tab1');\r\n }\r\n else if (filterValue == '.category-tab2') {\r\n $FilterSlider.slick('slickFilter', '.category-tab2');\r\n }\r\n else if (filterValue == '.category-tab3') {\r\n $FilterSlider.slick('slickFilter', '.category-tab3');\r\n }\r\n else if (filterValue == '*') {\r\n $FilterSlider.slick('slickUnfilter');\r\n }\r\n\r\n var visibleItemsCount = $FilterSlider.find(\".listingWrapper:visible\").length;\r\n\r\n if (visibleItemsCount < 4) {\r\n \r\n $container.find(\".arrow-wrap\").addClass('noSlider--pagination ');\r\n } else {\r\n \r\n $container.find(\".arrow-wrap\").removeClass('noSlider--pagination ');\r\n \r\n }\r\n\r\n });\r\n\r\n\r\n\r\n $(window).resize(function () {\r\n $container.find(\".filter .nav-link.active\").trigger('click');\r\n headerLight(); \r\n });\r\n if (totalSlides <= slidesToShow) {\r\n $FilterSlider.addClass('noSlider');\r\n $FilterSlider.parent().find(\".slider-arrow-pagination\").addClass('noSlider--pagination');\r\n $container.find(\".arrow-wrap\").addClass('noSlider--pagination');\r\n } else {\r\n $FilterSlider.removeClass('noSlider');\r\n $FilterSlider.parent().find(\".slider-arrow-pagination\").removeClass('noSlider--pagination');\r\n return true; // slider should be initialized\r\n }\r\n}\r\n\r\n\r\nfunction isValidEmail(email) {\r\n var emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return emailPattern.test(email);\r\n}\r\nfunction isValidNumber(number) {\r\n return !isNaN(number);\r\n}\r\n\r\nfunction footerNewsletterValidation() {\r\n\r\n $('.news-letter-submit-btn').on('click', function (e) {\r\n e.preventDefault(); // Prevent form submission\r\n var inputVal = $('.news-letter-input').val();\r\n if (inputVal === '') {\r\n $('.error').show();\r\n $('.invalid-email-error').hide();\r\n } else if (!isValidEmail(inputVal)) {\r\n $('.invalid-email-error').show();\r\n $('.error').hide();\r\n } else {\r\n $('.error').hide();\r\n $('.invalid-email-error').hide();\r\n }\r\n });\r\n\r\n $('.news-letter-input').on('input', function () {\r\n if ($(this).val() !== '') {\r\n $('.error').hide(); // Hide the required field error message if input is not empty\r\n }\r\n if (isValidEmail($(this).val())) {\r\n $('.invalid-email-error').hide(); // Hide invalid email error if input is valid email\r\n }\r\n });\r\n}\r\n\r\n\r\n$(\".dropdown-btn\").click(function() {\r\n $(this).siblings('.dropdown-content-wrapper').children('.dropdown-content').toggleClass('highlight');\r\n if ( $(this).siblings('.dropdown-content-wrapper').children('.dropdown-content').hasClass('highlight') ) {\r\n $(this).siblings('.dropdown-content-wrapper').addClass('dropdown-space-visible');\r\n } else {\r\n $('.dropdown-content-wrapper').removeClass('dropdown-space-visible');\r\n }\r\n});\r\n\r\n$(\".dropdown-btn\").mouseleave(function() {\r\n \r\n $(this).siblings('.dropdown-content-wrapper').children('.dropdown-content').removeClass('highlight');\r\n $('.dropdown-content-wrapper').removeClass('dropdown-space-visible');\r\n \r\n});\r\n$('.dropdown-content-wrapper').mouseenter(function (){\r\n $(this).children('.dropdown-content').addClass('highlight');\r\n});\r\n\r\n$('.dropdown-content').mouseleave(function() {\r\n \r\n $(this).removeClass('highlight');\r\n $('.dropdown-content-wrapper').removeClass('dropdown-space-visible');\r\n dropdownOpen = false;\r\n});\r\n\r\nfunction removeEmptyPara(){\r\n $('p:empty').each(function() {\r\n // This code will run for each empty
    \r\n $(this).css('display','none');\r\n \r\n // You can perform other actions on the empty
    here\r\n });\r\n}\r\n\r\nfunction addClasstoPara() {\r\n $('.editorial-3').find('.content').find('p').addClass('body1');\r\n $('.editorial-2').find('.para-box').find('p').addClass('body1');\r\n $('.box-wrapper').find('.content-box').find('p').addClass('body1'); \r\n $('.editorial-list').find('.para-container').find('p').addClass('body1');\r\n}\r\n$('.lang--switch').on('click', function() {\r\n // Remove 'active' class from all items\r\n $('.lang--switch').removeClass('active');\r\n \r\n // Add 'active' class to the clicked item\r\n $(this).addClass('active');\r\n});\r\n\r\n$('.mob-lang--switch').on('click', function() {\r\n // Remove 'active' class from all items\r\n $('.mob-lang--switch').removeClass('active');\r\n \r\n // Add 'active' class to the clicked item\r\n $(this).addClass('active');\r\n});\r\n\r\n\r\n// Mob language Dropdown\r\n$('.mob--lang').on('click', function(event) {\r\n event.preventDefault(); // Prevent the default action (if needed)\r\n \r\n // Find the closest .lang-contact-wrapper and its .mob-lang-dropdown\r\n $(this).closest('.lang-contact-wrapper').find('.mob-lang-dropdown').css({\r\n 'visibility': function(_, visibility) {\r\n return visibility === 'visible' ? 'hidden' : 'visible';\r\n },\r\n 'opacity': function(_, opacity) {\r\n return opacity === '1' ? '0' : '1';\r\n }\r\n });\r\n});\r\n\r\nfunction tabVisibility() {\r\n const parentElement = document.querySelector('.sec-leadership-team');\r\n if (parentElement) {\r\n const ulElement = parentElement.querySelector('.tab-items');\r\n if (ulElement) {\r\n const listItems = ulElement.getElementsByTagName('li');\r\n if (listItems.length === 1) {\r\n ulElement.style.display = 'none';\r\n } else {\r\n ulElement.style.display = 'flex';\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction starRatingLibrary () {\r\n var star = new StarRating('.star-rating');\r\n}\r\n\r\n\r\nfunction checkStickyContent(){\r\n var windowWidth = $(window).width();\r\n if($(\".form-group\").find('input[type=\"radio\"]').length > 0 ){\r\n $(\".form-group\").find('input[type=\"radio\"]').parent().parent().addClass(\"radioBlock\");\r\n }\r\n if(windowWidth > 991){\r\n if($(\".service-form\").length > 0 ){\r\n var windowHeight = $(window).height();\r\n var headerHeight = $(\".header\").innerHeight();\r\n var leftWrapper = $(\".service-form\").find(\".left-wrapper\").innerHeight();\r\n var rightWrapper = $(\".service-form\").find(\".right-wrapper\").innerHeight() + headerHeight;\r\n if(rightWrapper > windowHeight){\r\n $(\".service-form\").addClass(\"sticky\");\r\n }\r\n }\r\n if($(\".sec-service-information\").length > 0 ){\r\n var windowHeight = $(window).height();\r\n var headerHeight = $(\".header\").innerHeight();\r\n var leftWrapper = $(\".sec-service-information\").find(\".items-wrapper-left\").innerHeight();\r\n var rightWrapper = $(\".sec-service-information\").find(\".item-wrapper-right\").innerHeight() + headerHeight;\r\n if(rightWrapper > windowHeight){\r\n $(\".sec-service-information\").addClass(\"sticky\");\r\n }\r\n }\r\n if ($(\".contact-rcu\").length > 0) {\r\n var windowHeight = $(window).height();\r\n var headerHeight = $(\".header\").innerHeight();\r\n var leftWrapper = $(\".contact-rcu\").find(\".content\").innerHeight();\r\n var rightWrapper = $(\".contact-rcu\").find(\"form\").innerHeight() + headerHeight;\r\n if (rightWrapper > windowHeight) {\r\n $(\".contact-rcu\").addClass(\"sticky\");\r\n }\r\n }\r\n }\r\n}\r\n\r\nvar check25 = 0;\r\nvar check50 = 0;\r\nvar check75 = 0;\r\nvar check100 = 0;\r\n\r\n$(document).scroll(function(e){\r\n\r\n\t// grab the scroll amount and the window height\r\n var scrollAmount = $(window).scrollTop();\r\n var documentHeight = $(document).height();\r\n var windowHeight = $(window).height();\r\n\r\n // calculate the percentage the user has scrolled down the page\r\n var scrollPercent = (scrollAmount / documentHeight) * 100;\r\n var pageURL = $(location).attr(\"href\");\r\n\r\n\tif(scrollPercent >= 25 && check25 == 0) {\r\n\t\tcheck25 = 1;\r\n check50 = 1;\r\n\t\tscrollGTMEvent();\r\n\t}else if(scrollPercent >= 50 && check50 == 1) {\r\n\t\tcheck50 = 0;\r\n check75 = 1;\r\n\t\tscrollGTMEvent();\r\n\t}else if(scrollPercent >= 75 && check75 == 1) {\r\n\t\tcheck75 = 0;\r\n check100 = 1;\r\n\t\tscrollGTMEvent();\r\n\t}else if( scrollAmount >= (documentHeight - windowHeight) && check100 == 1) {\r\n\t\tcheck100 = 0;\r\n\t\tscrollGTMEvent();\r\n\t}\r\n\r\n\tfunction scrollGTMEvent() { \r\n\t\twindow.dataLayer.push({\r\n event: 'Scroll_Depth', \r\n\t\t\t\t\tPage_URL: pageURL,\r\n\t\t\t\t\tScroll_Percentage: scrollPercent\r\n }); \r\n\t}\r\n \r\n});"]}