jQuery(function($) {TestimonialsModuleInitialize_Layout1_Layout8_Layout9();});function TestimonialsModuleInitialize_Layout1_Layout8_Layout9() {$(document).on('s123.page.ready', function( event ) {var $sections = $('.s123-module-testimonials.layout-1, .s123-module-testimonials.layout-8, .s123-module-testimonials.layout-9');$sections.each(function( index ) {var $s = $(this);var $carousel = $s.find('[data-ride="carousel"]');var layout_customize = $s.find('.layout-customize').length > 0 ? tryParseJSON($s.find('.layout-customize').val()) : '';var testimonialsInterval = 10000;if ( layout_customize != '' ) {testimonialsInterval = layout_customize.testimonialsInterval * 1000;}
$carousel.carousel({interval: isMobileDevice.any() ? false : testimonialsInterval});$carousel.find('.carousel-control.left').click(function() {$carousel.carousel('prev');});$carousel.find('.carousel-control.right').click(function() {$carousel.carousel('next');});$carousel.find('.carousel-indicators li').click(function(){$carousel.carousel($(this).data('slide-to'));});});});$( document ).on( "s123.page.load", function( event ) {setTestimonialsHeight();});if ( IsWizard() ) {$(document).on('wizard.preview.device.changed', function( event ) {setTestimonialsHeight();});}
function setTestimonialsHeight() {var $sections = $('.s123-module-testimonials.layout-1, .s123-module-testimonials.layout-8, .s123-module-testimonials.layout-9');$sections.each(function( index ) {var $s = $(this);var $carousel = $s.find('[data-ride="carousel"]');$carousel.find('.item, .testimonial-image').css({ minHeight: '' });if ( !IsIE11() ) {var selector = $s.hasClass('layout-8') && findBootstrapEnvironment() !== 'xs' ? '.testimonial-image' : '.item';$carousel.find(selector).css({minHeight: Math.max.apply(Math, $carousel.find('.item').map(function() { return $(this).outerHeight(); }))});}});}}
jQuery(function($) {TestimonialsModuleInitialize_Layouts();setTimeout(function() {var $globalSections = $('.global-layout-2');if ($globalSections.length > 0 && typeof window.GlobalLayout2 === 'undefined') {const script = document.createElement('script');script.src = '/versions/2/wizard/modules/globalLayouts/globalLayout-vertical-scroll/js/module.globalLayout-2.js';document.head.appendChild(script);}}, 500);});function TestimonialsModuleInitialize_Layouts() {$(document).on('s123.page.ready', function( event ) {var $sections = $('.s123-module-testimonials');$sections.each(function( index ) {var $s = $(this);var $categories = $s.find('.testimonials-category');var categories = new ModuleLayoutCategories({$items :  $s.find('.testimonials-category'),$categoriesContainer : $s.find('.categories-panel'),$filterButton : $s.find('.items-responsive-filter'),$categories : $s.find('.items-categories-container li')});if ($s.hasClass('layout-13')) {initializeTestimonialsLayout13($s);}
if ($s.hasClass('layout-14') && $s.hasClass('global-layout-2')) {if (typeof window.GlobalLayout2 === 'undefined') {const script = document.createElement('script');script.src = '/versions/2/wizard/modules/globalLayouts/globalLayout-vertical-scroll/js/module.globalLayout-2.js';script.onload = function() {if (typeof window.GlobalLayout2 !== 'undefined') {window.GlobalLayout2.initialize();}};document.head.appendChild(script);} else {if (typeof window.GlobalLayout2.initialize === 'function') {window.GlobalLayout2.initialize();}}}});});}
function initializeTestimonialsLayout13($section) {var $rows = $section.find('.testimonials-row[data-animate="true"]');if ($rows.length === 0) return;function adjustAnimationForScreenSize() {$rows.each(function() {var $row = $(this);var $grid = $row.find('.testimonials-grid');var baseDuration = parseFloat($row.attr('data-animation-duration')) || 30;var totalItems = parseInt($row.attr('data-total-items')) || 0;var originalItems = parseInt($row.attr('data-original-items')) || 0;if (totalItems === 0 || originalItems === 0) return;var screenWidth = $(window).width();var baseScreenWidth = 1920; // Desktop width used in PHP calculation
var itemWidth = screenWidth <= 767 ? 250 : 280; // Mobile vs Desktop
var screenRatio = baseScreenWidth / screenWidth;var adjustedDuration = baseDuration * Math.sqrt(screenRatio); // Use sqrt for gentler scaling
var itemsOnScreen = Math.ceil(screenWidth / itemWidth);var itemRatio = Math.min(originalItems / itemsOnScreen, 3); // Cap at 3x
if (itemRatio < 1.5) {adjustedDuration *= 1.2; // 20% slower for sparse layouts
}
adjustedDuration = Math.max(9, Math.min(adjustedDuration, 106));$grid.css('animation-duration', adjustedDuration + 's');});}
adjustAnimationForScreenSize();var resizeTimer;$(window).on('resize', function() {clearTimeout(resizeTimer);resizeTimer = setTimeout(function() {adjustAnimationForScreenSize();}, 250);});}
jQuery(function($) {TestimonialsModuleInitialize_Layout12();});function TestimonialsModuleInitialize_Layout12() {$(document).on('s123.page.ready', function( event ) {var $sections = $('.s123-module-testimonials.layout-12');$sections.each(function( index ) {var $s = $(this);var $categories = $s.find('.testimonials-category');var categories = new ModuleLayoutCategories({$items :  $s.find('.testimonials-category'),$categoriesContainer : $s.find('.categories-panel'),$filterButton : $s.find('.items-responsive-filter'),$categories : $s.find('.items-categories-container li')});var $carousel = $($s.find('.testimonials-continuous-slider').get(0));var slidesToShow = whatScreen.any() == 'mobile' ? 1 : 3;$(window).on('resize', function() {if (whatScreen.any() == 'mobile') {slidesToShow = 1;} else {slidesToShow = 3;}
$carousel.slick('destroy');testimonialsLayout12Slick($carousel,slidesToShow);});if ( !$carousel.hasClass('slick-initialized') ) {testimonialsLayout12Slick($carousel,slidesToShow);}
$s.on('module_layout_categories.show', function (event, category) {$carousel.slick('destroy');$carousel = $s.find('.testimonials-category[data-categories-filter="'+category+'"] .testimonials-continuous-slider');if ( !$carousel.hasClass('slick-initialized') ) {testimonialsLayout12Slick($carousel,slidesToShow);}});});});}
function testimonialsLayout12Slick( $carousel, slidesToShow ) {$carousel.slick({slidesToShow: slidesToShow,  // number of slides to show at once
slidesToScroll: 1,  // number of slides to scroll at once
autoplay: true,infinite: true,speed: 8000,  // speed of the transition, play with this value to achieve desired effect
autoplaySpeed: 0,  // no delay between auto-play transitions
cssEase: 'linear',  // this gives the linear movement between slides
arrows: false,  // optional: disable arrows
pauseOnHover: true,  // optional: prevent pause when hover
draggable: false,centerMode: false,rtl: $('html').attr('dir') == 'rtl' ? true : false,adaptiveHeight: true});}
jQuery(function($) {TestimonialsModuleInitialize_Layout16();});function TestimonialsModuleInitialize_Layout16() {$(document).on('s123.page.ready', function(event) {var $sections = $('.s123-module-testimonials.layout-16');$sections.each(function(index) {var $s = $(this);var $categories = $s.find('.testimonials-category');var layout_customize = $s.find('.layout-customize').length > 0 ? tryParseJSON($s.find('.layout-customize').val()) : '';var categories = new ModuleLayoutCategories({$items: $s.find('.testimonials-category'),$categoriesContainer: $s.find('.categories-panel'),$filterButton: $s.find('.items-responsive-filter'),$categories: $s.find('.items-categories-container li')});$categories.each(function(catIndex) {var $category = $(this);initializeTestimonialStack($category, layout_customize);});});});}
function initializeTestimonialStack($category, layout_customize) {if ($category.data('testimonials-initialized')) {return;}
var $cards = $category.find('.testimonial-card');var $prevBtn = $category.find('.testimonials-stack-prev');var $nextBtn = $category.find('.testimonials-stack-next');var autoRotateInterval = null;var isAnimating = false;var isMouseHovering = false;var isEditableFocused = false;var rotationInterval = 10000;if ($cards.length === 0) return;var categoryId = $category.attr('data-categories-filter') || 'default-' + Math.random().toString(36).substr(2, 9);var visibilityEventName = 'visibilitychange.testimonials-' + categoryId;$category.data('testimonials-initialized', true);var allItems = [];$cards.each(function(index) {allItems.push({element: $(this),uniqueId: $(this).data('unique-id'),itemIndex: $(this).data('item-index')});});var currentIndex = 0;var totalItems = allItems.length;var cardCountClass = 'cards-' + Math.min(totalItems, 5);$category.find('.testimonials-stack-wrapper').addClass(cardCountClass);function rotateForward() {if (document.hidden) return;if (isAnimating || totalItems <= 1) return;isAnimating = true;$cards.addClass('animating');var maxPosition = totalItems - 1; // Highest position (e.g., 5 for 6 cards)
var movedCardId = null;$cards.each(function() {var $card = $(this);var currentPos = parseInt($card.attr('data-stack-position'));if (currentPos === maxPosition) {$card.attr('data-stack-position', 0);movedCardId = $card.data('unique-id');}});setTimeout(function() {if (document.hidden) {$cards.removeClass('animating');isAnimating = false;return;}
$cards.each(function() {var $card = $(this);var currentPos = parseInt($card.attr('data-stack-position'));var cardId = $card.data('unique-id');if (cardId !== movedCardId && currentPos !== maxPosition) {var newPos = currentPos + 1;$card.attr('data-stack-position', newPos);}});}, 200);currentIndex = (currentIndex - 1 + totalItems) % totalItems;setTimeout(function() {if (document.hidden) {$cards.removeClass('animating');isAnimating = false;return;}
$cards.removeClass('animating');isAnimating = false;}, 700);}
function rotateBackward() {if (document.hidden) return;if (isAnimating || totalItems <= 1) return;isAnimating = true;$cards.addClass('animating');var maxPosition = totalItems - 1; // Highest position (e.g., 5 for 6 cards)
var movedCardId = null;$cards.each(function() {var $card = $(this);var currentPos = parseInt($card.attr('data-stack-position'));if (currentPos === 0) {$card.attr('data-stack-position', maxPosition);movedCardId = $card.data('unique-id');}});setTimeout(function() {if (document.hidden) {$cards.removeClass('animating');isAnimating = false;return;}
$cards.each(function() {var $card = $(this);var currentPos = parseInt($card.attr('data-stack-position'));var cardId = $card.data('unique-id');if (cardId !== movedCardId && currentPos > 0) {var newPos = currentPos - 1;$card.attr('data-stack-position', newPos);}});}, 200);currentIndex = (currentIndex + 1) % totalItems;setTimeout(function() {if (document.hidden) {$cards.removeClass('animating');isAnimating = false;return;}
$cards.removeClass('animating');isAnimating = false;}, 700);}
function shouldPauseRotation() {return isMouseHovering || isEditableFocused;}
function updateRotationState() {if (shouldPauseRotation()) {stopAutoRotate();} else {startAutoRotate();}}
function startAutoRotate() {if (shouldPauseRotation()) {return;}
stopAutoRotate();if (totalItems > 1) {autoRotateInterval = setInterval(function() {rotateForward();}, rotationInterval); // 10 seconds
}}
function stopAutoRotate() {if (autoRotateInterval) {clearInterval(autoRotateInterval);autoRotateInterval = null;}}
function resetAutoRotate() {stopAutoRotate();startAutoRotate();}
$nextBtn.on('click', function(e) {e.preventDefault();rotateForward();resetAutoRotate();});$prevBtn.on('click', function(e) {e.preventDefault();rotateBackward();resetAutoRotate();});$cards.on('mouseenter', function() {isMouseHovering = true;updateRotationState();});$cards.on('mouseleave', function() {isMouseHovering = false;updateRotationState();});$category.on('focus', '[data-inline-edit-field]', function() {isEditableFocused = true;updateRotationState();});$category.on('blur', '[data-inline-edit-field]', function() {isEditableFocused = false;updateRotationState();});$category.find('.testimonial-favicon-link[data-rel="tooltip"]').each(function() {if (typeof $(this).tooltip === 'function') {$(this).tooltip();}});$(document).on('keydown', function(e) {if (!$category.is(':visible')) return;if ( isEditableFocused ) return;if (e.keyCode === 37) {rotateBackward();resetAutoRotate();} else if (e.keyCode === 39) {rotateForward();resetAutoRotate();}});startAutoRotate();$(document).off(visibilityEventName).on(visibilityEventName, function() {if (document.hidden) {stopAutoRotate();$cards.removeClass('animating');isAnimating = false;} else {if ($category.is(':visible')) {isAnimating = false; // Ensure flag is reset
updateRotationState();}}});$category.on('module_layout_categories.hide', function() {stopAutoRotate();$(document).off(visibilityEventName);$category.removeData('testimonials-initialized');});$category.on('module_layout_categories.show', function() {updateRotationState();});}
jQuery(function($) {GlobalCarouselModuleInitialize();});function GlobalCarouselModuleInitialize() {$( document ).on( "module_layout_categories.shown", function( event, categoryFilter ) {requestAnimationFrame(function() {var $visibleCarousels = $('.global-carousel-category[data-categories-filter="' + categoryFilter + '"] .s123-module-global-carousel-slider');$visibleCarousels.each(function() {var $carousel = $(this);var $section = $carousel.closest('.s123-module');var layout_customize = $section.find('.layout-customize').length > 0 ? tryParseJSON($section.find('.layout-customize').val()) : '';var intervalSetting = layout_customize && (layout_customize.carouselInterval || layout_customize.testimonialsInterval);var globalCarouselInterval = intervalSetting ? intervalSetting * 1000 : 10000;var carouselId = $carousel.attr('data-carousel-id') || 'unknown';if (!$carousel.data('carousel-initialized')) {initializeGlobalCarousel($carousel, globalCarouselInterval);} else {$carousel.data('currentIndex', 0);var $dots = $carousel.find('.s123-module-global-carousel-dot');$dots.removeClass('active').first().addClass('active');var $track = $carousel.find('.s123-module-global-carousel-track');if ($track.length > 0) {$track.css('transition', 'transform 0.5s ease');$track.css('transform', 'translateX(0px)');}}
bindCarouselArrowEvents($carousel);if (typeof S123 !== 'undefined' && S123.s123IconToSvg) {$(document).trigger('s123.page.ready.s123IconToSvg');}});setGlobalCarouselHeight();});});$(document).on('s123.page.ready', function( event ) {var $sections = $('.s123-module').has('.s123-module-global-carousel-slider');$sections.each(function() {var $s = $(this);if ($s.find('.items-categories-container li').length > 0) {var categories = new ModuleLayoutCategories({$items: $s.find('.global-carousel-category'),$categoriesContainer: $s.find('.s123-categories'),$filterButton: $s.find('.items-responsive-filter'),$categories: $s.find('.items-categories-container li')});}});var $carousels = $('.s123-module-global-carousel-slider').filter(function() {return $(this).closest('.global-carousel-category').is(':visible');});$carousels.each(function( index ) {var $carousel = $(this);var $section = $carousel.closest('.s123-module');var layout_customize = $section.find('.layout-customize').length > 0 ? tryParseJSON($section.find('.layout-customize').val()) : '';var globalCarouselInterval = 10000;if ( layout_customize != '' ) {var intervalSetting = layout_customize.carouselInterval || layout_customize.testimonialsInterval;if (intervalSetting) {globalCarouselInterval = intervalSetting * 1000;}}
initializeGlobalCarousel($carousel, globalCarouselInterval);bindCarouselArrowEvents($carousel);if (typeof S123 !== 'undefined' && S123.s123IconToSvg) {$(document).trigger('s123.page.ready.s123IconToSvg');}});});$( document ).on( "s123.page.load", function( event ) {setGlobalCarouselHeight();});if ( IsWizard() ) {$(document).on('wizard.preview.device.changed', function( event ) {setGlobalCarouselHeight();});}}
function bindCarouselArrowEvents($carousel) {var isRTL = $('html').attr('dir') === 'rtl';var carouselId = $carousel.attr('data-carousel-id') || 'default';$carousel.find('.s123-module-global-carousel-arrow-right, .s123-module-global-carousel-arrow-left, .s123-module-global-carousel-dot').off('click.globalCarousel' + carouselId);$carousel.find('.s123-module-global-carousel-arrow-right').on('click.globalCarousel' + carouselId, function(e) {e.preventDefault();e.stopPropagation();if (isRTL) {$carousel.trigger('globalCarousel.next');} else {$carousel.trigger('globalCarousel.next');}});$carousel.find('.s123-module-global-carousel-arrow-left').on('click.globalCarousel' + carouselId, function(e) {e.preventDefault();e.stopPropagation();if (isRTL) {$carousel.trigger('globalCarousel.prev');} else {$carousel.trigger('globalCarousel.prev');}});$carousel.find('.s123-module-global-carousel-dot').on('click.globalCarousel' + carouselId, function(e){e.preventDefault();e.stopPropagation();$carousel.trigger('globalCarousel.goTo', $(this).data('slide-to'));});}
function initializeGlobalCarousel($carousel, globalCarouselInterval) {var $track = $carousel.find('.s123-module-global-carousel-track');var $slides = $carousel.find('.s123-module-global-carousel-slide');var $dots = $carousel.find('.s123-module-global-carousel-dot');if ($carousel.data('carousel-initialized')) {return;}
$carousel.data('carousel-initialized', true);var originalSlides = parseInt($carousel.attr('data-original-slides')) || $slides.length;var totalSlides = $slides.length;$carousel.data('currentIndex', 0);$carousel.data('originalSlides', originalSlides);$carousel.data('totalSlides', totalSlides);var slideWidth = $slides.first().outerWidth();var slideGap = 20;var slideStep = slideWidth + slideGap;var originalItemsData = [];try {originalItemsData = JSON.parse($carousel.attr('data-original-items') || '[]');} catch(e) {console.error('Failed to parse original items data');}
$carousel.data('originalItemsData', originalItemsData);function addClonesAtEnd() {var originalSlides = $carousel.data('originalSlides');var $currentSlides = $track.find('.s123-module-global-carousel-slide');var currentCount = $currentSlides.length;for (var i = 0; i < originalSlides; i++) {var $originalSlide = $currentSlides.eq(i);var $clone = $originalSlide.clone(true);$clone.attr('data-slide-index', currentCount + i);$clone.attr('data-is-clone', 'true');$track.append($clone);}
$carousel.data('totalSlides', $track.find('.s123-module-global-carousel-slide').length);if (typeof lazyLoadInit === 'function') {lazyLoadInit();}}
function recalculateDimensions() {var $currentSlides = $track.find('.s123-module-global-carousel-slide');if ($currentSlides.length === 0) return;slideWidth = $currentSlides.first().outerWidth();slideStep = slideWidth + slideGap;var windowWidth = $(window).width();if (windowWidth >= 768 && windowWidth <= 1024) {slideGap = 18;slideStep = slideWidth + slideGap;} else if (windowWidth <= 767) {slideGap = 15;slideStep = slideWidth + slideGap;} else {slideGap = 20;slideStep = slideWidth + slideGap;}}
function updateSliderPosition(instant) {var isRTL = $('html').attr('dir') === 'rtl';var translateX;var currentIndex = $carousel.data('currentIndex') || 0;var originalSlides = $carousel.data('originalSlides');if (instant) {$track.addClass('no-transition');$track[0].offsetHeight;}
if (isRTL) {translateX = (currentIndex * slideStep);} else {translateX = -(currentIndex * slideStep);}
$track.css('transform', 'translateX(' + translateX + 'px)');if (instant) {requestAnimationFrame(function() {$track.removeClass('no-transition');});}
var mappedIndex = currentIndex % originalSlides;$dots.removeClass('active');if ($dots.length > 0) {$dots.eq(mappedIndex).addClass('active');}}
function nextSlide() {var currentIndex = $carousel.data('currentIndex') || 0;var originalSlides = $carousel.data('originalSlides');var totalSlides = $carousel.data('totalSlides');var shouldStartCloning = true;if (originalSlides > 10 && currentIndex < 5) {shouldStartCloning = false;}
var nextIndex = currentIndex + 1;if (shouldStartCloning && nextIndex > 0 && nextIndex % originalSlides === 0) {var nextSet = Math.floor(nextIndex / originalSlides);if (nextSet >= 2) {recalculateDimensions();$track.addClass('no-transition');$track.css('transition', 'none');$track[0].offsetHeight; // Force reflow
var $currentSlides = $track.find('.s123-module-global-carousel-slide');$currentSlides.slice(0, originalSlides).remove();currentIndex = currentIndex - originalSlides;nextIndex = nextIndex - originalSlides;$carousel.data('currentIndex', currentIndex);totalSlides = $track.find('.s123-module-global-carousel-slide').length;$carousel.data('totalSlides', totalSlides);$track.find('.s123-module-global-carousel-slide').each(function(idx) {$(this).attr('data-slide-index', idx);});var isRTL = $('html').attr('dir') === 'rtl';var translateX = isRTL ? (currentIndex * slideStep) : -(currentIndex * slideStep);$track.css('transform', 'translateX(' + translateX + 'px)');$track[0].offsetHeight;$track.removeClass('no-transition');$track.css('transition', '');}}
currentIndex = nextIndex;$carousel.data('currentIndex', currentIndex);totalSlides = $carousel.data('totalSlides');var needsClones = currentIndex >= totalSlides - (originalSlides * 2);if (shouldStartCloning && needsClones) {addClonesAtEnd();addClonesAtEnd();$carousel.data('totalSlides', $track.find('.s123-module-global-carousel-slide').length);}
updateSliderPosition(false);}
function prevSlide() {var currentIndex = $carousel.data('currentIndex') || 0;currentIndex = currentIndex - 1;if (currentIndex < 0) {currentIndex = 0;}
$carousel.data('currentIndex', currentIndex);updateSliderPosition(false);}
function goToSlide(index) {var originalSlides = $carousel.data('originalSlides');var currentIndex = $carousel.data('currentIndex') || 0;var currentSet = Math.floor(currentIndex / originalSlides);var targetIndex = (currentSet * originalSlides) + index;var totalSlides = $carousel.data('totalSlides');if (targetIndex >= 0 && targetIndex < totalSlides) {$carousel.data('currentIndex', targetIndex);updateSliderPosition(false);}}
var carouselId = $carousel.attr('data-carousel-id') || 'default';$carousel.off('globalCarousel.next.carousel' + carouselId + ' globalCarousel.prev.carousel' + carouselId + ' globalCarousel.goTo.carousel' + carouselId);var autoPlayInterval;var startAutoPlay, stopAutoPlay;if (globalCarouselInterval && globalCarouselInterval > 0) {if (typeof isMobileDevice !== 'undefined' && !isMobileDevice.any()) {startAutoPlay = function() {stopAutoPlay(); // Clear any existing interval
autoPlayInterval = setInterval(function() {nextSlide();}, globalCarouselInterval);};stopAutoPlay = function() {if (autoPlayInterval) {clearInterval(autoPlayInterval);autoPlayInterval = null;}};var carouselId = $carousel.attr('data-carousel-id') || $carousel.attr('data-total-slides') || Math.random().toString(36);$(document).off('visibilitychange.globalCarousel' + carouselId);$(window).off('blur.globalCarousel' + carouselId);$(window).off('focus.globalCarousel' + carouselId);$(window).on('blur.globalCarousel' + carouselId, function() {stopAutoPlay();});$(window).on('focus.globalCarousel' + carouselId, function() {$carousel.data('currentIndex', 0);requestAnimationFrame(function() {recalculateDimensions();updateSliderPosition(false);startAutoPlay();});});startAutoPlay();}}
$carousel.on('globalCarousel.next.carousel' + carouselId, function() {nextSlide();if (typeof startAutoPlay === 'function') {startAutoPlay();}});$carousel.on('globalCarousel.prev.carousel' + carouselId, function() {prevSlide();if (typeof startAutoPlay === 'function') {startAutoPlay();}});$carousel.on('globalCarousel.goTo.carousel' + carouselId, function(event, index) {goToSlide(index);if (typeof startAutoPlay === 'function') {startAutoPlay();}});$(window).off('resize.globalSlider' + carouselId).on('resize.globalSlider' + carouselId, function() {recalculateDimensions();updateSliderPosition(false);setGlobalCarouselHeight();});requestAnimationFrame(function() {recalculateDimensions();updateSliderPosition(false);setGlobalCarouselHeight();});}
function setGlobalCarouselHeight() {var $sections = $('.s123-module-global-carousel-slider').closest('.s123-module');$sections.each(function() {var $s = $(this);var $carousel = $s.find('.s123-module-global-carousel-slider');$carousel.find('.s123-module-global-carousel-slide, .box').css({ minHeight: '' });});}
function tryParseJSON(jsonString) {try {var o = JSON.parse(jsonString);if (o && typeof o === "object") {return o;}} catch (e) {return false;}
return false;}
// DOM.event.move
(function(fn) {if (typeof define === 'function' && define.amd) {define([], fn);} else if ((typeof module !== "undefined" && module !== null) && module.exports) {module.exports = fn;} else {fn();}})(function(){var assign = Object.assign || window.jQuery && jQuery.extend;var threshold = 8;var requestFrame = (function(){return (window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window.msRequestAnimationFrame ||function(fn, element){return window.setTimeout(function(){fn();}, 25);});})();(function () {if ( typeof window.CustomEvent === "function" ) return false;function CustomEvent ( event, params ) {params = params || { bubbles: false, cancelable: false, detail: undefined };var evt = document.createEvent( 'CustomEvent' );evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );return evt;}
CustomEvent.prototype = window.Event.prototype;window.CustomEvent = CustomEvent;})();var ignoreTags = {textarea: true,input: true,select: true,button: true};var mouseevents = {move:   'mousemove',cancel: 'mouseup dragstart',end:    'mouseup'};var touchevents = {move:   'touchmove',cancel: 'touchend',end:    'touchend'};var rspaces = /\s+/;var eventOptions = { bubbles: true, cancelable: true };var eventsSymbol = typeof Symbol === "function" ? Symbol('events') : {};function createEvent(type) {return new CustomEvent(type, eventOptions);}
function getEvents(node) {return node[eventsSymbol] || (node[eventsSymbol] = {});}
function on(node, types, fn, data, selector) {types = types.split(rspaces);var events = getEvents(node);var i = types.length;var handlers, type;function handler(e) { fn(e, data); }
while (i--) {type = types[i];handlers = events[type] || (events[type] = []);handlers.push([fn, handler]);node.addEventListener(type, handler);}}
function off(node, types, fn, selector) {types = types.split(rspaces);var events = getEvents(node);var i = types.length;var type, handlers, k;if (!events) { return; }
while (i--) {type = types[i];handlers = events[type];if (!handlers) { continue; }
k = handlers.length;while (k--) {if (handlers[k][0] === fn) {node.removeEventListener(type, handlers[k][1]);handlers.splice(k, 1);}}}}
function trigger(node, type, properties) {var event = createEvent(type);if (properties) { assign(event, properties); }
node.dispatchEvent(event);}
function Timer(fn){var callback = fn,active = false,running = false;function trigger(time) {if (active){callback();requestFrame(trigger);running = true;active = false;}
else {running = false;}}
this.kick = function(fn) {active = true;if (!running) { trigger(); }};this.end = function(fn) {var cb = callback;if (!fn) { return; }
if (!running) {fn();}
else {callback = active ?function(){ cb(); fn(); } :fn ;active = true;}};}
function noop() {}
function preventDefault(e) {e.preventDefault();}
function isIgnoreTag(e) {return !!ignoreTags[e.target.tagName.toLowerCase()];}
function isPrimaryButton(e) {return (e.which === 1 && !e.ctrlKey && !e.altKey);}
function identifiedTouch(touchList, id) {var i, l;if (touchList.identifiedTouch) {return touchList.identifiedTouch(id);}
i = -1;l = touchList.length;while (++i < l) {if (touchList[i].identifier === id) {return touchList[i];}}}
function changedTouch(e, data) {var touch = identifiedTouch(e.changedTouches, data.identifier);if (!touch) { return; }
if (touch.pageX === data.pageX && touch.pageY === data.pageY) { return; }
return touch;}
function mousedown(e){if (!isPrimaryButton(e)) { return; }
if (isIgnoreTag(e)) { return; }
on(document, mouseevents.move, mousemove, e);on(document, mouseevents.cancel, mouseend, e);}
function mousemove(e, data){checkThreshold(e, data, e, removeMouse);}
function mouseend(e, data) {removeMouse();}
function removeMouse() {off(document, mouseevents.move, mousemove);off(document, mouseevents.cancel, mouseend);}
function touchstart(e) {if (ignoreTags[e.target.tagName.toLowerCase()]) { return; }
var touch = e.changedTouches[0];var data = {target:     touch.target,pageX:      touch.pageX,pageY:      touch.pageY,identifier: touch.identifier,touchmove:  function(e, data) { touchmove(e, data); },touchend:   function(e, data) { touchend(e, data); }};on(document, touchevents.move, data.touchmove, data);on(document, touchevents.cancel, data.touchend, data);}
function touchmove(e, data) {var touch = changedTouch(e, data);if (!touch) { return; }
checkThreshold(e, data, touch, removeTouch);}
function touchend(e, data) {var touch = identifiedTouch(e.changedTouches, data.identifier);if (!touch) { return; }
removeTouch(data);}
function removeTouch(data) {off(document, touchevents.move, data.touchmove);off(document, touchevents.cancel, data.touchend);}
function checkThreshold(e, data, touch, fn) {var distX = touch.pageX - data.pageX;var distY = touch.pageY - data.pageY;if ((distX * distX) + (distY * distY) < (threshold * threshold)) { return; }
triggerStart(e, data, touch, distX, distY, fn);}
function triggerStart(e, data, touch, distX, distY, fn) {var touches = e.targetTouches;var time = e.timeStamp - data.timeStamp;var template = {altKey:     e.altKey,ctrlKey:    e.ctrlKey,shiftKey:   e.shiftKey,startX:     data.pageX,startY:     data.pageY,distX:      distX,distY:      distY,deltaX:     distX,deltaY:     distY,pageX:      touch.pageX,pageY:      touch.pageY,velocityX:  distX / time,velocityY:  distY / time,identifier: data.identifier,targetTouches: touches,finger: touches ? touches.length : 1,enableMove: function() {this.moveEnabled = true;this.enableMove = noop;e.preventDefault();}};trigger(data.target, 'movestart', template);fn(data);}
function activeMousemove(e, data) {var timer  = data.timer;data.touch = e;data.timeStamp = e.timeStamp;timer.kick();}
function activeMouseend(e, data) {var target = data.target;var event  = data.event;var timer  = data.timer;removeActiveMouse();endEvent(target, event, timer, function() {setTimeout(function(){off(target, 'click', preventDefault);}, 0);});}
function removeActiveMouse() {off(document, mouseevents.move, activeMousemove);off(document, mouseevents.end, activeMouseend);}
function activeTouchmove(e, data) {var event = data.event;var timer = data.timer;var touch = changedTouch(e, event);if (!touch) { return; }
e.preventDefault();event.targetTouches = e.targetTouches;data.touch = touch;data.timeStamp = e.timeStamp;timer.kick();}
function activeTouchend(e, data) {var target = data.target;var event  = data.event;var timer  = data.timer;var touch  = identifiedTouch(e.changedTouches, event.identifier);if (!touch) { return; }
removeActiveTouch(data);endEvent(target, event, timer);}
function removeActiveTouch(data) {off(document, touchevents.move, data.activeTouchmove);off(document, touchevents.end, data.activeTouchend);}
function updateEvent(event, touch, timeStamp) {var time = timeStamp - event.timeStamp;event.distX =  touch.pageX - event.startX;event.distY =  touch.pageY - event.startY;event.deltaX = touch.pageX - event.pageX;event.deltaY = touch.pageY - event.pageY;event.velocityX = 0.3 * event.velocityX + 0.7 * event.deltaX / time;event.velocityY = 0.3 * event.velocityY + 0.7 * event.deltaY / time;event.pageX =  touch.pageX;event.pageY =  touch.pageY;}
function endEvent(target, event, timer, fn) {timer.end(function(){trigger(target, 'moveend', event);return fn && fn();});}
function movestart(e) {if (e.defaultPrevented) { return; }
if (!e.moveEnabled) { return; }
var event = {startX:        e.startX,startY:        e.startY,pageX:         e.pageX,pageY:         e.pageY,distX:         e.distX,distY:         e.distY,deltaX:        e.deltaX,deltaY:        e.deltaY,velocityX:     e.velocityX,velocityY:     e.velocityY,identifier:    e.identifier,targetTouches: e.targetTouches,finger:        e.finger};var data = {target:    e.target,event:     event,timer:     new Timer(update),touch:     undefined,timeStamp: e.timeStamp};function update(time) {updateEvent(event, data.touch, data.timeStamp);trigger(data.target, 'move', event);}
if (e.identifier === undefined) {on(e.target, 'click', preventDefault);on(document, mouseevents.move, activeMousemove, data);on(document, mouseevents.end, activeMouseend, data);}
else {data.activeTouchmove = function(e, data) { activeTouchmove(e, data); };data.activeTouchend = function(e, data) { activeTouchend(e, data); };on(document, touchevents.move, data.activeTouchmove, data);on(document, touchevents.end, data.activeTouchend, data);}}
on(document, 'mousedown', mousedown);on(document, 'touchstart', touchstart);on(document, 'movestart', movestart);if (!window.jQuery) { return; }
var properties = ("startX startY pageX pageY distX distY deltaX deltaY velocityX velocityY").split(' ');function enableMove1(e) { e.enableMove(); }
function enableMove2(e) { e.enableMove(); }
function enableMove3(e) { e.enableMove(); }
function add(handleObj) {var handler = handleObj.handler;handleObj.handler = function(e) {var i = properties.length;var property;while(i--) {property = properties[i];e[property] = e.originalEvent[property];}
handler.apply(this, arguments);};}
jQuery.event.special.movestart = {setup: function() {on(this, 'movestart', enableMove1);return false;},teardown: function() {off(this, 'movestart', enableMove1);return false;},add: add};jQuery.event.special.move = {setup: function() {on(this, 'movestart', enableMove2);return false;},teardown: function() {off(this, 'movestart', enableMove2);return false;},add: add};jQuery.event.special.moveend = {setup: function() {on(this, 'movestart', enableMove3);return false;},teardown: function() {off(this, 'movestart', enableMove3);return false;},add: add};});
(function($){$.fn.twentytwenty = function(options) {var options = $.extend({default_offset_pct: 0.5,orientation: 'horizontal',before_label: 'Before',after_label: 'After',no_overlay: false,move_slider_on_hover: false,move_with_handle_only: true,click_to_move: false}, options);return this.each(function() {var sliderPct = options.default_offset_pct;var container = $(this);var sliderOrientation = options.orientation;var beforeDirection = (sliderOrientation === 'vertical') ? 'down' : 'left';var afterDirection = (sliderOrientation === 'vertical') ? 'up' : 'right';container.wrap("<div class='twentytwenty-wrapper twentytwenty-" + sliderOrientation + "'></div>");if(!options.no_overlay) {container.append("<div class='twentytwenty-overlay'></div>");var overlay = container.find(".twentytwenty-overlay");overlay.append("<div class='twentytwenty-before-label' data-content='"+options.before_label+"'></div>");overlay.append("<div class='twentytwenty-after-label' data-content='"+options.after_label+"'></div>");}
var beforeImg = container.find("img:first");var afterImg = container.find("img:last");container.append("<div class='twentytwenty-handle'></div>");var slider = container.find(".twentytwenty-handle");slider.append("<span class='twentytwenty-" + beforeDirection + "-arrow'></span>");slider.append("<span class='twentytwenty-" + afterDirection + "-arrow'></span>");container.addClass("twentytwenty-container");beforeImg.addClass("twentytwenty-before");afterImg.addClass("twentytwenty-after");var calcOffset = function(dimensionPct) {var w = beforeImg.width();var h = beforeImg.height();return {w: w+"px",h: h+"px",cw: (dimensionPct*w)+"px",ch: (dimensionPct*h)+"px"};};var adjustContainer = function(offset) {if (sliderOrientation === 'vertical') {beforeImg.css("clip", "rect(0,"+offset.w+","+offset.ch+",0)");afterImg.css("clip", "rect("+offset.ch+","+offset.w+","+offset.h+",0)");}
else {beforeImg.css("clip", "rect(0,"+offset.cw+","+offset.h+",0)");afterImg.css("clip", "rect(0,"+offset.w+","+offset.h+","+offset.cw+")");}
container.css("height", offset.h);};var adjustSlider = function(pct) {var offset = calcOffset(pct);slider.css((sliderOrientation==="vertical") ? "top" : "left", (sliderOrientation==="vertical") ? offset.ch : offset.cw);adjustContainer(offset);};var minMaxNumber = function(num, min, max) {return Math.max(min, Math.min(max, num));};var getSliderPercentage = function(positionX, positionY) {var sliderPercentage = (sliderOrientation === 'vertical') ?(positionY-offsetY)/imgHeight :(positionX-offsetX)/imgWidth;return minMaxNumber(sliderPercentage, 0, 1);};$(window).on("resize.twentytwenty", function(e) {adjustSlider(sliderPct);});var offsetX = 0;var offsetY = 0;var imgWidth = 0;var imgHeight = 0;var onMoveStart = function(e) {if (((e.distX > e.distY && e.distX < -e.distY) || (e.distX < e.distY && e.distX > -e.distY)) && sliderOrientation !== 'vertical') {e.preventDefault();}
else if (((e.distX < e.distY && e.distX < -e.distY) || (e.distX > e.distY && e.distX > -e.distY)) && sliderOrientation === 'vertical') {e.preventDefault();}
container.addClass("active");offsetX = container.offset().left;offsetY = container.offset().top;imgWidth = beforeImg.width();imgHeight = beforeImg.height();};var onMove = function(e) {if (container.hasClass("active")) {sliderPct = getSliderPercentage(e.pageX, e.pageY);adjustSlider(sliderPct);}};var onMoveEnd = function() {container.removeClass("active");};var moveTarget = options.move_with_handle_only ? slider : container;moveTarget.on("movestart",onMoveStart);moveTarget.on("move",onMove);moveTarget.on("moveend",onMoveEnd);if (options.move_slider_on_hover) {container.on("mouseenter", onMoveStart);container.on("mousemove", onMove);container.on("mouseleave", onMoveEnd);}
slider.on("touchmove", function(e) {e.preventDefault();});container.find("img").on("mousedown", function(event) {event.preventDefault();});if (options.click_to_move) {container.on('click', function(e) {offsetX = container.offset().left;offsetY = container.offset().top;imgWidth = beforeImg.width();imgHeight = beforeImg.height();sliderPct = getSliderPercentage(e.pageX, e.pageY);adjustSlider(sliderPct);});}
$(window).trigger("resize.twentytwenty");});};})(jQuery);
jQuery(function($) {imageComparisonModuleInitialize();});function imageComparisonModuleInitialize() {$(document).on('s123.page.ready', function( event ) {var $section = $('.s123-module-image-comparison.layout-1');$section.each( function() {var $sectionThis = $(this);var beforeLabel = $sectionThis.find('.image-comparison').data('before-label');var afterLabel = $sectionThis.find('.image-comparison').data('after-label');(function () {$sectionThis.off('module_layout_categories.show').on('module_layout_categories.click', function( event, catID ) {var $compare_category = $sectionThis.find('.compare-category[data-categories-filter="'+catID+'"]');$compare_category.css({ visibility: 'hidden' });});$sectionThis.off('module_layout_categories.show').on('module_layout_categories.shown', function( event, catID ) {var $compare_category = $sectionThis.find('.compare-category[data-categories-filter="'+catID+'"]');$sectionThis.trigger('resize.twentytwenty');$compare_category.css({ visibility: 'visible' });});})();$sectionThis.find('.compare-display').each( function( event ) {var $compare_display = $(this);if ( $compare_display.hasClass('image-comparison-initialized') ) return;initImageComparison($compare_display.find('.image-comparison-container'),$compare_display.data('orientation'), beforeLabel,afterLabel);$compare_display.addClass('image-comparison-initialized');});var categories = new ModuleLayoutCategories({$items :  $sectionThis.find('.compare-category'),$categoriesContainer : $sectionThis.find('.categories-panel'),$filterButton : $sectionThis.find('.items-responsive-filter'),$categories : $sectionThis.find('.items-categories-container li')});});$(document).on('wizard.preview.device.changed.imageComparison', function( event ) {$section.find('.image-comparison-container img').addClass('w-p-device-changed-fix');});});function initImageComparison( $imageComparison, $orientation, beforeLabel, afterLabel ) {ImageComparisonPreloader.init({$elements: $imageComparison.find('img')});$imageComparison.twentytwenty({default_offset_pct: 0.5, // How much of the before image is visible when the page loads
orientation: $orientation, // Orientation of the before and after images ('horizontal' or 'vertical')
before_label: beforeLabel, // Set a custom before label
after_label: afterLabel, // Set a custom after label
no_overlay: false, //Do not show the overlay with before and after
move_slider_on_hover: false, // Move slider on mouse hover?
move_with_handle_only: false, // Allow a user to swipe anywhere on the image to control slider movement.
click_to_move: false // Allow a user to click (or tap) anywhere on the image to move the slider to that location.
});}
var ImageComparisonPreloader = function() {var _ = {className: 'img-s-h-processed'};_.init = function( settings ) {_.$elements = settings.$elements;_.$elements.each(function( index, el ) {var aspectRatio = $(this).data('ratio');if ( !$.isNumeric(aspectRatio) ) return;processSize($(this),aspectRatio);});};function processSize( $el, aspectRatio ) {if ( $el.data('add-def-size') === 'height' ) {var width = $el.width();if ( width === 0 ) return;$el.css({height: ( width / aspectRatio )});} else {var height = $el.height();if ( height === 0 ) return;$el.css({width: ( height * aspectRatio )});}
$el.addClass(_.className);}
return _;}();}
jQuery(function($) {fileManagerModuleInitialize_Layouts();});function fileManagerModuleInitialize_Layouts() {$(document).on('s123.page.ready', function( event ) {var $sections = $('.s123-module-fileManager');$sections.each(function( index ) {var $s = $(this);var $categories = $s.find('.fileManager-category');var categories = new ModuleLayoutCategories({$items :  $s.find('.fileManager-category'),$categoriesContainer : $s.find('.categories-panel'),$filterButton : $s.find('.items-responsive-filter'),$categories : $s.find('.items-categories-container li')});});});}
