(function ($) {
'use strict';
$(document).ready(function () {
// Responsive Breakpoints
var $width_lg = 1200,
$width_md = 992,
$width_sm = 768,
$width_xs = 480,
$slick = $('.ct-js-slick');
if ($().slick) {
if ($slick.length > 0) {
$slick.each(function () {
var $this = $(this),
// Items Settings
ctslidesToShow = parseInt(validatedata($this.attr("data-items"), 1), 10), // Non Responsive
slides_xs = parseInt(validatedata($this.attr("data-items-xs"), ctslidesToShow), 10),
slides_sm = parseInt(validatedata($this.attr("data-items-sm"), slides_xs), 10), // Default Item from smaller Device;
slides_md = parseInt(validatedata($this.attr("data-items-md"), slides_sm), 10), // Default Item from smaller Device;
slides_lg = parseInt(validatedata($this.attr("data-items-lg"), slides_md), 10), // Default Item from smaller Device;
ctaccessibility = parseBoolean($this.attr("data-accessibility"), true),
ctadaptiveHeight = parseBoolean($this.attr("data-adaptiveHeight"), false),
ctautoplay = parseBoolean($this.attr("data-autoplay"), false),
ctarrows = parseBoolean($this.attr("data-arrows"), true),
ctcenterMode = parseBoolean($this.attr("data-centerMode"), false),
ctdots = parseBoolean($this.attr("data-dots"), false),
ctdraggable = parseBoolean($this.attr("data-draggable"), true),
ctfade = parseBoolean($this.attr("data-fade"), false),
ctfocusOnSelect = parseBoolean($this.attr("data-focusOnSelect"), false),
ctinfinite = parseBoolean($this.attr("data-infinite"), true),
ctmobileFirst = parseBoolean($this.attr("data-mobileFirst"), true),
ctpauseOnHover = parseBoolean($this.attr("data-pauseOnHover"), true),
ctpauseOnDotsHover = parseBoolean($this.attr("data-pauseOnDotsHover"), false),
ctswipe = parseBoolean($this.attr("data-swipe"), true),
ctswipeToSlide = parseBoolean($this.attr("data-swipeToSlide"), false),
cttouchMove = parseBoolean($this.attr("data-touchMove"), true),
ctuseCSS = parseBoolean($this.attr("data-useCSS"), true),
ctvariableWidth = parseBoolean($this.attr("data-variableWidth"), false),
ctvertical = parseBoolean($this.attr("data-vertical"), false),
ctrtl = parseBoolean($this.attr("data-rtl"), false),
ctasNavFor = validatedata($this.attr("data-asNavFor")),
ctappendArrows = validatedata($this.attr("data-appendArrows")),
ctprevArrow = validatedata($this.attr("data-prevArrow"), ''),
ctnextArrow = validatedata($this.attr("data-nextArrow"), ''),
ctcenterPadding = validatedata($this.attr("data-centerPadding"), '50px'),
ctcssEase = validatedata($this.attr("data-cssEase"), 'ease'),
cteasing = validatedata($this.attr("data-easing"), 'linear'),
ctlazyLoad = validatedata($this.attr("data-lazyLoad"), 'ondemand'),
ctrespondTo = validatedata($this.attr("data-respondTo"), 'window'),
ctslide = validatedata($this.attr("data-slide")),
ctanimations = validatedata($this.attr("data-animations"), true),
ctedgeFriction = parseInt(validatedata($this.attr("data-edgeFriction"), 0.15), 10),
ctinitialSlide = parseInt(validatedata($this.attr("data-initialSlide"), 0), 10),
ctautoplaySpeed = parseInt(validatedata($this.attr("data-autoplaySpeed"), 5000), 10),
ctslidesToScroll = parseInt(validatedata($this.attr("data-slidesToScroll"), 1), 10),
ctspeed = parseInt(validatedata($this.attr("data-speed"), 300), 10),
cttouchThreshold = parseInt(validatedata($this.attr("data-touchThreshold"), 5), 10);
// Slider Height
if ($this.attr('data-height')) {
var $slick_height = $this.attr('data-height'),
$slick_list = $this.find('.slick-list'),
$slick_track = $this.find('.slick-track'),
$slick_item = $this.find('.item');
if ($slick_height.indexOf('%') > -1) {
$slick_height = $(window).height() * (parseInt($slick_height, 10) / 100);
}
$this.css('min-height', $slick_height + 'px');
$slick_list.css('min-height', $slick_height + 'px');
$slick_track.css('min-height', $slick_height + 'px');
$slick_item.each(function () {
$(this).css('min-height', $slick_height + 'px');
});
}
$this.slick({
slidesToShow: ctslidesToShow, // Number of slides to show
accessibility: ctaccessibility, // Enables tabbing and arrow key navigation
adaptiveHeight: ctadaptiveHeight, // Enables adaptive height for single slide horizontal carousels.
autoplay: ctautoplay, // Enables Autoplay
autoplaySpeed: ctautoplaySpeed, // Autoplay Speed in milliseconds
arrows: ctarrows, // Prev/Next Arrows
asNavFor: ctasNavFor, // Set the slider to be the navigation of other slider (Class or ID Name)
appendArrows: ctappendArrows, // Change where the navigation arrows are attached (Selector, htmlString, Array, Element, jQuery object)
prevArrow: ctprevArrow, // Allows you to select a node or customize the HTML for the "Previous" arrow.
nextArrow: ctnextArrow, // Allows you to select a node or customize the HTML for the "Next" arrow.
centerMode: ctcenterMode, // Enables centered view with partial prev/next slides. Use with odd numbered slidesToShow counts.
centerPadding: ctcenterPadding, // Side padding when in center mode (px or %)
cssEase: ctcssEase, // CSS3 Animation Easing
dots: ctdots, // Show dot indicators
draggable: ctdraggable, // Enable mouse dragging
fade: ctfade, // Enable fade
focusOnSelect: ctfocusOnSelect, // Enable focus on selected element (click)
easing: cteasing, // Add easing for jQuery animate. Use with easing libraries or default easing methods
edgeFriction: ctedgeFriction, // Resistance when swiping edges of non-infinite carousels
infinite: ctinfinite, // Infinite loop sliding
initialSlide: ctinitialSlide, // Slide to start on
lazyLoad: ctlazyLoad, // Set lazy loading technique. Accepts 'ondemand' or 'progressive'
mobileFirst: ctmobileFirst, // Responsive settings use mobile first calculation
pauseOnHover: ctpauseOnHover, // Pause Autoplay On Hover
pauseOnDotsHover: ctpauseOnDotsHover, // Pause Autoplay when a dot is hovered
respondTo: ctrespondTo, // Width that responsive object responds to. Can be 'window', 'slider' or 'min' (the smaller of the two)
slide: ctslide, // Element query to use as slide
slidesToScroll: ctslidesToScroll, // Number of slides to scroll
speed: ctspeed, // Slide/Fade animation speed
swipe: ctswipe, // Enable swiping
swipeToSlide: ctswipeToSlide, // Allow users to drag or swipe directly to a slide irrespective of slidesToScroll
touchMove: cttouchMove, // Enable slide motion with touch
touchThreshold: cttouchThreshold, // To advance slides, the user must swipe a length of (1/touchThreshold) * the width of the slide
useCSS: ctuseCSS, // Enable/Disable CSS Transitions
variableWidth: ctvariableWidth, // Variable width slides
vertical: ctvertical, // Vertical slide mode
rtl: ctrtl, // Change the slider's direction to become right-to-left
// Responsive Breakpoints
responsive: [
{
breakpoint: $width_lg, // Desktop
settings: {
slidesToShow: slides_lg,
slidesToScroll: slides_lg
}
},
{
breakpoint: $width_md, // Laptop
settings: {
slidesToShow: slides_md,
slidesToScroll: slides_md
}
},
{
breakpoint: $width_sm, // Tablet
settings: {
slidesToShow: slides_sm,
slidesToScroll: slides_sm
}
},
{
breakpoint: $width_xs, // Mobile
settings: {
slidesToShow: slides_xs,
slidesToScroll: slides_xs
}
}
]
// end Responsive Breakpoints
}); // end slick initialize
$this.on('beforeChange', function() {
if(ctanimations){
$this.find(".slick-slide [data-fx]").each(function () {
var $content = $(this);
$content.removeClass($content.data('fx')).removeClass("activate");
});
setTimeout(function () {
$this.find(".slick-active [data-fx]").each(function () {
var $content = $(this);
if ($content.data('time') != undefined) {
setTimeout(function () {
$content.addClass($content.data('fx')).addClass("activate");
}, $content.data('time'));
} else {
$content.addClass($content.data('fx')).addClass("activate");
}
});
}, 150);
}
});
}); // end each loop
} // end if length
} // end Slick
}); // end Ready
})(jQuery);