{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./lat_london/scripts/functions.js","webpack:///./lat_london/scripts/freeWorkshops.js","webpack:///./lat_london/scripts/main.js","webpack:///./lat_london/scripts/marketAnalysis.js","webpack:///./lat_london/scripts/navigation.js","webpack:///./lat_london/scripts/newsResources.js","webpack:///./lat_london/scripts/testimonials.js","webpack:///./lat_london/scripts/formModule.js","webpack:///./lat_london/scripts/rangeController.js","webpack:///./lat_london/scripts/pagination.js","webpack:///./lat_london/scripts/sliders.js","webpack:///./lat_london/scripts/CardController.js","webpack:///./lat_london/scripts/courseInfoModule.js","webpack:///./lat_london/scripts/embeddedVideo.js","webpack:///./lat_london/scripts/imageGallery.js","webpack:///./lat_london/scripts/imgSliderModal.js","webpack:///./lat_london/scripts/staff.js","webpack:///./lat_london/scripts/trustpilotModule.js","webpack:///./lat_london/scripts/accessibility.js","webpack:///./lat_london/scripts/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","3","exports","module","l","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Functions","debounce","func","wait","immediate","context","this","args","arguments","later","callNow","horizontalDragScroll","selector","slider","querySelector","startX","scrollLeft","isDown","addEventListener","classList","add","pageX","offsetLeft","remove","preventDefault","walk","checkBreakpoint","minOrMax","ammount","matchMedia","matches","countdown","querySelectorAll","smoothScrollToForm","link","scrollIntoView","behavior","handleButtonEvents","appendClickListener","init","date","$","days1","hours1","minutes1","seconds1","days2","hours2","minutes2","seconds2","timer","text","countDownDate","Date","getTime","x","setInterval","now","distance","days","Math","floor","hours","minutes","seconds","substring","clearInterval","html","freeWorkshops","subnavigationSearchForm","subnavigationSearchBtn","main","courseCard","lazyBackgroundLogo","mainLogo","zoom","Zooming","scaleBase","bgColor","bgOpacity","enableGrab","zIndex","onBeforeClose","body","forEach","zoomButton","onBeforeOpen","renameAltAttribute","element","altName","attr","asyncLoad","idElement","getElementById","removeAttribute","multipleVideoAsyncLoad","classElement","asyncLoadManager","lazy","delay","loadMobileVideo","source","video","videoSource","mobileVideo","mainVideo","changeVideoAttribute","videoUrl","firstElementChild","load","childElementCount","fixMarginTop","addClass","css","resize","navTransform","append","location","courseCardLinks","click","submit","next","prevObject","renderAltAttribute","parent","scrollTop","documentElement","on","img","dataset","zoomImage","open","close","removeClass","idx","newCount","parseInt","numberOfElements","button","currentTarget","res","ready","removeAttr","articlesRemaining","marketAnalysis","DOM","setCss","parameter","prolongClass","item","excavateClass","closeNavMenuManager","navSlide","menuList","subMenu","hasClass","navIcon","toggleFormManager","formSlide","toggleClass","subNavigationHoover","children","filter","hover","navbarResponsive","dropdownMenuHeight","height","dropdownContentHeight","dropdownContentchildHeight","formButtonManager","getFromButton","attrLink","offsetPosition","offsetTop","scrollTo","subnavigationShowForm","searchBtn","searchElement","siblings","find","focus","is","has","highlightMatches","jQuery","fn","highlight","searchTerm","toLowerCase","indexOf","index","currentText","replace","RegExp","split","each","renderSocialLinks","loadAsync","bannerSocialLinks","links","style","top","animateEnquireNow","enqureNowButton","navigationMenu","currentSubMenu","parents","_2ndLevelmenu","navItems","id","parentMenu","status","topNav","sub_Menu","socialLinks","fixTop","menuForm","floatingLink","closest","first","navigationScrollMenu","val","scroll","left","not","innerWidth","handleCross","closeButton","anchor","isNaN","mobileScrollNews","mobileScrollMarketing","childNewsCardContainer","childMarketingCardContainer","cardContainer","container","appendTo","transformOnResizeMktCards","transformOnResizeNewsCards","moveElements","videoTestimonialsChangeHiglighted","youtubeVideos","contentWindow","postMessage","pauseYTVideos","animate","offset","initModals","show","hide","interviewTestimonialsModals","videoTestimonialsGallery","videoTestimonialsScrollable","formAttrs","setFormStyle","form","addedClass","ger","attrName","textLink","buttonColor","textColor","policyText","element1","element2","wrapAll","phoneTransform","phoneField","phoneSelect","phoneSpan","formParent","jForm","getElementsByClassName","observer","MutationObserver","mutations","addedNodes","node","contains","disconnect","observe","childList","subtree","formListener","courses","rangeValue","inputRange","a","Id","toString","innerHTML","Name","priceTag","Price","setRangeManagerEvents","inputs","getInputRange","elem","coursePrices","setMaxRangeInput","setDefaultInputValues","nextDisable","paginationElement","current","paginationControls","total","nextPageButton","prevDisable","previousPageButton","pagesIndicators","currentPage","currentPageInt","pageNumber","ele","getCurrentPage","numberOfCards","styleCards","dispatchEvent","Event","number","stylecards","nextPage","previousPage","goToPage","aboutPartnersSlider","$carousel","slick","arrows","infinite","autoplay","slidesToShow","imagesSlider","lazyLoad","centerMode","centerPadding","mobileFirst","lazyTestimonialSlider","testimonial","testimonialChildCount","speed","slidesToScroll","dots","customPaging","responsive","breakpoint","settings","lazyCoursePageTestimonialSlider","imgGallerySlider","prevArrow","nextArrow","currentSlide","nextSlide","imgList","$slider","gallerySliderImg","gallerySliderDesc","sliderModal","visibility","overflow","checkCardPosition","scrollY","passive","jsLinks","swapToVideo","videoWrapper","videoframe","videoId","createVideo","videoid","bindEvents","playButtons","handleSwap","thumbnail","parentElement","videosToEmbed","imagesSources","imageIndex","openImages","posLeft","posTop","elWidth","elHeight","elparent","width","getBoundingClientRect","hoverIn","galleryModal","display","modalImage","modalPrevious","modalContent","modalNext","imagesGallerySection","sliderModalClose","thumbnailsStaff","thumbnails","staffDetails","membersSection","membersBackground","dataIndex","wholeSection","handleClick","trustPilot","checkExist","showTrustpilot","searchInput","dropdown","which","params","activeElement","ChildMenus","childmenu","evt","childDropdownMenu","nextElementSibling","accessibility","NodeList","eventName","callback","useCapture","CardController","courseInfoModule","embedVideo","imageGallery","imgSliderModal","mainModule","navigation","newsResources","staff","testimonials","trustpilotModule","formModule","rangeController","paginationModule","slidersModule","log"],"mappings":"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","file":"main.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t3: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t3: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"5\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({}[chunkId]||chunkId) + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([16,4]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","const debounce = function(func, wait, immediate) {\r\n let timeout;\r\n return function() {\r\n const context = this;\r\n const args = arguments;\r\n const later = function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n};\r\n\r\nconst horizontalDragScroll = (selector) => {\r\n const slider = document.querySelector(selector);\r\n let isDown = false;\r\n let startX;\r\n let scrollLeft;\r\n\r\n slider.addEventListener('mousedown', (e) => {\r\n isDown = true;\r\n slider.classList.add('scrolling');\r\n startX = e.pageX - slider.offsetLeft;\r\n scrollLeft = slider.scrollLeft;\r\n });\r\n slider.addEventListener('mouseleave', () => {\r\n isDown = false;\r\n slider.classList.remove('scrolling');\r\n });\r\n slider.addEventListener('mouseup', () => {\r\n isDown = false;\r\n slider.classList.remove('scrolling');\r\n });\r\n slider.addEventListener('mousemove', (e) => {\r\n if (!isDown) return;\r\n e.preventDefault();\r\n const x = e.pageX - slider.offsetLeft;\r\n const walk = (x - startX) * 1.5;\r\n slider.scrollLeft = scrollLeft - walk;\r\n });\r\n};\r\n\r\nconst checkBreakpoint = (minOrMax, ammount) =>\r\n window.matchMedia(`(${minOrMax}-width: ${ammount}px)`).matches;\r\n\r\nconst Functions = {\r\n debounce,\r\n horizontalDragScroll,\r\n checkBreakpoint,\r\n};\r\n\r\nexport default Functions;\r\n","// Please remove all the 'var' and never ever use it again!\r\nconst countdown = document.querySelectorAll('.countdown-button');\r\n\r\n// scrolls to the form\r\nfunction smoothScrollToForm(e) {\r\n e.preventDefault();\r\n\r\n const link = document.querySelector('#form-link');\r\n if (link) link.scrollIntoView({ behavior: 'smooth' });\r\n}\r\n\r\n// adds event listener to buttons\r\nfunction appendClickListener() {\r\n for (let i = 0; i < countdown.length; i += 1) {\r\n if (countdown[i].getAttribute('href') === '#form-link')\r\n countdown[i].addEventListener('click', smoothScrollToForm);\r\n }\r\n}\r\n\r\n// button manager\r\nconst handleButtonEvents = () => {\r\n if (countdown.length > 0) appendClickListener();\r\n};\r\n\r\nfunction freeWorkshops() {\r\n let date = $('.countdown-section #date');\r\n const days1 = $('.countdown-section #days-1');\r\n const hours1 = $('.countdown-section #hours-1');\r\n const minutes1 = $('.countdown-section #minutes-1');\r\n const seconds1 = $('.countdown-section #seconds-1');\r\n const days2 = $('.countdown-section #days-2');\r\n const hours2 = $('.countdown-section #hours-2');\r\n const minutes2 = $('.countdown-section #minutes-2');\r\n const seconds2 = $('.countdown-section #seconds-2');\r\n const timer = $('.countdown-section .timer');\r\n\r\n if (document.querySelector('.countdown-section #date')) {\r\n date = date.text();\r\n\r\n // Set the date we're counting down to\r\n const countDownDate = new Date(date).getTime();\r\n\r\n // Update the count down every 1 second\r\n const x = setInterval(() => {\r\n // Get today's date and time\r\n const now = new Date().getTime();\r\n\r\n // Find the distance between now and the count down date\r\n const distance = countDownDate - now;\r\n\r\n // Time calculations for days, hours, minutes and seconds\r\n let days = Math.floor(distance / (1000 * 60 * 60 * 24));\r\n let hours = Math.floor(\r\n (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)\r\n );\r\n let minutes = Math.floor(\r\n (distance % (1000 * 60 * 60)) / (1000 * 60)\r\n );\r\n let seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n days = `0${days}`.slice(-2);\r\n hours = `0${hours}`.slice(-2);\r\n minutes = `0${minutes}`.slice(-2);\r\n seconds = `0${seconds}`.slice(-2);\r\n\r\n // Display the result in the element with id=\"demo\"\r\n days1.text(days.substring(0, 1));\r\n hours1.text(hours.substring(0, 1));\r\n minutes1.text(minutes.substring(0, 1));\r\n seconds1.text(seconds.substring(0, 1));\r\n days2.text(days.substring(1, 2));\r\n hours2.text(hours.substring(1, 2));\r\n minutes2.text(minutes.substring(1, 2));\r\n seconds2.text(seconds.substring(1, 2));\r\n\r\n // If the count down is finished, write some text\r\n if (distance < 0) {\r\n clearInterval(x);\r\n timer.html('

EXPIRED

');\r\n }\r\n }, 1000);\r\n }\r\n}\r\n\r\nfunction init() {\r\n handleButtonEvents();\r\n freeWorkshops();\r\n}\r\n\r\nexport default { init };\r\n","import Zooming from 'zooming';\r\nimport Functions from './functions';\r\n\r\nconst subnavigationSearchForm = $('.subnavigation-search-form');\r\nconst subnavigationSearchBtn = $(\r\n '.subnavigation-search-form .search-btn-subnavigation'\r\n);\r\nconst main = $('main');\r\nconst courseCard = document.querySelectorAll('.course-overview-card');\r\nconst map =\r\n 'https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d9931.042124319254!2d-0.1095195!3d51.5176092!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x6688acddc9a82c76!2sThe%20London%20Academy%20of%20Trading!5e0!3m2!1sen!2ses!4v1576052415844!5m2!1sen!2ses';\r\nconst courseCardW = document.querySelector('#courses-card-w');\r\n\r\nconst lazyBackgroundLogo = $('img.lazyBannerBackground.logo');\r\nconst mainLogo = $('.main-logo');\r\n\r\nconst zoom = new Zooming({\r\n scaleBase: 1,\r\n bgColor: 'rgb(0 0 0 / 65%)',\r\n bgOpacity: 2,\r\n enableGrab: true,\r\n zIndex: 9998,\r\n onBeforeClose: () => {\r\n document.body.classList.remove('overflow-hidden');\r\n document.querySelector('.close-zoom').classList.add('d-none');\r\n document.querySelectorAll('.zoom-button').forEach(zoomButton => {\r\n zoomButton.classList.remove('d-none');\r\n });\r\n },\r\n onBeforeOpen: () => {\r\n document.body.classList.add('overflow-hidden');\r\n document.querySelector('.close-zoom').classList.remove('d-none');\r\n document.querySelectorAll('.zoom-button').forEach(zoomButton => {\r\n zoomButton.classList.add('d-none');\r\n });\r\n },\r\n});\r\n\r\nfunction zoomImage() {\r\n $('.zoom-button').on('click', (e) => {\r\n const img = document.getElementById(e.target.dataset.zoomImage);\r\n zoom.open(img);\r\n });\r\n $('.close-zoom').on('click', (e) => {\r\n const img = document.getElementById(e.target.dataset.zoomImage);\r\n zoom.close(img);\r\n });\r\n}\r\n\r\nfunction renameAltAttribute(element, altName) {\r\n return element.attr('alt', altName);\r\n}\r\n\r\nfunction asyncLoad(idElement, timeout) {\r\n setTimeout(() => {\r\n const script = document.getElementById(idElement);\r\n if (script !== null) {\r\n script.setAttribute('src', script.getAttribute('data-src'));\r\n script.removeAttribute('data-src');\r\n }\r\n }, timeout);\r\n}\r\n\r\nfunction multipleVideoAsyncLoad(classElement, timeout) {\r\n setTimeout(() => {\r\n const script = document.querySelectorAll(classElement);\r\n if (script) {\r\n for (let i = 0; i < script.length; i += 1) {\r\n if (script[i]) {\r\n script[i].setAttribute(\r\n 'src',\r\n script[i].getAttribute('data-src')\r\n );\r\n script[i].removeAttribute('data-src');\r\n }\r\n }\r\n }\r\n }, timeout);\r\n}\r\n\r\nfunction asyncLoadGoogleMap(idElement, timeout, src) {\r\n setTimeout(() => {\r\n const script = document.getElementById(idElement);\r\n if (script !== null) {\r\n script.setAttribute('src', src);\r\n }\r\n }, timeout);\r\n}\r\n\r\nconst asyncLoadManager = function() {\r\n // third party lazy load\r\n $(function() {\r\n $('.lazy').lazy({\r\n delay: 1800,\r\n });\r\n $('.team-lazy').lazy({\r\n delay: 1450,\r\n });\r\n $('.extra-lazy').lazy({\r\n // for hidden icons\r\n delay: 2600,\r\n });\r\n $('.lazyBannerBackground').lazy({\r\n // left empty on purpose, do not remove, or you have to update templates using this class\r\n });\r\n $('.social-links-lazy').lazy({\r\n delay: 2000,\r\n });\r\n });\r\n\r\n asyncLoad('second', 2000);\r\n asyncLoad('six', 2000);\r\n asyncLoad('third', 2000);\r\n asyncLoadGoogleMap('fouth', 1400, map); // changing time to lower will effect page speed\r\n asyncLoad('fith', 1800); // changing time to lower will effect page speed\r\n multipleVideoAsyncLoad('.js-multiple-videos', 1800); // changing time to lower will effect page speed\r\n multipleVideoAsyncLoad('.js-testimonial-lazy', 1800);\r\n};\r\n\r\nconst navTransform = function () {\r\n //if (window.matchMedia('(max-width: 500px)').matches) {\r\n // main.css('margin-top', '0%');\r\n // console.log(\"0\");\r\n //}\r\n //else if (window.matchMedia('(max-width: 1000px)').matches) {\r\n // main.css('margin-top', '10%');\r\n // console.log(\"10\");\r\n //}\r\n if (!$('[id^=banner]').length) {\r\n $('#navigation').addClass('bg-dark-blue');\r\n $('.top-nav').addClass('bg-dark-blue');\r\n $('.bottom-nav').addClass('bg-dark-blue');\r\n main.css('margin-top', '200px');\r\n\r\n //if (window.matchMedia('(max-width: 1200px)').matches) {\r\n // main.css('margin-top', '70px');\r\n //}\r\n //if (window.matchMedia('(max-width: 992px)').matches) {\r\n // main.css('margin-top', '205px');\r\n //}\r\n const fixMarginTop = Functions.debounce(function () {\r\n main.css('margin-top', '200px');\r\n //if (window.matchMedia('(max-width: 1200px)').matches) {\r\n // main.css('margin-top', '64px');\r\n //} else {\r\n // main.css('margin-top', '200px');\r\n //}\r\n }, 250);\r\n\r\n $(window).resize('resize', fixMarginTop);\r\n }\r\n};\r\n\r\n// CourseInfo right side menu\r\nconst appendMenuAfterElement = function() {\r\n // swap places, first two elements in main tag\r\n $('.banner-course-overview').append($('[id^=bannerContent]'));\r\n\r\n $('.course-main').css('opacity', 1);\r\n};\r\n\r\nconst courseCardLinks = function() {\r\n // adds click event to cards and url it leads to\r\n if (typeof courseCard === 'object') {\r\n for (let i = 0; i < courseCard.length; i += 1) {\r\n courseCard[i].addEventListener('click', function(e) {\r\n location.href = courseCard[i].getAttribute('data-url');\r\n });\r\n }\r\n }\r\n};\r\nconst searchButton = function() {\r\n if (subnavigationSearchBtn && subnavigationSearchForm) {\r\n subnavigationSearchBtn.click(function() {\r\n subnavigationSearchForm.submit();\r\n });\r\n }\r\n};\r\nconst renderAltAttribute = function() {\r\n renameAltAttribute(lazyBackgroundLogo, 'LAT: London Academy of Trading');\r\n renameAltAttribute(mainLogo, 'main-logo');\r\n\r\n const all = $('.social-links-banner').next();\r\n\r\n if (all) {\r\n for (let i = 0; i < all.prevObject.length; i += 1) {\r\n all.prevObject[i].setAttribute(\r\n 'alt',\r\n all.prevObject[i].getAttribute('data-alt')\r\n );\r\n all.prevObject[i].removeAttribute('data-alt');\r\n }\r\n }\r\n};\r\n\r\n// loads mobile video on max width 768 and main video for above that width\r\n// TODO: refactor below ...\r\nconst loadMobileVideo = function() {\r\n const source = document.getElementsByTagName('video');\r\n\r\n if (source.length <= 0) {\r\n return;\r\n }\r\n\r\n const video = source.length > 0 ? source[0] : 'error';\r\n let videoSource;\r\n let mobileVideo;\r\n let mainVideo;\r\n\r\n if (video) {\r\n mobileVideo = video.getAttribute('data-mobile-video');\r\n mainVideo = video.getAttribute('data-video');\r\n videoSource =\r\n video.childElementCount > 0 ? video.firstElementChild : 'empty';\r\n }\r\n\r\n function getVideoSource() {\r\n return document\r\n .getElementsByTagName('video')[0]\r\n .firstElementChild.getAttribute('src');\r\n }\r\n\r\n function changeVideoAttribute(videoUrl) {\r\n if (getVideoSource() !== videoUrl) {\r\n videoSource.setAttribute('src', videoUrl);\r\n video.load();\r\n }\r\n }\r\n\r\n const fixMarginTop = Functions.debounce(function() {\r\n if (window.matchMedia('(max-width: 768px)').matches) {\r\n changeVideoAttribute(mobileVideo);\r\n } else {\r\n changeVideoAttribute(mainVideo);\r\n }\r\n }, 100);\r\n\r\n window.addEventListener('resize', fixMarginTop);\r\n window.addEventListener('load', fixMarginTop);\r\n};\r\n\r\nconst setHorizontalScrollAuto = (element) => {\r\n $(element)\r\n .parent()\r\n .css('overflow-x', 'auto');\r\n};\r\n\r\nconst floatingLink = function() {\r\n document.addEventListener('scroll', function(e) {\r\n var element = document.getElementById(\"floatingLink\");\r\n\r\n if (!element) return;\r\n\r\n if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) {\r\n element.classList.add(\"scroll-down\");\r\n } else {\r\n element.classList.remove(\"scroll-down\");\r\n }\r\n });\r\n}\r\n\r\nconst init = function() {\r\n navTransform();\r\n appendMenuAfterElement();\r\n courseCardLinks();\r\n searchButton();\r\n loadMobileVideo();\r\n renderAltAttribute();\r\n asyncLoadManager();\r\n setHorizontalScrollAuto('table');\r\n floatingLink();\r\n zoomImage();\r\n};\r\n\r\nexport default { init };\r\n","function marketAnalysis() {\r\n $('.market-analysis-tabs .articles-tab').click(() => {\r\n $('.pagination-cards').removeClass('d-none');\r\n $('.press-tab-content').addClass('d-none');\r\n $('#marketAnalysisLoadMore')\r\n .attr('data-container', '.pagination-cards')\r\n .attr(\r\n 'data-req',\r\n `/umbraco/surface/NewsAndResources/getmarketanalysis?amount=${$(\r\n '#marketAnalysisLoadMore'\r\n ).attr('data-index')}&startIndex=`\r\n );\r\n });\r\n\r\n $('.market-analysis-tabs .press-tab').click(() => {\r\n $('.press-tab-content').removeClass('d-none');\r\n $('.pagination-cards').addClass('d-none');\r\n $('#marketAnalysisLoadMore')\r\n .attr('data-container', '.press-tab-content')\r\n .attr(\r\n 'data-req',\r\n `/umbraco/surface/NewsAndResources/getlatpress?amount=${$(\r\n '#marketAnalysisLoadMore'\r\n ).attr('data-index')}&startIndex=`\r\n );\r\n });\r\n\r\n const idx = $('#marketAnalysisLoadMore').attr('data-index');\r\n let newCount = parseInt(idx, 10);\r\n const numberOfElements = newCount;\r\n\r\n $('#marketAnalysisLoadMore').click((e) => {\r\n const button = $(e.currentTarget);\r\n\r\n button.attr('disabled', 'disabled');\r\n\r\n $.get($('#marketAnalysisLoadMore').attr('data-req') + newCount).then(\r\n (res) => {\r\n const html = $(res.html);\r\n\r\n $(document).ready(() => {\r\n $(\r\n $('#marketAnalysisLoadMore').attr('data-container')\r\n ).append(html);\r\n newCount += numberOfElements;\r\n\r\n $('#marketAnalysisLoadMore').attr('data-index', newCount);\r\n button.removeAttr('disabled');\r\n\r\n if (!res.articlesRemaining) button.remove();\r\n });\r\n }\r\n );\r\n });\r\n}\r\n\r\nfunction init() {\r\n marketAnalysis();\r\n}\r\n\r\nexport default { init };\r\n","const DOM = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.topNav = $('.top-nav');\r\n DOM.subMenu = $('.submenu');\r\n DOM.menuList = $('.menu-list');\r\n DOM.navSlide = document.querySelectorAll('.nav-slide');\r\n DOM.sub_Menu = $('.sub-menu');\r\n DOM.navIcon = $('.nav-icon');\r\n DOM.body = document.querySelectorAll('body');\r\n DOM.mainLogo = $('.main-logo');\r\n DOM.socialLinks = $('#social-links');\r\n DOM.bannerSocialLinks = document.querySelectorAll('.social-links-banner');\r\n DOM.getFromButton = $('.nav-enquire-btn');\r\n\r\n DOM.enqureNowButton = document.getElementById('enquire-nav-button');\r\n DOM.links = document.getElementById('social-links');\r\n DOM.fixTop = $('.fixed-top');\r\n DOM.formSlide = $('.form-slide');\r\n DOM.menuForm = $('.menu-form');\r\n DOM.floatingLink = $('.floating-link');\r\n};\r\n\r\n\r\n// variables\r\nconst height = 25;\r\nconst open = 'open';\r\nconst close = 'close';\r\nconst active = 'active';\r\nconst listOpen = 'list-open';\r\nconst listClosed = 'list-closed';\r\n\r\nconst scrollTo = (element) => {\r\n const qwe = element;\r\n const headerOffset = 60;\r\n const elementPosition = qwe.offsetTop;\r\n const offsetPosition = elementPosition - headerOffset;\r\n document.documentElement.scrollTop = offsetPosition;\r\n document.body.scrollTop = offsetPosition; // For Safari\r\n};\r\n\r\nconst loadAsync = (idElement, timeout) => {\r\n setTimeout(() => {\r\n const script = idElement;\r\n if (script !== null) {\r\n for (let i = 0; i < script.length; i += 1) {\r\n script[i].setAttribute(\r\n 'src',\r\n script[i].getAttribute('data-src')\r\n );\r\n }\r\n\r\n if (DOM.links) {\r\n DOM.links.style.top = 0;\r\n }\r\n }\r\n }, timeout);\r\n};\r\n\r\nconst setCss = (querySelector, element, parameter) => {\r\n $(querySelector).css(element, parameter);\r\n};\r\n\r\nconst prolongClass = (element, item) => {\r\n $(element).addClass(item);\r\n};\r\n\r\nconst excavateClass = (element, item) => {\r\n $(element).removeClass(item);\r\n};\r\n\r\nconst closeNavMenuManager = () => {\r\n excavateClass(DOM.navSlide, open);\r\n excavateClass(DOM.menuList, listOpen);\r\n\r\n if (DOM.subMenu.hasClass(active)) DOM.subMenu.removeClass(active);\r\n if (DOM.menuList.hasClass(listOpen)) DOM.menuList.removeClass(listOpen);\r\n\r\n excavateClass(DOM.navIcon, open);\r\n excavateClass(DOM.navIcon, close);\r\n\r\n setCss(document.body, 'overflow', 'auto');\r\n};\r\n\r\nconst toggleFormManager = () => {\r\n setCss(document.body, 'overflow', 'auto');\r\n DOM.formSlide.toggleClass('open');\r\n document.body.toggleClass('overflow-hidden');\r\n};\r\n\r\nconst animateEnquire = function () {\r\n setTimeout(function () {\r\n if (DOM.enqureNowButton) {\r\n //DOM.enqureNowButton.style.transform = 'translateY(100px)';\r\n }\r\n }, 325);\r\n};\r\n\r\nconst navigationScrollMenu = () => {\r\n const navSlideEl = $('.nav-slide');\r\n\r\n\r\n $(window).on('scroll resize', function () {\r\n if ($('.news-resources-content').val() == null) {\r\n if ($(window).scrollTop() > height) {\r\n // this loads on scroll down\r\n DOM.fixTop.addClass('bg-dark-blue');\r\n DOM.fixTop.addClass('fixed-top__scrolled');\r\n DOM.floatingLink.addClass('floating-link__scrolled');\r\n DOM.sub_Menu.addClass('open');\r\n DOM.navIcon.addClass('show');\r\n $('.top-nav__first-row').addClass('nav-hide').removeClass('d-flex');\r\n //$('.top-nav__nav-icon').removeClass('nav-hide').addClass('d-block');\r\n //DOM.topNav.addClass('bg-dark-blue');\r\n //navSlideEl.addClass('bg-dark-blue');\r\n $('.nav-slide').addClass('nav-slide__scrolled');\r\n $('#top-nav__main-logo').removeClass('nav-hide').addClass('d-block');\r\n $('.top-nav__second-row').addClass('justify-content-end').removeClass('justify-content-between').css('gap', '25px');\r\n $('#top-nav').removeClass('top-nav');\r\n } else {\r\n // this loads first when refresh a page\r\n DOM.fixTop.removeClass('fixed-top__scrolled');\r\n DOM.floatingLink.removeClass('floating-link__scrolled');\r\n DOM.sub_Menu.removeClass('open');\r\n DOM.navIcon.removeClass('show');\r\n DOM.fixTop.removeClass('bg-dark-blue');\r\n $('.nav-slide').removeClass('nav-slide__scrolled');\r\n $('.top-nav__first-row').removeClass('nav-hide').addClass('d-flex');\r\n //$('.top-nav__nav-icon').addClass('nav-hide').removeClass('d-block');\r\n $('#top-nav__main-logo').addClass('nav-hide').removeClass('d-block');\r\n $('.top-nav__second-row').removeClass('justify-content-end').addClass('justify-content-between');\r\n $('#top-nav').addClass('top-nav');\r\n }\r\n }\r\n else {\r\n if ($(window).scrollTop() > height) {\r\n // this loads on scroll down\r\n DOM.fixTop.addClass('fixed-top__scrolled');\r\n DOM.floatingLink.addClass('floating-link__scrolled');\r\n DOM.sub_Menu.addClass('open');\r\n DOM.navIcon.addClass('show');\r\n $('.top-nav__first-row').addClass('nav-hide').removeClass('d-flex');\r\n //$('.top-nav__nav-icon').removeClass('nav-hide').addClass('d-block');\r\n //DOM.topNav.addClass('bg-dark-blue');\r\n //navSlideEl.addClass('bg-dark-blue');\r\n $('.nav-slide').addClass('nav-slide__scrolled');\r\n $('#top-nav__main-logo').removeClass('nav-hide').addClass('d-block');\r\n $('.top-nav__second-row').addClass('justify-content-end').removeClass('justify-content-between').css('gap', '25px');\r\n $('#top-nav').removeClass('top-nav');\r\n\r\n } else {\r\n // this loads first when refresh a page\r\n DOM.fixTop.removeClass('fixed-top__scrolled');\r\n DOM.floatingLink.removeClass('floating-link__scrolled');\r\n DOM.sub_Menu.removeClass('open');\r\n DOM.navIcon.removeClass('show');\r\n $('.nav-slide').removeClass('nav-slide__scrolled');\r\n $('.top-nav__first-row').removeClass('nav-hide').addClass('d-flex');\r\n $('#top-nav__main-logo').addClass('nav-hide').removeClass('d-block');\r\n $('.top-nav__second-row').removeClass('justify-content-end').addClass('justify-content-between');\r\n $('#top-nav').addClass('top-nav');\r\n }\r\n }\r\n });\r\n};\r\n\r\nconst buttonSlide = () => {\r\n $(window).on('scroll load resize', function () {\r\n // when start scrolling down\r\n if ($(window).scrollTop() > height) {\r\n if (window.innerWidth >= 1200) {\r\n //DOM.getFromButton.parent().removeClass('col-md-12');\r\n //DOM.getFromButton.parent().addClass('col-md-11');\r\n } else {\r\n if (window.innerWidth <= 768) {\r\n DOM.menuForm.addClass('mobile-open-form');\r\n } else {\r\n DOM.menuForm.removeClass('mobile-open-form');\r\n }\r\n //DOM.getFromButton.parent().addClass('col-md-11');\r\n //DOM.getFromButton.parent().removeClass('col-md-12');\r\n }\r\n // initial top status\r\n } else if (window.innerWidth >= 1200) {\r\n // screen width above 1200\r\n\r\n closeNavMenuManager();\r\n\r\n DOM.navIcon.removeClass(open);\r\n //DOM.getFromButton.parent().removeClass('col-md-11');\r\n //DOM.getFromButton.parent().addClass('col-md-12');\r\n } else {\r\n // screen width below 1200\r\n //DOM.getFromButton.parent().removeClass('col-md-12');\r\n //DOM.getFromButton.parent().addClass('col-md-11');\r\n\r\n if (window.innerWidth <= 768) {\r\n DOM.menuForm.addClass('mobile-open-form');\r\n } else {\r\n DOM.menuForm.removeClass('mobile-open-form');\r\n }\r\n }\r\n });\r\n};\r\n\r\nconst subNavigationHoover = () => {\r\n $('#navbarResponsive > ul')\r\n .children('li')\r\n .filter('.hassubmenu')\r\n .hover(function () {\r\n const navbarResponsive = $(this);\r\n navbarResponsive.toggleClass('show');\r\n navbarResponsive.children('div').toggleClass('show');\r\n });\r\n\r\n $('.dropdown-menu > ul')\r\n .children('li')\r\n .filter('.hassubmenu')\r\n .hover(function () {\r\n var navbarResponsive = $(this);\r\n navbarResponsive.toggleClass('show');\r\n navbarResponsive.children('div').toggleClass('show');\r\n });\r\n\r\n $('.dropdown-menu > ul')\r\n .children('li')\r\n .filter('.hassubmenu')\r\n .hover(function () {\r\n var dropdownMenuHeight = $(this).parent().height();\r\n var dropdownContentHeight = $(this).height();\r\n var dropdownContentchildHeight = $(this).children(\"div.dropdown-content\").height();\r\n\r\n if (dropdownContentchildHeight > dropdownContentHeight) {\r\n $(\".nav .second-level\").parent().css(\"height\", dropdownContentchildHeight + 4 + \"px\");\r\n }\r\n if (dropdownMenuHeight > dropdownContentchildHeight) {\r\n $(\".nav .second-level\").parent().css(\"height\", dropdownMenuHeight + 4 + \"px\");\r\n $(\".second-level-child\").parent().css(\"height\", dropdownMenuHeight + 4 + \"px\");\r\n }\r\n },\r\n function () {\r\n $(\".nav .second-level\").parent().removeAttr(\"style\");\r\n $(\".second-level-child\").parent().removeAttr(\"style\");\r\n }\r\n );\r\n};\r\n\r\nconst subMenuManager = () => {\r\n $('ul.nav > li.nav-item > a.nav-link')\r\n .not('.js-submenu')\r\n .click(function (e) {\r\n closeNavMenuManager();\r\n DOM.navIcon.removeClass(open);\r\n });\r\n\r\n $('.js-subnav-title').click(() => {\r\n closeNavMenuManager();\r\n DOM.navIcon.removeClass(open);\r\n });\r\n\r\n $('ul.submenu-list > li > a').click(function (e) {\r\n closeNavMenuManager();\r\n DOM.navIcon.removeClass(open);\r\n });\r\n};\r\n\r\nconst handleCross = () => {\r\n const closeButton = document.querySelector('.js-close-form');\r\n\r\n if (!closeButton) return;\r\n\r\n closeButton.addEventListener('click', () => {\r\n const attrLink = DOM.getFromButton.attr('data-cta-link');\r\n\r\n // scrolled down ...\r\n if ($(window).scrollTop() > height && attrLink === 'display-form') {\r\n toggleFormManager();\r\n }\r\n // top position\r\n else if (attrLink === 'display-form') {\r\n toggleFormManager();\r\n }\r\n });\r\n};\r\n\r\nconst formButtonManager = () => {\r\n // Pop up form menu\r\n DOM.getFromButton.click(function (e) {\r\n e.preventDefault();\r\n\r\n const button = $(e.target);\r\n\r\n const link = document.getElementById('form-link');\r\n const attrLink = button.attr('data-cta-link');\r\n\r\n // handles scroll down to form\r\n if (attrLink === 'link-to-existing-form-on-page') {\r\n button.attr('href', '#form-link');\r\n scrollTo(link);\r\n }\r\n\r\n // close nav menu when clicking form button\r\n if (DOM.navIcon.hasClass(open)) {\r\n closeNavMenuManager();\r\n DOM.navIcon.removeClass(open);\r\n }\r\n\r\n // scrolled down ...\r\n if ($(window).scrollTop() > height && attrLink === 'display-form') {\r\n toggleFormManager();\r\n }\r\n // top position\r\n else if (attrLink === 'display-form') {\r\n toggleFormManager();\r\n }\r\n });\r\n};\r\n\r\n// scroll up arrow at the footer\r\nconst scrollUp = () => {\r\n $('#box-arrow').click(function () {\r\n setTimeout(function () {\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n }, 100);\r\n });\r\n};\r\n\r\nconst showSocialLinks = () => {\r\n $(document).ready(function () {\r\n function timeFunction() {\r\n setTimeout(function () {\r\n $('#social-links.inactive').removeClass('inactive');\r\n }, 400);\r\n }\r\n timeFunction();\r\n });\r\n};\r\n\r\nconst subnavigationShowForm = () => {\r\n const searchBtn = $('.subnavigation-search-btn');\r\n const searchElement = $('.subnavigation-search-container');\r\n searchBtn.click(function () {\r\n $(this)\r\n .siblings(searchElement)\r\n .addClass('open');\r\n $(this)\r\n .siblings(searchElement)\r\n .find('.search-input')\r\n .focus();\r\n });\r\n $(document).click(function (e) {\r\n if (\r\n !$(e.target).is(searchBtn) &&\r\n !$(e.target).is(searchElement) &&\r\n searchBtn.has(e.target).length === 0\r\n ) {\r\n searchElement.removeClass('open');\r\n }\r\n });\r\n};\r\n\r\nconst highlightMatches = () => {\r\n $(function () {\r\n jQuery.fn.highlight = function (searchTerm) {\r\n // Find occurrence of the search term in results elements\r\n const textFound = $(this)\r\n .find('.result')\r\n .filter(function () {\r\n const textToSearch = $(this)\r\n .text()\r\n .toLowerCase();\r\n return (\r\n textToSearch.indexOf(searchTerm.toLowerCase()) !== -1\r\n );\r\n });\r\n\r\n // Replace adding class to highlight results\r\n textFound.html(function (index, currentText) {\r\n return currentText.replace(\r\n new RegExp(searchTerm, 'gi'),\r\n \"$&\"\r\n );\r\n });\r\n };\r\n\r\n if (document.querySelector('.search-results-container')) {\r\n let searchTerm = $('.search-results-container').data('search');\r\n\r\n searchTerm = searchTerm.split(' ');\r\n\r\n $.each(searchTerm, function (index, value) {\r\n $('.search-results-container').highlight(value);\r\n });\r\n }\r\n });\r\n};\r\n\r\nconst renderSocialLinks = () => {\r\n loadAsync(DOM.bannerSocialLinks, 350);\r\n};\r\n\r\n// animatemates CTA button TODO: refactor to class instead of inline styling\r\nconst animateEnquireNow = () => {\r\n animateEnquire();\r\n};\r\n\r\nconst navigationMenu = () => {\r\n $('.backToMainMenu').click(function (e) {\r\n const currentSubMenu = $(this)\r\n .parents('div.submenu')\r\n .attr('id');\r\n\r\n excavateClass(`.submenu#${currentSubMenu}`, active);\r\n\r\n setTimeout(function () {\r\n prolongClass(DOM.menuList, listOpen);\r\n }, 100);\r\n });\r\n\r\n $('.backTo2ndLevelMenu').click(function (e) {\r\n const currentSubMenu = $(this)\r\n .parents('div.submenu')\r\n .attr('id');\r\n\r\n const _2ndLevelmenu = $(this).parents('div.submenu.list-closed');\r\n\r\n excavateClass(`.submenu#${currentSubMenu}`, active);\r\n\r\n setTimeout(function () {\r\n excavateClass(_2ndLevelmenu, listClosed);\r\n }, 100);\r\n });\r\n\r\n // get sub menu\r\n $('.nav-item.nav-menu .2ndLevelMenu').click(function (e) {\r\n const id = $(this);\r\n const navItems = id.siblings('div').attr('id');\r\n\r\n excavateClass(DOM.menuList, listOpen);\r\n\r\n setTimeout(function () {\r\n prolongClass($(`.submenu#${navItems}`), active);\r\n }, 100);\r\n });\r\n\r\n $('.nav-item.nav-menu .3rdLevelMenu').click(function (e) {\r\n const id = $(this);\r\n const navItems = id.siblings('div').attr('id');\r\n const parentMenu = id.parents('.submenu.active');\r\n prolongClass(parentMenu, listClosed);\r\n\r\n setTimeout(function () {\r\n prolongClass($(`.submenu#${navItems}`), active);\r\n }, 100);\r\n });\r\n\r\n // burger menu\r\n DOM.navIcon.on('click', function () {\r\n let status = false;\r\n const button = $(this);\r\n\r\n // handles close/open form\r\n if (DOM.formSlide.hasClass(open)) {\r\n $('.form-slide').removeClass('open');\r\n $('body').removeClass('overflow-hidden');\r\n }\r\n\r\n // handle open\r\n if (\r\n button.hasClass(open) !== true &&\r\n button.hasClass(close) === false\r\n ) {\r\n setCss(document.body, 'overflow', 'hidden');\r\n $(this).addClass(open);\r\n\r\n prolongClass(DOM.navSlide, open);\r\n prolongClass(DOM.menuList, listOpen);\r\n\r\n status = true;\r\n }\r\n\r\n // handle close\r\n if (button.hasClass(close) === true) {\r\n closeNavMenuManager();\r\n }\r\n\r\n if (status) {\r\n $(this).addClass(close);\r\n $('.' + listClosed).removeClass(listClosed);\r\n }\r\n });\r\n};\r\n\r\nconst hrefSlideDown = function () {\r\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n anchor.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n if (isNaN(parseInt(this.getAttribute('href').replace('#', '')))) {\r\n document.querySelector(this.getAttribute('href')).scrollIntoView({\r\n behavior: 'smooth',\r\n });\r\n }\r\n });\r\n });\r\n}\r\n\r\nconst openSubmenu = function () {\r\n $('.nav-icon-container').click(function () {\r\n var target = $(this).closest('.container-fluid').parent('.fixed-top')\r\n .siblings('.nav-slide')\r\n .children('.container')\r\n .children('.row')\r\n .first('.col-md-12');\r\n\r\n if (window.matchMedia('(max-width: 400px)').matches) {\r\n if ($(this).children('.nav-icon').hasClass('open')) {\r\n target.css('margin-top', '40%');\r\n }\r\n }\r\n else if (window.matchMedia('(max-width: 1199px)').matches) {\r\n if ($(this).children('.nav-icon').hasClass('open') && !window.matchMedia('(max-height: 768px)').matches) {\r\n target.css('margin-top', '30%');\r\n return;\r\n }\r\n target.css('margin-top', '15%');\r\n }\r\n });\r\n}\r\nconst init = () => {\r\n cacheDOM();\r\n openSubmenu();\r\n navigationScrollMenu();\r\n navigationMenu();\r\n subNavigationHoover();\r\n scrollUp();\r\n showSocialLinks();\r\n subnavigationShowForm();\r\n highlightMatches();\r\n renderSocialLinks();\r\n animateEnquireNow();\r\n subMenuManager();\r\n buttonSlide();\r\n formButtonManager();\r\n handleCross();\r\n hrefSlideDown();\r\n};\r\n\r\nexport default { init };\r\n","import Functions from './functions';\r\n\r\nconst mobileScrollNews = $('.mobile-scroll-news');\r\nconst mobileScrollMarketing = $('.mobile-scroll-marketing');\r\nconst childNewsCardContainer = $(\r\n '.mobile-scroll-news>.news-card-container:nth-child(n+3)'\r\n);\r\nconst childMarketingCardContainer = $(\r\n '.mobile-scroll-marketing>.market-card-container:nth-child(n+3)'\r\n);\r\n\r\nfunction cardContainer(container, parent) {\r\n container.removeClass('col-lg-6');\r\n container.addClass('col-lg-3');\r\n container.appendTo(parent);\r\n}\r\n\r\nfunction moveElements() {\r\n const transformOnResizeMktCards = Functions.debounce(() => {\r\n if (window.matchMedia('(min-width: 991px)').matches) {\r\n const parent = mobileScrollMarketing.parent();\r\n\r\n cardContainer(childMarketingCardContainer, parent);\r\n }\r\n if (window.matchMedia('(max-width: 991px)').matches) {\r\n $(\r\n '.pagination-cards>.market-card-container:nth-child(n+2)'\r\n ).appendTo(mobileScrollMarketing);\r\n }\r\n }, 250);\r\n\r\n const transformOnResizeNewsCards = Functions.debounce(() => {\r\n if (window.matchMedia('(min-width: 991px)').matches) {\r\n const parent = mobileScrollNews.parent();\r\n\r\n cardContainer(childNewsCardContainer, parent);\r\n }\r\n if (window.matchMedia('(max-width: 991px)').matches) {\r\n $('.pagination-cards>.news-card-container:nth-child(n+2)').appendTo(\r\n mobileScrollNews\r\n );\r\n }\r\n }, 250);\r\n\r\n transformOnResizeMktCards();\r\n transformOnResizeNewsCards();\r\n\r\n window.addEventListener('resize', transformOnResizeMktCards);\r\n window.addEventListener('resize', transformOnResizeNewsCards);\r\n}\r\n\r\nfunction init() {\r\n moveElements();\r\n}\r\n\r\nexport default { init };\r\n","import Functions from './functions';\r\n\r\nfunction pauseYTVideos() {\r\n const youtubeVideos = document.querySelectorAll('iframe.yt-video');\r\n\r\n for (let i = 0; i < youtubeVideos.length; i += 1) {\r\n youtubeVideos[i].contentWindow.postMessage(\r\n '{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}',\r\n '*'\r\n );\r\n }\r\n}\r\n\r\nfunction videoTestimonialsChangeHiglighted() {\r\n $('.card-video-testimonial-container').click(function() {\r\n const id = $(this).data('id');\r\n pauseYTVideos();\r\n $('.highlight-testimonial-container')\r\n .children()\r\n .addClass('d-none');\r\n $('.highlight-testimonial')\r\n .filter(`[data-id=${id}]`)\r\n .removeClass('d-none');\r\n if (window.matchMedia('(max-width: 992px)').matches) {\r\n $('html, body').animate(\r\n {\r\n scrollTop: parseInt(\r\n $('.cards-video-testimonials-section').offset().top - 64\r\n ),\r\n },\r\n 750\r\n );\r\n }\r\n });\r\n}\r\nfunction interviewTestimonialsModals() {\r\n const initModals = function() {\r\n $('.js-link-to-interview').click(function() {\r\n const id = $(this).data('id');\r\n $(`#${id}`).show();\r\n document.body.classList.add('overflow-hidden');\r\n });\r\n $('span.close').click(function() {\r\n $(this)\r\n .parents('.modal')\r\n .hide();\r\n document.body.classList.remove('overflow-hidden');\r\n });\r\n };\r\n\r\n document.addEventListener('pagination', initModals, false);\r\n\r\n initModals();\r\n}\r\nfunction videoTestimonialsScrollable() {\r\n const videoTestimonialsGallery = $(\r\n '.cards-video-testimonials-section .scrollable'\r\n );\r\n if (videoTestimonialsGallery.children().length > 4) {\r\n videoTestimonialsGallery.removeClass('flex-lg-wrap');\r\n videoTestimonialsGallery.addClass('overflow-auto');\r\n }\r\n if (videoTestimonialsGallery.length > 0) {\r\n Functions.horizontalDragScroll(\r\n '.cards-video-testimonials-section .scrollable'\r\n );\r\n }\r\n}\r\n\r\nfunction init() {\r\n videoTestimonialsChangeHiglighted();\r\n interviewTestimonialsModals();\r\n videoTestimonialsScrollable();\r\n}\r\n\r\nexport default { init };\r\n","const DOM = {};\r\nconst formAttrs = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.formParent = document.querySelector('.main-form__salesforce');\r\n\r\n DOM.jForm = document.getElementsByClassName('jForm');\r\n\r\n if (DOM.formParent) {\r\n formAttrs.buttonColor = DOM.formParent.getAttribute('btn-color')\r\n ? DOM.formParent.getAttribute('btn-color')\r\n : '';\r\n\r\n formAttrs.textColor = DOM.formParent.getAttribute('btn-text')\r\n ? DOM.formParent.getAttribute('btn-text')\r\n : '';\r\n\r\n formAttrs.policyText = DOM.formParent.getAttribute('policy-text')\r\n ? DOM.formParent.getAttribute('policy-text')\r\n : '';\r\n }\r\n};\r\n\r\nconst setFormStyle = () => {\r\n const form = $('form.jForm');\r\n\r\n form.children()\r\n .find('.jForm__input')\r\n .addClass('form-control');\r\n\r\n form.children()\r\n .find('.jForm__label')\r\n .addClass('text-white font-weight-bold');\r\n\r\n form.find('.jForm__row').addClass(function() {\r\n let addedClass;\r\n const ger = $(this);\r\n const attrName = ger.find('input').attr('name');\r\n\r\n const button = ger.find('.jForm__button');\r\n const text = ger.find('.jForm__text');\r\n const textLink = text.find('a');\r\n\r\n // TODO: Refactor if statements to one single method\r\n if (button.length !== 0) {\r\n button.addClass(`\r\n btn ${formAttrs.buttonColor} px-5 w-100 ${formAttrs.textColor}`);\r\n }\r\n\r\n if (textLink.length !== 0) {\r\n textLink.addClass(formAttrs.policyText);\r\n }\r\n\r\n if (text.length !== 0) {\r\n text.addClass(formAttrs.policyText);\r\n }\r\n\r\n if (\r\n (typeof attrName === 'string' && attrName === 'FirstName') ||\r\n attrName === 'LastName'\r\n ) {\r\n addedClass = 'form-group col-md-6 text-white font-weight-bold';\r\n } else {\r\n addedClass = 'form-group';\r\n }\r\n\r\n return addedClass;\r\n });\r\n\r\n if (form.find('#fullName').length === 0) {\r\n const element1 = form.find('.form-group').first();\r\n const element2 = form.find('.form-group').next('.form-group:first');\r\n\r\n $(element1).wrapAll('
');\r\n $(element2).appendTo('#fullName');\r\n }\r\n\r\n $('.main-form__salesforce').css('opacity', '1');\r\n};\r\n\r\nconst phoneTransform = () => {\r\n const phoneField = $('.jForm__field.jForm__phone');\r\n const phoneSelect = $('select[name=\"Phone[code]\"]');\r\n const phoneSpan = $(document.createElement('span'));\r\n\r\n phoneSpan.attr('id', 'phoneValue');\r\n phoneSpan.text(phoneSelect.children('option:selected').val());\r\n phoneField.append(phoneSpan);\r\n\r\n phoneSelect.on('input', () => {\r\n phoneSpan.text(phoneSelect.children('option:selected').val());\r\n });\r\n};\r\n\r\nconst formListener = (formParent) => {\r\n const observer = new MutationObserver((mutations) => {\r\n for (let j = 0; j < mutations.length; j += 1) {\r\n for (let i = 0; i < mutations[j].addedNodes.length; i += 1) {\r\n const node = mutations[j].addedNodes[i];\r\n\r\n if (\r\n node.classList !== undefined &&\r\n node.classList.contains('jForm')\r\n ) {\r\n setFormStyle(DOM.formParent);\r\n phoneTransform();\r\n\r\n observer.disconnect();\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (formParent) {\r\n observer.observe(formParent, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n }\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n\r\n if (DOM.jForm.length > 0) {\r\n setFormStyle(DOM.formParent);\r\n phoneTransform();\r\n } else {\r\n formListener(DOM.formParent);\r\n }\r\n};\r\n\r\nexport default { init };\r\n","const DOM = {};\r\n\r\nlet courses = [];\r\n\r\nconst cacheDOM = () => {\r\n DOM.elem = document.getElementsByTagName(\"input\");\r\n DOM.target = document.querySelector(\".value\");\r\n DOM.priceTag = document.querySelector(\".price-tag\");\r\n};\r\n\r\nconst getInputRange = function getInputRange(inputs, type) {\r\n for (let i = 0; i < inputs.length; i++) {\r\n if (type === inputs[i].getAttribute(\"type\")) {\r\n return inputs[i];\r\n }\r\n }\r\n};\r\n\r\n// set max input range based on array, otherwise default value\r\nconst setMaxRangeInput = function setMaxRangeInput(inputRange) {\r\n if (typeof courses.length === \"number\" && courses.length > 0) {\r\n return inputRange.setAttribute(\"max\", courses.length - 1);\r\n }\r\n};\r\n\r\n// set default values of input range\r\nconst setDefaultInputValues = function setDefaultInputValues(inputRange) {\r\n if (DOM.target && DOM.priceTag) {\r\n if (coursePrices.length % 2 === 0) {\r\n DOM.target.innerHTML = courses[coursePrices.length / 2].Name;\r\n DOM.priceTag.innerHTML = courses[coursePrices.length / 2].Price;\r\n inputRange.value = coursePrices[coursePrices.length / 2];\r\n } else {\r\n DOM.target.innerHTML = courses[(coursePrices.length - 1) / 2].Name;\r\n DOM.priceTag.innerHTML = courses[(coursePrices.length - 1) / 2].Price;\r\n inputRange.value = coursePrices[(coursePrices.length - 1) / 2];\r\n }\r\n }\r\n};\r\n\r\n// this will be exucted every time range slider is moved\r\nlet rangeValue = function rangeValue(inputRange) {\r\n for (let a = 0; a < courses.length; a++) {\r\n // if array name is empty than we don't add it to range input\r\n if (inputRange.value === courses[a].Id.toString() && typeof courses[a] !== \"string\") {\r\n DOM.target.innerHTML = courses[a].Name;\r\n DOM.priceTag.innerHTML = courses[a].Price;\r\n }\r\n }\r\n};\r\n\r\nconst setRangeManagerEvents = function setRangeManagerEvents() {\r\n $(document).ready(function () {\r\n // check for object initialized and available\r\n // coursePrices is global variable see courseHighlights template for implementation\r\n let inputRange = getInputRange(DOM.elem, \"range\");\r\n\r\n if (typeof coursePrices !== \"undefined\" && coursePrices.length) {\r\n courses = coursePrices;\r\n\r\n setMaxRangeInput(inputRange);\r\n setDefaultInputValues(inputRange);\r\n\r\n // bind is simply to pass arguments with event handlers\r\n // null can be replace for event if needed\r\n inputRange.addEventListener(\"input\", rangeValue.bind(null, inputRange), false);\r\n inputRange.addEventListener(\"change\", rangeValue.bind(null, inputRange), false); // this required for IE for range slider to work correctly \r\n }\r\n });\r\n}\r\n\r\nconst init = () => {\r\n\r\n cacheDOM();\r\n\r\n setRangeManagerEvents();\r\n};\r\n\r\nexport default { init };\r\n","const DOM = {};\r\nconst apiRequestLink = '/umbraco/surface/pagination/GetPage?currentPage=';\r\n\r\nconst cacheDOM = () => {\r\n DOM.paginationElement = document.querySelector('.pagination-cards');\r\n DOM.paginationControls = document.querySelector('.pagination-controls');\r\n DOM.nextPageButton = $('.pagination-next-btn');\r\n DOM.pageNumber = $('.pagenumber');\r\n DOM.previousPageButton = $('.pagination-prev-btn');\r\n};\r\n\r\nconst nextDisable = () => {\r\n if (\r\n parseInt(DOM.paginationElement.dataset.current, 10) <\r\n parseInt(DOM.paginationControls.dataset.total, 10)\r\n ) {\r\n DOM.nextPageButton.removeClass('link-disabled');\r\n } else {\r\n DOM.nextPageButton.addClass('link-disabled');\r\n }\r\n};\r\n\r\nconst prevDisable = () => {\r\n if (DOM.paginationElement.dataset.current === '0') {\r\n DOM.previousPageButton.addClass('link-disabled');\r\n } else {\r\n DOM.previousPageButton.removeClass('link-disabled');\r\n }\r\n};\r\n\r\nconst pagesIndicators = (currentPage) => {\r\n const currentPageInt = parseInt(currentPage, 10);\r\n DOM.pageNumber.removeClass('currentpage');\r\n DOM.pageNumber\r\n .filter((ele) => ele === currentPageInt)\r\n .addClass('currentpage');\r\n};\r\n\r\nconst getCurrentPage = (\r\n paginationElement,\r\n currentPage,\r\n numberOfCards,\r\n type,\r\n styleCards\r\n) => {\r\n $.get(\r\n `${apiRequestLink}${currentPage}&elementsPerPage=${numberOfCards}&type=${type}&styleCards=${styleCards}`\r\n ).then((res) => {\r\n $(paginationElement).html(res);\r\n $('.lazy').lazy({\r\n delay: 500,\r\n });\r\n\r\n nextDisable(currentPage);\r\n prevDisable(currentPage);\r\n\r\n document.dispatchEvent(new Event('pagination'));\r\n });\r\n};\r\n\r\nconst nextPage = (numberOfCards, type, styleCards) => {\r\n DOM.nextPageButton.click(() => {\r\n let currentPageInt = parseInt(\r\n DOM.paginationElement.dataset.current,\r\n 10\r\n );\r\n\r\n currentPageInt += 1;\r\n\r\n DOM.paginationElement.dataset.current = currentPageInt;\r\n pagesIndicators(currentPageInt);\r\n\r\n getCurrentPage(\r\n DOM.paginationElement,\r\n currentPageInt,\r\n numberOfCards,\r\n type,\r\n styleCards\r\n );\r\n });\r\n};\r\n\r\nconst previousPage = (numberOfCards, type, styleCards) => {\r\n DOM.previousPageButton.click(() => {\r\n let currentPageInt = parseInt(\r\n DOM.paginationElement.dataset.current,\r\n 10\r\n );\r\n\r\n if (currentPageInt > 0) {\r\n currentPageInt -= 1;\r\n }\r\n DOM.paginationElement.dataset.current = currentPageInt;\r\n pagesIndicators(currentPageInt);\r\n\r\n getCurrentPage(\r\n DOM.paginationElement,\r\n currentPageInt,\r\n numberOfCards,\r\n type,\r\n styleCards\r\n );\r\n });\r\n};\r\n\r\nconst goToPage = (numberOfCards, type, styleCards) => {\r\n DOM.pageNumber.click((e) => {\r\n let currentPageInt = parseInt($(e.target).text(), 10);\r\n\r\n if (currentPageInt > 0) {\r\n currentPageInt -= 1;\r\n }\r\n pagesIndicators(currentPageInt);\r\n DOM.paginationElement.dataset.current = currentPageInt;\r\n\r\n getCurrentPage(\r\n DOM.paginationElement,\r\n currentPageInt,\r\n numberOfCards,\r\n type,\r\n styleCards\r\n );\r\n });\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n\r\n if (DOM.paginationElement && DOM.paginationControls) {\r\n const { type } = DOM.paginationElement.dataset;\r\n const currentPage = DOM.paginationElement.dataset.current;\r\n const numberOfCards = DOM.paginationElement.dataset.number;\r\n const styleCards = DOM.paginationElement.dataset.stylecards;\r\n\r\n nextDisable(currentPage);\r\n prevDisable(currentPage);\r\n pagesIndicators(currentPage);\r\n nextPage(numberOfCards, type, styleCards);\r\n previousPage(numberOfCards, type, styleCards);\r\n goToPage(numberOfCards, type, styleCards);\r\n }\r\n};\r\n\r\nexport default { init };\r\n","import 'slick-carousel';\r\nimport Functions from './functions';\r\n\r\nconst aboutPartnersSlider = () => {\r\n $(window).on('load resize orientationchange', function () {\r\n $('.logos-slicked').each(function () {\r\n const $carousel = $(this);\r\n if (Functions.checkBreakpoint('min', 768)) {\r\n if ($carousel.hasClass('slick-initialized')) {\r\n $carousel.slick('unslick');\r\n }\r\n } else if (!$carousel.hasClass('slick-initialized')) {\r\n /* Initializes a slick carousel only on mobile screens */\r\n $carousel.slick({\r\n arrows: false,\r\n infinite: true,\r\n autoplay: true,\r\n slidesToShow: 1,\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst imagesSlider = () => {\r\n $(window).on('load resize orientationchange', () => {\r\n $('.gallery-image-slicked').each(function () {\r\n const $carousel = $(this);\r\n /* Initializes a slick carousel only on mobile screens */\r\n if (Functions.checkBreakpoint('min', 901)) {\r\n if ($carousel.hasClass('slick-initialized')) {\r\n $carousel.slick('unslick');\r\n $carousel.removeClass('slick-initialized');\r\n }\r\n } else if (!$carousel.hasClass('slick-initialized')) {\r\n $carousel.slick({\r\n lazyLoad: 'ondemand',\r\n infinite: false,\r\n arrows: false,\r\n slidesToShow: 1.2,\r\n centerMode: true,\r\n centerPadding: '40px',\r\n mobileFirst: true,\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst lazyTestimonialSlider = () => {\r\n const testimonial = document.querySelector('.js-center-testimonial');\r\n const testimonialChildCount =\r\n testimonial !== null ? testimonial.childElementCount : null;\r\n\r\n $(window).on('load resize orientationchange', function () {\r\n $('.js-center-testimonial').each(function () {\r\n const $carousel = $(this);\r\n /* Initializes a slick carousel only on mobile screens */\r\n if (Functions.checkBreakpoint('min', 1200)) {\r\n if ($carousel.hasClass('slick-initialized')) {\r\n $carousel.slick('unslick');\r\n }\r\n } else if (!$carousel.hasClass('slick-initialized')) {\r\n if (testimonial && testimonialChildCount === 3) {\r\n $carousel.slick({\r\n lazyLoad: 'ondemand',\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n dots: true,\r\n mobileFirst: true,\r\n customPaging() {\r\n // this example would render 'tabs' with titles\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1,\r\n },\r\n },],\r\n });\r\n } else {\r\n $carousel.slick({\r\n lazyLoad: 'ondemand',\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n dots: true,\r\n mobileFirst: true,\r\n customPaging() {\r\n // this example would render 'tabs' with titles\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 2,\r\n dots: false,\r\n },\r\n },],\r\n });\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst lazyCoursePageTestimonialSlider = () => {\r\n $(window).on('load resize orientationchange', function () {\r\n $('.js-testimonial-course-pages').each(function () {\r\n const $carousel = $(this);\r\n if (!$carousel.hasClass('slick-initialized')) {\r\n $carousel.slick({\r\n lazyLoad: 'ondemand',\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 2,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n dots: true,\r\n customPaging() {\r\n // this example would render 'tabs' with titles\r\n return '';\r\n },\r\n responsive: [{\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n },\r\n },],\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\n// const ourPartnerSlider = () => {\r\n// $('#partnersSlider').slick({\r\n// arrows: false,\r\n// infinite: true,\r\n// autoplay: true,\r\n// slidesToShow: 4,\r\n// });\r\n// }\r\n\r\nconst imgGallerySlider = () => {\r\n $(window).on('load resize orientationchange', function () {\r\n $('.js-img-gallery-slider').each(function () {\r\n const $carousel = $(this);\r\n if (!$carousel.hasClass('slick-initialized')) {\r\n /* Initializes a slick carousel only on mobile screens */\r\n $carousel.slick({\r\n arrows: true,\r\n infinite: true,\r\n autoplay: true,\r\n slidesToShow: 4,\r\n dots: true,\r\n prevArrow: `
`,\r\n nextArrow: `
`,\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3,\r\n infinite: true,\r\n dots: true\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2,\r\n infinite: true,\r\n dots: true\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n infinite: true,\r\n dots: true\r\n }\r\n }\r\n ]\r\n });\r\n\r\n $carousel.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n const imgList = slick.$slider[0] ? slick.$slider[0].querySelectorAll('.js-img-list') : '';\r\n if (imgList) {\r\n for (var i = 0; i <= imgList.length; i++) {\r\n if (imgList[i]) {\r\n imgList[i].addEventListener('click', function (event) {\r\n const imgGallerySlider = document.querySelector('#imgGallerySlider');\r\n const gallerySliderImg = imgGallerySlider ? imgGallerySlider.querySelector('.js-gallery-slider-img') : '';\r\n const gallerySliderDesc = imgGallerySlider ? imgGallerySlider.querySelector('.js-gallery-slider-desc') : '';\r\n const sliderModal = imgGallerySlider ? imgGallerySlider.querySelector('.js-slider-modal') : '';\r\n\r\n gallerySliderDesc.innerHTML = event.target.getAttribute('data-desc');\r\n gallerySliderImg.setAttribute('src', event.target.getAttribute('src'));\r\n sliderModal.style.visibility = 'visible';\r\n document.body.style.overflow = 'hidden';\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst init = () => {\r\n aboutPartnersSlider();\r\n imagesSlider();\r\n lazyTestimonialSlider();\r\n lazyCoursePageTestimonialSlider();\r\n imgGallerySlider();\r\n};\r\n\r\nexport default {\r\n init\r\n};","const DOM = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.courseCard = document.querySelector('#courses-card-w');\r\n};\r\n\r\nconst checkCardPosition = () => {\r\n if (window.scrollY > 50) DOM.courseCard.classList.add('traversing');\r\n else DOM.courseCard.classList.remove('traversing');\r\n};\r\n\r\nconst bindEvent = () => {\r\n window.addEventListener('scroll', checkCardPosition, { passive: true });\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n if (DOM.courseCard) {\r\n checkCardPosition();\r\n bindEvent();\r\n }\r\n};\r\n\r\nexport default { init };\r\n","const DOM = {};\r\n\r\nfunction cacheDOM() {\r\n DOM.jsLinks = document.querySelectorAll('.js-scroll-link');\r\n DOM.link = document.querySelector('#form-link');\r\n}\r\n\r\nfunction bindEvents() {\r\n DOM.jsLinks.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n DOM.link.scrollIntoView({ behavior: 'smooth' });\r\n });\r\n}\r\n\r\nfunction init() {\r\n cacheDOM();\r\n bindEvents();\r\n}\r\n\r\nexport default { init };\r\n","const DOM = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.videosToEmbed = document.querySelectorAll('.yt-container');\r\n DOM.playButtons = document.querySelectorAll('.yt-container > button');\r\n};\r\n\r\nconst createVideo = (videoId) => {\r\n const videoframe = document.createElement('iframe');\r\n videoframe.setAttribute(\r\n 'src',\r\n `${videoId}?autoplay=1&enablejsapi=1`\r\n );\r\n videoframe.setAttribute('allowfullscreen', '');\r\n videoframe.setAttribute('allow', 'autoplay');\r\n videoframe.classList.add('yt-video');\r\n\r\n return videoframe;\r\n};\r\n\r\nconst swapToVideo = (videoWrapper) => {\r\n\r\n const videoId = videoWrapper.dataset.videoid;\r\n const videoframe = createVideo(videoId);\r\n\r\n videoWrapper.appendChild(videoframe);\r\n videoWrapper.firstElementChild.remove();\r\n};\r\n\r\nconst handleSwap = (thumbnail) => {\r\n swapToVideo(thumbnail);\r\n};\r\n\r\nconst bindEvents = () => {\r\n DOM.playButtons.forEach((element) => {\r\n element.addEventListener('click', (e) => handleSwap(e.currentTarget.parentElement) );\r\n });\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n\r\n if (DOM.videosToEmbed.length > 0) {\r\n bindEvents();\r\n }\r\n};\r\n\r\n\r\nexport default { init };","const DOM = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.body = document.querySelector('body');\r\n DOM.imagesGallerySection = document.querySelector(\r\n '.images-gallery-section'\r\n );\r\n DOM.openImages = document.querySelectorAll('img.open-images');\r\n DOM.modalNext = document.querySelectorAll('.modal .next-img');\r\n DOM.modalPrevious = document.querySelectorAll('.modal .previous-img');\r\n DOM.modalContent = document.querySelector('.modal .modal-content');\r\n DOM.galleryModal = document.querySelector('.gallery-modal');\r\n\r\n if (DOM.galleryModal) {\r\n DOM.close = DOM.galleryModal.querySelectorAll('span.close');\r\n }\r\n\r\n DOM.modalImage = document.querySelector('#modal-img');\r\n};\r\n\r\nconst imagesSources = [];\r\nlet imageIndex;\r\n\r\nconst hoverIn = (ele) => {\r\n let posLeft = 0;\r\n let posTop = 0;\r\n let elWidth = 0;\r\n let elHeight = 0;\r\n const elparent = ele.parentElement.querySelector('.hover-image');\r\n elWidth = ele.width;\r\n elHeight = ele.height;\r\n posLeft =\r\n ele.getBoundingClientRect().left +\r\n document.body.scrollLeft -\r\n ele.parentElement.getBoundingClientRect().left +\r\n document.body.scrollLeft;\r\n posTop =\r\n ele.getBoundingClientRect().top +\r\n document.body.scrollTop -\r\n ele.parentElement.getBoundingClientRect().top +\r\n document.body.scrollTop;\r\n if (!elparent) return;\r\n elparent.classList.add('active-hover');\r\n elparent.style.top = `${posTop}px`;\r\n elparent.style.left = `${posLeft}px`;\r\n elparent.style.width = `${elWidth}px`;\r\n elparent.style.height = `${elHeight}px`;\r\n};\r\n\r\nconst hoverOut = (ele) => {\r\n if (!ele.parentElement.querySelector('.hover-image')) return;\r\n ele.parentElement\r\n .querySelector('.hover-image')\r\n .classList.remove('active-hover');\r\n\r\n ele.parentElement.querySelector('.hover-image').removeAttribute('style');\r\n};\r\n\r\nconst clickImages = (ele) => {\r\n if (!ele) return;\r\n DOM.body.classList.add('overflow-hidden');\r\n DOM.galleryModal.style.display = 'block';\r\n DOM.modalImage.setAttribute('src', ele.src);\r\n};\r\n\r\nconst closeModal = () => {\r\n DOM.galleryModal.style.display = 'none';\r\n DOM.body.classList.remove('overflow-hidden');\r\n};\r\n\r\nconst showPrevious = () => {\r\n DOM.openImages.forEach((i) => {\r\n imagesSources.push(i.getAttribute('src'));\r\n });\r\n\r\n imageIndex = imagesSources.indexOf(DOM.modalContent.getAttribute('src'));\r\n\r\n if (imageIndex > 0) {\r\n DOM.modalContent.setAttribute('src', imagesSources[imageIndex - 1]);\r\n }\r\n};\r\n\r\nconst showNext = () => {\r\n DOM.openImages.forEach((i) => {\r\n imagesSources.push(i.getAttribute('src'));\r\n });\r\n\r\n imageIndex = imagesSources.indexOf(DOM.modalContent.getAttribute('src'));\r\n\r\n DOM.modalContent.setAttribute('src', imagesSources[imageIndex + 1]);\r\n};\r\n\r\nconst bindEvents = () => {\r\n DOM.openImages.addEventListener('mouseenter', (e) => {\r\n hoverIn(e.currentTarget);\r\n });\r\n DOM.openImages.addEventListener('mouseleave', (e) => {\r\n hoverOut(e.currentTarget);\r\n });\r\n DOM.openImages.addEventListener('click', (e) => {\r\n clickImages(e.currentTarget);\r\n });\r\n DOM.close.addEventListener('click', () => closeModal());\r\n DOM.modalPrevious.addEventListener('click', () => showPrevious());\r\n DOM.modalNext.addEventListener('click', () => showNext());\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n\r\n if (DOM.imagesGallerySection) {\r\n bindEvents();\r\n }\r\n};\r\n\r\nexport default { init };\r\n","const imgGallerySlider = document.querySelector('#imgGallerySlider');\r\nconst sliderModal = imgGallerySlider ? imgGallerySlider.querySelector('.js-slider-modal') : '';\r\nconst sliderModalClose = imgGallerySlider ? imgGallerySlider.querySelector('.js-slider-modal-close') : '';\r\n/*const imgList = imgGallerySlider ? imgGallerySlider.querySelectorAll('.js-img-list') : '';*/\r\nconst gallerySliderImg = imgGallerySlider ? imgGallerySlider.querySelector('.js-gallery-slider-img') : '';\r\nconst gallerySliderDesc = imgGallerySlider ? imgGallerySlider.querySelector('.js-gallery-slider-desc') : '';\r\n\r\nfunction handleCloseModal() {\r\n if (sliderModal)\r\n sliderModalClose.addEventListener('click', () => {\r\n sliderModal.style.visibility = 'hidden';\r\n gallerySliderDesc.innerHTML = '';\r\n gallerySliderImg.setAttribute('src', '');\r\n document.body.style.overflow = 'auto';\r\n })\r\n};\r\n\r\n//function handleImgSlider() {\r\n// if (imgList) {\r\n// for (var i = 0; i <= imgList.length; i++) {\r\n// if (imgList[i]) {\r\n// imgList[i].addEventListener('click', function (event) {\r\n// gallerySliderDesc.innerHTML = event.target.getAttribute('data-desc');\r\n// gallerySliderImg.setAttribute('src', event.target.getAttribute('src'));\r\n// sliderModal.style.visibility = 'visible';\r\n// document.body.style.overflow = 'hidden';\r\n// });\r\n// }\r\n// }\r\n// }\r\n//}\r\n\r\nconst init = () => {\r\n handleCloseModal();\r\n /*handleImgSlider();*/\r\n};\r\n\r\nexport default { init };\r\n","import Functions from './functions';\r\n\r\nconst DOM = {};\r\n\r\nconst cacheDOM = () => {\r\n DOM.wholeSection = document.querySelector('.staff-whole-section');\r\n if (DOM.wholeSection) {\r\n DOM.staffDetails = DOM.wholeSection.querySelector(\r\n '.staff-members-section .details'\r\n );\r\n DOM.membersSection = DOM.wholeSection.querySelectorAll(\r\n '.staff-members-section'\r\n );\r\n DOM.membersBackground = DOM.wholeSection.querySelector(\r\n '.members-background'\r\n );\r\n DOM.thumbnails = DOM.wholeSection.querySelector(\r\n '.staff-members-section .thumbnails'\r\n );\r\n DOM.thumbnailsStaff = DOM.wholeSection.querySelectorAll(\r\n '.staff-members-section .thumbnails .staff'\r\n );\r\n DOM.close = DOM.wholeSection.querySelector('span.close');\r\n }\r\n};\r\n\r\nconst handleClick = (target) => {\r\n [...DOM.thumbnails.children].forEach((ele) =>\r\n ele.classList.remove('d-none')\r\n );\r\n\r\n [...DOM.staffDetails.children].forEach((ele) =>\r\n ele.classList.remove('show')\r\n );\r\n DOM.membersSection.forEach((ele) => ele.classList.remove('container'));\r\n DOM.membersSection.forEach((ele) => ele.classList.add('container-fluid'));\r\n DOM.membersBackground.classList.add('altered');\r\n\r\n const dataIndex = `[data-index=\"${target.dataset.index}\"]`;\r\n\r\n DOM.staffDetails.querySelector(dataIndex).classList.add('show');\r\n\r\n target.parentElement.classList.add('d-none');\r\n\r\n DOM.thumbnails.classList.add('striped');\r\n DOM.wholeSection.classList.add('active');\r\n\r\n document.body.classList.add('overflow-hidden');\r\n};\r\n\r\nconst closeSection = (target) => {\r\n [...DOM.thumbnails.children].forEach((ele) =>\r\n ele.classList.remove('d-none')\r\n );\r\n\r\n [...DOM.staffDetails.children].forEach((ele) =>\r\n ele.classList.remove('show')\r\n );\r\n DOM.membersSection.forEach((ele) => ele.classList.remove('container'));\r\n DOM.membersSection.forEach((ele) => ele.classList.add('container-fluid'));\r\n DOM.membersBackground.classList.remove('altered');\r\n\r\n target.parentElement.classList.remove('d-none');\r\n\r\n DOM.thumbnails.classList.remove('striped');\r\n DOM.wholeSection.classList.remove('active');\r\n\r\n document.body.classList.remove('overflow-hidden');\r\n\r\n if (DOM.thumbnails) {\r\n Functions.horizontalDragScroll('.staff-members-section .thumbnails');\r\n }\r\n};\r\n\r\nconst click = () => {\r\n DOM.thumbnailsStaff.addEventListener('click', (e) => {\r\n handleClick(e.currentTarget);\r\n });\r\n\r\n DOM.close.addEventListener('click', (e) => {\r\n closeSection(e.currentTarget);\r\n });\r\n};\r\n\r\nconst init = () => {\r\n cacheDOM();\r\n\r\n if (DOM.wholeSection) {\r\n Functions.horizontalDragScroll('.staff-members-section .thumbnails');\r\n click();\r\n }\r\n};\r\n\r\nexport default { init };\r\n","const trustPilot = document.querySelector('.trustpilot');\r\n\r\nfunction showTrustpilot() {\r\n if (!trustPilot) return;\r\n\r\n const { children } = trustPilot.children[1];\r\n\r\n if (children.length) {\r\n const checkExist = setInterval(() => {\r\n clearInterval(checkExist);\r\n trustPilot.classList.remove('inactive');\r\n }, 400);\r\n }\r\n}\r\n\r\nfunction init() {\r\n showTrustpilot();\r\n}\r\n\r\nexport default { init };\r\n","const accessibility = function () {\r\n const searchBtn = document.querySelector(\".subnavigation-search-btn\");\r\n const searchInput = document.querySelector(\".search-input\");\r\n searchBtn.addEventListener(\"keydown\", function (e) {\r\n if (e.key === \"Enter\") {\r\n e.preventDefault();\r\n searchBtn.click();\r\n }\r\n });\r\n searchInput.addEventListener(\"keydown\", function (e) {\r\n if (e.key === \"Tab\") {\r\n document.querySelector(\".subnavigation-search-container\").classList.remove(\"open\");\r\n } else {\r\n this.click();\r\n }\r\n });\r\n\r\n const skipNavSlide = document.querySelector('.nav-slide');\r\n const skipFocusableElements = skipNavSlide.querySelectorAll('input, button, a, textarea, select');\r\n\r\n skipFocusableElements.forEach(element => {\r\n element.setAttribute('tabindex', '-1');\r\n });\r\n\r\n const navbar = document.querySelector('#navigation');\r\n const navbarFocusableElements = navbar.querySelectorAll('input, button, a, textarea, select');\r\n\r\n navbarFocusableElements.forEach(element => {\r\n element.setAttribute('tabindex', '0');\r\n });\r\n\r\n var dropdowns = document.querySelectorAll('.nav-item');\r\n dropdowns.forEach(function (dropdown) {\r\n dropdown.addEventListener('keyup', function (e) {\r\n // Open the dropdown on focus\r\n if (e.which == 9) {\r\n document.querySelectorAll('.dropdown-menu.show').forEach(function (params) {\r\n if (!params.parentElement.contains(document.activeElement.parentElement))\r\n params.classList.remove('show');\r\n });\r\n\r\n if (this.classList.contains('hassubmenu')) {\r\n var dropdownMenu = this;\r\n dropdown.classList.add('show');\r\n\r\n if (dropdownMenu.querySelector('.dropdown-menu'))\r\n dropdownMenu.querySelector('.dropdown-menu').classList.add('show');\r\n\r\n if (this.querySelector('.second-level')) {\r\n this.querySelector('.second-level').focus();\r\n\r\n var ChildMenus = this.querySelectorAll('.second-level a');\r\n if (ChildMenus) {\r\n ChildMenus.forEach(function (childmenu) {\r\n childmenu.addEventListener('keyup', function (evt) {\r\n // Open the dropdown on focus\r\n if (evt.which == 9) {\r\n var childDropdownMenu = this.nextElementSibling;\r\n if (childDropdownMenu) {\r\n if (childDropdownMenu.classList.contains('dropdown-menu')) {\r\n childDropdownMenu.classList.add('show');\r\n this.parentElement.querySelector('.second-level-child').focus();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n};\r\n\r\nconst init = () => {\r\n accessibility();\r\n};\r\n\r\nexport default { init };","import 'bootstrap';\r\nimport 'jquery-lazy';\r\nimport CardController from './CardController';\r\nimport courseInfoModule from './courseInfoModule';\r\nimport embedVideo from './embeddedVideo';\r\nimport freeWorkshops from './freeWorkshops';\r\nimport imageGallery from './imageGallery';\r\nimport imgSliderModal from './imgSliderModal';\r\nimport mainModule from './main';\r\nimport marketAnalysis from './marketAnalysis';\r\nimport navigation from './navigation';\r\nimport newsResources from './newsResources';\r\nimport staff from './staff';\r\nimport testimonials from './testimonials';\r\nimport trustpilotModule from './trustpilotModule';\r\nimport formModule from './formModule';\r\nimport rangeController from './rangeController';\r\nimport paginationModule from './pagination';\r\nimport slidersModule from './sliders';\r\nimport accessibility from './accessibility';\r\n\r\nNodeList.prototype.addEventListener = function(\r\n eventName,\r\n callback,\r\n useCapture\r\n) {\r\n for (let i = 0; i < this.length; i += 1) {\r\n this[i].addEventListener(eventName, callback, useCapture);\r\n }\r\n};\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n CardController.init();\r\n courseInfoModule.init();\r\n embedVideo.init();\r\n freeWorkshops.init();\r\n imageGallery.init();\r\n imgSliderModal.init();\r\n mainModule.init();\r\n marketAnalysis.init();\r\n navigation.init();\r\n newsResources.init();\r\n staff.init();\r\n testimonials.init();\r\n trustpilotModule.init();\r\n formModule.init();\r\n rangeController.init();\r\n paginationModule.init();\r\n slidersModule.init();\r\n accessibility.init();\r\n});\r\n\r\n// Lazyload the React app if this is a payment page\r\nconst paymentForm = document.getElementById('payment-form');\r\nif (paymentForm) {\r\n import('./payment/index.js').then(() => {\r\n console.log('Loaded React!');\r\n });\r\n}\r\n"],"sourceRoot":""}