function UCMarquee(marquee) {
var g_marquee;
function cloneSlider() {
Array.prototype.forEach.call(g_marquee, item => {
var parent = item
var slide = item.children
Array.prototype.forEach.call(slide, item => {
parent.appendChild(item.cloneNode(true))
})
})
}
function wrapSlides() {
Array.prototype.forEach.call(g_marquee, item => {
item.innerHTML = '
' + item.innerHTML + '
'
})
}
function setWidth() {
Array.prototype.forEach.call(g_marquee, parentItem => {
//make sure that parentItem is displayed on a page before measure its width
parentItem.style.display = "flex";
var parentWidth = parentItem.offsetWidth;
var slide = parentItem.querySelectorAll('.uc_logo_marquee_holder');
var viewportWidth = parseInt(window.innerWidth);
var isBreakPoint = function (breakpoint) {
var breakpointsArray = [319, 767, 1024, 1920];
var breakpointsArrayLength = breakpointsArray.length;
var min, max;
for (var i = 0; i < breakpointsArrayLength; i++) {
if (breakpointsArray[i] === breakpoint) {
min = breakpointsArray[i-1] || 0
max = breakpointsArray[i]
break
}
}
return viewportWidth > min && viewportWidth <= max
}
var dataHeight = parseInt(jQuery(parentItem).attr('data-height'));
var dataMarginDesktop = jQuery(parentItem).data('desktop-margin');
var dataMarginTablet = jQuery(parentItem).data('tablet-margin');
var dataMarginMobile = jQuery(parentItem).data('mobile-margin');
var dataItemsNumberMobile = jQuery(parentItem).data('mobile-items');
var dataItemsNumberTablet = jQuery(parentItem).data('tablet-items');
var dataItemsNumberDesktop = jQuery(parentItem).data('desktop-items');
var direction = jQuery(parentItem).data('direction');
var widthType = jQuery(parentItem).attr('data-widthtype');
if (direction == 'up' || direction == 'down'){
if (isBreakPoint(767))
parentItem.style.height = (dataHeight + dataMarginMobile) * dataItemsNumberMobile + 'px'
if (isBreakPoint(1024))
parentItem.style.height = (dataHeight + dataMarginTablet) * dataItemsNumberTablet + 'px'
if (isBreakPoint(1920) || viewportWidth > 1920 )
parentItem.style.height = (dataHeight + dataMarginDesktop) * dataItemsNumberDesktop + 'px'
}
parentItem.style.display = "none";
Array.prototype.forEach.call(slide, item => {
if(direction == 'right' || direction == 'left'){
if (isBreakPoint(767))
item.style.marginRight = dataMarginMobile + 'px'
if (isBreakPoint(1024))
item.style.marginRight = dataMarginTablet + 'px'
if (isBreakPoint(1920) || viewportWidth > 1920 )
item.style.marginRight = dataMarginDesktop + 'px'
}
if(direction == 'up' || direction == 'down'){
if (isBreakPoint(767))
item.style.marginTop = dataMarginMobile + 'px'
if (isBreakPoint(1024))
item.style.marginTop = dataMarginTablet + 'px'
if (isBreakPoint(1920) || viewportWidth > 1920 )
item.style.marginTop = dataMarginDesktop + 'px'
}
if(direction == 'right' || direction == 'left' ){
var calculatedWidth;
if (isBreakPoint(767))
calculatedWidth = (parentWidth / dataItemsNumberMobile) - dataMarginMobile;
if (isBreakPoint(1024))
calculatedWidth = (parentWidth / dataItemsNumberTablet) - dataMarginTablet;
if (isBreakPoint(1920) || (viewportWidth > 1920))
calculatedWidth = (parentWidth / dataItemsNumberDesktop) - dataMarginDesktop;
if (widthType === 'dynamic') {
item.style.width = 'auto';
item.style.flex = '0 0 auto';
} else {
item.style.width = calculatedWidth + 'px';
item.style.maxWidth = '';
}
}
})
setTimeout(function(){
parentItem.style.display = "flex";
},200);
})
}
function setAnimationOptions() {
Array.prototype.forEach.call(g_marquee, item => {
var speed = jQuery(item).data('speed');
var marqueeList = item.children[0]
var slidesAmount = marqueeList.children.length / 4
var marqueeSpeed = speed * slidesAmount
marqueeList.style.animationDuration = marqueeSpeed / 1000 + 's'
marqueeList.style.WebkitAnimationDuration = marqueeSpeed / 1000 + 's'
var paused = jQuery(item).data('paused');
if (paused) {
marqueeList.onmouseenter = (event) => {
event.target.style.animationPlayState = 'paused'
event.target.style.WebkitAnimationPlayState = 'paused'
}
marqueeList.onmouseleave = (event) => {
event.target.style.animationPlayState = ''
event.target.style.WebkitAnimationPlayState = ''
}
}
})
}
function init() {
g_marquee = marquee;
cloneSlider()
cloneSlider()
setWidth()
wrapSlides()
setAnimationOptions()
var width = jQuery(window).width();
window.addEventListener('resize', function() {
if (jQuery(this).width() != width) {
width = jQuery(this).width();
setWidth()
}
})
}
init()
}