function setActiveCarouselItem(card){ var $target = $(card).find('.carousel-item:first'); $target.addClass('active'); } function initTestimonialsCarousel(card){ var $target = $(card), $carouselID = $target.attr('ID') +"-carousel"; $target.find('.carousel').attr('id',$carouselID); $target.find('.carousel-controls a').attr('href','#'+$carouselID); $target.find('.carousel-indicators li').attr('data-target','#'+$carouselID); setActiveCarouselItem($target); } function initClientCarousel(card){ var $target = $(card), countElems = $target.find('.carousel-item').length, visibleSlides = $target.find('.carousel-inner').attr('data-visible'); if (countElems < visibleSlides){ visibleSlides = countElems; } $target.find('.carousel-inner').attr('class', 'carousel-inner slides' + visibleSlides); $target.find('.clonedCol').remove(); $target.find('.carousel-item .col-md-12').each(function() { if (visibleSlides < 2) { $(this).attr('class', 'col-md-12'); } else if (visibleSlides == '5') { $(this).attr('class', 'col-md-12 col-lg-15'); } else { $(this).attr('class', 'col-md-12 col-lg-' + 12 / visibleSlides); } }); $target.find('.carousel-item').each(function() { var itemToClone = $(this); for (var i = 1; i < visibleSlides; i++) { itemToClone = itemToClone.next(); if (!itemToClone.length) { itemToClone = $(this).siblings(':first'); } var index = itemToClone.index(); itemToClone.find('.col-md-12:first').clone().addClass('cloneditem-' + i).addClass('clonedCol').attr('data-cloned-index', index).appendTo($(this).children().eq(0)); } }); } function updateClientCarousel(card){ var $target = $(card), countElems = $target.find('.carousel-item').length, visibleSlides = $target.find('.carousel-inner').attr('data-visible'); if (countElems < visibleSlides){ visibleSlides = countElems; } $target.find('.clonedCol').remove(); $target.find('.carousel-item').each(function() { var itemToClone = $(this); for (var i = 1; i < visibleSlides; i++) { itemToClone = itemToClone.next(); if (!itemToClone.length) { itemToClone = $(this).siblings(':first'); } var index = itemToClone.index(); itemToClone.find('.col-md-12:first').clone().addClass('cloneditem-' + i).addClass('clonedCol').attr('data-cloned-index', index).appendTo($(this).children().eq(0)); } }); } function clickHandler(e){ e.stopPropagation(); e.preventDefault(); var $target = $(e.target); var curItem; var curIndex; if ($target.closest('.clonedCol').length) { curItem = $target.closest('.clonedCol'); curIndex = curItem.attr('data-cloned-index'); } else { curItem = $target.closest('.carousel-item'); curIndex = curItem.index(); } var item = $($target.closest('.carousel-inner').find('.carousel-item')[curIndex]).find('img')[0]; if ($target.parents('.clonedCol').length > 0) { item.click(); } } // initialization var isBuilder = $('html').hasClass('is-builder'); if (isBuilder) { $(document).on('add.cards', function(event) { if (!$(event.target).hasClass('clients')) { return; } initTestimonialsCarousel(event.target); initClientCarousel(event.target); if (event.type === 'add') { $(event.target).on('slide.bs.carousel', function() { updateClientCarousel(event.target); }); } $(event.target).find('.carousel-item [gime-media]').on('click', function(e) { clickHandler(e); }); $(event.target).on('slide.bs.carousel', function() { $(event.target).find('.carousel-item .clonedCol [gime-media]').off('click').on('click', function(e) { clickHandler(e); }); }); }).on('changeParameter.cards', function(event, paramName,value) { if (paramName=='slidesCount'){ if ($(event.target).find('.carousel-item.active').length==0) { setActiveCarouselItem(event.target); } } initClientCarousel(event.target); updateClientCarousel(event.target); $(event.target).find('.carousel-item [gime-media]').on('click', function(e) { clickHandler(e); }); $(event.target).on('slide.bs.carousel', function() { $(event.target).find('.carousel-item .clonedCol [gime-media]').off('click').on('click', function(e) { clickHandler(e); }); }); }).on('changeContent.cards', function(event,type) { updateClientCarousel(event.target); try{ $(event.target).closest('.carousel').carousel('next'); }catch(err){} }); } else{ if(typeof window.initClientPlugin === 'undefined'){ window.initClientPlugin = true; $(document.body).find('.clients').each(function(index, el) { if(!$(this).attr('data-isinit')){ initTestimonialsCarousel($(this)); initClientCarousel($(this)); } }); } }