').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('41629', 'content')).attr('title', caption.title + ', Slide ' + currentSlide + ' of 3')
},
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 (3 > 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, 3);
},
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, 3);
}
});
}
initDVIDSBackground41629();
initPortraitImages41629();
});
function initPortraitImages41629(){
$('#focal-point-hero-wrap-41629').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 initDVIDSBackground41629(){
$('#focal-point-hero-wrap-41629').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 += '