PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /home/trave494/bilosproperties.com/wp-content/plugins/Ultimate_VC_Addons/assets/slick/
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64
IP: 209.182.202.254
Choose File :

Url:
Dir : /home/trave494/bilosproperties.com/wp-content/plugins/Ultimate_VC_Addons/assets/slick/slick-old.js

/*

     _ _      _       _

 ___| (_) ___| | __  (_)___

/ __| | |/ __| |/ /  | / __|

\__ \ | | (__|   < _ | \__ \

|___/_|_|\___|_|\_(_)/ |___/

                   |__/



 Version: 1.3.7

  Author: Ken Wheeler

 Website: http://kenwheeler.github.io

    Docs: http://kenwheeler.github.io/slick

    Repo: http://github.com/kenwheeler/slick

  Issues: http://github.com/kenwheeler/slick/issues



 */



/* global window, document, define, jQuery, setInterval, clearInterval */



(function(factory) {

    'use strict';

    if (typeof define === 'function' && define.amd) {

        define(['jquery'], factory);

    } else {

        factory(jQuery);

    }



}(function($) {

    'use strict';

    var Slick = window.Slick || {};



    Slick = (function() {



        var instanceUid = 0;



        function Slick(element, settings) {



            var _ = this,

                responsiveSettings, breakpoint;



            _.defaults = {

                accessibility: true,

                appendArrows: $(element),

                arrows: true,

                asNavFor: null,

                prevArrow: '<button type="button" data-role="none" class="slick-prev">Previous</button>',

                nextArrow: '<button type="button" data-role="none" class="slick-next">Next</button>',

                autoplay: false,

                autoplaySpeed: 3000,

                centerMode: false,

                centerPadding: '50px',

                cssEase: 'ease',

                customPaging: function(slider, i) {

                    return '<button type="button" data-role="none">' + (i + 1) + '</button>';

                },

                dots: false,

                dotsClass: 'slick-dots',

                draggable: true,

                easing: 'linear',

                fade: false,

                focusOnSelect: false,

                infinite: true,

                lazyLoad: 'ondemand',

                onBeforeChange: null,

                onAfterChange: null,

                onInit: null,

                onReInit: null,

                pauseOnHover: true,

                pauseOnDotsHover: false,

                responsive: null,

                rtl: false,

                slide: 'div',

                slidesToShow: 1,

                slidesToScroll: 1,

                speed: 300,

                swipe: true,

                touchMove: true,

                touchThreshold: 5,

                useCSS: true,

                vertical: false

            };



            _.initials = {

                animating: false,

                dragging: false,

                autoPlayTimer: null,

                currentSlide: 0,

                currentLeft: null,

                direction: 1,

                $dots: null,

                listWidth: null,

                listHeight: null,

                loadIndex: 0,

                $nextArrow: null,

                $prevArrow: null,

                slideCount: null,

                slideWidth: null,

                $slideTrack: null,

                $slides: null,

                sliding: false,

                slideOffset: 0,

                swipeLeft: null,

                $list: null,

                touchObject: {},

                transformsEnabled: false

            };



            $.extend(_, _.initials);



            _.activeBreakpoint = null;

            _.animType = null;

            _.animProp = null;

            _.breakpoints = [];

            _.breakpointSettings = [];

            _.cssTransitions = false;

            _.paused = false;

            _.positionProp = null;

            _.$slider = $(element);

            _.$slidesCache = null;

            _.transformType = null;

            _.transitionType = null;

            _.windowWidth = 0;

            _.windowTimer = null;



            _.options = $.extend({}, _.defaults, settings);



            _.originalSettings = _.options;

            responsiveSettings = _.options.responsive || null;



            if (responsiveSettings && responsiveSettings.length > -1) {

                for (breakpoint in responsiveSettings) {

                    if (responsiveSettings.hasOwnProperty(breakpoint)) {

                        _.breakpoints.push(responsiveSettings[

                            breakpoint].breakpoint);

                        _.breakpointSettings[responsiveSettings[

                            breakpoint].breakpoint] =

                            responsiveSettings[breakpoint].settings;

                    }

                }

                _.breakpoints.sort(function(a, b) {

                    return b - a;

                });

            }



            _.autoPlay = $.proxy(_.autoPlay, _);

            _.autoPlayClear = $.proxy(_.autoPlayClear, _);

            _.changeSlide = $.proxy(_.changeSlide, _);

            _.selectHandler = $.proxy(_.selectHandler, _);

            _.setPosition = $.proxy(_.setPosition, _);

            _.swipeHandler = $.proxy(_.swipeHandler, _);

            _.dragHandler = $.proxy(_.dragHandler, _);

            _.keyHandler = $.proxy(_.keyHandler, _);

            _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);



            _.instanceUid = instanceUid++;



            // A simple way to check for HTML strings

            // Strict HTML recognition (must start with <)

            // Extracted from jQuery v1.11 source

            _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;



            _.init();



        }



        return Slick;



    }());



    Slick.prototype.addSlide = function(markup, index, addBefore) {



        var _ = this;



        if (typeof(index) === 'boolean') {

            addBefore = index;

            index = null;

        } else if (index < 0 || (index >= _.slideCount)) {

            return false;

        }



        _.unload();



        if (typeof(index) === 'number') {

            if (index === 0 && _.$slides.length === 0) {

                $(markup).appendTo(_.$slideTrack);

            } else if (addBefore) {

                $(markup).insertBefore(_.$slides.eq(index));

            } else {

                $(markup).insertAfter(_.$slides.eq(index));

            }

        } else {

            if (addBefore === true) {

                $(markup).prependTo(_.$slideTrack);

            } else {

                $(markup).appendTo(_.$slideTrack);

            }

        }



        _.$slides = _.$slideTrack.children(this.options.slide);



        _.$slideTrack.children(this.options.slide).detach();



        _.$slideTrack.append(_.$slides);



        _.$slides.each(function(index, element) {

            $(element).attr("index",index);

        });



        _.$slidesCache = _.$slides;



        _.reinit();



    };



    Slick.prototype.animateSlide = function(targetLeft, callback) {



        var animProps = {}, _ = this;



        if (_.options.rtl === true && _.options.vertical === false) {

            targetLeft = -targetLeft;

        }

        if (_.transformsEnabled === false) {

            if (_.options.vertical === false) {

                _.$slideTrack.animate({

                    left: targetLeft

                }, _.options.speed, _.options.easing, callback);

            } else {

                _.$slideTrack.animate({

                    top: targetLeft

                }, _.options.speed, _.options.easing, callback);

            }



        } else {



            if (_.cssTransitions === false) {



                $({

                    animStart: _.currentLeft

                }).animate({

                    animStart: targetLeft

                }, {

                    duration: _.options.speed,

                    easing: _.options.easing,

                    step: function(now) {

                        if (_.options.vertical === false) {

                            animProps[_.animType] = 'translate(' +

                                now + 'px, 0px)';

                            _.$slideTrack.css(animProps);

                        } else {

                            animProps[_.animType] = 'translate(0px,' +

                                now + 'px)';

                            _.$slideTrack.css(animProps);

                        }

                    },

                    complete: function() {

                        if (callback) {

                            callback.call();

                        }

                    }

                });



            } else {



                _.applyTransition();



                if (_.options.vertical === false) {

                    animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';

                } else {

                    animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';

                }

                _.$slideTrack.css(animProps);



                if (callback) {

                    setTimeout(function() {



                        _.disableTransition();



                        callback.call();

                    }, _.options.speed);

                }



            }



        }



    };



    Slick.prototype.applyTransition = function(slide) {



        var _ = this,

            transition = {};



        if (_.options.fade === false) {

            transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;

        } else {

            transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;

        }



        if (_.options.fade === false) {

            _.$slideTrack.css(transition);

        } else {

            _.$slides.eq(slide).css(transition);

        }



    };



    Slick.prototype.autoPlay = function() {



        var _ = this;



        if (_.autoPlayTimer) {

            clearInterval(_.autoPlayTimer);

        }



        if (_.slideCount > _.options.slidesToShow && _.paused !== true) {

            _.autoPlayTimer = setInterval(_.autoPlayIterator,

                _.options.autoplaySpeed);

        }



    };



    Slick.prototype.autoPlayClear = function() {



        var _ = this;



        if (_.autoPlayTimer) {

            clearInterval(_.autoPlayTimer);

        }



    };



    Slick.prototype.autoPlayIterator = function() {



        var _ = this;

        var asNavFor = _.options.asNavFor != null ? $(_.options.asNavFor).getSlick() : null;



        if (_.options.infinite === false) {



            if (_.direction === 1) {



                if ((_.currentSlide + 1) === _.slideCount -

                    1) {

                    _.direction = 0;

                }



                _.slideHandler(_.currentSlide + _.options.slidesToScroll);

                if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide + asNavFor.options.slidesToScroll);



            } else {



                if ((_.currentSlide - 1 === 0)) {



                    _.direction = 1;



                }



                _.slideHandler(_.currentSlide - _.options.slidesToScroll);

                if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide - asNavFor.options.slidesToScroll);



            }



        } else {



            _.slideHandler(_.currentSlide + _.options.slidesToScroll);

            if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide + asNavFor.options.slidesToScroll);



        }



    };



    Slick.prototype.buildArrows = function() {



        var _ = this;



        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {



            _.$prevArrow = $(_.options.prevArrow);

            _.$nextArrow = $(_.options.nextArrow);



            if (_.htmlExpr.test(_.options.prevArrow)) {

                _.$prevArrow.appendTo(_.options.appendArrows);

            }



            if (_.htmlExpr.test(_.options.nextArrow)) {

                _.$nextArrow.appendTo(_.options.appendArrows);

            }



            if (_.options.infinite !== true) {

                _.$prevArrow.addClass('slick-disabled');

            }



        }



    };



    Slick.prototype.buildDots = function() {



        var _ = this,

            i, dotString;



        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {



            dotString = '<ul class="' + _.options.dotsClass + '">';



            for (i = 0; i <= _.getDotCount(); i += 1) {

                dotString += '<li>' + _.options.customPaging.call(this, _, i) + '</li>';

            }



            dotString += '</ul>';



            _.$dots = $(dotString).appendTo(

                _.$slider);



            _.$dots.find('li').first().addClass(

                'slick-active');



        }



    };



    Slick.prototype.buildOut = function() {



        var _ = this;



        _.$slides = _.$slider.children(_.options.slide +

            ':not(.slick-cloned)').addClass(

            'slick-slide');

        _.slideCount = _.$slides.length;



        _.$slides.each(function(index, element) {

            $(element).attr("index",index);

        });



        _.$slidesCache = _.$slides;



        _.$slider.addClass('slick-slider');



        _.$slideTrack = (_.slideCount === 0) ?

            $('<div class="slick-track"/>').appendTo(_.$slider) :

            _.$slides.wrapAll('<div class="slick-track"/>').parent();



        _.$list = _.$slideTrack.wrap(

            '<div class="slick-list"/>').parent();

        _.$slideTrack.css('opacity', 0);



        if (_.options.centerMode === true) {

            _.options.slidesToScroll = 1;

            if (_.options.slidesToShow % 2 === 0) {

                _.options.slidesToShow = 3;

            }

        }



        $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');



        _.setupInfinite();



        _.buildArrows();



        _.buildDots();



        _.updateDots();



        if (_.options.accessibility === true) {

            _.$list.prop('tabIndex', 0);

        }



        _.setSlideClasses(typeof this.currentSlide === 'number' ? this.currentSlide : 0);



        if (_.options.draggable === true) {

            _.$list.addClass('draggable');

        }



    };



    Slick.prototype.checkResponsive = function() {



        var _ = this,

            breakpoint, targetBreakpoint;



        if (_.originalSettings.responsive && _.originalSettings

            .responsive.length > -1 && _.originalSettings.responsive !== null) {



            targetBreakpoint = null;



            for (breakpoint in _.breakpoints) {

                if (_.breakpoints.hasOwnProperty(breakpoint)) {

                    if ($(window).width() < _.breakpoints[

                        breakpoint]) {

                        targetBreakpoint = _.breakpoints[

                            breakpoint];

                    }

                }

            }



            if (targetBreakpoint !== null) {

                if (_.activeBreakpoint !== null) {

                    if (targetBreakpoint !== _.activeBreakpoint) {

                        _.activeBreakpoint =

                            targetBreakpoint;

                        _.options = $.extend({}, _.options,

                            _.breakpointSettings[

                                targetBreakpoint]);

                        _.refresh();

                    }

                } else {

                    _.activeBreakpoint = targetBreakpoint;

                    _.options = $.extend({}, _.options,

                        _.breakpointSettings[

                            targetBreakpoint]);

                    _.refresh();

                }

            } else {

                if (_.activeBreakpoint !== null) {

                    _.activeBreakpoint = null;

                    _.options = $.extend({}, _.options,

                        _.originalSettings);

                    _.refresh();

                }

            }



        }



    };



    Slick.prototype.changeSlide = function(event) {



        var _ = this,

            $target = $(event.target);

        var asNavFor = _.options.asNavFor != null ? $(_.options.asNavFor).getSlick() : null;



        // If target is a link, prevent default action.

        $target.is('a') && event.preventDefault();



        switch (event.data.message) {



            case 'previous':

                if (_.slideCount > _.options.slidesToShow) {

                  _.slideHandler(_.currentSlide - _.options

                    .slidesToScroll);

                if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide - asNavFor.options.slidesToScroll);

                }

                break;



            case 'next':

                if (_.slideCount > _.options.slidesToShow) {

                  _.slideHandler(_.currentSlide + _.options

                    .slidesToScroll);

                if(asNavFor != null)  asNavFor.slideHandler(asNavFor.currentSlide + asNavFor.options.slidesToScroll);

                }

                break;



            case 'index':

                var index = $(event.target).parent().index() * _.options.slidesToScroll;

                _.slideHandler(index);

                if(asNavFor != null)  asNavFor.slideHandler(index);                break;



            default:

                return false;

        }



    };



    Slick.prototype.destroy = function() {



        var _ = this;



        _.autoPlayClear();



        _.touchObject = {};



        $('.slick-cloned', _.$slider).remove();

        if (_.$dots) {

            _.$dots.remove();

        }

        if (_.$prevArrow) {

            _.$prevArrow.remove();

            _.$nextArrow.remove();

        }

        if (_.$slides.parent().hasClass('slick-track')) {

            _.$slides.unwrap().unwrap();

        }

        _.$slides.removeClass(

            'slick-slide slick-active slick-visible').removeAttr('style');

        _.$slider.removeClass('slick-slider');

        _.$slider.removeClass('slick-initialized');



        _.$list.off('.slick');

        $(window).off('.slick-' + _.instanceUid);

        $(document).off('.slick-' + _.instanceUid);

        

    };



    Slick.prototype.disableTransition = function(slide) {



        var _ = this,

            transition = {};



        transition[_.transitionType] = "";



        if (_.options.fade === false) {

            _.$slideTrack.css(transition);

        } else {

            _.$slides.eq(slide).css(transition);

        }



    };



    Slick.prototype.fadeSlide = function(slideIndex, callback) {



        var _ = this;



        if (_.cssTransitions === false) {



            _.$slides.eq(slideIndex).css({

                zIndex: 1000

            });



            _.$slides.eq(slideIndex).animate({

                opacity: 1

            }, _.options.speed, _.options.easing, callback);



        } else {



            _.applyTransition(slideIndex);



            _.$slides.eq(slideIndex).css({

                opacity: 1,

                zIndex: 1000

            });



            if (callback) {

                setTimeout(function() {



                    _.disableTransition(slideIndex);



                    callback.call();

                }, _.options.speed);

            }



        }



    };



    Slick.prototype.filterSlides = function(filter) {



        var _ = this;



        if (filter !== null) {



            _.unload();



            _.$slideTrack.children(this.options.slide).detach();



            _.$slidesCache.filter(filter).appendTo(_.$slideTrack);



            _.reinit();



        }



    };



    Slick.prototype.getCurrent = function() {



        var _ = this;



        return _.currentSlide;



    };



    Slick.prototype.getDotCount = function() {



        var _ = this,

            breaker = 0,

            dotCounter = 0,

            dotCount = 0,

            dotLimit;



        dotLimit = _.options.infinite === true ? _.slideCount + _.options.slidesToShow - _.options.slidesToScroll : _.slideCount;



        while (breaker < dotLimit) {

            dotCount++;

            dotCounter += _.options.slidesToScroll;

            breaker = dotCounter + _.options.slidesToShow;

        }



        return dotCount;



    };



    Slick.prototype.getLeft = function(slideIndex) {



        var _ = this,

            targetLeft,

            verticalHeight,

            verticalOffset = 0;



        _.slideOffset = 0;

        verticalHeight = _.$slides.first().outerHeight();



        if (_.options.infinite === true) {

            if (_.slideCount > _.options.slidesToShow) {

                _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;

                verticalOffset = (verticalHeight * _.options.slidesToShow) * -1;

            }

            if (_.slideCount % _.options.slidesToScroll !== 0) {

                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {

                    _.slideOffset = ((_.slideCount % _.options.slidesToShow) * _.slideWidth) * -1;

                    verticalOffset = ((_.slideCount % _.options.slidesToShow) * verticalHeight) * -1;

                }

            }

        } else {

            if (_.slideCount % _.options.slidesToShow !== 0) {

                if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {

                    _.slideOffset = (_.options.slidesToShow * _.slideWidth) - ((_.slideCount % _.options.slidesToShow) * _.slideWidth);

                    verticalOffset = ((_.slideCount % _.options.slidesToShow) * verticalHeight);

                }

            }

        }



        if (_.options.centerMode === true && _.options.infinite === true) {

            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;

        } else if (_.options.centerMode === true) {

            _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);

        }



        if (_.options.vertical === false) {

            targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;

        } else {

            targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;

        }



        return targetLeft;



    };



    Slick.prototype.init = function() {



        var _ = this;



        if (!$(_.$slider).hasClass('slick-initialized')) {



            $(_.$slider).addClass('slick-initialized');

            _.buildOut();

            _.setProps();

            _.startLoad();

            _.loadSlider();

            _.initializeEvents();

            _.checkResponsive();

        }



        if (_.options.onInit !== null) {

            _.options.onInit.call(this, _);

        }



    };



    Slick.prototype.initArrowEvents = function() {



        var _ = this;



        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {

            _.$prevArrow.on('click.slick', {

                message: 'previous'

            }, _.changeSlide);

            _.$nextArrow.on('click.slick', {

                message: 'next'

            }, _.changeSlide);

        }



    };



    Slick.prototype.initDotEvents = function() {



        var _ = this;



        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {

            $('li', _.$dots).on('click.slick', {

                message: 'index'

            }, _.changeSlide);

        }



        if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.options.autoplay === true) {

            $('li', _.$dots)

                .on('mouseenter.slick', _.autoPlayClear)

                .on('mouseleave.slick', _.autoPlay);

        }



    };



    Slick.prototype.initializeEvents = function() {



        var _ = this;



        _.initArrowEvents();



        _.initDotEvents();



        _.$list.on('touchstart.slick mousedown.slick', {

            action: 'start'

        }, _.swipeHandler);

        _.$list.on('touchmove.slick mousemove.slick', {

            action: 'move'

        }, _.swipeHandler);

        _.$list.on('touchend.slick mouseup.slick', {

            action: 'end'

        }, _.swipeHandler);

        _.$list.on('touchcancel.slick mouseleave.slick', {

            action: 'end'

        }, _.swipeHandler);



        if (_.options.pauseOnHover === true && _.options.autoplay === true) {

            _.$list.on('mouseenter.slick', _.autoPlayClear);

            _.$list.on('mouseleave.slick', _.autoPlay);

        }



        if(_.options.accessibility === true) {

            _.$list.on('keydown.slick', _.keyHandler);

        }



        if(_.options.focusOnSelect === true) {

            $(_.options.slide, _.$slideTrack).on('click.slick', _.selectHandler);

        }



        $(window).on('orientationchange.slick.slick-' + _.instanceUid, function() {

            _.checkResponsive();

            _.setPosition();

        });



        $(window).on('resize.slick.slick-' + _.instanceUid, function() {

            if ($(window).width() !== _.windowWidth) {

                clearTimeout(_.windowDelay);

                _.windowDelay = window.setTimeout(function() {

                    _.windowWidth = $(window).width();

                    _.checkResponsive();

                    _.setPosition();

                }, 50);

            }

        });



        $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);

        $(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition);



    };



    Slick.prototype.initUI = function() {



        var _ = this;



        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {



            _.$prevArrow.show();

            _.$nextArrow.show();



        }



        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {



            _.$dots.show();



        }



        if (_.options.autoplay === true) {



            _.autoPlay();



        }



    };



    Slick.prototype.keyHandler = function(event) {



        var _ = this;



        if (event.keyCode === 37) {

            _.changeSlide({

                data: {

                    message: 'previous'

                }

            });

        } else if (event.keyCode === 39) {

            _.changeSlide({

                data: {

                    message: 'next'

                }

            });

        }



    };



    Slick.prototype.lazyLoad = function() {



        var _ = this,

            loadRange, cloneRange, rangeStart, rangeEnd;



        function loadImages(imagesScope) {

            $('img[data-lazy]', imagesScope).each(function() {

                var image = $(this),

                    imageSource = $(this).attr('data-lazy') + "?" + new Date().getTime();



                image

                  .load(function() { image.animate({ opacity: 1 }, 200); })

                  .css({ opacity: 0 })

                  .attr('src', imageSource)

                  .removeAttr('data-lazy')

                  .removeClass('slick-loading');

            });

        }



        if (_.options.centerMode === true) {

            if (_.options.infinite === true) {

                rangeStart = _.currentSlide + (_.options.slidesToShow/2 + 1);

                rangeEnd = rangeStart + _.options.slidesToShow + 2;

            } else {

                rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow/2 + 1));

                rangeEnd = 2 + (_.options.slidesToShow/2 + 1) + _.currentSlide;

            }

        } else {

            rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;

            rangeEnd = rangeStart + _.options.slidesToShow;

            if (_.options.fade === true ) {

                if(rangeStart > 0) rangeStart--;

                if(rangeEnd <= _.slideCount) rangeEnd++;

            }

        }



        loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);

        loadImages(loadRange);



          if (_.slideCount == 1){

              cloneRange = _.$slider.find('.slick-slide')

              loadImages(cloneRange)

          }else

        if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {

            cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);

            loadImages(cloneRange)

        } else if (_.currentSlide === 0) {

            cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);

            loadImages(cloneRange);

        }



    };



    Slick.prototype.loadSlider = function() {



        var _ = this;



        _.setPosition();



        _.$slideTrack.css({

            opacity: 1

        });



        _.$slider.removeClass('slick-loading');



        _.initUI();



        if (_.options.lazyLoad === 'progressive') {

            _.progressiveLazyLoad();

        }



    };



    Slick.prototype.postSlide = function(index) {



        var _ = this;



        if (_.options.onAfterChange !== null) {

            _.options.onAfterChange.call(this, _, index);

        }



        _.animating = false;



        _.setPosition();



        _.swipeLeft = null;



        if (_.options.autoplay === true && _.paused === false) {

            _.autoPlay();

        }



    };



    Slick.prototype.progressiveLazyLoad = function() {



        var _ = this,

            imgCount, targetImage;



        imgCount = $('img[data-lazy]').length;



        if (imgCount > 0) {

            targetImage = $('img[data-lazy]', _.$slider).first();

            targetImage.attr('src', targetImage.attr('data-lazy')).removeClass('slick-loading').load(function() {

                targetImage.removeAttr('data-lazy');

                _.progressiveLazyLoad();

            });

        }



    };



    Slick.prototype.refresh = function() {



        var _ = this,

            currentSlide = _.currentSlide;



        _.destroy();



        $.extend(_, _.initials);



        _.currentSlide = currentSlide;

        _.init();



    };



    Slick.prototype.reinit = function() {



        var _ = this;



        _.$slides = _.$slideTrack.children(_.options.slide).addClass(

            'slick-slide');



        _.slideCount = _.$slides.length;



        if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {

            _.currentSlide = _.currentSlide - _.options.slidesToScroll;

        }



        _.setProps();



        _.setupInfinite();



        _.buildArrows();



        _.updateArrows();



        _.initArrowEvents();



        _.buildDots();



        _.updateDots();



        _.initDotEvents();



        if(_.options.focusOnSelect === true) {

            $(_.options.slide, _.$slideTrack).on('click.slick', _.selectHandler);

        }



        _.setSlideClasses(0);



        _.setPosition();



        if (_.options.onReInit !== null) {

            _.options.onReInit.call(this, _);

        }



    };



    Slick.prototype.removeSlide = function(index, removeBefore) {



        var _ = this;



        if (typeof(index) === 'boolean') {

            removeBefore = index;

            index = removeBefore === true ? 0 : _.slideCount - 1;

        } else {

            index = removeBefore === true ? --index : index;

        }



        if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {

            return false;

        }



        _.unload();



        _.$slideTrack.children(this.options.slide).eq(index).remove();



        _.$slides = _.$slideTrack.children(this.options.slide);



        _.$slideTrack.children(this.options.slide).detach();



        _.$slideTrack.append(_.$slides);



        _.$slidesCache = _.$slides;



        _.reinit();



    };



    Slick.prototype.setCSS = function(position) {



        var _ = this,

            positionProps = {}, x, y;



        if (_.options.rtl === true) {

            position = -position;

        }

        x = _.positionProp == 'left' ? position + 'px' : '0px';

        y = _.positionProp == 'top' ? position + 'px' : '0px';



        positionProps[_.positionProp] = position;



        if (_.transformsEnabled === false) {

            _.$slideTrack.css(positionProps);

        } else {

            positionProps = {};

            if (_.cssTransitions === false) {

                positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';

                _.$slideTrack.css(positionProps);

            } else {

                positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';

                _.$slideTrack.css(positionProps);

            }

        }



    };



    Slick.prototype.setDimensions = function() {



        var _ = this;



        if (_.options.vertical === false) {

            if (_.options.centerMode === true) {

                _.$list.css({

                    padding: ('0px ' + _.options.centerPadding)

                });

            }

        } else {

            _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);

            if (_.options.centerMode === true) {

                _.$list.css({

                    padding: (_.options.centerPadding + ' 0px')

                });

            }

        }



        _.listWidth = _.$list.width();

        _.listHeight = _.$list.height();





        if(_.options.vertical === false) {

            _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);

            _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));

        

        } else {

            _.slideWidth = Math.ceil(_.listWidth);

            _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));

        

        }



        var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();

        _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);



    };



    Slick.prototype.setFade = function() {



        var _ = this,

            targetLeft;



        _.$slides.each(function(index, element) {

            targetLeft = (_.slideWidth * index) * -1;

            $(element).css({

                position: 'relative',

                left: targetLeft,

                top: 0,

                zIndex: 800,

                opacity: 0

            });

        });



        _.$slides.eq(_.currentSlide).css({

            zIndex: 900,

            opacity: 1

        });



    };



    Slick.prototype.setPosition = function() {



        var _ = this;



        _.setDimensions();



        if (_.options.fade === false) {

            _.setCSS(_.getLeft(_.currentSlide));

        } else {

            _.setFade();

        }



    };



    Slick.prototype.setProps = function() {



        var _ = this,

            bodyStyle = document.body.style;



        _.positionProp = _.options.vertical === true ? 'top' : 'left';



        if (_.positionProp === 'top') {

            _.$slider.addClass('slick-vertical');

        } else {

            _.$slider.removeClass('slick-vertical');

        }



        if (bodyStyle.WebkitTransition !== undefined ||

            bodyStyle.MozTransition !== undefined ||

            bodyStyle.msTransition !== undefined) {

            if(_.options.useCSS === true) {

                _.cssTransitions = true;

            }

        }



        if (bodyStyle.OTransform !== undefined) {

            _.animType = 'OTransform';

            _.transformType = "-o-transform";

            _.transitionType = 'OTransition';

            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;

        }

        if (bodyStyle.MozTransform !== undefined) {

            _.animType = 'MozTransform';

            _.transformType = "-moz-transform";

            _.transitionType = 'MozTransition';

            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;

        }

        if (bodyStyle.webkitTransform !== undefined) {

            _.animType = 'webkitTransform';

            _.transformType = "-webkit-transform";

            _.transitionType = 'webkitTransition';

            if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;

        }

        if (bodyStyle.msTransform !== undefined) {

            _.animType = 'msTransform';

            _.transformType = "-ms-transform";

            _.transitionType = 'msTransition';

            if (bodyStyle.msTransform === undefined) _.animType = false;

        }

        if (bodyStyle.transform !== undefined && _.animType !== false) {

            _.animType = 'transform';

            _.transformType = "transform";

            _.transitionType = 'transition';

        }

        _.transformsEnabled = (_.animType !== null && _.animType !== false);



    };





    Slick.prototype.setSlideClasses = function(index) {



        var _ = this,

            centerOffset, allSlides, indexOffset, remainder;



        _.$slider.find('.slick-slide').removeClass('slick-active').removeClass('slick-center');

        allSlides = _.$slider.find('.slick-slide');



        if (_.options.centerMode === true) {



            centerOffset = Math.floor(_.options.slidesToShow / 2);



            if(_.options.infinite === true) {



                if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {

                    _.$slides.slice(index - centerOffset, index + centerOffset + 1).addClass('slick-active');

                } else {

                    indexOffset = _.options.slidesToShow + index;

                    allSlides.slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2).addClass('slick-active');

                }



                if (index === 0) {

                    allSlides.eq(allSlides.length - 1 - _.options.slidesToShow).addClass('slick-center');

                } else if (index === _.slideCount - 1) {

                    allSlides.eq(_.options.slidesToShow).addClass('slick-center');

                }



            }



            _.$slides.eq(index).addClass('slick-center');



        } else {



            if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {

                _.$slides.slice(index, index + _.options.slidesToShow).addClass('slick-active');

            } else if ( allSlides.length <= _.options.slidesToShow ) {

                allSlides.addClass('slick-active');

            } else {

                remainder = _.slideCount%_.options.slidesToShow;

                indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;

                if(_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {

                    allSlides.slice(indexOffset-(_.options.slidesToShow-remainder), indexOffset + remainder).addClass('slick-active');

                } else {

                    allSlides.slice(indexOffset, indexOffset + _.options.slidesToShow).addClass('slick-active');

                }

            }



        }



        if (_.options.lazyLoad === 'ondemand') {

            _.lazyLoad();

        }



    };



    Slick.prototype.setupInfinite = function() {



        var _ = this,

            i, slideIndex, infiniteCount;



        if (_.options.fade === true || _.options.vertical === true) {

            _.options.centerMode = false;

        }



        if (_.options.infinite === true && _.options.fade === false) {



            slideIndex = null;



            if (_.slideCount > _.options.slidesToShow) {



                if (_.options.centerMode === true) {

                    infiniteCount = _.options.slidesToShow + 1;

                } else {

                    infiniteCount = _.options.slidesToShow;

                }



                for (i = _.slideCount; i > (_.slideCount -

                    infiniteCount); i -= 1) {

                    slideIndex = i - 1;

                    $(_.$slides[slideIndex]).clone(true).attr('id', '').prependTo(

                        _.$slideTrack).addClass('slick-cloned');

                }

                for (i = 0; i < infiniteCount; i += 1) {

                    slideIndex = i;

                    $(_.$slides[slideIndex]).clone(true).attr('id', '').appendTo(

                        _.$slideTrack).addClass('slick-cloned');

                }

                _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {

                    $(this).attr('id', '');

                });



            }



        }



    };



    Slick.prototype.selectHandler = function(event) {



        var _ = this;

        var asNavFor = _.options.asNavFor != null ? $(_.options.asNavFor).getSlick() : null;

        var index = parseInt($(event.target).parent().attr("index"));

        if(!index) index = 0;



        if(_.slideCount <= _.options.slidesToShow){

            return;

        }

        _.slideHandler(index);



        if(asNavFor != null){

            if(asNavFor.slideCount <= asNavFor.options.slidesToShow){

                return;

            }

            asNavFor.slideHandler(index);

        }

    };



    Slick.prototype.slideHandler = function(index) {



        var targetSlide, animSlide, slideLeft, unevenOffset, targetLeft = null,

            _ = this;



        if (_.animating === true) {

            return false;

        }



        targetSlide = index;

        targetLeft = _.getLeft(targetSlide);

        slideLeft = _.getLeft(_.currentSlide);



        unevenOffset = _.slideCount % _.options.slidesToScroll !== 0 ? _.options.slidesToScroll : 0;



        _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;



        if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > (_.slideCount - _.options.slidesToShow + unevenOffset))) {

            if(_.options.fade === false) {

                targetSlide = _.currentSlide;

                _.animateSlide(slideLeft, function() {

                    _.postSlide(targetSlide);

                });

            }

            return false;

        } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {

            if(_.options.fade === false) {

                targetSlide = _.currentSlide;

                _.animateSlide(slideLeft, function() {

                    _.postSlide(targetSlide);

                });

            }

            return false;

        }



        if (_.options.autoplay === true) {

            clearInterval(_.autoPlayTimer);

        }



        if (targetSlide < 0) {

            if (_.slideCount % _.options.slidesToScroll !== 0) {

                animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);

            } else {

                animSlide = _.slideCount - _.options.slidesToScroll;

            }

        } else if (targetSlide > (_.slideCount - 1)) {

            animSlide = 0;

        } else {

            animSlide = targetSlide;

        }



        _.animating = true;



        if (_.options.onBeforeChange !== null && index !== _.currentSlide) {

            _.options.onBeforeChange.call(this, _, _.currentSlide, animSlide);

        }



        _.currentSlide = animSlide;



        _.setSlideClasses(_.currentSlide);



        _.updateDots();

        _.updateArrows();



        if (_.options.fade === true) {

            _.fadeSlide(animSlide, function() {

                _.postSlide(animSlide);

            });

            return false;

        }



        _.animateSlide(targetLeft, function() {

            _.postSlide(animSlide);

        });



    };



    Slick.prototype.startLoad = function() {



        var _ = this;



        if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {



            _.$prevArrow.hide();

            _.$nextArrow.hide();



        }



        if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {



            _.$dots.hide();



        }



        _.$slider.addClass('slick-loading');



    };



    Slick.prototype.swipeDirection = function() {



        var xDist, yDist, r, swipeAngle, _ = this;



        xDist = _.touchObject.startX - _.touchObject.curX;

        yDist = _.touchObject.startY - _.touchObject.curY;

        r = Math.atan2(yDist, xDist);



        swipeAngle = Math.round(r * 180 / Math.PI);

        if (swipeAngle < 0) {

            swipeAngle = 360 - Math.abs(swipeAngle);

        }



        if ((swipeAngle <= 45) && (swipeAngle >= 0)) {

            return 'left';

        }

        if ((swipeAngle <= 360) && (swipeAngle >= 315)) {

            return 'left';

        }

        if ((swipeAngle >= 135) && (swipeAngle <= 225)) {

            return 'right';

        }



        return 'vertical';



    };



    Slick.prototype.swipeEnd = function(event) {



        var _ = this;

        var asNavFor = _.options.asNavFor != null ? $(_.options.asNavFor).getSlick() : null;



        _.dragging = false;



        if (_.touchObject.curX === undefined) {

            return false;

        }



        if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {

            $(event.target).on('click.slick', function(event) {

                event.stopImmediatePropagation();

                event.stopPropagation();

                event.preventDefault();

                $(event.target).off('click.slick');

            });



            switch (_.swipeDirection()) {

                case 'left':

                    _.slideHandler(_.currentSlide + _.options.slidesToScroll);

                    if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide + asNavFor.options.slidesToScroll);

                    _.touchObject = {};

                    break;



                case 'right':

                    _.slideHandler(_.currentSlide - _.options.slidesToScroll);

                    if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide - asNavFor.options.slidesToScroll);

                    _.touchObject = {};

                    break;

            }

        } else {

            if(_.touchObject.startX !== _.touchObject.curX) {

                _.slideHandler(_.currentSlide);

                if(asNavFor != null) asNavFor.slideHandler(asNavFor.currentSlide);

                _.touchObject = {};

            }

        }



    };



    Slick.prototype.swipeHandler = function(event) {



        var _ = this;



        if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {

           return;

        } else if ((_.options.draggable === false) || (_.options.draggable === false && !event.originalEvent.touches)) {

           return;

        }



        _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?

            event.originalEvent.touches.length : 1;



        _.touchObject.minSwipe = _.listWidth / _.options

            .touchThreshold;



        switch (event.data.action) {



            case 'start':

                _.swipeStart(event);

                break;



            case 'move':

                _.swipeMove(event);

                break;



            case 'end':

                _.swipeEnd(event);

                break;



        }



    };



    Slick.prototype.swipeMove = function(event) {



        var _ = this,

            curLeft, swipeDirection, positionOffset, touches;



        touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;



        curLeft = _.getLeft(_.currentSlide);



        if (!_.dragging || touches && touches.length !== 1) {

            return false;

        }



        _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;

        _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;



        _.touchObject.swipeLength = Math.round(Math.sqrt(

            Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));



        swipeDirection = _.swipeDirection();



        if (swipeDirection === 'vertical') {

            return;

        }



        if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {

            event.preventDefault();

        }



        positionOffset = _.touchObject.curX > _.touchObject.startX ? 1 : -1;



        if (_.options.vertical === false) {

            _.swipeLeft = curLeft + _.touchObject.swipeLength * positionOffset;

        } else {

            _.swipeLeft = curLeft + (_.touchObject

                .swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;

        }



        if (_.options.fade === true || _.options.touchMove === false) {

            return false;

        }



        if (_.animating === true) {

            _.swipeLeft = null;

            return false;

        }



        _.setCSS(_.swipeLeft);



    };



    Slick.prototype.swipeStart = function(event) {



        var _ = this,

            touches;



        if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {

            _.touchObject = {};

            return false;

        }



        if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {

            touches = event.originalEvent.touches[0];

        }



        _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;

        _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;



        _.dragging = true;



    };



    Slick.prototype.unfilterSlides = function() {



        var _ = this;



        if (_.$slidesCache !== null) {



            _.unload();



            _.$slideTrack.children(this.options.slide).detach();



            _.$slidesCache.appendTo(_.$slideTrack);



            _.reinit();



        }



    };



    Slick.prototype.unload = function() {



        var _ = this;



        $('.slick-cloned', _.$slider).remove();

        if (_.$dots) {

            _.$dots.remove();

        }

        if (_.$prevArrow) {

            _.$prevArrow.remove();

            _.$nextArrow.remove();

        }

        _.$slides.removeClass(

            'slick-slide slick-active slick-visible').removeAttr('style');



    };



    Slick.prototype.updateArrows = function() {



        var _ = this;



        if (_.options.arrows === true && _.options.infinite !==

            true && _.slideCount > _.options.slidesToShow) {

            _.$prevArrow.removeClass('slick-disabled');

            _.$nextArrow.removeClass('slick-disabled');

            if (_.currentSlide === 0) {

                _.$prevArrow.addClass('slick-disabled');

                _.$nextArrow.removeClass('slick-disabled');

            } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {

                _.$nextArrow.addClass('slick-disabled');

                _.$prevArrow.removeClass('slick-disabled');

            }

        }



    };



    Slick.prototype.updateDots = function() {



        var _ = this;



        if (_.$dots !== null) {



            _.$dots.find('li').removeClass('slick-active');

            _.$dots.find('li').eq(Math.floor(_.currentSlide / _.options.slidesToScroll)).addClass('slick-active');



        }



    };



    $.fn.slick = function(options) {

        var _ = this;

        return _.each(function(index, element) {



            element.slick = new Slick(element, options);



        });

    };



    $.fn.slickAdd = function(slide, slideIndex, addBefore) {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.addSlide(slide, slideIndex, addBefore);



        });

    };



    $.fn.slickCurrentSlide = function() {

        var _ = this;

        return _.get(0).slick.getCurrent();

    };



    $.fn.slickFilter = function(filter) {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.filterSlides(filter);



        });

    };



    $.fn.slickGoTo = function(slide) {

        var _ = this;

        return _.each(function(index, element) {



            var asNavFor = element.slick.options.asNavFor != null ? $(element.slick.options.asNavFor) : null;

            if(asNavFor != null) asNavFor.slickGoTo(slide);

            element.slick.slideHandler(slide);



        });

    };



    $.fn.slickNext = function() {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.changeSlide({

                data: {

                    message: 'next'

                }

            });



        });

    };



    $.fn.slickPause = function() {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.autoPlayClear();

            element.slick.paused = true;



        });

    };



    $.fn.slickPlay = function() {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.paused = false;

            element.slick.autoPlay();



        });

    };



    $.fn.slickPrev = function() {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.changeSlide({

                data: {

                    message: 'previous'

                }

            });



        });

    };



    $.fn.slickRemove = function(slideIndex, removeBefore) {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.removeSlide(slideIndex, removeBefore);



        });

    };



    $.fn.slickGetOption = function(option) {

        var _ = this;

        return _.get(0).slick.options[option];

    };



    $.fn.slickSetOption = function(option, value, refresh) {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.options[option] = value;



            if (refresh === true) {

                element.slick.unload();

                element.slick.reinit();

            }



        });

    };



    $.fn.slickUnfilter = function() {

        var _ = this;

        return _.each(function(index, element) {



            element.slick.unfilterSlides();



        });

    };



    $.fn.unslick = function() {

        var _ = this;

        return _.each(function(index, element) {



          if (element.slick) {

            element.slick.destroy();

          }



        });

    };



    $.fn.getSlick = function() {

        var s = null;

        var _ = this;

        _.each(function(index, element) {

            s = element.slick;

        });



        return s;

    };



}));