').appendTo($slider), animate = { up: 'animate__animated animate__fadeInUp', left: 'animate__animated animate__slideInLeft', right: 'animate__animated animate__slideInRight' }, getCaption = function($figcaption){ return { video: $figcaption.data('isvideo') || false, showplayicon: $figcaption.data('showplayicon') || false, title: $figcaption.data('title') || '', description: $figcaption.data('description') || '', byline: $figcaption.data('byline') || '' } }, getCaptionHTML = function(animation, caption) { return ['
', caption.video && caption.showplayicon ? '' : '', caption.title ? '
'+caption.title+'
' : '' , caption.description ? '
'+caption.description+'
' : '' , caption.byline ? '
'+caption.byline+'
' : '', '
'].join(''); }, populateCaption = function($slide, $clones, animation, currentSlide){ let ani = animation || animate.up; let caption = getCaption($slide.find('figcaption').eq(0)); $slide.find('figcaption').html(getCaptionHTML(ani, caption)); if($clones) $clones.find('figcaption').html(getCaptionHTML(ani, caption)); if (currentSlide == undefined) currentSlide = 1; $slide.find('a.' + $slide.attr('class').replace('35929', 'content')).attr('title', caption.title + ', Slide ' + currentSlide + ' of 6') }, populateSlideCount = function (currentSlide, count) { $slider.find('.flex-control-nav').css('display','none'); $slideCount.html('Slide ' + currentSlide + ' of ' + count); }; populateCaption($slider.find('li:eq(0)')); //initial state animation $slider.removeAttr("style"); if (6 > 1) { let animationLoop = window.navigator.userAgent.match(/(MSIE|Trident)/) ? false : true; $slider.flexslider({ slideshowSpeed: 7000, slideshow: true, animationLoop: animationLoop, animation: "slide", controlNav: showControlNav, directionNav: true, touch: true, start: function(slider){ if (!showControlNav) populateSlideCount(slider.animatingTo + 1, 6); }, before: function(slider){ let $slide = slider.find('li:not(.clone):eq('+slider.animatingTo +')'); let $clones = slider.find('.clone'); let animation = slider.direction === 'next' ? animate.right : animate.left; populateCaption($slide, $clones, animation, slider.animatingTo + 1); }, after: function(slider){ if (!showControlNav) populateSlideCount(slider.animatingTo + 1, 6); } }); } initDVIDSBackground35929(); initPortraitImages35929();});function initPortraitImages35929(){ $('#focal-point-hero-wrap-35929').find('figure img').each(function(){ handlePortraits($(this)); function handlePortraits($this){ let img = new Image(); let src = $this[0].src; let $blur = '
'; img.onload = function() { if(this.height > this.width){ $this.closest('picture').addClass('portrait').append($blur); } } img.src = src; } });}/* DVIDS background video */function initDVIDSBackground35929(){ $('#focal-point-hero-wrap-35929').find('.dvids-video-background video').each(function(){ let $this = $(this); const data = $this.data('video'); let sources = ''; let lastIndex = data.results.files.length-1; const bgVideoStart = $this.attr('data-start'); const bgVideoEnd = $this.attr('data-end'); var watchCurrentTime; $this[0].onloadeddata = function(){ $this.closest('picture').find('img, .bg-image-fallback').fadeOut(); }; $this[0].addEventListener('loadedmetadata', function(event) { event.target.currentTime = bgVideoStart; }, false); $this[0].addEventListener('canplay', function (event) { event.target.play(); if(watchCurrentTime) clearInterval(watchCurrentTime); watchCurrentTime = setInterval(function (){ const videoDuration = event.target.duration const videoCurrentTime = event.target.currentTime; const timeDifference = videoDuration - videoCurrentTime; if(videoCurrentTime > bgVideoEnd || event.target.paused){ event.target.currentTime = bgVideoStart; if(event.target.paused) event.target.play(); //IE11 will pause after a half a sec or so if this is in a carousel due to other manipulation so force play return; } }, 1000); }); $this[0].addEventListener('loadedmetadata', function(event) { try { event.target.currentTime = bgVideoStart; } catch (err) { return; } }, false); sources += '