{"version":3,"file":"scripts-redesign.js","sources":["scripts-redesign.js"],"sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\r\n\r\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\n\r\n(function (global, factory) {\r\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.LazyLoad = factory());\r\n})(this, function () {\r\n 'use strict';\r\n\r\n var runningOnBrowser = typeof window !== \"undefined\";\r\n var isBot = runningOnBrowser && !(\"onscroll\" in window) || typeof navigator !== \"undefined\" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);\r\n var supportsIntersectionObserver = runningOnBrowser && \"IntersectionObserver\" in window;\r\n var supportsClassList = runningOnBrowser && \"classList\" in document.createElement(\"p\");\r\n var defaultSettings = {\r\n elements_selector: \"img\",\r\n container: isBot || runningOnBrowser ? document : null,\r\n threshold: 300,\r\n thresholds: null,\r\n data_src: \"src\",\r\n data_srcset: \"srcset\",\r\n data_sizes: \"sizes\",\r\n data_bg: \"bg\",\r\n data_poster: \"poster\",\r\n class_loading: \"loading\",\r\n class_loaded: \"loaded\",\r\n class_error: \"error\",\r\n load_delay: 0,\r\n auto_unobserve: true,\r\n callback_enter: null,\r\n callback_exit: null,\r\n callback_reveal: null,\r\n callback_loaded: null,\r\n callback_error: null,\r\n callback_finish: null,\r\n use_native: false\r\n };\r\n\r\n var getInstanceSettings = function getInstanceSettings(customSettings) {\r\n return _extends({}, defaultSettings, customSettings);\r\n };\r\n /* Creates instance and notifies it through the window element */\r\n\r\n\r\n var createInstance = function createInstance(classObj, options) {\r\n var event;\r\n var eventString = \"LazyLoad::Initialized\";\r\n var instance = new classObj(options);\r\n\r\n try {\r\n // Works in modern browsers\r\n event = new CustomEvent(eventString, {\r\n detail: {\r\n instance: instance\r\n }\r\n });\r\n } catch (err) {\r\n // Works in Internet Explorer (all versions)\r\n event = document.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventString, false, false, {\r\n instance: instance\r\n });\r\n }\r\n\r\n window.dispatchEvent(event);\r\n };\r\n /* Auto initialization of one or more instances of lazyload, depending on the \r\n options passed in (plain object or an array) */\r\n\r\n\r\n function autoInitialize(classObj, options) {\r\n if (!options) {\r\n return;\r\n }\r\n\r\n if (!options.length) {\r\n // Plain object\r\n createInstance(classObj, options);\r\n } else {\r\n // Array of objects\r\n for (var i = 0, optionsItem; optionsItem = options[i]; i += 1) {\r\n createInstance(classObj, optionsItem);\r\n }\r\n }\r\n }\r\n\r\n var dataPrefix = \"data-\";\r\n var processedDataName = \"was-processed\";\r\n var timeoutDataName = \"ll-timeout\";\r\n var trueString = \"true\";\r\n\r\n var getData = function getData(element, attribute) {\r\n return element.getAttribute(dataPrefix + attribute);\r\n };\r\n\r\n var setData = function setData(element, attribute, value) {\r\n var attrName = dataPrefix + attribute;\r\n\r\n if (value === null) {\r\n element.removeAttribute(attrName);\r\n return;\r\n }\r\n\r\n element.setAttribute(attrName, value);\r\n };\r\n\r\n var resetWasProcessedData = function resetWasProcessedData(element) {\r\n return setData(element, processedDataName, null);\r\n };\r\n\r\n var setWasProcessedData = function setWasProcessedData(element) {\r\n return setData(element, processedDataName, trueString);\r\n };\r\n\r\n var getWasProcessedData = function getWasProcessedData(element) {\r\n return getData(element, processedDataName) === trueString;\r\n };\r\n\r\n var setTimeoutData = function setTimeoutData(element, value) {\r\n return setData(element, timeoutDataName, value);\r\n };\r\n\r\n var getTimeoutData = function getTimeoutData(element) {\r\n return getData(element, timeoutDataName);\r\n };\r\n\r\n var purgeProcessedElements = function purgeProcessedElements(elements) {\r\n return elements.filter(function (element) {\r\n return !getWasProcessedData(element);\r\n });\r\n };\r\n\r\n var purgeOneElement = function purgeOneElement(elements, elementToPurge) {\r\n return elements.filter(function (element) {\r\n return element !== elementToPurge;\r\n });\r\n };\r\n\r\n var safeCallback = function safeCallback(callback, arg1, arg2, arg3) {\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (arg3 !== undefined) {\r\n callback(arg1, arg2, arg3);\r\n return;\r\n }\r\n\r\n if (arg2 !== undefined) {\r\n callback(arg1, arg2);\r\n return;\r\n }\r\n\r\n callback(arg1);\r\n };\r\n\r\n var updateLoadingCount = function updateLoadingCount(instance, plusMinus) {\r\n instance.loadingCount += plusMinus;\r\n\r\n if (instance._elements.length === 0 && instance.loadingCount === 0) {\r\n safeCallback(instance._settings.callback_finish, instance);\r\n }\r\n };\r\n\r\n var getSourceTags = function getSourceTags(parentTag) {\r\n var sourceTags = [];\r\n\r\n for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {\r\n if (childTag.tagName === \"SOURCE\") {\r\n sourceTags.push(childTag);\r\n }\r\n }\r\n\r\n return sourceTags;\r\n };\r\n\r\n var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n element.setAttribute(attrName, value);\r\n };\r\n\r\n var setImageAttributes = function setImageAttributes(element, settings) {\r\n setAttributeIfValue(element, \"sizes\", getData(element, settings.data_sizes));\r\n setAttributeIfValue(element, \"srcset\", getData(element, settings.data_srcset));\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n };\r\n\r\n var setSourcesImg = function setSourcesImg(element, settings) {\r\n var parent = element.parentNode;\r\n\r\n if (parent && parent.tagName === \"PICTURE\") {\r\n var sourceTags = getSourceTags(parent);\r\n sourceTags.forEach(function (sourceTag) {\r\n setImageAttributes(sourceTag, settings);\r\n });\r\n }\r\n\r\n setImageAttributes(element, settings);\r\n };\r\n\r\n var setSourcesIframe = function setSourcesIframe(element, settings) {\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n };\r\n\r\n var setSourcesVideo = function setSourcesVideo(element, settings) {\r\n var sourceTags = getSourceTags(element);\r\n sourceTags.forEach(function (sourceTag) {\r\n setAttributeIfValue(sourceTag, \"src\", getData(sourceTag, settings.data_src));\r\n });\r\n setAttributeIfValue(element, \"poster\", getData(element, settings.data_poster));\r\n setAttributeIfValue(element, \"src\", getData(element, settings.data_src));\r\n element.load();\r\n };\r\n\r\n var setSourcesBgImage = function setSourcesBgImage(element, settings) {\r\n var srcDataValue = getData(element, settings.data_src);\r\n var bgDataValue = getData(element, settings.data_bg);\r\n\r\n if (srcDataValue) {\r\n element.style.backgroundImage = \"url(\\\"\".concat(srcDataValue, \"\\\")\");\r\n }\r\n\r\n if (bgDataValue) {\r\n element.style.backgroundImage = bgDataValue;\r\n }\r\n };\r\n\r\n var setSourcesFunctions = {\r\n IMG: setSourcesImg,\r\n IFRAME: setSourcesIframe,\r\n VIDEO: setSourcesVideo\r\n };\r\n\r\n var setSources = function setSources(element, instance) {\r\n var settings = instance._settings;\r\n var tagName = element.tagName;\r\n var setSourcesFunction = setSourcesFunctions[tagName];\r\n\r\n if (setSourcesFunction) {\r\n setSourcesFunction(element, settings);\r\n updateLoadingCount(instance, 1);\r\n instance._elements = purgeOneElement(instance._elements, element);\r\n return;\r\n }\r\n\r\n setSourcesBgImage(element, settings);\r\n };\r\n\r\n var addClass = function addClass(element, className) {\r\n if (supportsClassList) {\r\n element.classList.add(className);\r\n return;\r\n }\r\n\r\n element.className += (element.className ? \" \" : \"\") + className;\r\n };\r\n\r\n var removeClass = function removeClass(element, className) {\r\n if (supportsClassList) {\r\n element.classList.remove(className);\r\n return;\r\n }\r\n\r\n element.className = element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), \" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\r\n };\r\n\r\n var genericLoadEventName = \"load\";\r\n var mediaLoadEventName = \"loadeddata\";\r\n var errorEventName = \"error\";\r\n\r\n var addEventListener = function addEventListener(element, eventName, handler) {\r\n element.addEventListener(eventName, handler);\r\n };\r\n\r\n var removeEventListener = function removeEventListener(element, eventName, handler) {\r\n element.removeEventListener(eventName, handler);\r\n };\r\n\r\n var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {\r\n addEventListener(element, genericLoadEventName, loadHandler);\r\n addEventListener(element, mediaLoadEventName, loadHandler);\r\n addEventListener(element, errorEventName, errorHandler);\r\n };\r\n\r\n var removeEventListeners = function removeEventListeners(element, loadHandler, errorHandler) {\r\n removeEventListener(element, genericLoadEventName, loadHandler);\r\n removeEventListener(element, mediaLoadEventName, loadHandler);\r\n removeEventListener(element, errorEventName, errorHandler);\r\n };\r\n\r\n var eventHandler = function eventHandler(event, success, instance) {\r\n var settings = instance._settings;\r\n var className = success ? settings.class_loaded : settings.class_error;\r\n var callback = success ? settings.callback_loaded : settings.callback_error;\r\n var element = event.target;\r\n removeClass(element, settings.class_loading);\r\n addClass(element, className);\r\n safeCallback(callback, element, instance);\r\n updateLoadingCount(instance, -1);\r\n };\r\n\r\n var addOneShotEventListeners = function addOneShotEventListeners(element, instance) {\r\n var loadHandler = function loadHandler(event) {\r\n eventHandler(event, true, instance);\r\n removeEventListeners(element, loadHandler, errorHandler);\r\n };\r\n\r\n var errorHandler = function errorHandler(event) {\r\n eventHandler(event, false, instance);\r\n removeEventListeners(element, loadHandler, errorHandler);\r\n };\r\n\r\n addEventListeners(element, loadHandler, errorHandler);\r\n };\r\n\r\n var managedTags = [\"IMG\", \"IFRAME\", \"VIDEO\"];\r\n\r\n var onEnter = function onEnter(element, entry, instance) {\r\n var settings = instance._settings;\r\n safeCallback(settings.callback_enter, element, entry, instance);\r\n\r\n if (!settings.load_delay) {\r\n revealAndUnobserve(element, instance);\r\n return;\r\n }\r\n\r\n delayLoad(element, instance);\r\n };\r\n\r\n var revealAndUnobserve = function revealAndUnobserve(element, instance) {\r\n var observer = instance._observer;\r\n revealElement(element, instance);\r\n\r\n if (observer && instance._settings.auto_unobserve) {\r\n observer.unobserve(element);\r\n }\r\n };\r\n\r\n var onExit = function onExit(element, entry, instance) {\r\n var settings = instance._settings;\r\n safeCallback(settings.callback_exit, element, entry, instance);\r\n\r\n if (!settings.load_delay) {\r\n return;\r\n }\r\n\r\n cancelDelayLoad(element);\r\n };\r\n\r\n var cancelDelayLoad = function cancelDelayLoad(element) {\r\n var timeoutId = getTimeoutData(element);\r\n\r\n if (!timeoutId) {\r\n return; // do nothing if timeout doesn't exist\r\n }\r\n\r\n clearTimeout(timeoutId);\r\n setTimeoutData(element, null);\r\n };\r\n\r\n var delayLoad = function delayLoad(element, instance) {\r\n var loadDelay = instance._settings.load_delay;\r\n var timeoutId = getTimeoutData(element);\r\n\r\n if (timeoutId) {\r\n return; // do nothing if timeout already set\r\n }\r\n\r\n timeoutId = setTimeout(function () {\r\n revealAndUnobserve(element, instance);\r\n cancelDelayLoad(element);\r\n }, loadDelay);\r\n setTimeoutData(element, timeoutId);\r\n };\r\n\r\n var revealElement = function revealElement(element, instance, force) {\r\n var settings = instance._settings;\r\n\r\n if (!force && getWasProcessedData(element)) {\r\n return; // element has already been processed and force wasn't true\r\n }\r\n\r\n if (managedTags.indexOf(element.tagName) > -1) {\r\n addOneShotEventListeners(element, instance);\r\n addClass(element, settings.class_loading);\r\n }\r\n\r\n setSources(element, instance);\r\n setWasProcessedData(element);\r\n safeCallback(settings.callback_reveal, element, instance);\r\n safeCallback(settings.callback_set, element, instance);\r\n };\r\n\r\n var isIntersecting = function isIntersecting(entry) {\r\n return entry.isIntersecting || entry.intersectionRatio > 0;\r\n };\r\n\r\n var getObserverSettings = function getObserverSettings(settings) {\r\n return {\r\n root: settings.container === document ? null : settings.container,\r\n rootMargin: settings.thresholds || settings.threshold + \"px\"\r\n };\r\n };\r\n\r\n var setObserver = function setObserver(instance) {\r\n if (!supportsIntersectionObserver) {\r\n return false;\r\n }\r\n\r\n instance._observer = new IntersectionObserver(function (entries) {\r\n entries.forEach(function (entry) {\r\n return isIntersecting(entry) ? onEnter(entry.target, entry, instance) : onExit(entry.target, entry, instance);\r\n });\r\n }, getObserverSettings(instance._settings));\r\n return true;\r\n };\r\n\r\n var nativeLazyTags = [\"IMG\", \"IFRAME\"];\r\n\r\n var shouldUseNative = function shouldUseNative(settings) {\r\n return settings.use_native && \"loading\" in HTMLImageElement.prototype;\r\n };\r\n\r\n var loadAllNative = function loadAllNative(instance) {\r\n instance._elements.forEach(function (element) {\r\n if (nativeLazyTags.indexOf(element.tagName) === -1) {\r\n return;\r\n }\r\n\r\n element.setAttribute(\"loading\", \"lazy\");\r\n revealElement(element, instance);\r\n });\r\n };\r\n\r\n var nodeSetToArray = function nodeSetToArray(nodeSet) {\r\n return Array.prototype.slice.call(nodeSet);\r\n };\r\n\r\n var queryElements = function queryElements(settings) {\r\n return settings.container.querySelectorAll(settings.elements_selector);\r\n };\r\n\r\n var getElements = function getElements(elements, settings) {\r\n return purgeProcessedElements(nodeSetToArray(elements || queryElements(settings)));\r\n };\r\n\r\n var retryLazyLoad = function retryLazyLoad(instance) {\r\n var settings = instance._settings;\r\n var errorElements = settings.container.querySelectorAll(\".\" + settings.class_error);\r\n errorElements.forEach(function (element) {\r\n removeClass(element, settings.class_error);\r\n resetWasProcessedData(element);\r\n });\r\n instance.update();\r\n };\r\n\r\n var setOnlineCheck = function setOnlineCheck(instance) {\r\n if (!runningOnBrowser) {\r\n return;\r\n }\r\n\r\n window.addEventListener(\"online\", function (event) {\r\n retryLazyLoad(instance);\r\n });\r\n };\r\n\r\n var LazyLoad = function LazyLoad(customSettings, elements) {\r\n this._settings = getInstanceSettings(customSettings);\r\n this.loadingCount = 0;\r\n setObserver(this);\r\n this.update(elements);\r\n setOnlineCheck(this);\r\n };\r\n\r\n LazyLoad.prototype = {\r\n update: function update(elements) {\r\n var _this = this;\r\n\r\n var settings = this._settings;\r\n this._elements = getElements(elements, settings);\r\n\r\n if (isBot || !this._observer) {\r\n this.loadAll();\r\n return;\r\n }\r\n\r\n if (shouldUseNative(settings)) {\r\n loadAllNative(this);\r\n this._elements = getElements(elements, settings);\r\n }\r\n\r\n this._elements.forEach(function (element) {\r\n _this._observer.observe(element);\r\n });\r\n },\r\n destroy: function destroy() {\r\n var _this2 = this;\r\n\r\n if (this._observer) {\r\n this._elements.forEach(function (element) {\r\n _this2._observer.unobserve(element);\r\n });\r\n\r\n this._observer = null;\r\n }\r\n\r\n this._elements = null;\r\n this._settings = null;\r\n },\r\n load: function load(element, force) {\r\n revealElement(element, this, force);\r\n },\r\n loadAll: function loadAll() {\r\n var _this3 = this;\r\n\r\n this._elements.forEach(function (element) {\r\n revealAndUnobserve(element, _this3);\r\n });\r\n }\r\n };\r\n /* Automatic instances creation if required (useful for async script loading) */\r\n\r\n if (runningOnBrowser) {\r\n autoInitialize(LazyLoad, window.lazyLoadOptions);\r\n }\r\n\r\n return LazyLoad;\r\n});\n/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.8.1\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n/* global window, document, define, jQuery, setInterval, clearInterval */\n;(function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n\n}(function($) {\n 'use strict';\n var Slick = window.Slick || {};\n\n Slick = (function() {\n\n var instanceUid = 0;\n\n function Slick(element, settings) {\n\n var _ = this, dataSettings;\n\n _.defaults = {\n accessibility: true,\n adaptiveHeight: false,\n appendArrows: $(element),\n appendDots: $(element),\n arrows: true,\n asNavFor: null,\n prevArrow: '',\n nextArrow: '',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('').text(i + 1);\n },\n dots: false,\n dotsClass: 'slick-dots',\n draggable: true,\n easing: 'linear',\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n focusOnChange: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: 'ondemand',\n mobileFirst: false,\n pauseOnHover: true,\n pauseOnFocus: true,\n pauseOnDotsHover: false,\n respondTo: 'window',\n responsive: null,\n rows: 1,\n rtl: false,\n slide: '',\n slidesPerRow: 1,\n slidesToShow: 1,\n slidesToScroll: 1,\n speed: 500,\n swipe: true,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n verticalSwiping: false,\n waitForAnimate: true,\n zIndex: 1000\n };\n\n _.initials = {\n animating: false,\n dragging: false,\n autoPlayTimer: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n $dots: null,\n listWidth: null,\n listHeight: null,\n loadIndex: 0,\n $nextArrow: null,\n $prevArrow: null,\n scrolling: false,\n slideCount: null,\n slideWidth: null,\n $slideTrack: null,\n $slides: null,\n sliding: false,\n slideOffset: 0,\n swipeLeft: null,\n swiping: false,\n $list: null,\n touchObject: {},\n transformsEnabled: false,\n unslicked: false\n };\n\n $.extend(_, _.initials);\n\n _.activeBreakpoint = null;\n _.animType = null;\n _.animProp = null;\n _.breakpoints = [];\n _.breakpointSettings = [];\n _.cssTransitions = false;\n _.focussed = false;\n _.interrupted = false;\n _.hidden = 'hidden';\n _.paused = true;\n _.positionProp = null;\n _.respondTo = null;\n _.rowCount = 1;\n _.shouldClick = true;\n _.$slider = $(element);\n _.$slidesCache = null;\n _.transformType = null;\n _.transitionType = null;\n _.visibilityChange = 'visibilitychange';\n _.windowWidth = 0;\n _.windowTimer = null;\n\n dataSettings = $(element).data('slick') || {};\n\n _.options = $.extend({}, _.defaults, settings, dataSettings);\n\n _.currentSlide = _.options.initialSlide;\n\n _.originalSettings = _.options;\n\n if (typeof document.mozHidden !== 'undefined') {\n _.hidden = 'mozHidden';\n _.visibilityChange = 'mozvisibilitychange';\n } else if (typeof document.webkitHidden !== 'undefined') {\n _.hidden = 'webkitHidden';\n _.visibilityChange = 'webkitvisibilitychange';\n }\n\n _.autoPlay = $.proxy(_.autoPlay, _);\n _.autoPlayClear = $.proxy(_.autoPlayClear, _);\n _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);\n _.changeSlide = $.proxy(_.changeSlide, _);\n _.clickHandler = $.proxy(_.clickHandler, _);\n _.selectHandler = $.proxy(_.selectHandler, _);\n _.setPosition = $.proxy(_.setPosition, _);\n _.swipeHandler = $.proxy(_.swipeHandler, _);\n _.dragHandler = $.proxy(_.dragHandler, _);\n _.keyHandler = $.proxy(_.keyHandler, _);\n\n _.instanceUid = instanceUid++;\n\n // A simple way to check for HTML strings\n // Strict HTML recognition (must start with <)\n // Extracted from jQuery v1.11 source\n _.htmlExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*)$/;\n\n\n _.registerBreakpoints();\n _.init(true);\n\n }\n\n return Slick;\n\n }());\n\n Slick.prototype.activateADA = function() {\n var _ = this;\n\n _.$slideTrack.find('.slick-active').attr({\n 'aria-hidden': 'false'\n }).find('a, input, button, select').attr({\n 'tabindex': '0'\n });\n\n };\n\n Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {\n\n var _ = this;\n\n if (typeof(index) === 'boolean') {\n addBefore = index;\n index = null;\n } else if (index < 0 || (index >= _.slideCount)) {\n return false;\n }\n\n _.unload();\n\n if (typeof(index) === 'number') {\n if (index === 0 && _.$slides.length === 0) {\n $(markup).appendTo(_.$slideTrack);\n } else if (addBefore) {\n $(markup).insertBefore(_.$slides.eq(index));\n } else {\n $(markup).insertAfter(_.$slides.eq(index));\n }\n } else {\n if (addBefore === true) {\n $(markup).prependTo(_.$slideTrack);\n } else {\n $(markup).appendTo(_.$slideTrack);\n }\n }\n\n _.$slides = _.$slideTrack.children(this.options.slide);\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.append(_.$slides);\n\n _.$slides.each(function(index, element) {\n $(element).attr('data-slick-index', index);\n });\n\n _.$slidesCache = _.$slides;\n\n _.reinit();\n\n };\n\n Slick.prototype.animateHeight = function() {\n var _ = this;\n if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {\n var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);\n _.$list.animate({\n height: targetHeight\n }, _.options.speed);\n }\n };\n\n Slick.prototype.animateSlide = function(targetLeft, callback) {\n\n var animProps = {},\n _ = this;\n\n _.animateHeight();\n\n if (_.options.rtl === true && _.options.vertical === false) {\n targetLeft = -targetLeft;\n }\n if (_.transformsEnabled === false) {\n if (_.options.vertical === false) {\n _.$slideTrack.animate({\n left: targetLeft\n }, _.options.speed, _.options.easing, callback);\n } else {\n _.$slideTrack.animate({\n top: targetLeft\n }, _.options.speed, _.options.easing, callback);\n }\n\n } else {\n\n if (_.cssTransitions === false) {\n if (_.options.rtl === true) {\n _.currentLeft = -(_.currentLeft);\n }\n $({\n animStart: _.currentLeft\n }).animate({\n animStart: targetLeft\n }, {\n duration: _.options.speed,\n easing: _.options.easing,\n step: function(now) {\n now = Math.ceil(now);\n if (_.options.vertical === false) {\n animProps[_.animType] = 'translate(' +\n now + 'px, 0px)';\n _.$slideTrack.css(animProps);\n } else {\n animProps[_.animType] = 'translate(0px,' +\n now + 'px)';\n _.$slideTrack.css(animProps);\n }\n },\n complete: function() {\n if (callback) {\n callback.call();\n }\n }\n });\n\n } else {\n\n _.applyTransition();\n targetLeft = Math.ceil(targetLeft);\n\n if (_.options.vertical === false) {\n animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';\n } else {\n animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';\n }\n _.$slideTrack.css(animProps);\n\n if (callback) {\n setTimeout(function() {\n\n _.disableTransition();\n\n callback.call();\n }, _.options.speed);\n }\n\n }\n\n }\n\n };\n\n Slick.prototype.getNavTarget = function() {\n\n var _ = this,\n asNavFor = _.options.asNavFor;\n\n if ( asNavFor && asNavFor !== null ) {\n asNavFor = $(asNavFor).not(_.$slider);\n }\n\n return asNavFor;\n\n };\n\n Slick.prototype.asNavFor = function(index) {\n\n var _ = this,\n asNavFor = _.getNavTarget();\n\n if ( asNavFor !== null && typeof asNavFor === 'object' ) {\n asNavFor.each(function() {\n var target = $(this).slick('getSlick');\n if(!target.unslicked) {\n target.slideHandler(index, true);\n }\n });\n }\n\n };\n\n Slick.prototype.applyTransition = function(slide) {\n\n var _ = this,\n transition = {};\n\n if (_.options.fade === false) {\n transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;\n } else {\n transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;\n }\n\n if (_.options.fade === false) {\n _.$slideTrack.css(transition);\n } else {\n _.$slides.eq(slide).css(transition);\n }\n\n };\n\n Slick.prototype.autoPlay = function() {\n\n var _ = this;\n\n _.autoPlayClear();\n\n if ( _.slideCount > _.options.slidesToShow ) {\n _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );\n }\n\n };\n\n Slick.prototype.autoPlayClear = function() {\n\n var _ = this;\n\n if (_.autoPlayTimer) {\n clearInterval(_.autoPlayTimer);\n }\n\n };\n\n Slick.prototype.autoPlayIterator = function() {\n\n var _ = this,\n slideTo = _.currentSlide + _.options.slidesToScroll;\n\n if ( !_.paused && !_.interrupted && !_.focussed ) {\n\n if ( _.options.infinite === false ) {\n\n if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {\n _.direction = 0;\n }\n\n else if ( _.direction === 0 ) {\n\n slideTo = _.currentSlide - _.options.slidesToScroll;\n\n if ( _.currentSlide - 1 === 0 ) {\n _.direction = 1;\n }\n\n }\n\n }\n\n _.slideHandler( slideTo );\n\n }\n\n };\n\n Slick.prototype.buildArrows = function() {\n\n var _ = this;\n\n if (_.options.arrows === true ) {\n\n _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');\n _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');\n\n if( _.slideCount > _.options.slidesToShow ) {\n\n _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');\n _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');\n\n if (_.htmlExpr.test(_.options.prevArrow)) {\n _.$prevArrow.prependTo(_.options.appendArrows);\n }\n\n if (_.htmlExpr.test(_.options.nextArrow)) {\n _.$nextArrow.appendTo(_.options.appendArrows);\n }\n\n if (_.options.infinite !== true) {\n _.$prevArrow\n .addClass('slick-disabled')\n .attr('aria-disabled', 'true');\n }\n\n } else {\n\n _.$prevArrow.add( _.$nextArrow )\n\n .addClass('slick-hidden')\n .attr({\n 'aria-disabled': 'true',\n 'tabindex': '-1'\n });\n\n }\n\n }\n\n };\n\n Slick.prototype.buildDots = function() {\n\n var _ = this,\n i, dot;\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n\n _.$slider.addClass('slick-dotted');\n\n dot = $('