{"version":3,"file":"dist/557.js","mappings":"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","sources":["webpack://vaneckweb/../Static/eu/js/src/override/homepage-video-slider.js","webpack://vaneckweb/../Static/js/scrollify.js"],"sourcesContent":["import swapVideoSource from \"./video/swap-video-source\";\r\nimport 'slick-carousel';\r\n\r\nconst { next, currentIndex } = require(\"../../../../js/scrollify\");\r\n\r\nrequire(\"regenerator-runtime/runtime\");\r\n\r\nasync function loadVideoCarousel() {\r\n\r\n    if($(\".compound-hero-video\").length == 0) return;\r\n\r\n    //factory that generates the next slide function.\r\n    var gotoNextSlideListener = function ($slider) {\r\n        const gotoNextSlide = function (event) {\r\n            $slider.slick(\"slickNext\");\r\n        }\r\n        return gotoNextSlide\r\n    }\r\n\r\n    const investorType = $('#hdnSelectedAudience')?.val();\r\n\r\n    if (investorType && investorType === 'pi' && $('.homepage-video-carousel')?.hasClass('hide-audio-icon')) {\r\n        $(\".compound-hero-video\").addClass('hide-audio-icon'); \r\n    }\r\n\r\n    //checks if the video has audio to hide and show the audio icon\r\n    function hasAudio(video) {\r\n        return video.mozHasAudio ||\r\n            Boolean(video.webkitAudioDecodedByteCount) ||\r\n            Boolean(video.audioTracks && video.audioTracks.length);\r\n    }\r\n\r\n    //To be run on the video elem once it has been loaded.\r\n    function onVideoLoaded() {\r\n        //If there is no audio, hide the mute button.\r\n        hasAudio(this) ? $(\".audio-on-icon\").show() : $(\".audio-on-icon\").hide();\r\n\r\n        //Remove this so it can be added again as needed.\r\n        this.removeEventListener(\"loadeddata\", onVideoLoaded);\r\n    }\r\n\r\n    async function videoChange(prevSlideNumber, newSlideNumber) {\r\n        //if prev slide and new slide are undefined the slider is loading for the first time...\r\n\r\n        //All existing videos\r\n        $('.slider-for video').find('video').each((i, e) => {\r\n            e.pause(); //pause..\r\n            if (isNaN(prevSlideNumber)) {\r\n                e.currentTime = 0; //rewind all if this is loaded for the first time\r\n            }\r\n            e.removeEventListener(\"ended\", gotoNextSlideListener); //...and unbind.\r\n        });\r\n\r\n        //Get the first video of the currently selected slide or next slide, if this is a slide change.\r\n        let firstVideo = $('.compound-hero-video .slider-for .slick-current').find('video').get(0);\r\n        if (!isNaN(newSlideNumber)) {\r\n            firstVideo = $(\".slick-slide[data-slick-index=\" + newSlideNumber + \"]\").find('video').get(0);\r\n        }\r\n        \r\n        //swapSource to check if a mobile version is needed.\r\n        var videoSwapped = await swapVideoSource($(firstVideo), window.innerWidth < 768);\r\n\r\n        //reeind, unhide and play.\r\n        firstVideo.currentTime = 0;\r\n        await firstVideo.play();\r\n        $(firstVideo).removeClass(\"d-none\");\r\n\r\n        //The hasAudio API only works after the video is playing\r\n        //Onloaded -- check for audio and hide/show the audio icon.\r\n        onVideoLoaded.call(firstVideo)\r\n        \r\n        //Listner for once the current slide is ended to move to the next slide and push the next video.\r\n        firstVideo.addEventListener(\"ended\", gotoNextSlideListener($('.slider-for')), false);\r\n        firstVideo.loop = false;\r\n    }\r\n\r\n    //Bind our video change function to slick's thing.\r\n    $(\".compound-hero-video .slider-for\").on('init reInit beforeChange', async function (_, slick, currentSlide, nextSlide) {\r\n\r\n        videoChange(currentSlide, nextSlide);\r\n\r\n        $(\".hero-video-carousel.slick-dots > li\").toArray().forEach(l => {\r\n            if($(l).hasClass(\"svg-injected\")) return;\r\n            //$(l).append(`<svg class=\"play-icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40.26 53.68\"><defs><style>.cls-1{fill:#001e6d;}</style></defs><g id=\"Ebene_1-2\"><polygon class=\"cls-1\" points=\"40.26 26.84 0 0 0 53.68 40.26 26.84 40.26 26.84\"/></g></svg>`);\r\n            if($(l).addClass(\"svg-injected\"));\r\n        })\r\n    });\r\n\r\n    const videoSliders = $(\".homepage-video-carousel .slider-for .hero__video\").toArray();\r\n    $(\".slider-for\").html(shuffle(videoSliders));\r\n\r\n    //homepage video slider. And away we go...\r\n    $('.compound-hero-video .slider-for').slick({\r\n        autoplay: false,\r\n        slidesToShow: 1,\r\n        slidesToScroll: 1,\r\n        arrows: true,\r\n        prevArrow: \"\\n    <button class=\\\"home-video-carousel-control prev\\\" type=\\\"button\\\" aria-label=\\\"Previous Arrow\\\">\\n      <svg\\n        aria-hidden=\\\"true\\\"\\n        focusable=\\\"false\\\"\\n        data-prefix=\\\"far\\\"\\n        data-icon=\\\"chevron-left\\\"\\n        class=\\\"svg-inline--fa fa-chevron-left fa-w-16 fa-lg icon\\\"\\n        role=\\\"img\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 18 18\\\"\\n      >\\n        <path\\n          fill=\\\"currentColor\\\"\\n          d=\\\"M13.13 2.26a.75.75 0 00-.22-.54.75.75 0 00-1.07 0L5.1 8.47a.75.75 0 000 1.06l6.75 6.75a.75.75 0 001.07 0 .75.75 0 000-1.06L6.69 9l6.22-6.22a.75.75 0 00.21-.52z\\\"\\n        >\\n        </path>\\n      </svg>\\n    </button>\\n  \",\r\n        nextArrow: \"\\n    <button class=\\\"home-video-carousel-control next\\\" type=\\\"button\\\" aria-label=\\\"Next Arrow\\\">\\n      <svg\\n        aria-hidden=\\\"true\\\"\\n        focusable=\\\"false\\\"\\n        data-prefix=\\\"far\\\"\\n        data-icon=\\\"chevron-right\\\"\\n        class=\\\"svg-inline--fa fa-chevron-right fa-w-16 fa-lg icon\\\"\\n        role=\\\"img\\\"\\n        xmlns=\\\"http://www.w3.org/2000/svg\\\"\\n        viewBox=\\\"0 0 18 18\\\"\\n      >\\n        <path\\n          fill=\\\"currentColor\\\"\\n          d=\\\"M4.87 15.74a.75.75 0 00.22.54.75.75 0 001.07 0l6.75-6.75a.75.75 0 000-1.06L6.16 1.72a.75.75 0 00-1.07 0 .75.75 0 000 1.06L11.31 9 5.1 15.22a.75.75 0 00-.22.52z\\\"\\n        >\\n        </path>\\n      </svg>\\n    </button>\\n  \",\r\n        dots: true,\r\n        draggable: false,\r\n        dotsClass: 'slick-dots hero-video-carousel',\r\n        swipe: true,\r\n        mobileFirst: true,\r\n        responsive: [\r\n            {\r\n                breakpoint: 767,\r\n                settings: {\r\n                    swipe: false\r\n                },\r\n            },\r\n        ],\r\n    });\r\n\r\n    $('.compound-hero-video .slider-for').on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n        //Pause the video for the previous slide if it is being changed only.\r\n        const currVideo = $('.compound-hero-video .slick-current').find('video').get(0);\r\n        currVideo.pause();\r\n        $(currVideo).addClass(\"d-none\");\r\n    });\r\n\r\n    $(\".audio-on-icon\").click(function () {\r\n        const videos = $(this).parent().find(\"video\").toArray();\r\n        switch ($(this).hasClass(\"sound-turned-on\")) {\r\n            case true:\r\n                videos.forEach(x => x.muted = true)\r\n                $(this).removeClass(\"sound-turned-on\");\r\n                break;\r\n            case false:\r\n                videos.forEach(x => x.muted = false)\r\n                $(this).addClass(\"sound-turned-on\");\r\n                break;\r\n        }\r\n    })\r\n\r\n}\r\n\r\n// button transitions\r\n$('.compound-hero-video .slider-for').on('beforeChange', (event, slick, currentSlide, nextSlide) => {\r\n\r\n    // swipe ->\r\n    if (currentSlide < nextSlide) {\r\n        $('.compound-hero-video ul.slick-dots.hero-video-carousel li.slick-active')\r\n    }\r\n\r\n    // swipe <-\r\n    if (currentSlide > nextSlide) {\r\n        $('.compound-hero-video ul.slick-dots.hero-video-carousel li.slick-active')\r\n    }\r\n});\r\n\r\n// change slider dots to look like IG\r\nconst makeSliderDotsLookLikeIG = () => {\r\n    $('.compound-hero-video .slider-for').on('init reInit beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n\r\n        // runs only first time when slider loaded\r\n        if (event.type == 'init') {\r\n            $('.compound-hero-video .slick-dots.hero-video-carousel li').toArray().forEach((e, i) => {\r\n                if (i >= 7) {\r\n                    $(e).addClass('d-none');\r\n                } else {\r\n                    i += 1;\r\n\r\n                    let dotSize = 0;\r\n\r\n                    switch (i) {\r\n                        case 1:\r\n                            dotSize = 1\r\n                            break;\r\n\r\n                        case 2:\r\n                            dotSize = 2\r\n                            break;\r\n\r\n                        case 3:\r\n                            dotSize = 3\r\n                            break;\r\n\r\n                        case 4:\r\n                            dotSize = 4\r\n                            break;\r\n\r\n                        case 5:\r\n                            dotSize = 5\r\n                            break;\r\n\r\n                        case 6:\r\n                            dotSize = 6\r\n                            break;\r\n\r\n                        case 7:\r\n                            dotSize = 7\r\n                            break;\r\n\r\n                        default:\r\n                            dotSize = 0\r\n                    }\r\n                    $(e).addClass(`dot-size-${dotSize}`);\r\n                }\r\n            })\r\n            return;\r\n        }\r\n\r\n        // Get the current slide index\r\n        let currentSlideIndex = nextSlide;\r\n        let totalDots = document.querySelectorAll('.compound-hero-video ul.slick-dots li').length;\r\n        // display dot based on position\r\n        const changeDots = () => {\r\n            document.querySelectorAll('.compound-hero-video ul.slick-dots li').forEach((element, i) => {\r\n                let dotShown = shouldDotBeShown(currentSlideIndex, i, totalDots)\r\n\r\n                if (dotShown) {\r\n                    $(element).removeClass((i, className) => {\r\n                        return (className.match(/(^|\\s)dot-size-\\S+/g) || []).join(' ');\r\n                    });\r\n                    let dotSize = getDotSize(currentSlideIndex, i);\r\n                    $(element).addClass(`dot-size-${dotSize}`);\r\n                }\r\n\r\n                $(element).removeClass(\"d-none\");\r\n                !dotShown && $(element).addClass(`d-none`);\r\n            })\r\n        }\r\n\r\n        setTimeout(changeDots, 250);\r\n    });\r\n}\r\n\r\nmakeSliderDotsLookLikeIG();\r\n\r\n$(async () => await loadVideoCarousel());\r\n\r\nfunction shuffle(array) {\r\n  let currentIndex = array.length,  randomIndex;\r\n\r\n  // While there remain elements to shuffle.\r\n  while (currentIndex != 0) {\r\n\r\n    // Pick a remaining element.\r\n    randomIndex = Math.floor(Math.random() * currentIndex);\r\n    currentIndex--;\r\n\r\n    // And swap it with the current element.\r\n    [array[currentIndex], array[randomIndex]] = [\r\n      array[randomIndex], array[currentIndex]];\r\n  }\r\n\r\n  return array;\r\n}\r\n\r\nfunction shouldDotBeShown(activeDotIndex, currentDotIndex, totalDots) {\r\n\r\n    totalDots -= 1;\r\n\r\n    const dotsTobeShown = 7;\r\n    const halfTheDotsToBeShown = dotsTobeShown / 2;\r\n\r\n    if (totalDots < dotsTobeShown) {\r\n        return true;\r\n    }\r\n\r\n    if (activeDotIndex < halfTheDotsToBeShown) {\r\n        if (currentDotIndex < dotsTobeShown) {\r\n            return true;\r\n        }\r\n    }\r\n\r\n    const MiddleOfLastDots = totalDots - halfTheDotsToBeShown;\r\n    const minimumDotsFromEnd = totalDots - dotsTobeShown;\r\n\r\n    if (activeDotIndex > MiddleOfLastDots) {\r\n        if (currentDotIndex > minimumDotsFromEnd) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    let min = activeDotIndex - 3;\r\n    let max = activeDotIndex + 3;\r\n\r\n    if (activeDotIndex < 3) {\r\n        max += activeDotIndex - 2;\r\n    }\r\n\r\n\r\n    if (activeDotIndex > (totalDots - 3)) {\r\n        min -= totalDots - activeDotIndex + 3;\r\n    }\r\n\r\n    if (currentDotIndex < min) return false;\r\n    if (currentDotIndex > max) return false;\r\n\r\n    return true;\r\n}\r\n\r\nfunction getDotSize(currentDotIndex, activeDotIndex) {\r\n\r\n    let difference = currentDotIndex - activeDotIndex;\r\n\r\n    switch (difference) {\r\n        case 0:\r\n            return 0\r\n            break;\r\n\r\n        case 1:\r\n        case -1:\r\n            return 1\r\n            break;\r\n\r\n        case 2:\r\n        case -2:\r\n            return 2\r\n            break;\r\n\r\n        case 3:\r\n        case -3:\r\n            return 3\r\n            break;\r\n\r\n        case 4:\r\n        case -4:\r\n            return 4\r\n            break;\r\n\r\n        case 5:\r\n        case -5:\r\n            return 5\r\n            break;\r\n\r\n        case 6:\r\n        case -6:\r\n            return 6\r\n            break;\r\n\r\n        case 7:\r\n        case -7:\r\n            return 7\r\n            break;\r\n\r\n        default:\r\n            console.log('An Error Ocurred!')\r\n    }\r\n}","/*!\r\n * jQuery Scrollify\r\n * Version 1.0.18\r\n *\r\n * Requires:\r\n * - jQuery 1.7 or higher\r\n *\r\n * https://github.com/lukehaas/Scrollify\r\n *\r\n * Copyright 2016, Luke Haas\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\r\n * this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to\r\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r\n * the Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r\n * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r\n * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r\n * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r\n * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n\r\n\r\nif touchScroll is false - update index\r\n\r\n */\r\n(function (global,factory) {\r\n  \"use strict\";\r\n  if (typeof define === 'function' && define.amd) {\r\n    // AMD. Register as an anonymous module.\r\n    define(['jquery'], function($) {\r\n      return factory($, global, global.document);\r\n    });\r\n  } else if (typeof module === 'object' && module.exports) {\r\n    // Node/CommonJS\r\n    module.exports = factory(require('jquery'), global, global.document);\r\n  } else {\r\n    // Browser globals\r\n    factory(jQuery, global, global.document);\r\n  }\r\n}(typeof window !== 'undefined' ? window : this, function ($, window, document, undefined) {\r\n  \"use strict\";\r\n  var heights = [],\r\n    names = [],\r\n    elements = [],\r\n    overflow = [],\r\n    index = 0,\r\n    currentIndex = 0,\r\n    interstitialIndex = 1,\r\n    hasLocation = false,\r\n    timeoutId,\r\n    timeoutId2,\r\n    $window = $(window),\r\n    portHeight,\r\n    top = $window.scrollTop(),\r\n    scrollable = false,\r\n    locked = false,\r\n    scrolled = false,\r\n    manualScroll,\r\n    swipeScroll,\r\n    util,\r\n    disabled = false,\r\n    scrollSamples = [],\r\n    scrollTime = new Date().getTime(),\r\n    firstLoad = true,\r\n    initialised = false,\r\n    destination = 0,\r\n    wheelEvent = 'onwheel' in document ? 'wheel' : document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll',\r\n    settings = {\r\n      //section should be an identifier that is the same for each section\r\n      section: \".section\",\r\n      sectionName: \"data-section-name\",\r\n      interstitialSection: \"\",\r\n      easing: \"easeOutQuad\",\r\n      scrollSpeed: 500,\r\n      offset: 0,\r\n      scrollbars: true,\r\n      target:\"html,body\",\r\n      standardScrollElements: false,\r\n      setHeights: false,\r\n      overflowScroll:true,\r\n      updateHash: true,\r\n      touchScroll:true,\r\n      before:function() {},\r\n      after:function() {},\r\n      afterResize:function() {},\r\n      afterRender:function() {}\r\n    };\r\n  function getportHeight() {\r\n    return ($window.height() + settings.offset);\r\n  }\r\n  function animateScroll(index,instant,callbacks,toTop) {\r\n    if(currentIndex===index) {\r\n      callbacks = false;\r\n    }\r\n    if(disabled===true) {\r\n      return true;\r\n    }\r\n    if(names[index]) {\r\n      scrollable = false;\r\n      if(firstLoad===true) {\r\n        settings.afterRender();\r\n        firstLoad = false;\r\n      }\r\n      if(callbacks) {\r\n        if( typeof settings.before == 'function' && settings.before(index,elements) === false ){\r\n          return true;\r\n        }\r\n      }\r\n      interstitialIndex = 1;\r\n      destination = heights[index];\r\n      if(firstLoad===false && currentIndex>index && toTop===false) {\r\n        //We're going backwards\r\n        if(overflow[index]) {\r\n          portHeight = getportHeight();\r\n\r\n          interstitialIndex = parseInt(elements[index].outerHeight()/portHeight);\r\n\r\n          destination = parseInt(heights[index])+(elements[index].outerHeight()-portHeight);\r\n        }\r\n      }\r\n\r\n\r\n      if(settings.updateHash && settings.sectionName && !(firstLoad===true && index===0)) {\r\n        if(history.pushState) {\r\n            try {\r\n              history.replaceState(null, null, names[index]);\r\n            } catch (e) {\r\n              if(window.console) {\r\n                console.warn(\"Scrollify warning: Page must be hosted to manipulate the hash value.\");\r\n              }\r\n            }\r\n\r\n        } else {\r\n          window.location.hash = names[index];\r\n        }\r\n      }\r\n\r\n      currentIndex = index;\r\n      if(instant) {\r\n        $(settings.target).stop().scrollTop(destination);\r\n        if(callbacks) {\r\n          settings.after(index,elements);\r\n        }\r\n      } else {\r\n        locked = true;\r\n        if( $().velocity ) {\r\n          $(settings.target).stop().velocity('scroll', {\r\n            duration: settings.scrollSpeed,\r\n            easing: settings.easing,\r\n            offset: destination,\r\n            mobileHA: false\r\n          });\r\n        } else {\r\n          $(settings.target).stop().animate({\r\n            scrollTop: destination\r\n          }, settings.scrollSpeed,settings.easing);\r\n        }\r\n\r\n        if(window.location.hash.length && settings.sectionName && window.console) {\r\n          try {\r\n            if($(window.location.hash).length) {\r\n              console.warn(\"Scrollify warning: ID matches hash value - this will cause the page to anchor.\");\r\n            }\r\n          } catch (e) {}\r\n        }\r\n        $(settings.target).promise().done(function(){\r\n          locked = false;\r\n          firstLoad = false;\r\n          if(callbacks) {\r\n            settings.after(index,elements);\r\n          }\r\n        });\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  function isAccelerating(samples) {\r\n    function average(num) {\r\n      var sum = 0;\r\n\r\n      var lastElements = samples.slice(Math.max(samples.length - num, 1));\r\n\r\n      for(var i = 0; i < lastElements.length; i++){\r\n          sum += lastElements[i];\r\n      }\r\n\r\n      return Math.ceil(sum/num);\r\n    }\r\n\r\n    var avEnd = average(10);\r\n    var avMiddle = average(70);\r\n\r\n    if(avEnd >= avMiddle) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  var scrollify = function(options) {\r\n    initialised = true;\r\n    $.easing['easeOutExpo'] = function(x, t, b, c, d) {\r\n      return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;\r\n    };\r\n\r\n    manualScroll = {\r\n      handleMousedown:function() {\r\n        if(disabled===true) {\r\n          return true;\r\n        }\r\n        scrollable = false;\r\n        scrolled = false;\r\n      },\r\n      handleMouseup:function() {\r\n        if(disabled===true) {\r\n          return true;\r\n        }\r\n        scrollable = true;\r\n        if(scrolled) {\r\n          //instant,callbacks\r\n          manualScroll.calculateNearest(false,true);\r\n        }\r\n      },\r\n      handleScroll:function() {\r\n        if(disabled===true) {\r\n          return true;\r\n        }\r\n        if(timeoutId){\r\n          clearTimeout(timeoutId);\r\n        }\r\n\r\n        timeoutId = setTimeout(function(){\r\n          scrolled = true;\r\n          if(scrollable===false) {\r\n            return false;\r\n          }\r\n          scrollable = false;\r\n          //instant,callbacks\r\n          manualScroll.calculateNearest(false,true);\r\n        }, 200);\r\n      },\r\n      calculateNearest:function(instant,callbacks) {\r\n        top = $window.scrollTop();\r\n        var i =1,\r\n          max = heights.length,\r\n          closest = 0,\r\n          prev = Math.abs(heights[0] - top),\r\n          diff;\r\n        for(;i<max;i++) {\r\n          diff = Math.abs(heights[i] - top);\r\n\r\n          if(diff < prev) {\r\n            prev = diff;\r\n            closest = i;\r\n          }\r\n        }\r\n        if((atBottom() && closest>index) || atTop()) {\r\n          index = closest;\r\n          //index, instant, callbacks, toTop\r\n          animateScroll(closest,instant,callbacks,false);\r\n        }\r\n      },\r\n      wheelHandler:function(e) {\r\n        if(disabled===true) {\r\n          return true;\r\n        } else if(settings.standardScrollElements) {\r\n          if($(e.target).is(settings.standardScrollElements) || $(e.target).closest(settings.standardScrollElements).length) {\r\n            return true;\r\n          }\r\n        }\r\n        if(!overflow[index]) {\r\n          e.preventDefault();\r\n        }\r\n        var currentScrollTime = new Date().getTime();\r\n\r\n\r\n        e = e || window.event;\r\n        var value = e.originalEvent.wheelDelta || -e.originalEvent.deltaY || -e.originalEvent.detail;\r\n        var delta = Math.max(-1, Math.min(1, value));\r\n\r\n        //delta = delta || -e.originalEvent.detail / 3 || e.originalEvent.wheelDelta / 120;\r\n\r\n        if(scrollSamples.length > 149){\r\n          scrollSamples.shift();\r\n        }\r\n        //scrollSamples.push(Math.abs(delta*10));\r\n        scrollSamples.push(Math.abs(value));\r\n\r\n        if((currentScrollTime-scrollTime) > 200){\r\n          scrollSamples = [];\r\n        }\r\n        scrollTime = currentScrollTime;\r\n\r\n\r\n        if(locked) {\r\n          return false;\r\n        }\r\n        if(delta<0) {\r\n          if(index<heights.length-1) {\r\n            if(atBottom()) {\r\n              if(isAccelerating(scrollSamples)) {\r\n                e.preventDefault();\r\n                index++;\r\n                locked = true;\r\n                //index, instant, callbacks, toTop\r\n                animateScroll(index,false,true, false);\r\n              } else {\r\n                return false;\r\n              }\r\n            }\r\n          }\r\n        } else if(delta>0) {\r\n          if(index>0) {\r\n            if(atTop()) {\r\n              if(isAccelerating(scrollSamples)) {\r\n                e.preventDefault();\r\n                index--;\r\n                locked = true;\r\n                //index, instant, callbacks, toTop\r\n                animateScroll(index,false,true, false);\r\n              } else {\r\n                return false\r\n              }\r\n            }\r\n          }\r\n        }\r\n\r\n      },\r\n      keyHandler:function(e) {\r\n        if(disabled===true || document.activeElement.readOnly===false) {\r\n          return true;\r\n        }\r\n        if(locked===true) {\r\n          return false;\r\n        }\r\n        if(e.keyCode==38 || e.keyCode==33) {\r\n          if(index>0) {\r\n            if(atTop()) {\r\n              e.preventDefault();\r\n              index--;\r\n              //index, instant, callbacks, toTop\r\n              animateScroll(index,false,true,false);\r\n            }\r\n          }\r\n        } else if(e.keyCode==40 || e.keyCode==34) {\r\n          if(index<heights.length-1) {\r\n            if(atBottom()) {\r\n              e.preventDefault();\r\n              index++;\r\n              //index, instant, callbacks, toTop\r\n              animateScroll(index,false,true,false);\r\n            }\r\n          }\r\n        }\r\n      },\r\n      init:function() {\r\n        if(settings.scrollbars) {\r\n          $window.on('mousedown', manualScroll.handleMousedown);\r\n          $window.on('mouseup', manualScroll.handleMouseup);\r\n          $window.on('scroll', manualScroll.handleScroll);\r\n        } else {\r\n          $(\"body\").css({\"overflow\":\"hidden\"});\r\n        }\r\n        $window.on(wheelEvent,manualScroll.wheelHandler);\r\n        //$(document).bind(wheelEvent,manualScroll.wheelHandler);\r\n        $window.on('keydown', manualScroll.keyHandler);\r\n      }\r\n    };\r\n\r\n    swipeScroll = {\r\n      touches : {\r\n        \"touchstart\": {\"y\":-1,\"x\":-1},\r\n        \"touchmove\" : {\"y\":-1,\"x\":-1},\r\n        \"touchend\"  : false,\r\n        \"direction\" : \"undetermined\"\r\n      },\r\n      options:{\r\n        \"distance\" : 30,\r\n        \"timeGap\" : 800,\r\n        \"timeStamp\" : new Date().getTime()\r\n      },\r\n      touchHandler: function(event) {\r\n        if(disabled===true) {\r\n          return true;\r\n        } else if(settings.standardScrollElements) {\r\n          if($(event.target).is(settings.standardScrollElements) || $(event.target).closest(settings.standardScrollElements).length) {\r\n            return true;\r\n          }\r\n        }\r\n        var touch;\r\n        if (typeof event !== 'undefined'){\r\n          if (typeof event.touches !== 'undefined') {\r\n            touch = event.touches[0];\r\n            switch (event.type) {\r\n              case 'touchstart':\r\n                swipeScroll.touches.touchstart.y = touch.pageY;\r\n                swipeScroll.touches.touchmove.y = -1;\r\n\r\n                swipeScroll.touches.touchstart.x = touch.pageX;\r\n                swipeScroll.touches.touchmove.x = -1;\r\n\r\n                swipeScroll.options.timeStamp = new Date().getTime();\r\n                swipeScroll.touches.touchend = false;\r\n              case 'touchmove':\r\n                swipeScroll.touches.touchmove.y = touch.pageY;\r\n                swipeScroll.touches.touchmove.x = touch.pageX;\r\n                if(swipeScroll.touches.touchstart.y!==swipeScroll.touches.touchmove.y && (Math.abs(swipeScroll.touches.touchstart.y-swipeScroll.touches.touchmove.y)>Math.abs(swipeScroll.touches.touchstart.x-swipeScroll.touches.touchmove.x))) {\r\n                  //if(!overflow[index]) {\r\n                    event.preventDefault();\r\n                  //}\r\n                  swipeScroll.touches.direction = \"y\";\r\n                  if((swipeScroll.options.timeStamp+swipeScroll.options.timeGap)<(new Date().getTime()) && swipeScroll.touches.touchend == false) {\r\n\r\n                    swipeScroll.touches.touchend = true;\r\n                    if (swipeScroll.touches.touchstart.y > -1) {\r\n\r\n                      if(Math.abs(swipeScroll.touches.touchmove.y-swipeScroll.touches.touchstart.y)>swipeScroll.options.distance) {\r\n                        if(swipeScroll.touches.touchstart.y < swipeScroll.touches.touchmove.y) {\r\n\r\n                          swipeScroll.up();\r\n\r\n                        } else {\r\n                          swipeScroll.down();\r\n\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n                break;\r\n              case 'touchend':\r\n                if(swipeScroll.touches[event.type]===false) {\r\n                  swipeScroll.touches[event.type] = true;\r\n                  if (swipeScroll.touches.touchstart.y > -1 && swipeScroll.touches.touchmove.y > -1 && swipeScroll.touches.direction===\"y\") {\r\n\r\n                    if(Math.abs(swipeScroll.touches.touchmove.y-swipeScroll.touches.touchstart.y)>swipeScroll.options.distance) {\r\n                      if(swipeScroll.touches.touchstart.y < swipeScroll.touches.touchmove.y) {\r\n                        swipeScroll.up();\r\n\r\n                      } else {\r\n                        swipeScroll.down();\r\n\r\n                      }\r\n                    }\r\n                    swipeScroll.touches.touchstart.y = -1;\r\n                    swipeScroll.touches.touchstart.x = -1;\r\n                    swipeScroll.touches.direction = \"undetermined\";\r\n                  }\r\n                }\r\n              default:\r\n                break;\r\n            }\r\n          }\r\n        }\r\n      },\r\n      down: function() {\r\n\r\n        if(index<heights.length) {\r\n\r\n          if(atBottom() && index<heights.length-1) {\r\n\r\n            index++;\r\n            //index, instant, callbacks, toTop\r\n            animateScroll(index,false,true,false);\r\n          } else {\r\n            portHeight = getportHeight();\r\n            if(Math.floor(elements[index].height()/portHeight)>interstitialIndex) {\r\n\r\n              interstitialScroll(parseInt(heights[index])+(portHeight*interstitialIndex));\r\n              interstitialIndex += 1;\r\n\r\n            } else {\r\n              interstitialScroll(parseInt(heights[index])+(elements[index].outerHeight()-portHeight));\r\n            }\r\n\r\n          }\r\n        }\r\n      },\r\n      up: function() {\r\n        if(index>=0) {\r\n          if(atTop() && index>0) {\r\n\r\n            index--;\r\n            //index, instant, callbacks, toTop\r\n            animateScroll(index,false,true,false);\r\n          } else {\r\n\r\n            if(interstitialIndex>2) {\r\n              portHeight = getportHeight();\r\n\r\n              interstitialIndex -= 1;\r\n              interstitialScroll(parseInt(heights[index])+(portHeight*interstitialIndex));\r\n\r\n            } else {\r\n\r\n              interstitialIndex = 1;\r\n              interstitialScroll(parseInt(heights[index]));\r\n            }\r\n          }\r\n\r\n        }\r\n      },\r\n      init: function() {\r\n        if (document.addEventListener && settings.touchScroll) {\r\n          var eventListenerOptions = {\r\n            passive: false\r\n          };\r\n          document.addEventListener('touchstart', swipeScroll.touchHandler, eventListenerOptions);\r\n          document.addEventListener('touchmove', swipeScroll.touchHandler, eventListenerOptions);\r\n          document.addEventListener('touchend', swipeScroll.touchHandler, eventListenerOptions);\r\n        }\r\n      }\r\n    };\r\n\r\n\r\n    util = {\r\n      refresh:function(withCallback,scroll) {\r\n        clearTimeout(timeoutId2);\r\n        timeoutId2 = setTimeout(function() {\r\n          //retain position\r\n          sizePanels(true);\r\n          //scroll, firstLoad\r\n          calculatePositions(scroll,false);\r\n          if(withCallback) {\r\n              settings.afterResize();\r\n          }\r\n        },400);\r\n      },\r\n      handleUpdate:function() {\r\n        //callbacks, scroll\r\n        //changed from false,true to false,false\r\n        util.refresh(false,false);\r\n      },\r\n      handleResize:function() {\r\n        //callbacks, scroll\r\n        util.refresh(true,false);\r\n      },\r\n      handleOrientation:function() {\r\n        //callbacks, scroll\r\n        util.refresh(true,true);\r\n      }\r\n    };\r\n    settings = $.extend(settings, options);\r\n\r\n    //retain position\r\n    sizePanels(false);\r\n\r\n    calculatePositions(false,true);\r\n\r\n    if(true===hasLocation) {\r\n      //index, instant, callbacks, toTop\r\n      animateScroll(index,false,true,true);\r\n    } else {\r\n      setTimeout(function() {\r\n        //instant,callbacks\r\n        manualScroll.calculateNearest(true,false);\r\n      },200);\r\n    }\r\n    if(heights.length) {\r\n      manualScroll.init();\r\n      swipeScroll.init();\r\n\r\n      $window.on(\"resize\",util.handleResize);\r\n      if (document.addEventListener) {\r\n        window.addEventListener(\"orientationchange\", util.handleOrientation, false);\r\n      }\r\n    }\r\n    function interstitialScroll(pos) {\r\n      if( $().velocity ) {\r\n        $(settings.target).stop().velocity('scroll', {\r\n          duration: settings.scrollSpeed,\r\n          easing: settings.easing,\r\n          offset: pos,\r\n          mobileHA: false\r\n        });\r\n      } else {\r\n        $(settings.target).stop().animate({\r\n          scrollTop: pos\r\n        }, settings.scrollSpeed,settings.easing);\r\n      }\r\n    }\r\n\r\n    function sizePanels(keepPosition) {\r\n      if(keepPosition) {\r\n        top = $window.scrollTop();\r\n      }\r\n\r\n      var selector = settings.section;\r\n      overflow = [];\r\n      if(settings.interstitialSection.length) {\r\n        selector += \",\" + settings.interstitialSection;\r\n      }\r\n      if(settings.scrollbars===false) {\r\n        settings.overflowScroll = false;\r\n      }\r\n      portHeight = getportHeight();\r\n      $(selector).each(function(i) {\r\n        var $this = $(this);\r\n\r\n        if(settings.setHeights) {\r\n          if($this.is(settings.interstitialSection)) {\r\n            overflow[i] = false;\r\n          } else {\r\n            if(($this.css(\"height\",\"auto\").outerHeight()<portHeight) || $this.css(\"overflow\")===\"hidden\") {\r\n              $this.css({\"height\":portHeight});\r\n\r\n              overflow[i] = false;\r\n            } else {\r\n\r\n              $this.css({\"height\":$this.height()});\r\n\r\n              if(settings.overflowScroll) {\r\n                overflow[i] = true;\r\n              } else {\r\n                overflow[i] = false;\r\n              }\r\n            }\r\n\r\n          }\r\n\r\n        } else {\r\n\r\n          if(($this.outerHeight()<portHeight) || (settings.overflowScroll===false)) {\r\n            overflow[i] = false;\r\n          } else {\r\n            overflow[i] = true;\r\n          }\r\n        }\r\n      });\r\n      if(keepPosition) {\r\n        $window.scrollTop(top);\r\n      }\r\n    }\r\n    function calculatePositions(scroll,firstLoad) {\r\n      var selector = settings.section;\r\n      if(settings.interstitialSection.length) {\r\n        selector += \",\" + settings.interstitialSection;\r\n      }\r\n      heights = [];\r\n      names = [];\r\n      elements = [];\r\n      $(selector).each(function(i){\r\n          var $this = $(this);\r\n          if(i>0) {\r\n            heights[i] = parseInt($this.offset().top) + settings.offset;\r\n          } else {\r\n            heights[i] = parseInt($this.offset().top);\r\n          }\r\n          if(settings.sectionName && $this.data(settings.sectionName)) {\r\n            names[i] = \"#\" + $this.data(settings.sectionName).toString().replace(/ /g,\"-\");\r\n          } else {\r\n            if($this.is(settings.interstitialSection)===false) {\r\n              names[i] = \"#\" + (i + 1);\r\n            } else {\r\n              names[i] = \"#\";\r\n              if(i===$(selector).length-1 && i>1) {\r\n                heights[i] = heights[i-1] + (parseInt($($(selector)[i-1]).outerHeight()) - parseInt($(window).height())) + parseInt($this.outerHeight());\r\n              }\r\n            }\r\n          }\r\n          elements[i] = $this;\r\n          try {\r\n            if($(names[i]).length && window.console) {\r\n              console.warn(\"Scrollify warning: Section names can't match IDs - this will cause the browser to anchor.\");\r\n            }\r\n          } catch (e) {}\r\n\r\n          if(window.location.hash===names[i]) {\r\n            index = i;\r\n            hasLocation = true;\r\n          }\r\n\r\n      });\r\n\r\n      if(true===scroll) {\r\n        //index, instant, callbacks, toTop\r\n        animateScroll(index,false,false,false);\r\n      }\r\n    }\r\n\r\n    function atTop() {\r\n      if(!overflow[index]) {\r\n        return true;\r\n      }\r\n      top = $window.scrollTop();\r\n      if(top>parseInt(heights[index])) {\r\n        return false;\r\n      } else {\r\n        return true;\r\n      }\r\n    }\r\n    function atBottom() {\r\n      if(!overflow[index]) {\r\n        return true;\r\n      }\r\n      top = $window.scrollTop();\r\n      portHeight = getportHeight();\r\n\r\n      if(top<parseInt(heights[index])+(elements[index].outerHeight()-portHeight)-28) {\r\n\r\n        return false;\r\n\r\n      } else {\r\n        return true;\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n\t\r\n  function move(panel,instant) {\r\n    var z = names.length;\r\n    for(;z>=0;z--) {\r\n      if(typeof panel === 'string') {\r\n        if (names[z]===panel) {\r\n          index = z;\r\n          //index, instant, callbacks, toTop\r\n          animateScroll(z,instant,true,true);\r\n        }\r\n      } else {\r\n        if(z===panel) {\r\n          index = z;\r\n          //index, instant, callbacks, toTop\r\n          animateScroll(z,instant,true,true);\r\n        }\r\n      }\r\n    }\r\n  }\r\n  scrollify.move = function(panel) {\r\n    if(panel===undefined) {\r\n      return false;\r\n    }\r\n    if(panel.originalEvent) {\r\n      panel = $(this).attr(\"href\");\r\n    }\r\n    move(panel,false);\r\n  };\r\n  scrollify.instantMove = function(panel) {\r\n    if(panel===undefined) {\r\n      return false;\r\n    }\r\n    move(panel,true);\r\n  };\r\n  scrollify.next = function() {\r\n    if(index<names.length) {\r\n      index += 1;\r\n      //index, instant, callbacks, toTop\r\n      animateScroll(index,false,true,true);\r\n    }\r\n  };\r\n  scrollify.previous = function() {\r\n    if(index>0) {\r\n      index -= 1;\r\n      //index, instant, callbacks, toTop\r\n      animateScroll(index,false,true,true);\r\n    }\r\n  };\r\n  scrollify.instantNext = function() {\r\n    if(index<names.length) {\r\n      index += 1;\r\n      //index, instant, callbacks, toTop\r\n      animateScroll(index,true,true,true);\r\n    }\r\n  };\r\n  scrollify.instantPrevious = function() {\r\n    if(index>0) {\r\n      index -= 1;\r\n      //index, instant, callbacks, toTop\r\n      animateScroll(index,true,true,true);\r\n    }\r\n  };\r\n  scrollify.destroy = function() {\r\n    if(!initialised) {\r\n      return false;\r\n    }\r\n    if(settings.setHeights) {\r\n      $(settings.section).each(function() {\r\n       $(this).css(\"height\",\"auto\");\r\n\t\t/*   $(this).css({\r\n        \"height\": $(window).height()\r\n    });*/\r\n      });\r\n    }\r\n    $window.off(\"resize\",util.handleResize);\r\n    if(settings.scrollbars) {\r\n      $window.off('mousedown', manualScroll.handleMousedown);\r\n      $window.off('mouseup', manualScroll.handleMouseup);\r\n      $window.off('scroll', manualScroll.handleScroll);\r\n    }\r\n    $window.off(wheelEvent,manualScroll.wheelHandler);\r\n    $window.off('keydown', manualScroll.keyHandler);\r\n\r\n    if (document.addEventListener && settings.touchScroll) {\r\n      document.removeEventListener('touchstart', swipeScroll.touchHandler, false);\r\n      document.removeEventListener('touchmove', swipeScroll.touchHandler, false);\r\n      document.removeEventListener('touchend', swipeScroll.touchHandler, false);\r\n    }\r\n    heights = [];\r\n    names = [];\r\n    elements = [];\r\n    overflow = [];\r\n  };\r\n  scrollify.update = function() {\r\n    if(!initialised) {\r\n      return false;\r\n    }\r\n    util.handleUpdate();\r\n  };\r\n  scrollify.current = function() {\r\n    return elements[index];\r\n  };\r\n  scrollify.currentIndex = function() {\r\n    return index;\r\n  };\r\n  scrollify.disable = function() {\r\n    disabled = true;\r\n  };\r\n  scrollify.enable = function() {\r\n    disabled = false;\r\n    if (initialised) {\r\n      //instant,callbacks\r\n      manualScroll.calculateNearest(false,false);\r\n    }\r\n  };\r\n  scrollify.isDisabled = function() {\r\n    return disabled;\r\n  };\r\n  scrollify.setOptions = function(updatedOptions) {\r\n    if(!initialised) {\r\n      return false;\r\n    }\r\n    if(typeof updatedOptions === \"object\") {\r\n      settings = $.extend(settings, updatedOptions);\r\n      util.handleUpdate();\r\n    } else if(window.console) {\r\n      console.warn(\"Scrollify warning: setOptions expects an object.\");\r\n    }\r\n  };\r\n  $.scrollify = scrollify;\r\n  return scrollify;\r\n}));\r\n"],"names":["next","currentIndex","require","$","on","event","slick","currentSlide","nextSlide","type","toArray","forEach","e","i","addClass","dotSize","currentSlideIndex","totalDots","document","querySelectorAll","length","setTimeout","changeDots","element","dotShown","activeDotIndex","currentDotIndex","dotsTobeShown","min","max","shouldDotBeShown","removeClass","className","match","join","console","log","getDotSize","async","gotoNextSlideListener","$slider","investorType","val","onVideoLoaded","video","this","mozHasAudio","Boolean","webkitAudioDecodedByteCount","audioTracks","show","hide","removeEventListener","hasClass","_","prevSlideNumber","newSlideNumber","find","each","pause","isNaN","currentTime","firstVideo","get","swapVideoSource","window","innerWidth","play","call","addEventListener","loop","videoChange","l","videoSliders","html","array","randomIndex","Math","floor","random","shuffle","autoplay","slidesToShow","slidesToScroll","arrows","prevArrow","nextArrow","dots","draggable","dotsClass","swipe","mobileFirst","responsive","breakpoint","settings","currVideo","click","videos","parent","x","muted","loadVideoCarousel","global","define","undefined","timeoutId","timeoutId2","portHeight","manualScroll","swipeScroll","util","heights","names","elements","overflow","index","interstitialIndex","hasLocation","$window","top","scrollTop","scrollable","locked","scrolled","disabled","scrollSamples","scrollTime","Date","getTime","firstLoad","initialised","destination","wheelEvent","onmousewheel","section","sectionName","interstitialSection","easing","scrollSpeed","offset","scrollbars","target","standardScrollElements","setHeights","overflowScroll","updateHash","touchScroll","before","after","afterResize","afterRender","getportHeight","height","animateScroll","instant","callbacks","toTop","parseInt","outerHeight","history","pushState","replaceState","warn","location","hash","stop","velocity","duration","mobileHA","animate","promise","done","isAccelerating","samples","average","num","sum","lastElements","slice","ceil","scrollify","options","interstitialScroll","pos","sizePanels","keepPosition","selector","$this","is","css","calculatePositions","scroll","data","toString","replace","atTop","atBottom","t","b","c","d","pow","handleMousedown","handleMouseup","calculateNearest","handleScroll","clearTimeout","diff","closest","prev","abs","wheelHandler","preventDefault","currentScrollTime","value","originalEvent","wheelDelta","deltaY","detail","delta","shift","push","keyHandler","activeElement","readOnly","keyCode","init","touches","touchHandler","touch","touchstart","y","pageY","touchmove","pageX","timeStamp","touchend","direction","timeGap","distance","up","down","eventListenerOptions","passive","refresh","withCallback","handleUpdate","handleResize","handleOrientation","extend","move","panel","z","attr","instantMove","previous","instantNext","instantPrevious","destroy","off","update","current","disable","enable","isDisabled","setOptions","updatedOptions","factory"],"sourceRoot":""}