{"version":3,"sources":["../../../../dev/j/mkt/technology/hp-2021.js"],"names":["ScrollController","controller","ScrollMagic","Controller","vertical","$parallax","$","$page","$intro","$scrollbar","$pathImgAssets","staticPath","window","HomepageParallaxSection","$element","$introFixed","find","$elementFixed","$elementInner","$content","$screens","$overlay","$bgWrap","$scrollBar","$scrollProgress","$scrollMilestones","$attacks","$people","$preloader","$mobileBg","backgrounds","$whole","$graphs","$map","timeline","scene","attackTimelines","scrollDirection","isLoading","isLoaded","isAttacksAnimationPaused","isPortraitMode","w","width","height","isMobile","device","mobile","isFixed","isPaddingTopSet","overlayFadeDuration","overlayDuration","overlayOpacity","textOpacity","initHandler","_this","this","addClass","css","innerHeight","_setupMobileBackgroundVisibility","_finishLoading","_updateScreenHeights","screenCount","length","sceneOffset","offset","top","outerHeight","sceneDuration","_setupBackgroundVisibility","Scene","duration","addTo","on","Preload","images","0","_setupAnimations","resizeEndHandler","toggleClass","EventHub","emit","_this2","TimelineMax","onUpdate","each","idx","el","_time","_getScreenCenterPointTime","_setupPreSectionAnimations","preSectionTl","from","eq","yPercent","opacity","ease","Power0","easeNone","add","_getBgZoomTween","zoomFactorMap","tween","setTween","_setupPostSectionAnimations","postSectionTl","to","_setupSectionSticking","_this3","_recalculatePageHeight","reverse","e","HomepageAnimationController","introVideo","pause","play","_setupMilestoneClicking","_this4","click","$el","currentTarget","index","Scroll","_this5","triggerHook","_this6","parallaxWidth","Math","max","fromPos","toPos","fromScale","toScale","TweenMax","fromTo","scale","immediateRender","ExpoScaleEase","config","_getScreenFadeInTween","screenIndex","Power3","easeInOut","_getScreenFadeOutTween","_getScreenFadeTimes","p","fadeInTime","fadeOutTime","in","out","autoHandle","_currentlyPlayingIndex","animations","AnimationMalware","AnimationAi","AnimationLocation","AnimationSecurity","AnimationDevice","pauseCurrent","document","getElementById","Zigzag","scenes","zigzag","navigation","cards","$root","hoverThrottle","smallHeight","isAutoScrolling","activeTab","lastId","currentSectionIndex","animationFreeze","video","$sprite","selectors","rootContainer","tabs","tabsContainer","tabsWrapper","progress","tabContainer","hover","icons","labels","sectorArr","items","svgPlaceholders","root","sprite","classes","navActiveClass","navigationTabsWrapperSmall","vars","$rootHeight","$items","$firstItem","attr","$svgPlaceholders","$rootContainer","$tabsContainer","$tabsWrapper","$tabsWrapperSmall","clone","insertAfter","$tabContainer","$tabsStatic","$tabs","$progress","$hover","setNavHeight","_this7","bindEvents","loadAnimations","getSticky","progressAnim","setupCardAnimations","scrollStartHandler","scrollEndHandler","refresh","_this8","thumbnailTimeline","AnimatedSprite","createImg","resetImg","targetIndex","clearTimeout","setTimeout","setActiveNavItem","_this9","svgIds","map","call","data","id","percentage","filename","$img","src","append","$card1","$number1","$perex1","$curve","$glowClipPath","card1Timeline","AnimationNumber","create","Expo","easeIn","parseInt","card1TimelineDuration","drawSVG","xPercent","registerCardAnimation","$card2","$number2","$perex2","card2Timeline","$bars","children","$barsBlurred","barsTl","set","transformOrigin","staggerFromTo","scaleY","easeOut","card2TimelineDuration","$card3","$number3","$perex3","dots","Helpers","shuffle","toArray","dotCounter","getNextDot","dotsTl","repeat","repeatDelay","onRepeat","currentDot","delay","card3Timeline","card3TimelineDuration","card","cardScene","triggerElement","enabled","push","_this10","removeClass","_this11","$target","TweenLite","onComplete","_this12","itemIndex","item","$line","getProgressLineTimeline","scaleX","canShowSvgAnimations","browser","name","Homepage","$navigation","$zigzagItems","isReset","fastInit","storageAvailable","localStorage","setItem","JSON","stringify","scrollOffset","parallaxHeight","pageHeight","$document","navigationHeight","zigzagHeights","state","parse","getItem","minHeight","scrollTo","resizeStartHandler"],"mappings":"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","file":"hp-2021.js","sourcesContent":["'use strict';\n\nvar ScrollController = {\n\tcontroller: new ScrollMagic.Controller({\n\t\tvertical: true\n\t})\n};\n;;(function () {\n\tvar $parallax = $('.parallax');\n\tvar $page = $('.page');\n\tvar $intro = $('.intro');\n\tvar $scrollbar = $('.parallax__scrollbar');\n\tvar $pathImgAssets = typeof staticPath !== 'undefined' ? staticPath : '';\n\n\t//Background zoom constants\n\tvar zoomFactorMap = 1.2; //Scale of \"map\" bg when fully zoomed in\n\tvar zoomFactorGraphs = 3840 / 1825; //Scale of \"graphs\" bg when fully zoomed in\n\tvar zoomFactorWhole = 3840 / 2294; //Scale of whole scene when fully zoomed in\n\n\n\twindow.HomepageParallaxSection = {\n\n\t\t//=========================== INTERNAL PROPERTIES ===========================\n\n\t\t$element: $parallax,\n\t\t$page: $page,\n\t\t$intro: $intro,\n\t\t$introFixed: $intro.find('.intro__fixed'),\n\t\t$elementFixed: $parallax.find('.parallax__fixed'),\n\t\t$elementInner: $parallax.find('.parallax__inner'),\n\t\t$content: $parallax.find('.parallax__content'),\n\t\t$screens: $parallax.find('.parallax__screen'),\n\t\t$overlay: $parallax.find('.parallax__overlay'),\n\t\t$bgWrap: $parallax.find('.parallax__bg-wrap'),\n\t\t$scrollBar: $scrollbar,\n\t\t$scrollProgress: $scrollbar.find('.parallax__scrollbar-progress'),\n\t\t$scrollMilestones: $scrollbar.find('.parallax__scrollbar-milestone'),\n\t\t$attacks: $parallax.find('.parallax__attacks'),\n\t\t$people: $parallax.find('.parallax__people'),\n\t\t$preloader: $parallax.find('.parallax__bg--preloader'),\n\t\t$mobileBg: $parallax.find('.parallax__mobile-bg'),\n\t\tbackgrounds: {\n\t\t\t$whole: $parallax.find('.parallax__bg--whole'),\n\t\t\t$graphs: $parallax.find('.parallax__bg--graphs'),\n\t\t\t$map: $parallax.find('.parallax__bg--map')\n\t\t},\n\t\ttimeline: null,\n\t\tscene: null,\n\t\tattackTimelines: [],\n\t\tscrollDirection: null,\n\n\t\t//=========================== FLAGS ===========================\n\n\t\tisLoading: false,\n\t\tisLoaded: false,\n\t\tisAttacksAnimationPaused: true,\n\t\tisPortraitMode: w.width < w.height,\n\t\tisMobile: w.device.mobile,\n\t\tisFixed: false,\n\t\tisPaddingTopSet: false,\n\n\t\t//=========================== CONFIGURABLE PARAMS ===========================\n\n\t\toverlayFadeDuration: 0.05, //How long it takes to animate overlay (seconds)\n\t\toverlayDuration: 0.1, //How long is the overlay visible (seconds)\n\t\toverlayOpacity: 0.8, //Overlay opacity when faded in (percent)\n\t\ttextOpacity: 0.2, //Overlay opacity when faded out (percent)\n\n\t\t//=========================== PUBLIC METHODS ===========================\n\n\t\tinitHandler: function initHandler() {\n\t\t\tvar _this = this;\n\n\t\t\tif (this.isMobile) {\n\t\t\t\tthis.$element.addClass('is-mobile');\n\t\t\t\tthis.$mobileBg.css({ height: $(window).innerHeight() + 100 });\n\t\t\t}\n\t\t\tif (this.isPortraitMode) {\n\t\t\t\tthis.$element.addClass('is-portrait');\n\t\t\t}\n\t\t\tif (this.isMobile) {\n\t\t\t\tthis._setupMobileBackgroundVisibility();\n\t\t\t\tthis._finishLoading();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._updateScreenHeights();\n\n\t\t\tthis.screenCount = this.$screens.length;\n\n\t\t\tthis.sceneOffset = this.$element.offset().top + this.$elementInner.outerHeight() / 2 - window.innerHeight / 2; //Stick in the center of viewport\n\t\t\tthis.sceneDuration = this.$content.outerHeight();\n\n\t\t\tthis._setupBackgroundVisibility();\n\n\t\t\t//Setup preloading\n\t\t\tvar preloadScene = new ScrollMagic.Scene({\n\t\t\t\toffset: this.sceneOffset - window.innerHeight,\n\t\t\t\tduration: window.innerHeight + this.sceneDuration\n\t\t\t}).addTo(ScrollController.controller).on('enter', function () {\n\t\t\t\tif (_this.isLoading || _this.isLoaded) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t_this.isLoading = true;\n\t\t\t\tPreload.images([{ 0: $pathImgAssets + 'i/mkt/technology/parallax/map__2.jpg' }, { 0: $pathImgAssets + 'i/mkt/technology/parallax/graphs__2.jpg' }, { 0: $pathImgAssets + 'i/mkt/technology/parallax/whole__2.jpg' }, { 0: $pathImgAssets + 'i/mkt/technology/parallax/people__2.png' }], function () {\n\t\t\t\t\t_this._finishLoading();\n\t\t\t\t\t_this._setupAnimations();\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tresizeEndHandler: function resizeEndHandler() {\n\t\t\tthis.isPortraitMode = w.width < w.height;\n\t\t\tthis.$element.toggleClass('is-portrait', this.isPortraitMode);\n\n\t\t\tif (this.isMobile) {\n\t\t\t\tthis.$mobileBg.css({ height: $(window).innerHeight() + 100 });\n\t\t\t}\n\n\t\t\tif (this.isMobile || this.isPortraitMode) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._updateScreenHeights();\n\t\t},\n\n\n\t\t//=========================== PRIVATE METHODS ===========================\n\n\t\t_finishLoading: function _finishLoading() {\n\t\t\tthis.isLoading = false;\n\t\t\tthis.isLoaded = true;\n\t\t\tthis.$element.addClass('is-loaded');\n\t\t\tEventHub.emit('parallaxReady');\n\t\t},\n\t\t_setupAnimations: function _setupAnimations() {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis.timeline = new TimelineMax({\n\t\t\t\tonUpdate: function onUpdate() {\n\t\t\t\t\t//Scrollbar milestone coloring\n\t\t\t\t\t_this2.$scrollMilestones.each(function (idx, el) {\n\t\t\t\t\t\t$(el).toggleClass('parallax__scrollbar-milestone--visited', _this2.timeline._time >= _this2._getScreenCenterPointTime(idx));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t//Scroll the texts\n\t\t\t/*\n TEMP\n this.timeline.to(this.$content, 1, {\n \ty: -(this.$content.outerHeight() - this.$elementInner.outerHeight()),\n \tease: Power0.easeNone\n }, 0);\n */\n\n\t\t\t//Scrollbar progress\n\t\t\t/*\n TEMP\n this.timeline.fromTo(this.$scrollProgress, 1,\n \t{scaleY: 0},\n \t{scaleY: 1, ease: Power0.easeNone}, 0);\n */\n\n\t\t\t//Fade the purple overlay and scale scrollbar milestones\n\t\t\t/*\n TEMP\n \tfor (let i = 0; i < this.screenCount; i++) {\n \tconst fadeTimes = this._getScreenFadeTimes(i);\n \tif (fadeTimes.in.from >= 0) {\n \t\tthis.timeline.add(this._getScreenFadeInTween(i), fadeTimes.in.from);\n \t}\n \tif (fadeTimes.out.to <= 1) {\n \t\tthis.timeline.add(this._getScreenFadeOutTween(i), fadeTimes.out.from);\n \t}\n }\n */\n\n\t\t\t//Zoom the background\n\t\t\t/*\n TEMP\n \t[\n \tthis._getBgZoomTween( //Ambient zooming while on \"map\" screen\n \t\tthis.backgrounds.$map,\n \t\t0,\n \t\tthis._getScreenFadeTimes(1).out.from,\n \t\tzoomFactorMap,\n \t\t1\n \t),\n \tthis._getBgZoomTween( //Zoom out to \"graphs\" screen\n \t\tthis.backgrounds.$graphs,\n \t\tthis._getScreenFadeTimes(1).out.from,\n \t\tthis._getScreenFadeTimes(2).in.to,\n \t\tzoomFactorGraphs,\n \t\t1\n \t),\n \tthis._getBgZoomTween( //Ambient zooming while on \"graphs\" screen\n \t\tthis.backgrounds.$whole,\n \t\tthis._getScreenFadeTimes(2).in.to,\n \t\tthis._getScreenFadeTimes(2).out.from,\n \t\tzoomFactorWhole,\n \t\tzoomFactorWhole * 0.95\n \t),\n \tthis._getBgZoomTween( //Ambient zooming while on \"graphs\" screen\n \t\tthis.backgrounds.$whole,\n \t\tthis._getScreenFadeTimes(2).out.from,\n \t\tthis._getScreenFadeTimes(3).in.to,\n 1,\n 1.1\n \t),\n \tthis._getBgZoomTween( //Zoom out to the \"whole\" screen\n \t\tthis.backgrounds.$whole,\n \t\tthis._getScreenFadeTimes(2).out.from,\n \t\tthis._getScreenFadeTimes(3).in.to,\n \t\tzoomFactorWhole * 0.95,\n \t\t1.1\n \t),\n \tthis._getBgZoomTween( //Ambient zooming while on \"whole\" screen\n \t\tthis.backgrounds.$whole,\n \t\tthis._getScreenFadeTimes(2).in.to,\n 1,\n \t\t1,\n \t\t1\n \t)\n ].forEach((bzt) => {\n \tthis.timeline.add(bzt.tween, bzt.from);\n });\n */\n\n\t\t\t//Fade map background\n\t\t\t/*\n this.timeline.to([\n \tthis.backgrounds.$map,\n \tthis.$attacks\n ], 0.02, {opacity: 0}, this._getScreenFadeTimes(1).out.from);\n */\n\n\t\t\t//Fade graphs background\n\t\t\t/*\n this.timeline.to(this.backgrounds.$graphs, 0.05, {opacity: 0}, this._getScreenFadeTimes(2).out.from);\n */\n\n\t\t\t//Initial attack lines fade in between screens 0 and 1\n\t\t\t/*\n this.timeline.fromTo(this.$attacks, 0.1, {opacity: 0}, {opacity: 1}, this.overlayDuration / 2);\n */\n\n\t\t\t//People fade in animation between screens 2 and 3\n\t\t\t/*\n this.timeline.fromTo(this.$people, 0.2,\n \t{opacity: 0, yPercent: 20},\n \t{opacity: 1, yPercent: 0},\n \t2 / 3 + this.overlayDuration / 2\n );\n */\n\n\t\t\t//Animate attack lines\n\t\t\t/*\n this.$attacks.find('path').each((idx, el) => {\n \tthis.attackTimelines.push(\n \t\tnew TimelineMax({\n \t\t\tpaused: this.isAttacksAnimationPaused,\n \t\t\trepeat: -1,\n \t\t\trepeatDelay: Math.random() * 2 + 1\n \t\t})\n \t\t\t.add(() => { //Random color with each repetition\n \t\t\t\tTweenMax.set(el, {\n \t\t\t\t\tcss: {\n \t\t\t\t\t\tstroke: Helpers.choose([\n \t\t\t\t\t\t\t'#edcf7e','#edcf7e','#edcf7e', //Orange is more likely to be chosen\n \t\t\t\t\t\t\t'#f7e6f1','#f7e6f1',\n \t\t\t\t\t\t\t'#ec70a7'\n \t\t\t\t\t\t])\n \t\t\t\t\t}\n \t\t\t\t});\n \t\t\t})\n \t\t\t.fromTo(el, 1, {drawSVG: '0% 0%'}, {drawSVG: '0% 50%', ease: Power0.easeNone})\n \t\t\t.fromTo(el, 1, {drawSVG: '0% 50%'}, {drawSVG: '50% 100%', ease: Power0.easeNone})\n \t\t\t.fromTo(el, 1, {drawSVG: '50% 100%'}, {drawSVG: '100% 100%', ease: Power0.easeNone})\n \t\t\t.timeScale(Math.random() * 0.6 + 0.8)\n \t\t\t.progress(Math.random())\n \t);\n });\n */\n\n\t\t\t//Play/stop attack animations\n\t\t\t/*\n const controlAttackAnimations = () => {\n \tthis.isAttacksAnimationPaused = !this.isAttacksAnimationPaused;\n \tthis.attackTimelines.forEach((tl) => tl.paused(this.isAttacksAnimationPaused));\n };\n this.timeline.add(controlAttackAnimations, this._getScreenFadeTimes(0).out.from);\n this.timeline.add(controlAttackAnimations, this._getScreenFadeTimes(1).out.from);\n \t//Set initial state for all animated elements\n this.timeline.set(this.$scrollMilestones.eq(0), {scale: 2}, 0);\n this.timeline.set(this.$scrollBar, {opacity: 1}, 0);\n this.timeline.set(this.$overlay, {opacity: this.overlayOpacity}, 0);\n this.timeline.set(this.$content, {opacity: 1}, 0);\n this.timeline.set([this.backgrounds.$map, this.$preloader], {scale: zoomFactorMap}, 0);\n this.timeline.set(this.backgrounds.$graphs, {scale: zoomFactorGraphs}, 0);\n this.timeline.set(this.backgrounds.$whole, {scale: zoomFactorWhole}, 0);\n this.timeline.vars.onUpdate();\n \tthis._setupPreSectionAnimations();\n this._setupPostSectionAnimations();\n this._setupSectionSticking();\n this._setupMilestoneClicking();\n */\n\n\t\t\t//this.timeline.set([this.backgrounds.$map, this.$preloader], {scale: 1}, 0);\n\t\t},\n\t\t_setupPreSectionAnimations: function _setupPreSectionAnimations() {\n\t\t\tvar preSectionTl = new TimelineMax();\n\t\t\tpreSectionTl.from(this.$screens.eq(0), 1, { yPercent: 40, opacity: 0, ease: Power0.easeNone }).from(this.$scrollBar, 0.1, { opacity: 0, ease: Power0.easeNone }, 0.9).add(this._getBgZoomTween(this.backgrounds.$map, 0, 1, zoomFactorMap * 1.05, zoomFactorMap).tween, 0);\n\n\t\t\tnew ScrollMagic.Scene({\n\t\t\t\toffset: 0,\n\t\t\t\tduration: w.height\n\t\t\t}).addTo(ScrollController.controller).setTween(preSectionTl);\n\t\t},\n\t\t_setupPostSectionAnimations: function _setupPostSectionAnimations() {\n\t\t\tvar postSectionTl = new TimelineMax();\n\t\t\tpostSectionTl.to(this.$screens.eq(-1), 0.5, { yPercent: -20, opacity: 0, ease: Power0.easeNone }).to(this.$scrollBar, 0.1, { opacity: 0, ease: Power0.easeNone }, 0).add(this._getBgZoomTween(this.backgrounds.$whole, 0, 1, 1.05, 1).tween, 0);\n\n\t\t\tnew ScrollMagic.Scene({\n\t\t\t\toffset: this.sceneOffset + this.sceneDuration,\n\t\t\t\tduration: w.height\n\t\t\t}).addTo(ScrollController.controller).setTween(postSectionTl);\n\t\t},\n\t\t_setupSectionSticking: function _setupSectionSticking() {\n\t\t\tvar _this3 = this;\n\n\t\t\tthis._recalculatePageHeight();\n\n\t\t\tthis.scene = new ScrollMagic.Scene({\n\t\t\t\toffset: this.$element.offset().top,\n\t\t\t\tduration: this.sceneDuration,\n\t\t\t\treverse: true\n\t\t\t}).on('enter', function () {\n\t\t\t\t_this3.isFixed = true;\n\t\t\t}).on('leave', function () {\n\t\t\t\t_this3.isFixed = false;\n\t\t\t}).on('start', function (e) {\n\t\t\t\t_this3.isPaddingTopSet = false;\n\n\t\t\t\tif (e.scrollDirection === 'FORWARD') {\n\t\t\t\t\tHomepageAnimationController.introVideo.pause();\n\t\t\t\t} else {\n\t\t\t\t\t// `REVERSE` scrollDirection\n\t\t\t\t\tHomepageAnimationController.introVideo.play();\n\t\t\t\t}\n\t\t\t}).setTween(this.timeline).addTo(ScrollController.controller);\n\n\t\t\t$('#introVideo')[0].play(); //Fix a bug where video stops playing on DOM change\n\t\t},\n\t\t_setupMilestoneClicking: function _setupMilestoneClicking() {\n\t\t\tvar _this4 = this;\n\n\t\t\tthis.$scrollMilestones.click(function (e) {\n\t\t\t\tvar $el = $(e.currentTarget);\n\t\t\t\tvar index = _this4.$scrollMilestones.index($el);\n\t\t\t\tScroll.to(_this4.sceneOffset + _this4.sceneDuration * index / _this4.screenCount + 100);\n\t\t\t});\n\t\t},\n\t\t_recalculatePageHeight: function _recalculatePageHeight() {\n\t\t\tthis.$element.css({ height: this.sceneDuration + w.height });\n\t\t},\n\t\t_setupMobileBackgroundVisibility: function _setupMobileBackgroundVisibility() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar padding = 300;\n\t\t\tvar mobileScene = new ScrollMagic.Scene({\n\t\t\t\toffset: this.$element.offset().top - w.height - padding,\n\t\t\t\ttriggerHook: 0,\n\t\t\t\tduration: this.$elementInner.outerHeight() + w.height + 2 * padding\n\t\t\t}).on('enter', function () {\n\t\t\t\t_this5.$mobileBg.css({ opacity: 1 });\n\t\t\t}).on('leave', function () {\n\t\t\t\t_this5.$mobileBg.css({ opacity: 0 });\n\t\t\t}).addTo(ScrollController.controller);\n\t\t},\n\t\t_setupBackgroundVisibility: function _setupBackgroundVisibility() {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar padding = 300;\n\t\t\tvar bgScene = new ScrollMagic.Scene({\n\t\t\t\toffset: -padding,\n\t\t\t\ttriggerHook: 0,\n\t\t\t\tduration: this.sceneDuration + 2 * w.height + 2 * padding\n\t\t\t}).on('enter', function () {\n\t\t\t\t_this6.$element.css({ opacity: 1 });\n\t\t\t}).on('leave', function () {\n\t\t\t\t_this6.$element.css({ opacity: 0 });\n\t\t\t}).addTo(ScrollController.controller);\n\t\t},\n\t\t_updateScreenHeights: function _updateScreenHeights() {\n\t\t\tvar bgWidth = 3840;\n\t\t\tvar bgHeight = 1876;\n\n\t\t\tvar parallaxWidth = Math.max(w.width, w.height / bgHeight * bgWidth);\n\n\t\t\t/**\n * TEMP\n this.$elementInner.css({\n width: parallaxWidth,\n height: parallaxWidth * bgHeight / bgWidth\n });\n */\n\t\t\tthis.$elementInner.css({\n\t\t\t\twidth: '100%',\n\t\t\t\theight: parallaxWidth * bgHeight / bgWidth\n\t\t\t});\n\t\t\t$('#textTable').css({ height: parallaxWidth * bgHeight / bgWidth });\n\n\t\t\tthis.$elementFixed.css({ height: w.height });\n\n\t\t\tthis.$screens.css({\n\t\t\t\theight: this.$elementInner.outerHeight()\n\t\t\t});\n\t\t},\n\t\t_getBgZoomTween: function _getBgZoomTween(el, fromPos, toPos, fromScale, toScale) {\n\t\t\treturn {\n\t\t\t\ttween: TweenMax.fromTo(el, toPos - fromPos, { scale: fromScale }, {\n\t\t\t\t\tscale: toScale,\n\t\t\t\t\timmediateRender: false,\n\t\t\t\t\tease: ExpoScaleEase.config(fromScale, toScale)\n\t\t\t\t}),\n\t\t\t\tfrom: fromPos,\n\t\t\t\tto: toPos\n\t\t\t};\n\t\t},\n\t\t_getScreenFadeInTween: function _getScreenFadeInTween(screenIndex) {\n\t\t\treturn [\n\t\t\t//Fade overlay\n\t\t\tTweenMax.fromTo(this.$overlay, this.overlayFadeDuration, { opacity: 0 }, { opacity: this.overlayOpacity, immediateRender: false, ease: Power3.easeInOut }),\n\n\t\t\t//Fade text\n\t\t\tTweenMax.fromTo(this.$content, this.overlayFadeDuration, { opacity: this.textOpacity }, { opacity: 1, immediateRender: false, ease: Power3.easeInOut }),\n\n\t\t\t//Scale scrollbar milestone\n\t\t\tTweenMax.fromTo(this.$scrollMilestones.eq(screenIndex), this.overlayFadeDuration, { scale: 1 }, { scale: 2, immediateRender: false, ease: Power3.easeInOut })];\n\t\t},\n\t\t_getScreenFadeOutTween: function _getScreenFadeOutTween(screenIndex) {\n\t\t\treturn [\n\t\t\t//Fade overlay\n\t\t\tTweenMax.fromTo(this.$overlay, this.overlayFadeDuration, { opacity: this.overlayOpacity }, { opacity: 0, immediateRender: false, ease: Power3.easeInOut }),\n\n\t\t\t//Fade text\n\t\t\tTweenMax.fromTo(this.$content, this.overlayFadeDuration, { opacity: 1 }, { opacity: this.textOpacity, immediateRender: false, ease: Power3.easeInOut }),\n\n\t\t\t//Scale scrollbar milestone\n\t\t\tTweenMax.fromTo(this.$scrollMilestones.eq(screenIndex), this.overlayFadeDuration, { scale: 2 }, { scale: 1, immediateRender: false, ease: Power3.easeInOut })];\n\t\t},\n\t\t_getScreenFadeTimes: function _getScreenFadeTimes(screenIndex) {\n\t\t\tvar p = this._getScreenCenterPointTime(screenIndex);\n\t\t\tvar fadeInTime = p - this.overlayDuration / 2 - this.overlayFadeDuration;\n\t\t\tvar fadeOutTime = p + this.overlayDuration / 2;\n\n\t\t\treturn {\n\t\t\t\tin: {\n\t\t\t\t\tfrom: fadeInTime,\n\t\t\t\t\tto: fadeInTime + this.overlayFadeDuration\n\t\t\t\t},\n\t\t\t\tout: {\n\t\t\t\t\tfrom: fadeOutTime,\n\t\t\t\t\tto: fadeOutTime + this.overlayFadeDuration\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\t_getScreenCenterPointTime: function _getScreenCenterPointTime(screenIndex) {\n\t\t\treturn screenIndex / (this.screenCount - 1);\n\t\t}\n\t};\n\n\tw.autoHandle(HomepageParallaxSection);\n})();\n\n;;var HomepageAnimationController = {\n\t_currentlyPlayingIndex: null,\n\n\tanimations: [AnimationMalware, AnimationAi, AnimationLocation, AnimationSecurity, AnimationDevice],\n\n\tplay: function play(index, duration) {\n\t\tif (w.device.mobile) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.animations[index].play(duration);\n\t\tthis._currentlyPlayingIndex = index;\n\t\treturn this;\n\t},\n\tpauseCurrent: function pauseCurrent(duration) {\n\t\tif (this._currentlyPlayingIndex !== null) {\n\t\t\tthis.pause(this._currentlyPlayingIndex, duration);\n\t\t}\n\n\t\treturn this;\n\t},\n\tpause: function pause(index, duration) {\n\t\tthis.animations[index].pause(duration);\n\t\tthis._currentlyPlayingIndex = null;\n\t\treturn this;\n\t},\n\n\n\tintroVideo: {\n\t\t$el: document.getElementById('introVideo'),\n\n\t\tplay: function play() {\n\t\t\tthis.$el.play();\n\t\t},\n\t\tpause: function pause() {\n\t\t\tthis.$el.pause();\n\t\t}\n\t}\n};\n;;var $pathImgAssets = typeof staticPath !== 'undefined' ? staticPath : '';\n\nvar Zigzag = {\n\n\tscenes: {\n\t\tzigzag: null,\n\t\tnavigation: null,\n\t\tcards: []\n\t},\n\n\tnavigation: {\n\t\t$root: $('.navigation'),\n\t\thoverThrottle: null,\n\t\tsmallHeight: null,\n\t\toffset: 20,\n\t\tisAutoScrolling: false\n\t},\n\n\tzigzag: {\n\t\t$root: $('.zigzag'),\n\t\tactiveTab: null,\n\t\tlastId: null,\n\t\tcurrentSectionIndex: null,\n\t\tanimationFreeze: true\n\t},\n\n\tvideo: {\n\t\t$root: null,\n\t\t$sprite: null\n\t},\n\n\tselectors: {\n\n\t\tnavigation: {\n\t\t\trootContainer: '.navigation__container',\n\t\t\ttabs: '.navigation__tab',\n\t\t\ttabsContainer: '.navigation__tabs-container',\n\t\t\ttabsWrapper: '.navigation__tabs-wrapper',\n\t\t\tprogress: '.navigation__line',\n\t\t\ttabContainer: '.navigation__tabs',\n\t\t\thover: '.navigation__hover',\n\t\t\ticons: '.navigation__icon',\n\t\t\tlabels: '.navigation__text',\n\t\t\tsectorArr: []\n\t\t},\n\n\t\tzigzag: {\n\t\t\titems: '.zigzag__item',\n\t\t\tsvgPlaceholders: '.zigzag__svg-placeholder',\n\t\t\tcurrentSectionIndex: null\n\t\t},\n\n\t\tvideo: {\n\t\t\troot: '.video-thumbnail',\n\t\t\tsprite: '#animated-sprite-video-ai'\n\t\t}\n\n\t},\n\n\tclasses: {\n\t\tnavActiveClass: 'is-active',\n\t\tnavigationTabsWrapperSmall: 'navigation__tabs-wrapper--small'\n\t},\n\n\tvars: function vars() {\n\n\t\t/**\n * ZigZag variables\n */\n\t\tthis.zigzag.$rootHeight = this.zigzag.$root.outerHeight(true);\n\t\tthis.zigzag.$items = this.zigzag.$root.find(this.selectors.zigzag.items);\n\t\tthis.zigzag.$firstItem = this.zigzag.$root.find(this.selectors.zigzag.items).eq(0);\n\t\tthis.zigzag.activeTab = this.zigzag.$firstItem.attr('id');\n\t\tthis.zigzag.lastId = this.zigzag.activeTab;\n\t\tthis.zigzag.$svgPlaceholders = this.zigzag.$root.find(this.selectors.zigzag.svgPlaceholders);\n\n\t\t/**\n * Navigation variables\n */\n\t\tthis.navigation.$rootContainer = this.navigation.$root.find(this.selectors.navigation.rootContainer);\n\t\tthis.navigation.$tabsContainer = this.navigation.$rootContainer.find(this.selectors.navigation.tabsContainer);\n\t\tthis.navigation.$tabsWrapper = this.navigation.$rootContainer.find(this.selectors.navigation.tabsWrapper);\n\t\tthis.navigation.$tabsWrapperSmall = this.navigation.$tabsWrapper.clone().addClass(this.classes.navigationTabsWrapperSmall).insertAfter(this.navigation.$tabsWrapper);\n\n\t\tthis.navigation.$tabContainer = this.navigation.$rootContainer.find(this.selectors.navigation.tabContainer);\n\t\tthis.navigation.$tabsStatic = this.navigation.$rootContainer.find(this.selectors.navigation.tabs);\n\t\tthis.navigation.$tabs = this.navigation.$tabsWrapperSmall.find(this.selectors.navigation.tabs);\n\t\tthis.navigation.$progress = this.navigation.$tabsWrapperSmall.find(this.selectors.navigation.progress);\n\t\tthis.navigation.$hover = this.navigation.$tabsWrapperSmall.find(this.selectors.navigation.hover);\n\n\t\t/**\n * Video\n */\n\t\tthis.video.$root = this.zigzag.$root.find(this.selectors.video.root);\n\t\tthis.video.$sprite = this.video.$root.find(this.selectors.video.sprite);\n\n\t\tthis.setNavHeight();\n\t},\n\tinitHandler: function initHandler() {\n\t\tvar _this7 = this;\n\n\t\tthis.vars();\n\t\tthis.bindEvents();\n\n\t\tif (HomepageParallaxSection.isLoaded) {\n\t\t\tthis.loadAnimations();\n\t\t} else {\n\t\t\tEventHub.on('parallaxReady', function () {\n\t\t\t\t_this7.loadAnimations();\n\t\t\t});\n\t\t}\n\n\t\tEventHub.on('zigzagReady', function () {\n\t\t\t_this7.getSticky();\n\t\t\t_this7.progressAnim();\n\t\t\t_this7.setupCardAnimations();\n\t\t});\n\t},\n\tscrollStartHandler: function scrollStartHandler() {\n\t\tHomepageAnimationController.pauseCurrent(0.2);\n\t\tthis.zigzag.animationFreeze = true;\n\t},\n\tscrollEndHandler: function scrollEndHandler() {\n\n\t\tif (this.zigzag.currentSectionIndex === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tHomepageAnimationController.pauseCurrent(0.2).play(this.zigzag.currentSectionIndex);\n\t\tthis.zigzag.animationFreeze = false;\n\t},\n\tresizeEndHandler: function resizeEndHandler() {\n\t\tthis.setNavHeight();\n\t\tthis.zigzag.$rootHeight = this.zigzag.$root.outerHeight(true); //Update value\n\t\tthis.scenes.zigzag.refresh();\n\t},\n\tbindEvents: function bindEvents() {\n\t\tvar _this8 = this;\n\n\t\tvar thumbnailTimeline = AnimatedSprite.createImg(this.video.$sprite, 15, 0.25);\n\n\t\tthumbnailTimeline.pause();\n\n\t\tthis.video.$root.hover(function () {\n\t\t\t//Animate video thumbnail in AI section\n\t\t\tthumbnailTimeline.play();\n\t\t}, function () {\n\t\t\tAnimatedSprite.resetImg(_this8.video.$sprite, thumbnailTimeline);\n\t\t});\n\n\t\t// Throttle hover for navigation tabs.\n\t\tthis.navigation.$tabs.hover(function (e) {\n\t\t\t_this8.navigation.targetIndex = $(e.currentTarget).index();\n\n\t\t\tif (_this8.navigation.hoverThrottle !== null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(_this8.navigation.hoverThrottle);\n\n\t\t\t_this8.navigation.hoverThrottle = setTimeout(function () {\n\t\t\t\t_this8.setActiveNavItem(_this8.navigation.targetIndex);\n\t\t\t\t_this8.navigation.hoverThrottle = null;\n\t\t\t}, 150);\n\t\t});\n/*\n\t\tthis.navigation.$tabs.add(this.navigation.$tabsStatic).on('click', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar $scrollTo = $(e.currentTarget.hash);\n\t\t\tvar $scrollToPerex = $scrollTo.find('.zigzag__perex');\n\n\t\t\t_this8.navigation.isAutoScrolling = true;\n\t\t\tScroll.navHeight = _this8.navigation.smallHeight;\n\t\t\tScroll.to($scrollToPerex, 'center', function (success) {\n\t\t\t\t_this8.navigation.isAutoScrolling = false;\n\t\t\t});\n\t\t\tScroll.navHeight = 0;\n\t\t}); */\n\t},\n\tloadAnimations: function loadAnimations() {\n\t\tvar _this9 = this;\n\n\t\tvar svgIds = [].map.call(this.zigzag.$svgPlaceholders, function (el) {\n\t\t\treturn $(el).data('svg');\n\t\t});\n\n\t\t// if (this.canShowSvgAnimations()) {\n\t\t// \tvar counter = svgIds.length;\n\t\t// \tsvgIds.forEach(function (id, index) {\n\t\t// \t\tvar svg = $pathImgAssets + ('i/mkt/technology/svg/unique/svg-' + id + '.svg');\n\t\t// \t\tSvgLoader.load(svg, function (svgMarkup) {\n\t\t// \t\t\tvar $placeholder = _this9.zigzag.$svgPlaceholders.eq(index);\n\t\t// \t\t\t$placeholder[0].innerHTML = svgMarkup;\n\t\t// \t\t\t$placeholder.children().addClass('zigzag__svg');\n\t\t// \t\t\t$placeholder.children().unwrap();\n\t\t//\n\t\t// \t\t\tif (_this9.zigzag.currentSectionIndex === index && !_this9.zigzag.animationFreeze) {\n\t\t// \t\t\t\tHomepageAnimationController.pauseCurrent().play(index);\n\t\t// \t\t\t}\n\t\t//\n\t\t// \t\t\tif (--counter === 0) {\n\t\t// \t\t\t\tEventHub.emit('zigzagReady');\n\t\t// \t\t\t}\n\t\t// \t\t});\n\t\t// \t});\n\t\t// } else {\n\t\t\tPreload.images(svgIds.map(function (id) {\n\t\t\t\treturn { 0: $pathImgAssets + ('i/mkt/technology/svg/raster/svg-' + id + '__2.png') };\n\t\t\t}), function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tEventHub.emit('zigzagReady');\n\t\t\t\t}, 300);\n\t\t\t}, function (percentage, filename, index) {\n\t\t\t\tvar $img = $('');\n\t\t\t\t$img[0].src = filename;\n\t\t\t\t_this9.zigzag.$svgPlaceholders.eq(index).append($img);\n\t\t\t});\n\t\t// }\n\t},\n\tsetupCardAnimations: function setupCardAnimations() {\n\n\t\t//=========================== CARD 1 ===========================\n\n\t\tvar $card1 = $('#card1');\n\t\tvar $number1 = $card1.find('.card__heading');\n\t\tvar $perex1 = $card1.find('.card__perex');\n\t\tvar $curve = $('#svg-line-curve');\n\t\tvar $glow = $('#svg-line-glow');\n\t\tvar $glowClipPath = $('#svg-line-glow-clip-path');\n\t\tvar card1Timeline = new TimelineMax();\n\t\tvar card1TimelineDuration = 1.5;\n\t\tcard1Timeline.add(AnimationNumber.create($number1, card1TimelineDuration, Expo.easeIn, parseInt($number1.data('number')), '%n')).from($perex1, card1TimelineDuration / 4, { opacity: 0 }, 0).from($curve, card1TimelineDuration, { drawSVG: '0% 0%', ease: Power0.easeNone }, 0).from($glowClipPath, card1TimelineDuration, { xPercent: -100, ease: Power0.easeNone }, 0);\n\t\tthis.registerCardAnimation($card1, card1Timeline);\n\n\t\t//=========================== CARD 2 ===========================\n\n\t\tvar $card2 = $('#card2');\n\t\tvar $number2 = $card2.find('.card__heading');\n\t\tvar $perex2 = $card2.find('.card__perex');\n\t\tvar card2Timeline = new TimelineMax();\n\t\tvar card2TimelineDuration = 1.5;\n\n\t\tvar $bars = $('#svg-bars').children();\n\t\tvar $barsBlurred = $('#svg-bars-blurred').children();\n\t\tvar barsTl = new TimelineMax();\n\n\t\tbarsTl.set([$bars, $barsBlurred], { transformOrigin: '0% 100%' }).staggerFromTo($bars, 1, { scaleY: 0 }, { scaleY: 1, ease: Power3.easeOut }, 0.8, 0).staggerFromTo($barsBlurred, 1, { scaleY: 0 }, { scaleY: 1, ease: Power3.easeOut }, 0.8, 0).duration(card2TimelineDuration);\n\n\t\tcard2Timeline.add(AnimationNumber.create($number2, card2TimelineDuration, Expo.easeIn, parseInt($number2.data('number')), '%n')).from($perex2, card2TimelineDuration / 4, { opacity: 0 }, 0).add(barsTl, 0);\n\t\tthis.registerCardAnimation($card2, card2Timeline);\n\n\t\t//=========================== CARD 3 ===========================\n\n\t\tvar $card3 = $('#card3');\n\t\tvar $number3 = $card3.find('.card__heading');\n\t\tvar $perex3 = $card3.find('.card__perex');\n\t\tvar dots = Helpers.shuffle($('#svg-map-bg-dots').children().toArray());\n\t\tvar dotCounter = 0;\n\t\tvar getNextDot = function getNextDot() {\n\t\t\treturn dots[dotCounter = (dotCounter + 1) % dots.length];\n\t\t};\n\t\tvar card3TimelineDuration = 1;\n\n\t\tTweenMax.set(dots, { transformOrigin: '50% 50%', opacity: 0 });\n\n\t\tvar dotsTl = new TimelineMax({\n\t\t\trepeat: -1,\n\t\t\trepeatDelay: 0.3,\n\t\t\tonRepeat: function onRepeat() {\n\t\t\t\tvar currentDot = getNextDot();\n\t\t\t\tTweenMax.fromTo(currentDot, 1.5, { scale: 0 }, { scale: 1.5, ease: Power3.easeOut });\n\t\t\t\tTweenMax.fromTo(currentDot, 1, { opacity: 1 }, { opacity: 0, delay: 0.5, ease: Power3.easeOut });\n\t\t\t}\n\t\t});\n\n\t\tvar card3Timeline = new TimelineMax();\n\t\tcard3Timeline.add(AnimationNumber.create($number3, card3TimelineDuration, Expo.easeIn, parseInt($number3.data('number')), '%n +')).from($perex3, card3TimelineDuration / 2, { opacity: 0 }, 0).add(dotsTl, 0);\n\t\tthis.registerCardAnimation($card3, card3Timeline);\n\t},\n\tregisterCardAnimation: function registerCardAnimation(card, timeline) {\n\t\tvar cardScene = new ScrollMagic.Scene({\n\t\t\ttriggerElement: card[0],\n\t\t\ttriggerHook: 0.7,\n\t\t\tduration: 0\n\t\t});\n\n\t\ttimeline.add(function () {\n\t\t\tcardScene.enabled(false);\n\t\t}, 0);\n\n\t\tcardScene.setTween(timeline).addTo(ScrollController.controller);\n\n\t\tthis.scenes.cards.push(cardScene);\n\t},\n\n\n\t/**\n * Get sticky navigation on scroll down into