PageSourceSearch

https://www.zlato-grad.ru/wa-apps/slick/js/slick.js

js zlato-grad.ru collected 2026-09-24 11:29:51 UTC 116,933 bytes, 1,934 lines download raw bytes

vendor: 21,284 bytes, lines 1-317
1/*
2     _ _      _       _
3 ___| (_) ___| | __  (_)___
4/ __| | |/ __| |/ /  | / __|
5\__ \ | | (__|   < _ | \__ \
6|___/_|_|\___|_|\_(_)/ |___/
7                   |__/
8 Version: 1.9.0
9  Author: Ken Wheeler
10 Website: http://kenwheeler.github.io
11    Docs: http://kenwheeler.github.io/slick
12    Repo: http://github.com/kenwheeler/slick
13  Issues: http://github.com/kenwheeler/slick/issues
14 */
15/* global window, document, define, jQuery, setInterval, clearInterval */
16! function(a) {
17    "use strict";
18    "function" == typeof define && define.amd ? define(["jquery"], a) : "undefined" != typeof exports ? module.exports = a(require("jquery")) : a(jQuery)
19}(function(a) {
20    "use strict";
21    var b = window.Slick || {};
22    b = function() {
23        function c(c, d) {
24            var f, e = this;
25            e.defaults = {
26                accessibility: !0,
27                adaptiveHeight: !1,
28                appendArrows: a(c),
29                appendDots: a(c),
30                arrows: !0,
31                asNavFor: null,
32                prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
33                nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
34                autoplay: !1,
35                autoplaySpeed: 3e3,
36                centerMode: !1,
37                centerPadding: "50px",
38                cssEase: "ease",
39                customPaging: function(b, c) {
40                    return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c + 1)
41                },
42                dots: !1,
43                dotsClass: "slick-dots",
44                draggable: !0,
45                easing: "linear",
46                edgeFriction: .35,
47                fade: !1,
48                focusOnSelect: !1,
49                infinite: !0,
50                initialSlide: 0,
51                lazyLoad: "ondemand",
52                mobileFirst: !1,
53                pauseOnHover: !0,
54                pauseOnFocus: !0,
55                pauseOnDotsHover: !1,
56                respondTo: "window",
57                responsive: null,
58                rows: 1,
59                rtl: !1,
60                slide: "",
61                slidesPerRow: 1,
62                slidesToShow: 1,
63                slidesToScroll: 1,
64                speed: 500,
65                swipe: !0,
66                swipeToSlide: !1,
67                touchMove: !0,
68                touchThreshold: 5,
69                useCSS: !0,
70                useTransform: !0,
71                variableWidth: !1,
72                vertical: !1,
73                verticalSwiping: !1,
74                waitForAnimate: !0,
75                zIndex: 1e3
76            }, e.initials = {
77                animating: !1,
78                dragging: !1,
79                autoPlayTimer: null,
80                currentDirection: 0,
81                currentLeft: null,
82                currentSlide: 0,
83                direction: 1,
84                $dots: null,
85                listWidth: null,
86                listHeight: null,
87                loadIndex: 0,
88                $nextArrow: null,
89                $prevArrow: null,
90                slideCount: null,
91                slideWidth: null,
92                $slideTrack: null,
93                $slides: null,
94                sliding: !1,
95                slideOffset: 0,
96                swipeLeft: null,
97                $list: null,
98                touchObject: {},
99                transformsEnabled: !1,
100                unslicked: !1
101            }, a.extend(e, e.initials), e.activeBreakpoint = null, e.animType = null, e.animProp = null, e.breakpoints = [], e.breakpointSettings = [], e.cssTransitions = !1, e.focussed = !1, e.interrupted = !1, e.hidden = "hidden", e.paused = !0, e.positionProp = null, e.respondTo = null, e.rowCount = 1, e.shouldClick = !0, e.$slider = a(c), e.$slidesCache = null, e.transformType = null, e.transitionType = null, e.visibilityChange = "visibilitychange", e.windowWidth = 0, e.windowTimer = null, f = a(c).data("slick") || {}, e.options = a.extend({}, e.defaults, d, f), e.currentSlide = e.options.initialSlide, e.originalSettings = e.options, "undefined" != typeof document.mozHidden ? (e.hidden = "mozHidden", e.visibilityChange = "mozvisibilitychange") : "undefined" != typeof document.webkitHidden && (e.hidden = "webkitHidden", e.visibilityChange = "webkitvisibilitychange"), e.autoPlay = a.proxy(e.autoPlay, e), e.autoPlayClear = a.proxy(e.autoPlayClear, e), e.autoPlayIterator = a.proxy(e.autoPlayIterator, e), e.changeSlide = a.proxy(e.changeSlide, e), e.clickHandler = a.proxy(e.clickHandler, e), e.selectHandler = a.proxy(e.selectHandler, e), e.setPosition = a.proxy(e.setPosition, e), e.swipeHandler = a.proxy(e.swipeHandler, e), e.dragHandler = a.proxy(e.dragHandler, e), e.keyHandler = a.proxy(e.keyHandler, e), e.instanceUid = b++, e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, e.registerBreakpoints(), e.init(!0)
102        }
103        var b = 0;
104        return c
105    }(), b.prototype.activateADA = function() {
106        var a = this;
107        a.$slideTrack.find(".slick-active").attr({
108            "aria-hidden": "false"
109        }).find("a, input, button, select").attr({
110            tabindex: "0"
111        })
112    }, b.prototype.addSlide = b.prototype.slickAdd = function(b, c, d) {
113        var e = this;
114        if ("boolean" == typeof c) d = c, c = null;
115        else if (0 > c || c >= e.slideCount) return !1;
116        e.unload(), "number" == typeof c ? 0 === c && 0 === e.$slides.length ? a(b).appendTo(e.$slideTrack) : d ? a(b).insertBefore(e.$slides.eq(c)) : a(b).insertAfter(e.$slides.eq(c)) : d === !0 ? a(b).prependTo(e.$slideTrack) : a(b).appendTo(e.$slideTrack), e.$slides = e.$slideTrack.children(this.options.slide), e.$slideTrack.children(this.options.slide).detach(), e.$slideTrack.append(e.$slides), e.$slides.each(function(b, c) {
117            a(c).attr("data-slick-index", b)
118        }), e.$slidesCache = e.$slides, e.reinit()
119    }, b.prototype.animateHeight = function() {
120        var a = this;
121        if (1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1) {
122            var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
123            a.$list.animate({
124                height: b
125            }, a.options.speed)
126        }
127    }, b.prototype.animateSlide = function(b, c) {
128        var d = {},
129            e = this;
130        e.animateHeight(), e.options.rtl === !0 && e.options.vertical === !1 && (b = -b), e.transformsEnabled === !1 ? e.options.vertical === !1 ? e.$slideTrack.animate({
131            left: b
132        }, e.options.speed, e.options.easing, c) : e.$slideTrack.animate({
133            top: b
134        }, e.options.speed, e.options.easing, c) : e.cssTransitions === !1 ? (e.options.rtl === !0 && (e.currentLeft = -e.currentLeft), a({
135            animStart: e.currentLeft
136        }).animate({
137            animStart: b
138        }, {
139            duration: e.options.speed,
140            easing: e.options.easing,
141            step: function(a) {
142                a = Math.ceil(a), e.options.vertical === !1 ? (d[e.animType] = "translate(" + a + "px, 0px)", e.$slideTrack.css(d)) : (d[e.animType] = "translate(0px," + a + "px)", e.$slideTrack.css(d))
143            },
144            complete: function() {
145                c && c.call()
146            }
147        })) : (e.applyTransition(), b = Math.ceil(b), e.options.vertical === !1 ? d[e.animType] = "translate3d(" + b + "px, 0px, 0px)" : d[e.animType] = "translate3d(0px," + b + "px, 0px)", e.$slideTrack.css(d), c && setTimeout(function() {
148            e.disableTransition(), c.call()
149        }, e.options.speed))
150    }, b.prototype.getNavTarget = function() {
151        var b = this,
152            c = b.options.asNavFor;
153        return c && null !== c && (c = a(c).not(b.$slider)), c
154    }, b.prototype.asNavFor = function(b) {
155        var c = this,
156            d = c.getNavTarget();
157        null !== d && "object" == typeof d && d.each(function() {
158            var c = a(this).slick("getSlick");
159            c.unslicked || c.slideHandler(b, !0)
160        })
161    }, b.prototype.applyTransition = function(a) {
162        var b = this,
163            c = {};
164        b.options.fade === !1 ? c[b.transitionType] = b.transformType + " " + b.options.speed + "ms " + b.options.cssEase : c[b.transitionType] = "opacity " + b.options.speed + "ms " + b.options.cssEase, b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c)
165    }, b.prototype.autoPlay = function() {
166        var a = this;
167        a.autoPlayClear(), a.slideCount > a.options.slidesToShow && (a.autoPlayTimer = setInterval(a.autoPlayIterator, a.options.autoplaySpeed))
168    }, b.prototype.autoPlayClear = function() {
169        var a = this;
170        a.autoPlayTimer && clearInterval(a.autoPlayTimer)
171    }, b.prototype.autoPlayIterator = function() {
172        var a = this,
173            b = a.currentSlide + a.options.slidesToScroll;
174        a.paused || a.interrupted || a.focussed || (a.options.infinite === !1 && (1 === a.direction && a.currentSlide + 1 === a.slideCount - 1 ? a.direction = 0 : 0 === a.direction && (b = a.currentSlide - a.options.slidesToScroll, a.currentSlide - 1 === 0 && (a.direction = 1))), a.slideHandler(b))
175    }, b.prototype.buildArrows = function() {
176        var b = this;
177        b.options.arrows === !0 && (b.$prevArrow = a(b.options.prevArrow).addClass("slick-arrow"), b.$nextArrow = a(b.options.nextArrow).addClass("slick-arrow"), b.slideCount > b.options.slidesToShow ? (b.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), b.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.prependTo(b.options.appendArrows), b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.appendTo(b.options.appendArrows), b.options.infinite !== !0 && b.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : b.$prevArrow.add(b.$nextArrow).addClass("slick-hidden").attr({
178            "aria-disabled": "true",
179            tabindex: "-1"
180        }))
181    }, b.prototype.buildDots = function() {
182        var c, d, b = this;
183        if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) {
184            for (b.$slider.addClass("slick-dotted"), d = a("<ul />").addClass(b.options.dotsClass), c = 0; c <= b.getDotCount(); c += 1) d.append(a("<li />").append(b.options.customPaging.call(this, b, c)));
185            b.$dots = d.appendTo(b.options.appendDots), b.$dots.find("li").first().addClass("slick-active").attr("aria-hidden", "false")
186        }
187    }, b.prototype.buildOut = function() {
188        var b = this;
189        b.$slides = b.$slider.children(b.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), b.slideCount = b.$slides.length, b.$slides.each(function(b, c) {
190            a(c).attr("data-slick-index", b).data("originalStyling", a(c).attr("style") || "")
191        }), b.$slider.addClass("slick-slider"), b.$slideTrack = 0 === b.slideCount ? a('<div class="slick-track"/>').appendTo(b.$slider) : b.$slides.wrapAll('<div class="slick-track"/>').parent(), b.$list = b.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(), b.$slideTrack.css("opacity", 0), (b.options.centerMode === !0 || b.options.swipeToSlide === !0) && (b.options.slidesToScroll = 1), a("img[data-lazy]", b.$slider).not("[src]").addClass("slick-loading"), b.setupInfinite(), b.buildArrows(), b.buildDots(), b.updateDots(), b.setSlideClasses("number" == typeof b.currentSlide ? b.currentSlide : 0), b.options.draggable === !0 && b.$list.addClass("draggable")
192    }, b.prototype.buildRows = function() {
193        var b, c, d, e, f, g, h, a = this;
194        if (e = document.createDocumentFragment(), g = a.$slider.children(), a.options.rows > 1) {
195            for (h = a.options.slidesPerRow * a.options.rows, f = Math.ceil(g.length / h), b = 0; f > b; b++) {
196                var i = document.createElement("div");
197                for (c = 0; c < a.options.rows; c++) {
198                    var j = document.createElement("div");
199                    for (d = 0; d < a.options.slidesPerRow; d++) {
200                        var k = b * h + (c * a.options.slidesPerRow + d);
201                        g.get(k) && j.appendChild(g.get(k))
202                    }
203                    i.appendChild(j)
204                }
205                e.appendChild(i)
206            }
207            a.$slider.empty().append(e), a.$slider.children().children().children().css({
208                width: 100 / a.options.slidesPerRow + "%",
209                display: "inline-block"
210            })
211        }
212    }, b.prototype.checkResponsive = function(b, c) {
213        var e, f, g, d = this,
214            h = !1,
215            i = d.$slider.width(),
216            j = window.innerWidth || a(window).width();
217        if ("window" === d.respondTo ? g = j : "slider" === d.respondTo ? g = i : "min" === d.respondTo && (g = Math.min(j, i)), d.options.responsive && d.options.responsive.length && null !== d.options.responsive) {
218            f = null;
219            for (e in d.breakpoints) d.breakpoints.hasOwnProperty(e) && (d.originalSettings.mobileFirst === !1 ? g < d.breakpoints[e] && (f = d.breakpoints[e]) : g > d.breakpoints[e] && (f = d.breakpoints[e]));
220            null !== f ? null !== d.activeBreakpoint ? (f !== d.activeBreakpoint || c) && (d.activeBreakpoint = f, "unslick" === d.breakpointSettings[f] ? d.unslick(f) : (d.options = a.extend({}, d.originalSettings, d.breakpointSettings[f]), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), h = f) : (d.activeBreakpoint = f, "unslick" === d.breakpointSettings[f] ? d.unslick(f) : (d.options = a.extend({}, d.originalSettings, d.breakpointSettings[f]), b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b)), h = f) : null !== d.activeBreakpoint && (d.activeBreakpoint = null, d.options = d.originalSettings, b === !0 && (d.currentSlide = d.options.initialSlide), d.refresh(b), h = f), b || h === !1 || d.$slider.trigger("breakpoint", [d, h])
221        }
222    }, b.prototype.changeSlide = function(b, c) {
223        var f, g, h, d = this,
224            e = a(b.currentTarget);
225        switch (e.is("a") && b.preventDefault(), e.is("li") || (e = e.closest("li")), h = d.slideCount % d.options.slidesToScroll !== 0, f = h ? 0 : (d.slideCount - d.currentSlide) % d.options.slidesToScroll, b.data.message) {
226            case "previous":
227                g = 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f, d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide - g, !1, c);
228                break;
229            case "next":
230                g = 0 === f ? d.options.slidesToScroll : f, d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide + g, !1, c);
231                break;
232            case "index":
233                var i = 0 === b.data.index ? 0 : b.data.index || e.index() * d.options.slidesToScroll;
234                d.slideHandler(d.checkNavigable(i), !1, c), e.children().trigger("focus");
235                break;
236            default:
237                return
238        }
239    }, b.prototype.checkNavigable = function(a) {
240        var c, d, b = this;
241        if (c = b.getNavigableIndexes(), d = 0, a > c[c.length - 1]) a = c[c.length - 1];
242        else
243            for (var e in c) {
244                if (a < c[e]) {
245                    a = d;
246                    break
247                }
248                d = c[e]
249            }
250        return a
251    }, b.prototype.cleanUpEvents = function() {
252        var b = this;
253        b.options.dots && null !== b.$dots && a("li", b.$dots).off("click.slick", b.changeSlide).off("mouseenter.slick", a.proxy(b.interrupt, b, !0)).off("mouseleave.slick", a.proxy(b.interrupt, b, !1)), b.$slider.off("focus.slick blur.slick"), b.options.arrows === !0 && b.slideCount > b.options.slidesToShow && (b.$prevArrow && b.$prevArrow.off("click.slick", b.changeSlide), b.$nextArrow && b.$nextArrow.off("click.slick", b.changeSlide)), b.$list.off("touchstart.slick mousedown.slick", b.swipeHandler), b.$list.off("touchmove.slick mousemove.slick", b.swipeHandler), b.$list.off("touchend.slick mouseup.slick", b.swipeHandler), b.$list.off("touchcancel.slick mouseleave.slick", b.swipeHandler), b.$list.off("click.slick", b.clickHandler), a(document).off(b.visibilityChange, b.visibility), b.cleanUpSlideEvents(), b.options.accessibility === !0 && b.$list.off("keydown.slick", b.keyHandler), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().off("click.slick", b.selectHandler), a(window).off("orientationchange.slick.slick-" + b.instanceUid, b.orientationChange), a(window).off("resize.slick.slick-" + b.instanceUid, b.resize), a("[draggable!=true]", b.$slideTrack).off("dragstart", b.preventDefault), a(window).off("load.slick.slick-" + b.instanceUid, b.setPosition), a(document).off("ready.slick.slick-" + b.instanceUid, b.setPosition)
254    }, b.prototype.cleanUpSlideEvents = function() {
255        var b = this;
256        b.$list.off("mouseenter.slick", a.proxy(b.interrupt, b, !0)), b.$list.off("mouseleave.slick", a.proxy(b.interrupt, b, !1))
257    }, b.prototype.cleanUpRows = function() {
258        var b, a = this;
259        a.options.rows > 1 && (b = a.$slides.children().children(), b.removeAttr("style"), a.$slider.empty().append(b))
260    }, b.prototype.clickHandler = function(a) {
261        var b = this;
262        b.shouldClick === !1 && (a.stopImmediatePropagation(), a.stopPropagation(), a.preventDefault())
263    }, b.prototype.destroy = function(b) {
264        var c = this;
265        c.autoPlayClear(), c.touchObject = {}, c.cleanUpEvents(), a(".slick-cloned", c.$slider).detach(), c.$dots && c.$dots.remove(), c.$prevArrow && c.$prevArrow.length && (c.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()), c.$nextArrow && c.$nextArrow.length && (c.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove()), c.$slides && (c.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
266            a(this).attr("style", a(this).data("originalStyling"))
267        }), c.$slideTrack.children(this.options.slide).detach(), c.$slideTrack.detach(), c.$list.detach(), c.$slider.append(c.$slides)), c.cleanUpRows(), c.$slider.removeClass("slick-slider"), c.$slider.removeClass("slick-initialized"), c.$slider.removeClass("slick-dotted"), c.unslicked = !0, b || c.$slider.trigger("destroy", [c])
268    }, b.prototype.disableTransition = function(a) {
269        var b = this,
270            c = {};
271        c[b.transitionType] = "", b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c)
272    }, b.prototype.fadeSlide = function(a, b) {
273        var c = this;
274        c.cssTransitions === !1 ? (c.$slides.eq(a).css({
275            zIndex: c.options.zIndex
276        }), c.$slides.eq(a).animate({
277            opacity: 1
278        }, c.options.speed, c.options.easing, b)) : (c.applyTransition(a), c.$slides.eq(a).css({
279            opacity: 1,
280            zIndex: c.options.zIndex
281        }), b && setTimeout(function() {
282            c.disableTransition(a), b.call()
283        }, c.options.speed))
284    }, b.prototype.fadeSlideOut = function(a) {
285        var b = this;
286        b.cssTransitions === !1 ? b.$slides.eq(a).animate({
287            opacity: 0,
288            zIndex: b.options.zIndex - 2
289        }, b.options.speed, b.options.easing) : (b.applyTransition(a), b.$slides.eq(a).css({
290            opacity: 0,
291            zIndex: b.options.zIndex - 2
292        }))
293    }, b.prototype.filterSlides = b.prototype.slickFilter = function(a) {
294        var b = this;
295        null !== a && (b.$slidesCache = b.$slides, b.unload(), b.$slideTrack.children(this.options.slide).detach(), b.$slidesCache.filter(a).appendTo(b.$slideTrack), b.reinit())
296    }, b.prototype.focusHandler = function() {
297        var b = this;
298        b.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*:not(.slick-arrow)", function(c) {
299            c.stopImmediatePropagation();
300            var d = a(this);
301            setTimeout(function() {
302                b.options.pauseOnFocus && (b.focussed = d.is(":focus"), b.autoPlay())
303            }, 0)
304        })
305    }, b.prototype.getCurrent = b.prototype.slickCurrentSlide = function() {
306        var a = this;
307        return a.currentSlide
308    }, b.prototype.getDotCount = function() {
309        var a = this,
310            b = 0,
311            c = 0,
312            d = 0;
313        if (a.options.infinite === !0)
314            for (; b < a.slideCount;) ++d, b = c + a.options.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
315        else if (a.options.centerMode === !0) d = a.slideCount;
316        else if (a.options.asNavFor)
317            for (; b < a.slideCount;) ++d, b = c + a.options.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
318        else d = 1 + Math.ceil((a.slideCount - a.options.slidesToShow) / a.options.slidesToScroll);
319        return d - 1
320    }, b.prototype.getLeft = function(a) {
321        var c, d, f, b = this,
322            e = 0;
323        return b.slideOffset = 0, d = b.$slides.first().outerHeight(!0), b.options.infinite === !0 ? (b.slideCount > b.options.slidesToShow && (b.slideOffset = b.slideWidth * b.options.slidesToShow * -1, e = d * b.options.slidesToShow * -1), b.slideCount % b.options.slidesToScroll !== 0 && a + b.options.slidesToScroll > b.slideCount && b.slideCount > b.options.slidesToShow && (a > b.slideCount ? (b.slideOffset = (b.options.slidesToShow - (a - b.slideCount)) * b.slideWidth * -1, e = (b.options.slidesToShow - (a - b.slideCount)) * d * -1) : (b.slideOffset = b.slideCount % b.options.slidesToScroll * b.slideWidth * -1, e = b.slideCount % b.options.slidesToScroll * d * -1))) : a + b.options.slidesToShow > b.slideCount && (b.slideOffset = (a + b.options.slidesToShow - b.slideCount) * b.slideWidth, e = (a + b.options.slidesToShow - b.slideCount) * d), b.slideCount <= b.options.slidesToShow && (b.slideOffset = 0, e = 0), b.options.centerMode === !0 && b.options.infinite === !0 ? b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2) - b.slideWidth : b.options.centerMode === !0 && (b.slideOffset = 0, b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2)), c = b.options.vertical === !1 ? a * b.slideWidth * -1 + b.slideOffset : a * d * -1 + e, b.options.variableWidth === !0 && (f = b.slideCount <= b.options.slidesToShow || b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack.children(".slick-slide").eq(a + b.options.slidesToShow), c = b.options.rtl === !0 ? f[0] ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width()) : 0 : f[0] ? -1 * f[0].offsetLeft : 0, b.options.centerMode === !0 && (f = b.slideCount <= b.options.slidesToShow || b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack.children(".slick-slide").eq(a + b.options.slidesToShow + 1), c = b.options.rtl === !0 ? f[0] ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width()) : 0 : f[0] ? -1 * f[0].offsetLeft : 0, c += (b.$list.width() - f.outerWidth()) / 2)), c
324    }, b.prototype.getOption = b.prototype.slickGetOption = function(a) {
325        var b = this;
326        return b.options[a]
327    }, b.prototype.getNavigableIndexes = function() {
328        var e, a = this,
329            b = 0,
330            c = 0,
331            d = [];
332        for (a.options.infinite === !1 ? e = a.slideCount : (b = -1 * a.options.slidesToScroll, c = -1 * a.options.slidesToScroll, e = 2 * a.slideCount); e > b;) d.push(b), b = c + a.options.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
333        return d
334    }, b.prototype.getSlick = function() {
335        return this
336    }, b.prototype.getSlideCount = function() {
337        var c, d, e, b = this;
338        return e = b.options.centerMode === !0 ? b.slideWidth * Math.floor(b.options.slidesToShow / 2) : 0, b.options.swipeToSlide === !0 ? (b.$slideTrack.find(".slick-slide").each(function(c, f) {
339            return f.offsetLeft - e + a(f).outerWidth() / 2 > -1 * b.swipeLeft ? (d = f, !1) : void 0
340        }), c = Math.abs(a(d).attr("data-slick-index") - b.currentSlide) || 1) : b.options.slidesToScroll
341    }, b.prototype.goTo = b.prototype.slickGoTo = function(a, b) {
342        var c = this;
343        c.changeSlide({
344            data: {
345                message: "index",
346                index: parseInt(a)
347            }
348        }, b)
349    }, b.prototype.init = function(b) {
350        var c = this;
351        a(c.$slider).hasClass("slick-initialized") || (a(c.$slider).addClass("slick-initialized"), c.buildRows(), c.buildOut(), c.setProps(), c.startLoad(), c.loadSlider(), c.initializeEvents(), c.updateArrows(), c.updateDots(), c.checkResponsive(!0), c.focusHandler()), b && c.$slider.trigger("init", [c]), c.options.accessibility === !0 && c.initADA(), c.options.autoplay && (c.paused = !1, c.autoPlay())
352    }, b.prototype.initADA = function() {
353        var b = this;
354        b.$slides.add(b.$slideTrack.find(".slick-cloned")).attr({
355            "aria-hidden": "true",
356            tabindex: "-1"
357        }).find("a, input, button, select").attr({
358            tabindex: "-1"
359        }), b.$slideTrack.attr("role", "listbox"), b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c) {
360            a(this).attr({
361                role: "option",
362                "aria-describedby": "slick-slide" + b.instanceUid + c
363            })
364        }), null !== b.$dots && b.$dots.attr("role", "tablist").find("li").each(function(c) {
365            a(this).attr({
366                role: "presentation",
367                "aria-selected": "false",
368                "aria-controls": "navigation" + b.instanceUid + c,
369                id: "slick-slide" + b.instanceUid + c
370            })
371        }).first().attr("aria-selected", "true").end().find("button").attr("role", "button").end().closest("div").attr("role", "toolbar"), b.activateADA()
372    }, b.prototype.initArrowEvents = function() {
373        var a = this;
374        a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.off("click.slick").on("click.slick", {
375            message: "previous"
376        }, a.changeSlide), a.$nextArrow.off("click.slick").on("click.slick", {
377            message: "next"
378        }, a.changeSlide))
379    }, b.prototype.initDotEvents = function() {
380        var b = this;
381        b.options.dots === !0 && b.slideCount > b.options.slidesToShow && a("li", b.$dots).on("click.slick", {
382            message: "index"
383        }, b.changeSlide), b.options.dots === !0 && b.options.pauseOnDotsHover === !0 && a("li", b.$dots).on("mouseenter.slick", a.proxy(b.interrupt, b, !0)).on("mouseleave.
vendor: 25,034 bytes, lines 383-653
383slick", a.proxy(b.interrupt, b, !1))
384    }, b.prototype.initSlideEvents = function() {
385        var b = this;
386        b.options.pauseOnHover && (b.$list.on("mouseenter.slick", a.proxy(b.interrupt, b, !0)), b.$list.on("mouseleave.slick", a.proxy(b.interrupt, b, !1)))
387    }, b.prototype.initializeEvents = function() {
388        var b = this;
389        b.initArrowEvents(), b.initDotEvents(), b.initSlideEvents(), b.$list.on("touchstart.slick mousedown.slick", {
390            action: "start"
391        }, b.swipeHandler), b.$list.on("touchmove.slick mousemove.slick", {
392            action: "move"
393        }, b.swipeHandler), b.$list.on("touchend.slick mouseup.slick", {
394            action: "end"
395        }, b.swipeHandler), b.$list.on("touchcancel.slick mouseleave.slick", {
396            action: "end"
397        }, b.swipeHandler), b.$list.on("click.slick", b.clickHandler), a(document).on(b.visibilityChange, a.proxy(b.visibility, b)), b.options.accessibility === !0 && b.$list.on("keydown.slick", b.keyHandler), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on("click.slick", b.selectHandler), a(window).on("orientationchange.slick.slick-" + b.instanceUid, a.proxy(b.orientationChange, b)), a(window).on("resize.slick.slick-" + b.instanceUid, a.proxy(b.resize, b)), a("[draggable!=true]", b.$slideTrack).on("dragstart", b.preventDefault), a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition), a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition)
398    }, b.prototype.initUI = function() {
399        var a = this;
400        a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.show(), a.$nextArrow.show()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.show()
401    }, b.prototype.keyHandler = function(a) {
402        var b = this;
403        a.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === a.keyCode && b.options.accessibility === !0 ? b.changeSlide({
404            data: {
405                message: b.options.rtl === !0 ? "next" : "previous"
406            }
407        }) : 39 === a.keyCode && b.options.accessibility === !0 && b.changeSlide({
408            data: {
409                message: b.options.rtl === !0 ? "previous" : "next"
410            }
411        }))
412    }, b.prototype.lazyLoad = function() {
413        function g(c) {
414            a("img[data-lazy]", c).each(function() {
415                var c = a(this),
416                    d = a(this).attr("data-lazy"),
417                    e = document.createElement("img");
418                e.onload = function() {
419                    c.animate({
420                        opacity: 0
421                    }, 100, function() {
422                        c.attr("src", d).animate({
423                            opacity: 1
424                        }, 200, function() {
425                            c.removeAttr("data-lazy").removeClass("slick-loading")
426                        }), b.$slider.trigger("lazyLoaded", [b, c, d])
427                    })
428                }, e.onerror = function() {
429                    c.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), b.$slider.trigger("lazyLoadError", [b, c, d])
430                }, e.src = d
431            })
432        }
433        var c, d, e, f, b = this;
434        b.options.centerMode === !0 ? b.options.infinite === !0 ? (e = b.currentSlide + (b.options.slidesToShow / 2 + 1), f = e + b.options.slidesToShow + 2) : (e = Math.max(0, b.currentSlide - (b.options.slidesToShow / 2 + 1)), f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide) : (e = b.options.infinite ? b.options.slidesToShow + b.currentSlide : b.currentSlide, f = Math.ceil(e + b.options.slidesToShow), b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)), c = b.$slider.find(".slick-slide").slice(e, f), g(c), b.slideCount <= b.options.slidesToShow ? (d = b.$slider.find(".slick-slide"), g(d)) : b.currentSlide >= b.slideCount - b.options.slidesToShow ? (d = b.$slider.find(".slick-cloned").slice(0, b.options.slidesToShow), g(d)) : 0 === b.currentSlide && (d = b.$slider.find(".slick-cloned").slice(-1 * b.options.slidesToShow), g(d))
435    }, b.prototype.loadSlider = function() {
436        var a = this;
437        a.setPosition(), a.$slideTrack.css({
438            opacity: 1
439        }), a.$slider.removeClass("slick-loading"), a.initUI(), "progressive" === a.options.lazyLoad && a.progressiveLazyLoad()
440    }, b.prototype.next = b.prototype.slickNext = function() {
441        var a = this;
442        a.changeSlide({
443            data: {
444                message: "next"
445            }
446        })
447    }, b.prototype.orientationChange = function() {
448        var a = this;
449        a.checkResponsive(), a.setPosition()
450    }, b.prototype.pause = b.prototype.slickPause = function() {
451        var a = this;
452        a.autoPlayClear(), a.paused = !0
453    }, b.prototype.play = b.prototype.slickPlay = function() {
454        var a = this;
455        a.autoPlay(), a.options.autoplay = !0, a.paused = !1, a.focussed = !1, a.interrupted = !1
456    }, b.prototype.postSlide = function(a) {
457        var b = this;
458        b.unslicked || (b.$slider.trigger("afterChange", [b, a]), b.animating = !1, b.setPosition(), b.swipeLeft = null, b.options.autoplay && b.autoPlay(), b.options.accessibility === !0 && b.initADA())
459    }, b.prototype.prev = b.prototype.slickPrev = function() {
460        var a = this;
461        a.changeSlide({
462            data: {
463                message: "previous"
464            }
465        })
466    }, b.prototype.preventDefault = function(a) {
467        a.preventDefault()
468    }, b.prototype.progressiveLazyLoad = function(b) {
469        b = b || 1;
470        var e, f, g, c = this,
471            d = a("img[data-lazy]", c.$slider);
472        d.length ? (e = d.first(), f = e.attr("data-lazy"), g = document.createElement("img"), g.onload = function() {
473            e.attr("src", f).removeAttr("data-lazy").removeClass("slick-loading"), c.options.adaptiveHeight === !0 && c.setPosition(), c.$slider.trigger("lazyLoaded", [c, e, f]), c.progressiveLazyLoad()
474        }, g.onerror = function() {
475            3 > b ? setTimeout(function() {
476                c.progressiveLazyLoad(b + 1)
477            }, 500) : (e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), c.$slider.trigger("lazyLoadError", [c, e, f]), c.progressiveLazyLoad())
478        }, g.src = f) : c.$slider.trigger("allImagesLoaded", [c])
479    }, b.prototype.refresh = function(b) {
480        var d, e, c = this;
481        e = c.slideCount - c.options.slidesToShow, !c.options.infinite && c.currentSlide > e && (c.currentSlide = e), c.slideCount <= c.options.slidesToShow && (c.currentSlide = 0), d = c.currentSlide, c.destroy(!0), a.extend(c, c.initials, {
482            currentSlide: d
483        }), c.init(), b || c.changeSlide({
484            data: {
485                message: "index",
486                index: d
487            }
488        }, !1)
489    }, b.prototype.registerBreakpoints = function() {
490        var c, d, e, b = this,
491            f = b.options.responsive || null;
492        if ("array" === a.type(f) && f.length) {
493            b.respondTo = b.options.respondTo || "window";
494            for (c in f)
495                if (e = b.breakpoints.length - 1, d = f[c].breakpoint, f.hasOwnProperty(c)) {
496                    for (; e >= 0;) b.breakpoints[e] && b.breakpoints[e] === d && b.breakpoints.splice(e, 1), e--;
497                    b.breakpoints.push(d), b.breakpointSettings[d] = f[c].settings
498                }
499            b.breakpoints.sort(function(a, c) {
500                return b.options.mobileFirst ? a - c : c - a
501            })
502        }
503    }, b.prototype.reinit = function() {
504        var b = this;
505        b.$slides = b.$slideTrack.children(b.options.slide).addClass("slick-slide"), b.slideCount = b.$slides.length, b.currentSlide >= b.slideCount && 0 !== b.currentSlide && (b.currentSlide = b.currentSlide - b.options.slidesToScroll), b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0), b.registerBreakpoints(), b.setProps(), b.setupInfinite(), b.buildArrows(), b.updateArrows(), b.initArrowEvents(), b.buildDots(), b.updateDots(), b.initDotEvents(), b.cleanUpSlideEvents(), b.initSlideEvents(), b.checkResponsive(!1, !0), b.options.focusOnSelect === !0 && a(b.$slideTrack).children().on("click.slick", b.selectHandler), b.setSlideClasses("number" == typeof b.currentSlide ? b.currentSlide : 0), b.setPosition(), b.focusHandler(), b.paused = !b.options.autoplay, b.autoPlay(), b.$slider.trigger("reInit", [b])
506    }, b.prototype.resize = function() {
507        var b = this;
508        a(window).width() !== b.windowWidth && (clearTimeout(b.windowDelay), b.windowDelay = window.setTimeout(function() {
509            b.windowWidth = a(window).width(), b.checkResponsive(), b.unslicked || b.setPosition()
510        }, 50))
511    }, b.prototype.removeSlide = b.prototype.slickRemove = function(a, b, c) {
512        var d = this;
513        return "boolean" == typeof a ? (b = a, a = b === !0 ? 0 : d.slideCount - 1) : a = b === !0 ? --a : a, d.slideCount < 1 || 0 > a || a > d.slideCount - 1 ? !1 : (d.unload(), c === !0 ? d.$slideTrack.children().remove() : d.$slideTrack.children(this.options.slide).eq(a).remove(), d.$slides = d.$slideTrack.children(this.options.slide), d.$slideTrack.children(this.options.slide).detach(), d.$slideTrack.append(d.$slides), d.$slidesCache = d.$slides, void d.reinit())
514    }, b.prototype.setCSS = function(a) {
515        var d, e, b = this,
516            c = {};
517        b.options.rtl === !0 && (a = -a), d = "left" == b.positionProp ? Math.ceil(a) + "px" : "0px", e = "top" == b.positionProp ? Math.ceil(a) + "px" : "0px", c[b.positionProp] = a, b.transformsEnabled === !1 ? b.$slideTrack.css(c) : (c = {}, b.cssTransitions === !1 ? (c[b.animType] = "translate(" + d + ", " + e + ")", b.$slideTrack.css(c)) : (c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)", b.$slideTrack.css(c)))
518    }, b.prototype.setDimensions = function() {
519        var a = this;
520        a.options.vertical === !1 ? a.options.centerMode === !0 && a.$list.css({
521            padding: "0px " + a.options.centerPadding
522        }) : (a.$list.height(a.$slides.first().outerHeight(!0) * a.options.slidesToShow), a.options.centerMode === !0 && a.$list.css({
523            padding: a.options.centerPadding + " 0px"
524        })), a.listWidth = a.$list.width(), a.listHeight = a.$list.height(), a.options.vertical === !1 && a.options.variableWidth === !1 ? (a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow), a.$slideTrack.width(Math.ceil(a.slideWidth * a.$slideTrack.children(".slick-slide").length))) : a.options.variableWidth === !0 ? a.$slideTrack.width(5e3 * a.slideCount) : (a.slideWidth = Math.ceil(a.listWidth), a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0) * a.$slideTrack.children(".slick-slide").length)));
525        var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width();
526        a.options.variableWidth === !1 && a.$slideTrack.children(".slick-slide").width(a.slideWidth - b)
527    }, b.prototype.setFade = function() {
528        var c, b = this;
529        b.$slides.each(function(d, e) {
530            c = b.slideWidth * d * -1, b.options.rtl === !0 ? a(e).css({
531                position: "relative",
532                right: c,
533                top: 0,
534                zIndex: b.options.zIndex - 2,
535                opacity: 0
536            }) : a(e).css({
537                position: "relative",
538                left: c,
539                top: 0,
540                zIndex: b.options.zIndex - 2,
541                opacity: 0
542            })
543        }), b.$slides.eq(b.currentSlide).css({
544            zIndex: b.options.zIndex - 1,
545            opacity: 1
546        })
547    }, b.prototype.setHeight = function() {
548        var a = this;
549        if (1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1) {
550            var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
551            a.$list.css("height", b)
552        }
553    }, b.prototype.setOption = b.prototype.slickSetOption = function() {
554        var c, d, e, f, h, b = this,
555            g = !1;
556        if ("object" === a.type(arguments[0]) ? (e = arguments[0], g = arguments[1], h = "multiple") : "string" === a.type(arguments[0]) && (e = arguments[0], f = arguments[1], g = arguments[2], "responsive" === arguments[0] && "array" === a.type(arguments[1]) ? h = "responsive" : "undefined" != typeof arguments[1] && (h = "single")), "single" === h) b.options[e] = f;
557        else if ("multiple" === h) a.each(e, function(a, c) {
558            b.options[a] = c
559        });
560        else if ("responsive" === h)
561            for (d in f)
562                if ("array" !== a.type(b.options.responsive)) b.options.responsive = [f[d]];
563                else {
564                    for (c = b.options.responsive.length - 1; c >= 0;) b.options.responsive[c].breakpoint === f[d].breakpoint && b.options.responsive.splice(c, 1), c--;
565                    b.options.responsive.push(f[d])
566                }
567        g && (b.unload(), b.reinit())
568    }, b.prototype.setPosition = function() {
569        var a = this;
570        a.setDimensions(), a.setHeight(), a.options.fade === !1 ? a.setCSS(a.getLeft(a.currentSlide)) : a.setFade(), a.$slider.trigger("setPosition", [a])
571    }, b.prototype.setProps = function() {
572        var a = this,
573            b = document.body.style;
574        a.positionProp = a.options.vertical === !0 ? "top" : "left", "top" === a.positionProp ? a.$slider.addClass("slick-vertical") : a.$slider.removeClass("slick-vertical"), (void 0 !== b.WebkitTransition || void 0 !== b.MozTransition || void 0 !== b.msTransition) && a.options.useCSS === !0 && (a.cssTransitions = !0), a.options.fade && ("number" == typeof a.options.zIndex ? a.options.zIndex < 3 && (a.options.zIndex = 3) : a.options.zIndex = a.defaults.zIndex), void 0 !== b.OTransform && (a.animType = "OTransform", a.transformType = "-o-transform", a.transitionType = "OTransition", void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.MozTransform && (a.animType = "MozTransform", a.transformType = "-moz-transform", a.transitionType = "MozTransition", void 0 === b.perspectiveProperty && void 0 === b.MozPerspective && (a.animType = !1)), void 0 !== b.webkitTransform && (a.animType = "webkitTransform", a.transformType = "-webkit-transform", a.transitionType = "webkitTransition", void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.msTransform && (a.animType = "msTransform", a.transformType = "-ms-transform", a.transitionType = "msTransition", void 0 === b.msTransform && (a.animType = !1)), void 0 !== b.transform && a.animType !== !1 && (a.animType = "transform", a.transformType = "transform", a.transitionType = "transition"), a.transformsEnabled = a.options.useTransform && null !== a.animType && a.animType !== !1
575    }, b.prototype.setSlideClasses = function(a) {
576        var c, d, e, f, b = this;
577        d = b.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), b.$slides.eq(a).addClass("slick-current"), b.options.centerMode === !0 ? (c = Math.floor(b.options.slidesToShow / 2), b.options.infinite === !0 && (a >= c && a <= b.slideCount - 1 - c ? b.$slides.slice(a - c, a + c + 1).addClass("slick-active").attr("aria-hidden", "false") : (e = b.options.slidesToShow + a,
578            d.slice(e - c + 1, e + c + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === a ? d.eq(d.length - 1 - b.options.slidesToShow).addClass("slick-center") : a === b.slideCount - 1 && d.eq(b.options.slidesToShow).addClass("slick-center")), b.$slides.eq(a).addClass("slick-center")) : a >= 0 && a <= b.slideCount - b.options.slidesToShow ? b.$slides.slice(a, a + b.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : d.length <= b.options.slidesToShow ? d.addClass("slick-active").attr("aria-hidden", "false") : (f = b.slideCount % b.options.slidesToShow, e = b.options.infinite === !0 ? b.options.slidesToShow + a : a, b.options.slidesToShow == b.options.slidesToScroll && b.slideCount - a < b.options.slidesToShow ? d.slice(e - (b.options.slidesToShow - f), e + f).addClass("slick-active").attr("aria-hidden", "false") : d.slice(e, e + b.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")), "ondemand" === b.options.lazyLoad && b.lazyLoad()
579    }, b.prototype.setupInfinite = function() {
580        var c, d, e, b = this;
581        if (b.options.fade === !0 && (b.options.centerMode = !1), b.options.infinite === !0 && b.options.fade === !1 && (d = null, b.slideCount > b.options.slidesToShow)) {
582            for (e = b.options.centerMode === !0 ? b.options.slidesToShow + 1 : b.options.slidesToShow, c = b.slideCount; c > b.slideCount - e; c -= 1) d = c - 1, a(b.$slides[d]).clone(!0).attr("id", "").attr("data-slick-index", d - b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");
583            for (c = 0; e > c; c += 1) d = c, a(b.$slides[d]).clone(!0).attr("id", "").attr("data-slick-index", d + b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");
584            b.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
585                a(this).attr("id", "")
586            })
587        }
588    }, b.prototype.interrupt = function(a) {
589        var b = this;
590        a || b.autoPlay(), b.interrupted = a
591    }, b.prototype.selectHandler = function(b) {
592        var c = this,
593            d = a(b.target).is(".slick-slide") ? a(b.target) : a(b.target).parents(".slick-slide"),
594            e = parseInt(d.attr("data-slick-index"));
595        return e || (e = 0), c.slideCount <= c.options.slidesToShow ? (c.setSlideClasses(e), void c.asNavFor(e)) : void c.slideHandler(e)
596    }, b.prototype.slideHandler = function(a, b, c) {
597        var d, e, f, g, j, h = null,
598            i = this;
599        return b = b || !1, i.animating === !0 && i.options.waitForAnimate === !0 || i.options.fade === !0 && i.currentSlide === a || i.slideCount <= i.options.slidesToShow ? void 0 : (b === !1 && i.asNavFor(a), d = a, h = i.getLeft(d), g = i.getLeft(i.currentSlide), i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft, i.options.infinite === !1 && i.options.centerMode === !1 && (0 > a || a > i.getDotCount() * i.options.slidesToScroll) ? void(i.options.fade === !1 && (d = i.currentSlide, c !== !0 ? i.animateSlide(g, function() {
600            i.postSlide(d)
601        }) : i.postSlide(d))) : i.options.infinite === !1 && i.options.centerMode === !0 && (0 > a || a > i.slideCount - i.options.slidesToScroll) ? void(i.options.fade === !1 && (d = i.currentSlide, c !== !0 ? i.animateSlide(g, function() {
602            i.postSlide(d)
603        }) : i.postSlide(d))) : (i.options.autoplay && clearInterval(i.autoPlayTimer), e = 0 > d ? i.slideCount % i.options.slidesToScroll !== 0 ? i.slideCount - i.slideCount % i.options.slidesToScroll : i.slideCount + d : d >= i.slideCount ? i.slideCount % i.options.slidesToScroll !== 0 ? 0 : d - i.slideCount : d, i.animating = !0, i.$slider.trigger("beforeChange", [i, i.currentSlide, e]), f = i.currentSlide, i.currentSlide = e, i.setSlideClasses(i.currentSlide), i.options.asNavFor && (j = i.getNavTarget(), j = j.slick("getSlick"), j.slideCount <= j.options.slidesToShow && j.setSlideClasses(i.currentSlide)), i.updateDots(), i.updateArrows(), i.options.fade === !0 ? (c !== !0 ? (i.fadeSlideOut(f), i.fadeSlide(e, function() {
604            i.postSlide(e)
605        })) : i.postSlide(e), void i.animateHeight()) : void(c !== !0 ? i.animateSlide(h, function() {
606            i.postSlide(e)
607        }) : i.postSlide(e))))
608    }, b.prototype.startLoad = function() {
609        var a = this;
610        a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.hide(), a.$nextArrow.hide()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.hide(), a.$slider.addClass("slick-loading")
611    }, b.prototype.swipeDirection = function() {
612        var a, b, c, d, e = this;
613        return a = e.touchObject.startX - e.touchObject.curX, b = e.touchObject.startY - e.touchObject.curY, c = Math.atan2(b, a), d = Math.round(180 * c / Math.PI), 0 > d && (d = 360 - Math.abs(d)), 45 >= d && d >= 0 ? e.options.rtl === !1 ? "left" : "right" : 360 >= d && d >= 315 ? e.options.rtl === !1 ? "left" : "right" : d >= 135 && 225 >= d ? e.options.rtl === !1 ? "right" : "left" : e.options.verticalSwiping === !0 ? d >= 35 && 135 >= d ? "down" : "up" : "vertical"
614    }, b.prototype.swipeEnd = function(a) {
615        var c, d, b = this;
616        if (b.dragging = !1, b.interrupted = !1, b.shouldClick = b.touchObject.swipeLength > 10 ? !1 : !0, void 0 === b.touchObject.curX) return !1;
617        if (b.touchObject.edgeHit === !0 && b.$slider.trigger("edge", [b, b.swipeDirection()]), b.touchObject.swipeLength >= b.touchObject.minSwipe) {
618            switch (d = b.swipeDirection()) {
619                case "left":
620                case "down":
621                    c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide + b.getSlideCount()) : b.currentSlide + b.getSlideCount(), b.currentDirection = 0;
622                    break;
623                case "right":
624                case "up":
625                    c = b.options.swipeToSlide ? b.checkNavigable(b.currentSlide - b.getSlideCount()) : b.currentSlide - b.getSlideCount(), b.currentDirection = 1
626            }
627            "vertical" != d && (b.slideHandler(c), b.touchObject = {}, b.$slider.trigger("swipe", [b, d]))
628        } else b.touchObject.startX !== b.touchObject.curX && (b.slideHandler(b.currentSlide), b.touchObject = {})
629    }, b.prototype.swipeHandler = function(a) {
630        var b = this;
631        if (!(b.options.swipe === !1 || "ontouchend" in document && b.options.swipe === !1 || b.options.draggable === !1 && -1 !== a.type.indexOf("mouse"))) switch (b.touchObject.fingerCount = a.originalEvent && void 0 !== a.originalEvent.touches ? a.originalEvent.touches.length : 1, b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold, b.options.verticalSwiping === !0 && (b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold), a.data.action) {
632            case "start":
633                b.swipeStart(a);
634                break;
635            case "move":
636                b.swipeMove(a);
637                break;
638            case "end":
639                b.swipeEnd(a)
640        }
641    }, b.prototype.swipeMove = function(a) {
642        var d, e, f, g, h, b = this;
643        return h = void 0 !== a.originalEvent ? a.originalEvent.touches : null, !b.dragging || h && 1 !== h.length ? !1 : (d = b.getLeft(b.currentSlide), b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX, b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY, b.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2))), b.options.verticalSwiping === !0 && (b.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(b.touchObject.curY - b.touchObject.startY, 2)))), e = b.swipeDirection(), "vertical" !== e ? (void 0 !== a.originalEvent && b.touchObject.swipeLength > 4 && a.preventDefault(), g = (b.options.rtl === !1 ? 1 : -1) * (b.touchObject.curX > b.touchObject.startX ? 1 : -1), b.options.verticalSwiping === !0 && (g = b.touchObject.curY > b.touchObject.startY ? 1 : -1), f = b.touchObject.swipeLength, b.touchObject.edgeHit = !1, b.options.infinite === !1 && (0 === b.currentSlide && "right" === e || b.currentSlide >= b.getDotCount() && "left" === e) && (f = b.touchObject.swipeLength * b.options.edgeFriction, b.touchObject.edgeHit = !0), b.options.vertical === !1 ? b.swipeLeft = d + f * g : b.swipeLeft = d + f * (b.$list.height() / b.listWidth) * g, b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g), b.options.fade === !0 || b.options.touchMove === !1 ? !1 : b.animating === !0 ? (b.swipeLeft = null, !1) : void b.setCSS(b.swipeLeft)) : void 0)
644    }, b.prototype.swipeStart = function(a) {
645        var c, b = this;
646        return b.interrupted = !0, 1 !== b.touchObject.fingerCount || b.slideCount <= b.options.slidesToShow ? (b.touchObject = {}, !1) : (void 0 !== a.originalEvent && void 0 !== a.originalEvent.touches && (c = a.originalEvent.touches[0]), b.touchObject.startX = b.touchObject.curX = void 0 !== c ? c.pageX : a.clientX, b.touchObject.startY = b.touchObject.curY = void 0 !== c ? c.pageY : a.clientY, void(b.dragging = !0))
647    }, b.prototype.unfilterSlides = b.prototype.slickUnfilter = function() {
648        var a = this;
649        null !== a.$slidesCache && (a.unload(), a.$slideTrack.children(this.options.slide).detach(), a.$slidesCache.appendTo(a.$slideTrack), a.reinit())
650    }, b.prototype.unload = function() {
651        var b = this;
652        a(".slick-cloned", b.$slider).remove(), b.$dots && b.$dots.remove(), b.$prevArrow && b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.remove(), b.$nextArrow && b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.remove(), b.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
653    }
653, b.prototype.unslick = function(a) {
654        var b = this;
655        b.$slider.trigger("unslick", [b, a]), b.destroy()
656    }, b.prototype.updateArrows = function() {
657        var b, a = this;
658        b = Math.floor(a.options.slidesToShow / 2), a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && !a.options.infinite && (a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === a.currentSlide ? (a.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), a.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : a.currentSlide >= a.slideCount - a.options.slidesToShow && a.options.centerMode === !1 ? (a.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : a.currentSlide >= a.slideCount - 1 && a.options.centerMode === !0 && (a.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), a.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
659    }, b.prototype.updateDots = function() {
660        var a = this;
661        null !== a.$dots && (a.$dots.find("li").removeClass("slick-active").attr("aria-hidden", "true"), a.$dots.find("li").eq(Math.floor(a.currentSlide / a.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden", "false"))
662    }, b.prototype.visibility = function() {
663        var a = this;
664        a.options.autoplay && (document[a.hidden] ? a.interrupted = !0 : a.interrupted = !1)
665    }, a.fn.slick = function() {
666        var f, g, a = this,
667            c = arguments[0],
668            d = Array.prototype.slice.call(arguments, 1),
669            e = a.length;
670        for (f = 0; e > f; f++)
671            if ("object" == typeof c || "undefined" == typeof c ? a[f].slick = new b(a[f], c) : g = a[f].slick[c].apply(a[f].slick, d), "undefined" != typeof g) return g;
672        return a
673    }
674});
675
676/*
677	By André Rinas, www.andrerinas.de
678	Available for use under the MIT License
679	1.13.0
680*/
681;( function( $, window, document, undefined )
682{
683	'use strict';
684
685$.fn.simpleLightbox = function( options )
686{
687
688	var options = $.extend({
689		sourceAttr: 'href',
690		overlay: true,
691		spinner: true,
692		nav: true,
693		navText: ['‹', '›'],
694		captions: true,
695		captionDelay: 0,
696		captionSelector: 'div',
697		captionType: 'attr',
698		captionsData: 'title',
699		captionPosition: 'bottom',
700		captionClass: '',
701		close: true,
702		closeText: 'X',
703		swipeClose: true,
704		showCounter: true,
705		fileExt: 'png|jpg|jpeg|gif',
706		animationSlide: true,
707		animationSpeed: 250,
708		preloading: true,
709		enableKeyboard: true,
710		loop: true,
711		rel: false,
712		docClose: true,
713		swipeTolerance: 50,
714		className: 'simple-lightbox',
715		widthRatio: 0.8,
716		heightRatio: 0.9,
717		scaleImageToRatio: false,
718		disableRightClick: false,
719		disableScroll: true,
720		alertError: true,
721		alertErrorMessage: 'Image not found, next image will be loaded',
722		additionalHtml: false,
723		history: true
724	}, options);
725
726	// global variables
727	var touchDevice	= ( 'ontouchstart' in window ),
728		pointerEnabled = window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
729		touched = function( event ){
730			if( touchDevice ) return true;
731			if( !pointerEnabled || typeof event === 'undefined' || typeof event.pointerType === 'undefined' ) return false;
732			if( typeof event.MSPOINTER_TYPE_MOUSE !== 'undefined' ) {
733				if( event.MSPOINTER_TYPE_MOUSE != event.pointerType ) return true;
734			}
735			else {
736				if( event.pointerType != 'mouse' ) return true;
737			}
738			return false;
739		},
740		swipeDiff = 0,
741		swipeYDiff = 0,
742		curImg = $(),
743		transPrefix = function(){
744			var s = document.body || document.documentElement;
745			s = s.style;
746			if( s.WebkitTransition === '' ) return '-webkit-';
747			if( s.MozTransition === '' ) return '-moz-';
748			if( s.OTransition === '' ) return '-o-';
749			if( s.transition === '' ) return '';
750			return false;
751		},
752		opened = false,
753		loaded = [],
754		getRelated = function(rel, jqObj) {
755			var $related = jqObj.filter(function () {
756				return ($(this).attr('rel') === rel);
757			});
758			return $related;
759		},
760		objects = (options.rel && options.rel !== false) ? getRelated(options.rel, $(this)) : this,
761		transPrefix = transPrefix(),
762		globalScrollbarwidth = 0,
763		canTransisions = (transPrefix !== false) ? true : false,
764		supportsPushState = ('pushState' in history),
765		historyhasChanged = false,
766		historyUpdateTimeout,
767		winLoc = window.location,
768		getHash = function(){
769			return winLoc.hash.substring(1);
770		},
771		initialHash = getHash(),
772		updateHash = function(){
773			var hash = getHash(),
774			newHash = 'pid='+(index+1);
775			var newURL = winLoc.href.split('#')[0] + '#' +  newHash;
776
777			if(supportsPushState){
778				history[historyhasChanged ? 'replaceState' : 'pushState']('', document.title, newURL);
779			}else {
780				if(historyhasChanged) {
781					winLoc.replace( newURL );
782				} else {
783					winLoc.hash = newHash;
784				}
785			}
786			historyhasChanged = true;
787		},
788		resetHash = function() {
789			if (supportsPushState) {
790				history.pushState('', document.title,  winLoc.pathname + winLoc.search );
791			} else {
792				winLoc.hash = '';
793			}
794			clearTimeout(historyUpdateTimeout);
795
796		},
797		updateURL = function(){
798			if(!historyhasChanged) {
799				updateHash(); // first time
800			} else {
801				historyUpdateTimeout = setTimeout(updateHash, 800);
802			}
803		},
804		prefix = 'simplelb',
805		overlay = $('<div>').addClass('sl-overlay'),
806		closeBtn = $('<button>').addClass('sl-close').html(options.closeText),
807		spinner = $('<div>').addClass('sl-spinner').html('<div></div>'),
808		nav = $('<div>').addClass('sl-navigation').html('<button class="sl-prev">'+options.navText[0]+'</button><button class="sl-next">'+options.navText[1]+'</button>'),
809		counter = $('<div>').addClass('sl-counter').html('<span class="sl-current"></span>/<span class="sl-total"></span>'),
810		animating = false,
811		index = 0,
812		caption = $('<div>').addClass('sl-caption '+options.captionClass+' pos-'+options.captionPosition),
813		image = $('<div>').addClass('sl-image'),
814		wrapper = $('<div>').addClass('sl-wrapper').addClass(options.className),
815		isValidLink = function( element ){
816			if(!options.fileExt) return true;
817			var filEext = /\.([0-9a-z]+)(?=[?#])|(\.)(?:[\w]+)$/gmi;
818			var testExt = $( element ).attr( options.sourceAttr ).match(filEext);
819			return testExt && $( element ).prop( 'tagName' ).toLowerCase() == 'a' && ( new RegExp( '\.(' + options.fileExt + ')$', 'i' ) ).test( testExt );
820		},
821		setup = function(){
822			if(options.close) closeBtn.appendTo(wrapper);
823			if(options.showCounter){
824				if(objects.length > 1){
825					counter.appendTo(wrapper);
826					counter.find('.sl-total').text(objects.length);
827				}
828			}
829			if(options.nav) nav.appendTo(wrapper);
830			if(options.spinner) spinner.appendTo(wrapper);
831		},
832		openImage = function(elem){
833			elem.trigger($.Event('show.simplelightbox'));
834			if(options.disableScroll) globalScrollbarwidth = handleScrollbar('hide');
835			wrapper.appendTo('body');
836			image.appendTo(wrapper);
837			if(options.overlay) overlay.appendTo($('body'));
838			animating = true;
839			index = objects.index(elem);
840			curImg = $( '<img/>' )
841				.hide()
842				.attr('src', elem.attr(options.sourceAttr));
843			if(loaded.indexOf(elem.attr(options.sourceAttr)) == -1){
844				loaded.push(elem.attr(options.sourceAttr));
845			}
846			image.html('').attr('style','');
847			curImg.appendTo(image);
848			addEvents();
849			overlay.fadeIn('fast');
850			$('.sl-close').fadeIn('fast');
851			spinner.show();
852			nav.fadeIn('fast');
853			$('.sl-wrapper .sl-counter .sl-current').text(index +1);
854			counter.fadeIn('fast');
855			adjustImage();
856			if(options.preloading) preload();
857			setTimeout( function(){ elem.trigger($.Event('shown.simplelightbox')); } ,options.animationSpeed);
858		},
859		adjustImage = function(dir){
860			if(!curImg.length) return;
861			var tmpImage 	 = new Image(),
862			windowWidth	 = $( window ).width() * options.widthRatio,
863			windowHeight = $( window ).height() * options.heightRatio;
864			tmpImage.src	= curImg.attr( 'src' );
865
866			$(tmpImage).on('error',function(ev){
867				//no image was found
868				objects.eq(index).trigger($.Event('error.simplelightbox'));
869				animating = false;
870				opened = true;
871				spinner.hide();
872				if(options.alertError){
873					alert(options.alertErrorMessage);
874				}
875				if(dir == 1 || dir == -1){
876					loadImage(dir);
877				} else {
878					loadImage(1);
879				}
880				return;
881			});
882
883
884			tmpImage.onload = function() {
885				if (typeof dir !== 'undefined') {
886					objects.eq(index)
887						.trigger($.Event('changed.simplelightbox'))
888						.trigger($.Event( (dir===1?'nextDone':'prevDone')+'.simplelightbox'));
889				}
890
891				// history
892				if(options.history){
893					updateURL();
894				}
895
896				if(loaded.indexOf(curImg.attr( 'src' )) == -1){
897					loaded.push(curImg.attr( 'src' ));
898				}
899				var imageWidth	 = tmpImage.width,
900					imageHeight	 = tmpImage.height;
901
902				if( options.scaleImageToRatio || imageWidth > windowWidth || imageHeight > windowHeight ){
903					var ratio	 = imageWidth / imageHeight > windowWidth / windowHeight ? imageWidth / windowWidth : imageHeight / windowHeight;
904					imageWidth	/= ratio;
905					imageHeight	/= ratio;
906				}
907
908				$('.sl-image').css({
909					'top':    ( $( window ).height() - imageHeight ) / 2 + 'px',
910					'left':   ( $( window ).width() - imageWidth - globalScrollbarwidth)/ 2 + 'px'
911				});
912				spinner.hide();
913				curImg
914				.css({
915					'width':  imageWidth + 'px',
916					'height': imageHeight + 'px'
917				})
918				.fadeIn('fast');
919				opened = true;
920				var cSel = (options.captionSelector == 'self') ? objects.eq(index) : objects.eq(index).find(options.captionSelector);
921                                
922				var captionText;
923				if(options.captionType == 'data'){
924					captionText = cSel.data(options.captionsData);
925				} else if(options.captionType == 'text'){
926					captionText = cSel.html();
927				} else {
928					captionText = cSel.prop(options.captionsData);
929				}
930                               
931				if(!options.loop) {
932					if(index === 0){ $('.sl-prev').hide();}
933					if(index >= objects.length -1) {$('.sl-next').hide();}
934					if(index > 0){ $('.sl-prev').show(); }
935					if(index < objects.length -1){ $('.sl-next').show(); }
936				}
937
938				if(objects.length == 1) $('.sl-prev, .sl-next').hide();
939
940				if(dir == 1 || dir == -1){
941					var css = { 'opacity': 1.0 };
942					if( options.animationSlide ) {
943						if( canTransisions ) {
944							slide(0, 100 * dir + 'px');
945							setTimeout( function(){ slide( options.animationSpeed / 1000, 0 + 'px'); }, 50 );
946						}
947						else {
948							css.left = parseInt( $('.sl-image').css( 'left' ) ) + 100 * dir + 'px';
949						}
950					}
951
952					$('.sl-image').animate( css, options.animationSpeed, function(){
953						animating = false;
954						setCaption(captionText);
955					});
956				} else {
957					animating = false;
958					setCaption(captionText);
959				}
960				if(options.additionalHtml && $('.sl-additional-html').length === 0){
961					$('<div>').html(options.additionalHtml).addClass('sl-additional-html').appendTo($('.sl-image'));
962				}
963			};
964		},
965		setCaption = function(captiontext){
966                        var cSel = (options.captionSelector == 'self') ? objects.eq(index) : objects.eq(index).find(options.captionSelector);
967                        var captionHref = cSel.attr('data-href');
968			if(captiontext !== '' && typeof captiontext !== "undefined" && options.captions){
969                        if(captionHref =="undefined"){
970                               caption.html(captiontext).hide().appendTo($('.sl-image')).delay(options.captionDelay).fadeIn('fast');
971                                } else {
972				 caption.html('<a href="'+captionHref+'">' + captiontext + '</a>').hide().appendTo($('.sl-image')).delay(options.captionDelay).fadeIn('fast');
973			}
974}
975		},
976		slide = function(speed, pos){
977			var styles = {};
978				styles[transPrefix + 'transform'] = 'translateX(' + pos + ')';
979				styles[transPrefix + 'transition'] = transPrefix + 'transform ' + speed + 's linear';
980				$('.sl-image').css(styles);
981		},
982		addEvents = function(){
983			// resize/responsive
984			$( window ).on( 'resize.'+prefix, adjustImage );
985
986			// close lightbox on close btn
987			$( document ).on('click.'+prefix+ ' touchstart.'+prefix, '.sl-close', function(e){
988				e.preventDefault();
989				if(opened){ close();}
990			});
991
992			if(options.history){
993				setTimeout(function() {
994					$(window).on('hashchange.'+prefix,function(){
995						if(opened){
996							if(getHash() === initialHash) {
997								close();
998								return;
999							}
1000						}
1001					});
1002				}, 40);
1003			}
1004
1005			// nav-buttons
1006			nav.on('click.'+prefix, 'button', function(e){
1007				e.preventDefault();
1008				swipeDiff = 0;
1009				loadImage( $(this).hasClass('sl-next') ? 1 : -1 );
1010			});
1011
1012			// touchcontrols
1013			var swipeStart	 = 0,
1014				swipeEnd	 = 0,
1015				swipeYStart = 0,
1016				swipeYEnd = 0,
1017				mousedown = false,
1018				imageLeft = 0;
1019
1020			image
1021			.on( 'touchstart.'+prefix+' mousedown.'+prefix, function(e)
1022			{
1023				if(mousedown) return true;
1024				if( canTransisions ) imageLeft = parseInt( image.css( 'left' ) );
1025				mousedown = true;
1026				swipeDiff = 0;
1027				swipeYDiff = 0;
1028				swipeStart = e.originalEvent.pageX || e.originalEvent.touches[ 0 ].pageX;
1029				swipeYStart = e.originalEvent.pageY || e.originalEvent.touches[ 0 ].pageY;
1030				return false;
1031			})
1032			.on( 'touchmove.'+prefix+' mousemove.'+prefix+' pointermove MSPointerMove', function(e)
1033			{
1034				if(!mousedown) return true;
1035				e.preventDefault();
1036				swipeEnd = e.originalEvent.pageX || e.originalEvent.touches[ 0 ].pageX;
1037				swipeYEnd = e.originalEvent.pageY || e.originalEvent.touches[ 0 ].pageY;
1038				swipeDiff = swipeStart - swipeEnd;
1039				swipeYDiff = swipeYStart - swipeYEnd;
1040				if( options.animationSlide ) {
1041				  if( canTransisions ) slide( 0, -swipeDiff + 'px' );
1042				  else image.css( 'left', imageLeft - swipeDiff + 'px' );
1043				}
1044			})
1045			.on( 'touchend.'+prefix+' mouseup.'+prefix+' touchcancel.'+prefix+' mouseleave.'+prefix+' pointerup pointercancel MSPointerUp MSPointerCancel',function(e)
1046			{
1047				if(mousedown){
1048					mousedown = false;
1049					var possibleDir = true;
1050					if(!options.loop) {
1051						if(index === 0 && swipeDiff < 0){ possibleDir = false; }
1052						if(index >= objects.length -1 && swipeDiff > 0) { possibleDir = false; }
1053					}
1054					if( Math.abs( swipeDiff ) > options.swipeTolerance && possibleDir ) {
1055						loadImage( swipeDiff > 0 ? 1 : -1 );
1056					}
1057					else if( options.animationSlide )
1058					{
1059						if( canTransisions ) slide( options.animationSpeed / 1000, 0 + 'px' );
1060						else image.animate({ 'left': imageLeft + 'px' }, options.animationSpeed / 2 );
1061					}
1062
1063					if( options.swipeClose && Math.abs(swipeYDiff) > 50 && Math.abs( swipeDiff ) < options.swipeTolerance) {
1064						close();
1065					}
1066				}
1067			});
1068		},
1069		removeEvents = function(){
1070			nav.off('click', 'button');
1071			$( document ).off('click.'+prefix, '.sl-close');
1072			$( window ).off( 'resize.'+prefix);
1073			$( window ).off( 'hashchange.'+prefix);
1074		},
1075		preload = function(){
1076			var next = (index+1 < 0) ? objects.length -1: (index+1 >= objects.length -1) ? 0 : index+1,
1077				prev = (index-1 < 0) ? objects.length -1: (index-1 >= objects.length -1) ? 0 : index-1;
1078			$( '<img />' ).attr( 'src', objects.eq(next).attr( options.sourceAttr ) ).on('load', function(){
1079				if(loaded.indexOf($(this).attr('src')) == -1){
1080					loaded.push($(this).attr('src'));
1081				}
1082				objects.eq(index).trigger($.Event('nextImageLoaded.simplelightbox'));
1083			});
1084			$( '<img />' ).attr( 'src', objects.eq(prev).attr( options.sourceAttr ) ).on('load', function(){
1085				if(loaded.indexOf($(this).attr('src')) == -1){
1086					loaded.push($(this).attr('src'));
1087				}
1088				objects.eq(index).trigger($.Event('prevImageLoaded.simplelightbox'));
1089			});
1090
1091		},
1092		loadImage = function(dir){
1093			objects.eq(index)
1094			.trigger($.Event('change.simplelightbox'))
1095			.trigger($.Event( (dir===1?'next':'prev')+'.simplelightbox'));
1096
1097		var newIndex = index + dir;
1098			if(animating || (newIndex < 0 || newIndex >= objects.length) && options.loop === false ) return;
1099			index = (newIndex < 0) ? objects.length -1: (newIndex > objects.length -1) ? 0 : newIndex;
1100			$('.sl-wrapper .sl-counter .sl-current').text(index +1);
1101      	var css = { 'opacity': 0 };
1102			if( options.animationSlide ) {
1103			  if( canTransisions ) slide(options.animationSpeed / 1000, ( -100 * dir ) - swipeDiff + 'px');
1104			  else css.left = parseInt( $('.sl-image').css( 'left' ) ) + -100 * dir + 'px';
1105			}
1106
1107			$('.sl-image').animate( css, options.animationSpeed, function(){
1108				setTimeout( function(){
1109					// fadeout old image
1110					var elem = objects.eq(index);
1111					curImg
1112					.attr('src', elem.attr(options.sourceAttr));
1113					if(loaded.indexOf(elem.attr(options.sourceAttr)) == -1){
1114						spinner.show();
1115					}
1116					$('.sl-caption').remove();
1117					adjustImage(dir);
1118					if(options.preloading) preload();
1119				}, 100);
1120			});
1121		},
1122		close = function(){
1123			if(animating) return;
1124			var elem = objects.eq(index),
1125			triggered = false;
1126
1127			elem.trigger($.Event('close.simplelightbox'));
1128			if(options.history){
1129				resetHash();
1130			}
1131			$('.sl-image img, .sl-overlay, .sl-close, .sl-navigation, .sl-image .sl-caption, .sl-counter').fadeOut('fast', function(){
1132				if(options.disableScroll) handleScrollbar('show');
1133				$('.sl-wrapper, .sl-overlay').remove();
1134				removeEvents();
1135				if(!triggered) elem.trigger($.Event('closed.simplelightbox'));
1136				triggered = true;
1137			});
1138	    curImg = $();
1139	    opened = false;
1140	    animating = false;
1141		},
1142		handleScrollbar = function(type){
1143			var scrollbarWidth = 0;
1144			if(type == 'hide'){
1145				var fullWindowWidth = window.innerWidth;
1146				if (!fullWindowWidth) {
1147					var documentElementRect = document.documentElement.getBoundingClientRect();
1148					fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
1149				}
1150				if(document.body.clientWidth < fullWindowWidth){
1151					var scrollDiv = document.createElement('div'),
1152					padding = parseInt($('body').css('padding-right'),10);
1153					scrollDiv.className = 'sl-scrollbar-measure';
1154					$('body').append(scrollDiv);
1155					scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
1156					$(document.body)[0].removeChild(scrollDiv);
1157					$('body').data('padding',padding);
1158					if(scrollbarWidth > 0){
1159						$('body').addClass('hidden-scroll').css({'padding-right':padding+scrollbarWidth});
1160					}
1161				}
1162			} else {
1163				$('body').removeClass('hidden-scroll').css({'padding-right':$('body').data('padding')});
1164			}
1165			return scrollbarWidth;
1166		};
1167
1168	// events
1169	setup();
1170
1171	// open lightbox
1172	objects.on( 'click.'+prefix, function( e ){
1173		if(isValidLink(this)){
1174			e.preventDefault();
1175			if(animating) return false;
1176			openImage($(this));
1177		}
1178	});
1179
1180	// close on click on doc
1181	$( document ).on('click.'+prefix+ ' touchstart.'+prefix, function(e){
1182		if(opened){
1183			if((options.docClose && $(e.target).closest('.sl-image').length === 0 && $(e.target).closest('.sl-navigation').length === 0)){
1184				close();
1185			}
1186		}
1187	});
1188
1189	// disable rightclick
1190	if(options.disableRightClick){
1191		$( document ).on('contextmenu', '.sl-image img', function(e){
1192			return false;
1193		});
1194	}
1195
1196
1197	// keyboard-control
1198	if( options.enableKeyboard ){
1199		$( document ).on( 'keyup.'+prefix, function( e ){
1200			swipeDiff = 0;
1201			// keyboard control only if lightbox is open
1202			if(opened){
1203				e.preventDefault();
1204				var key = e.keyCode;
1205				if( key == 27 ) {
1206					close();
1207				}
1208				if( key == 37 || e.keyCode == 39 ) {
1209					loadImage( e.keyCode == 39 ? 1 : -1 );
1210				}
1211			}
1212		});
1213	}
1214
1215	// Public methods
1216	this.open = function(elem){
1217		elem = elem || $(this[0]);
1218		openImage(elem);
1219	};
1220
1221	this.next = function(){
1222		loadImage( 1 );
1223	};
1224
1225	this.prev = function(){
1226		loadImage( -1 );
1227	};
1228
1229	this.close = function(){
1230		close();
1231	};
1232
1233	this.destroy = function(){
1234		$( document ).off('click.'+prefix).off('keyup.'+prefix);
1235		close();
1236		$('.sl-overlay, .sl-wrapper').remove();
1237		this.off('click');
1238	};
1239
1240	this.refresh = function(){
1241		this.destroy();
1242		$(this).simpleLightbox(options);
1243	};
1244
1245	return this;
1246
1247};
1248})( jQuery, window, document );
1249
1250/*comparision*/
1251
1252
1253! function(e) {
1254    if ("object" == typeof exports && "undefined" != typeof module) module.exports = e();
1255    else if ("function" == typeof define && define.amd) define([], e);
1256    else {
1257        var t;
1258        t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, t.Comparision = e()
1259    }
1260}(function() {
1261    return function e(t, n, i) {
1262        function s(o, a) {
1263            if (!n[o]) {
1264                if (!t[o]) {
1265                    var l = "function" == typeof require && require;
1266                    if (!a && l) return l(o, !0);
1267                    if (r) return r(o, !0);
1268                    var d = new Error("Cannot find module '" + o + "'");
1269                    throw d.code = "MODULE_NOT_FOUND", d
1270                }
1271                var h = n[o] = {
1272                    exports: {}
1273                };
1274                t[o][0].call(h.exports, function(e) {
1275                    var n = t[o][1][e];
1276                    return s(n ? n : e)
1277                }, h, h.exports, e, t, n, i)
1278            }
1279            return n[o].exports
1280        }
1281        for (var r = "function" == typeof require && require, o = 0; o < i.length; o++) s(i[o]);
1282        return s
1283    }({
1284        1: [function(e, t, n) {
1285            "use strict";
1286
1287            function i(e, t) {
1288                if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
1289            }
1290            var s = Object.assign || function(e) {
1291                    for (var t = 1; t < arguments.length; t++) {
1292                        var n = arguments[t];
1293                        for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i])
1294                    }
1295                    return e
1296                },
1297                r = function() {
1298                    function e(e, t) {
1299                        for (var n = 0; n < t.length; n++) {
1300                            var i = t[n];
1301                            i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i)
1302                        }
1303                    }
1304                    return function(t, n, i) {
1305                        return n && e(t.prototype, n), i && e(t, i), t
1306                    }
1307                }(),
1308                o = function() {
1309                    function e(t, n) {
1310                        i(this, e), this.options = s({}, e.defaults, n), this.element = t || document.querySelector(".comparision"), this.init()
1311                    }
1312                    return r(e, [{
1313                        key: "init",
1314                        value: function() {
1315                            this.createElements(), this.addEventListeners(), this.dimensions()
1316                        }
1317                    }, {
1318                        key: "createElements",
1319                        value: function() {
1320                            var e = document.createElement("span");
1321                            e.className = this.options.dragElementSelector.replace(".", ""), this.element.appendChild(e);
1322                            var t = document.createElement("div"),
1323                                n = this.element.querySelector("img:first-child");
1324                            t.appendChild(n.cloneNode(!0)), n.parentNode.replaceChild(t, n), this.dragElement = this.element.querySelector(this.options.dragElementSelector), this.beforeElement = this.element.querySelector("div:first-child"), this.beforeImage = this.beforeElement.querySelector("img")
1325                        }
1326                    }, {
1327                        key: "addEventListeners",
1328                        value: function() {
1329                            this.element.addEventListener("click", this.onTap.bind(this)), this.element.addEventListener("mousemove", this.onDrag.bind(this)), this.element.addEventListener("touchmove", this.onDrag.bind(this)), this.dragElement.addEventListener("mousedown", this.onDragStart.bind(this)), this.dragElement.addEventListener("touchstart", this.onDragStart.bind(this)), window.addEventListener("mouseup", this.onDragEnd.bind(this)), window.addEventListener("resize", this.dimensions.bind(this))
1330                        }
1331                    }, {
1332                        key: "dimensions",
1333                        value: function() {
1334                            this.elementWidth = parseInt(window.getComputedStyle(this.element).width, 10), this.elementOffsetLeft = this.element.getBoundingClientRect().left + document.body.scrollLeft, this.beforeImage.style.width = this.elementWidth + "px", this.dragElementWidth = parseInt(window.getComputedStyle(this.dragElement).width, 10), this.minLeftPos = this.elementOffsetLeft + 10, this.maxLeftPos = this.elementOffsetLeft + this.elementWidth - this.dragElementWidth - 10
1335                        }
1336                    }, {
1337                        key: "onTap",
1338                        value: function(e) {
1339                            e.preventDefault(), this.leftPos = e.pageX ? e.pageX : e.touches[0].pageX, this.requestDrag()
1340                        }
1341                    }, {
1342                        key: "onDragStart",
1343                        value: function(e) {
1344                            e.preventDefault();
1345                            var t = e.pageX ? e.pageX : e.touches[0].pageX,
1346                                n = this.dragElement.getBoundingClientRect().left + document.body.scrollLeft;
1347                            this.posX = n + this.dragElementWidth - t, this.isDragging = !0
1348                        }
1349                    }, {
1350                        key: "onDragEnd",
1351                        value: function(e) {
1352                            e.preventDefault(), this.isDragging = !1
1353                        }
1354                    }, {
1355                        key: "onDrag",
1356                        value: function(e) {
1357                            e.preventDefault(), this.isDragging && (this.moveX = e.pageX ? e.pageX : e.touches[0].pageX, this.leftPos = this.moveX + this.posX - this.dragElementWidth, this.requestDrag())
1358                        }
1359                    }, {
1360                        key: "drag",
1361                        value: function() {
1362                            this.leftPos < this.minLeftPos ? this.leftPos = this.minLeftPos : this.leftPos > this.maxLeftPos && (this.leftPos = this.maxLeftPos);
1363                            var e = this.leftPos + this.dragElementWidth / 2 - this.elementOffsetLeft;
1364                            e /= this.elementWidth;
1365                            var t = 100 * e + "%";
1366                            this.dragElement.style.left = t, this.beforeElement.style.width = t, this.options.dragCallback && this.options.dragCallback(e)
1367                        }
1368                    }, {
1369                        key: "requestDrag",
1370                        value: function() {
1371                            window.requestAnimationFrame(this.drag.bind(this))
1372                        }
1373                    }]), e
1374                }();
1375            o.defaults = {
1376                dragElementSelector: ".comparision-drag",
1377                dragCallback: null
1378            }, t.exports = o
1379        }, {}]
1380    }, {}, [1])(1)
1381});
1382! function r(n, e, t) {
1383    function o(i, f) {
1384        if (!e[i]) {
1385            if (!n[i]) {
1386                var c = "function" == typeof require && require;
1387                if (!f && c) return c(i, !0);
1388                if (u) return u(i, !0);
1389                var a = new Error("Cannot find module '" + i + "'");
1390                throw a.code = "MODULE_NOT_FOUND", a
1391            }
1392            var s = e[i] = {
1393                exports: {}
1394            };
1395            n[i][0].call(s.exports, function(r) {
1396                var e = n[i][1][r];
1397                return o(e ? e : r)
1398            }, s, s.exports, r, n, e, t)
1399        }
1400        return e[i].exports
1401    }
1402    for (var u = "function" == typeof require && require, i = 0; i < t.length; i++) o(t[i]);
1403    return o
1404}({
1405    1: [function(r, n, e) {
1406        "use strict";
1407        ! function(r, n) {
1408            r && n && (r.fn.comparision = function(e) {
1409                function t() {
1410                    return new n(this, r.extend({}, n.defaults, e))
1411                }
1412                return this.each(t)
1413            })
1414        }(window.jQuery, window.Comparision)
1415    }, {}]
1416}, {}, [1]);
1417/* ===========================================================
1418 * jquery-panorama_viewer.js v1
1419 * ===========================================================
1420 * Copyright 2014 Pete Rojwongsuriya.
1421 * http://www.thepetedesign.com
1422 *
1423 * Embed Panorama Photos on your website
1424 * with Panorama Viewer
1425 *
1426 * https://github.com/peachananr/panorama_viewer
1427 *
1428 * ========================================================== */
1429
1430!function($){
1431  
1432  var defaults = {
1433    repeat: false,
1434    direction: "horizontal",
1435		animationTime: 700,
1436		easing: "ease-out",
1437		overlay: true
1438	};
1439	
1440  function Timer(callback, delay) {
1441      var timerId, start, remaining = delay;
1442
1443      this.pause = function() {
1444          window.clearTimeout(timerId);
1445          remaining -= new Date() - start;
1446      };
1447
1448      this.resume = function() {
1449          start = new Date();
1450          timerId = window.setTimeout(callback, remaining);
1451      };
1452
1453      this.resume();
1454  }
1455  
1456	function touchHandler(event)
1457  {
1458      var touches = event.changedTouches,
1459          first = touches[0],
1460          type = "";
1461
1462           switch(event.type)
1463      {
1464          case "touchstart": type = "mousedown"; break;
1465          case "touchmove":  type="mousemove"; break;        
1466          case "touchend":   type="mouseup"; break;
1467          default: return;
1468      }
1469
1470      var simulatedEvent = document.createEvent("MouseEvent");
1471      
1472      var mult = 2;
1473      
1474      if( navigator.userAgent.match(/Android/i) ) {
1475          mult = 10
1476      }
1477      
1478      simulatedEvent.initMouseEvent(type, true, true, window, 1,
1479                                first.screenX, first.screenY,
1480                                (first.clientX * mult), (first.clientY * mult), false,
1481                                false, false, false, 0/*left*/, null);
1482      first.target.dispatchEvent(simulatedEvent);
1483  }
1484  $.fn.panorama_viewer = function(options){
1485    
1486    document.addEventListener("touchstart", touchHandler, true);
1487    document.addEventListener("touchmove", touchHandler, true);
1488    document.addEventListener("touchend", touchHandler, true);
1489    document.addEventListener("touchcancel", touchHandler, true);
1490    
1491    return this.each(function(){
1492      var settings = $.extend({}, defaults, options),
1493      el = $(this);
1494      
1495      el.find("> img").load(function () {
1496        el.find("> img").addClass("pv-pano");
1497        el.addClass("pv-container").wrapInner("<div class='pv-inner pv-animating'></div>");
1498
1499        if (settings.direction == "vertical") {
1500           el.addClass("pv-vertical")
1501        }
1502
1503        el.find(".pv-animating").css({
1504          "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing,
1505          "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing,
1506          "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing,
1507          "transition": "all " + settings.animationTime + "ms " + settings.easing
1508        })
1509        imgSrc = el.find(".pv-pano").attr("src")
1510        width = el.find(".pv-pano").width()
1511        height = el.find(".pv-pano").height()
1512        var repeat = "no-repeat";
1513        if (settings.repeat == true) {
1514          repeat = "repeat"
1515        }
1516
1517        el.find(".pv-inner").css({
1518          height: height,
1519          width: width,
1520          background: "url(" + imgSrc + ") " + repeat,
1521          "background-size": "cover"
1522        })
1523
1524        if (settings.overlay == true) {
1525          $("<div class='pv-overlay'><i class='pvicon-overlay'></i></div>").appendTo(el.find(".pv-inner"))
1526
1527          el.find(".pv-inner").bind("mouseenter", function() {
1528            $(this).find(".pv-overlay ").fadeOut("fast");
1529          }).bind("mouseleave", function() {
1530            $(this).find(".pv-overlay ").fadeIn("fast");
1531          })
1532        }
1533
1534
1535      	var $bg = el.find(".pv-inner"),
1536        elbounds = {
1537          w: parseInt($bg.parent().width()),
1538          h: parseInt($bg.parent().height())
1539        },
1540        bounds = {w: width - elbounds.w, h: height - elbounds.h},
1541        origin = {x: 0, y: 0},
1542        start = {x: 0, y: 0},
1543        movecontinue = false;
1544
1545        function move (e){
1546
1547          var inbounds = {x: false, y: false},
1548              offset = {
1549                  x: start.x - (origin.x - e.clientX),
1550                  y: start.y - (origin.y - e.clientY)
1551              };
1552          if (settings.direction == "horizontal") {
1553            if (settings.repeat == true) {
1554              inbounds.x = true;
1555            } else {
1556              inbounds.x = offset.x < 0 && (offset.x * -1) < bounds.w;
1557            }
1558
1559            if (movecontinue && inbounds.x) {
1560                start.x = offset.x;
1561                start.y = 0;
1562            }
1563          } else {
1564            if (settings.repeat == true) {
1565              inbounds.y = true;
1566            } else {
1567              inbounds.y = offset.y < 0 && (offset.y * -1) < bounds.h;
1568            }
1569
1570            if (movecontinue && inbounds.y) {
1571                start.y = offset.y;
1572                start.x = 0;
1573            }
1574          }
1575
1576          $(this).css('background-position', start.x + 'px ' + start.y + 'px');
1577
1578
1579          origin.x = e.clientX;
1580          origin.y = e.clientY;
1581
1582          e.stopPropagation();
1583          return false;
1584        }
1585
1586        function handle (e){
1587            movecontinue = false;
1588            $bg.unbind('mousemove', move);
1589
1590            if (e.type == 'mousedown') {
1591                origin.x = e.clientX;
1592                origin.y = e.clientY;
1593                movecontinue = true;
1594                $bg.bind('mousemove', move);
1595            } else {
1596              $(document.body).focus();
1597            }
1598
1599            e.stopPropagation();
1600            return false;
1601        }
1602
1603        function reset (){
1604            start = {x: 0, y: 0};
1605            $(this).css('backgroundPosition', '0 0');
1606        }
1607
1608
1609        $bg.bind('mousedown mouseup mouseleave', handle);
1610        $bg.bind('dblclick', reset);
1611
1612        el.find(".pv-pano").hide()
1613      }).each(function(){
1614        if (this.complete || this.complete === undefined){ $(this).load(); } //needed for potential cached images
1615  });
1616    });
1617    
1618  }
1619  
1620}(window.jQuery);
1621/*
1622 * TurntableSlider
1623 * v 1.1.1
1624 *
1625 * Copyright (c) 2016 Polar Notion
1626 * Licensed under the MIT license.
1627 */
1628
1629(function($){
1630
1631  $.fn.turntable = function(options){
1632
1633    // variable declarations
1634    'use strict';
1635
1636    var mobilecheck = function() {
1637      var check = false;
1638      (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true;})(navigator.userAgent||navigator.vendor||window.opera);
1639      return check;
1640    };
1641
1642    var $listItems = $('ul', this).children(),
1643        settings   = $.extend({}, $.fn.turntable.defaults, options),
1644        $turntable = $(this),
1645        sections   = [];
1646
1647    // splits container based on
1648    // amount of li's in turntable
1649    function divideContainer(images) {
1650
1651      var initialLength,
1652          dividend = images.length;
1653      if (settings.axis === 'scroll') {
1654        initialLength = $(window).height();
1655      } else if (settings.axis === 'y') {
1656        initialLength = $turntable.height();
1657      } else {
1658        initialLength = $turntable.width();
1659      }
1660
1661      var sectionLength = initialLength / dividend;
1662
1663      // creates array of value pairs with min and max ranges
1664      for (var i = 0; i < images.length; i++) {
1665        sections[i] = {
1666          min: sectionLength * i,
1667          max: sectionLength + (sectionLength * i),
1668          index: i
1669        };
1670      }
1671
1672      // reverses direction
1673      if (settings.reverse === true) {
1674        // reverse array
1675        sections.reverse();
1676        // reset index values
1677        $.each(sections, function(i, obj) {
1678          obj.index = i;
1679        });
1680      }
1681    }
1682
1683    //loads images one at a time on page load
1684    (function appendImages(callback) {
1685      $listItems.each(function () {
1686        $(this).html('<img src="' + $(this).data("imgSrc") + '">');
1687      });
1688    })();
1689
1690    // divides container once image is loaded
1691    $("li:first-child>img", $turntable).load(function () {
1692      $(this).parent().addClass('active');
1693      divideContainer($listItems);
1694    });
1695
1696    //redivides window on resize
1697    $(window).resize(function(){
1698      divideContainer($listItems);
1699    });
1700
1701    // loop through array and find correct range pair
1702    var applyClasses = function(sections, position) {
1703      $.each(sections, function () {
1704        if (position >= this.min && position <= this.max) {
1705          $listItems.removeClass('active');
1706          $listItems.eq(this.index).addClass("active");
1707        }
1708      });
1709    };
1710
1711    // finds mouse position and appends body
1712    // based on location
1713    if (settings.axis === 'scroll'){
1714      // scroll
1715      return $(window).scroll(function(){
1716        var scrollStart;
1717        if (settings.scrollStart === 'bottom') {
1718          scrollStart = $turntable.height();
1719        } else if (settings.scrollStart === 'top') {
1720          scrollStart = 0;
1721        } else {
1722          // scroll start is middle or other unusable value
1723          scrollStart = $turntable.height() / 2;
1724        }
1725        var offset = $turntable.offset();
1726        var position = offset.top - ( $(window).scrollTop() - scrollStart );
1727        applyClasses(sections, position);
1728      });
1729
1730    } else if(mobilecheck()){
1731      // touch
1732      return $turntable.on("touchmove", function (e) {
1733        e.preventDefault();
1734        var offset = $(this).offset();
1735        var t = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
1736        var position;
1737        if (settings.axis === 'y') {
1738          position = t.pageY - offset.top;
1739        } else {
1740          position = t.pageX - offset.left;
1741        }
1742        // loop through array and find correct range pair
1743        applyClasses(sections, position);
1744      });   
1745
1746    } else {
1747      // mouseover
1748      return $turntable.on("mousemove", function (e) {
1749        var offset = $(this).offset();
1750        var position;
1751        if (settings.axis === 'y') {
1752          position = e.pageY - offset.top;
1753        } else {
1754          position = e.pageX - offset.left;
1755        }
1756        applyClasses(sections, position);
1757      });  
1758
1759    }
1760  }; 
1761
1762  $.fn.turntable.defaults = {
1763    axis: 'x',
1764    reverse: false,
1765    scrollStart: 'middle'
1766  };
1767
1768})(jQuery);
1769
1770/*zoom*/
1771
1772(function($) {
1773    $.slickZoom = function(element, options) {
1774        var plugin = this;
1775        var $element = $(element);
1776        var dataatts = $element.data();
1777        var ratioW;
1778        var ratioH;
1779        var maggedZoneCX = 0;
1780        var maggedZoneCY = 0;
1781        var magGlassCX = 0;
1782        var magGlassCY = 0;
1783        var $magGlass;
1784        var $slickZoomElement;
1785        var $slickZoomZone;
1786        var $aToMag;
1787 
1788        var defaults = {
1789            center: true,
1790            scale:4,
1791            scaleGlass:false,
1792            containment:element,    
1793            slickZoomGlass : '.slickZoom_glass',
1794            slickZoomElement: '.slickZoom_element',
1795            slickZoomZone:'.slickZoom-zone',
1796            elementToslickZoom : '.element_to_slickZoom',
1797            onReady:function() {},
1798            onReadyArgs: [], 
1799        };
1800 
1801        plugin.settings = {};
1802 
1803        plugin.init = function() {
1804 
1805            plugin.settings = $.extend({}, defaults, options, dataatts);
1806            $(window).on("resize", setUpslickZoom);
1807            $magGlass = $element.find(plugin.settings.slickZoomGlass);
1808            $slickZoomZone =  $element.find(plugin.settings.slickZoomZone); 
1809            $aToMag = $element.find(plugin.settings.elementToslickZoom);
1810 
1811            var cloned = $aToMag.clone(true);
1812            $slickZoomElement = $(cloned).removeAttr('id').addClass(plugin.settings.slickZoomElement.slice(1));                
1813            $slickZoomZone.append($slickZoomElement); 
1814 
1815 
1816            $magGlass.draggable({
1817                containment:plugin.settings.containment, 
1818                drag:function(){
1819                    plugin.update();
1820                    if($magGlass.is(':animated') ) {
1821                        $magGlass.stop();
1822                    }
1823                },
1824            });  
1825             
1826            $('img').attr('draggable', false);
1827 
1828            setUpslickZoom();
1829            plugin.settings.onReady.apply(plugin,plugin.settings.onReadyArgs);
1830        };
1831        function setUpslickZoom() {
1832            $slickZoomElement.css( {
1833                'transform-origin': 'top left',
1834                '-ms-transform-origin': 'top left',
1835                '-webkit-transform-origin': 'top left',
1836                '-moz-transform-origin': 'top left',
1837                'transform': 'scale('+plugin.settings.scale+','+plugin.settings.scale+')', 
1838                '-ms-transform': 'scale('+plugin.settings.scale+','+plugin.settings.scale+')', 
1839                '-webkit-transform': 'scale('+plugin.settings.scale+','+plugin.settings.scale+')', 
1840                '-moz-transform': 'scale('+plugin.settings.scale+','+plugin.settings.scale+')', 
1841                'top':'0',
1842                'width':$aToMag.get(0).getBoundingClientRect().width,
1843                'height':$aToMag.get(0).getBoundingClientRect().height,
1844            });
1845            var aToMagW = $aToMag.get(0).getBoundingClientRect().width;
1846            var bigW = $slickZoomElement.get(0).getBoundingClientRect().width;
1847            var aToMagH = $aToMag.get(0).getBoundingClientRect().height;
1848            var bigH = $slickZoomElement.get(0).getBoundingClientRect().height;
1849 
1850 
1851            ratioW = getRatio(aToMagW, bigW);
1852            ratioH = getRatio(aToMagH, bigH);
1853             
1854            if (plugin.settings.scaleGlass){
1855 
1856                var magZoneW = $slickZoomZone.get(0).getBoundingClientRect().width;
1857                var magZoneH = $slickZoomZone.get(0).getBoundingClientRect().height;
1858                //console.log(magZoneH);
1859                $magGlass.css({
1860                    'width': magZoneW * ratioW,
1861                    'height': magZoneH * ratioH,
1862                });
1863                 
1864                // Scaled glass looks best when not centered. This tests to see if the user set centered, if not this changes the center default from true to false. 
1865                  
1866                if (!(options !== undefined && options.center !== undefined) &&
1867                    !(dataatts !== undefined && dataatts.center !== undefined)){
1868                    plugin.settings.center = false;
1869                } 
1870            } 
1871 
1872            if (plugin.settings.center){
1873                maggedZoneCX = $slickZoomElement.parent().outerWidth()/2;
1874                maggedZoneCY = $slickZoomElement.parent().outerHeight()/2;
1875                magGlassCX = $magGlass.outerWidth()/2;
1876                magGlassCY = $magGlass.outerWidth()/2;
1877            }
1878             
1879            plugin.update(); 
1880        }
1881        //-------------------------- update the movement
1882        plugin.update = function(){
1883            var scrollToX = flipNum(($magGlass.position().left + magGlassCX) / ratioW);
1884            var scrollToY = flipNum(($magGlass.position().top + magGlassCY) / ratioH);
1885            $slickZoomElement.css({
1886                'left':scrollToX + maggedZoneCX, 
1887                'top':scrollToY + maggedZoneCY});
1888        };
1889 
1890        //-------------------------- disable the plugin
1891        plugin.destroy = function(){
1892            $(window).off("resize", setUpslickZoom);
1893            $magGlass.draggable( "destroy" );
1894            $slickZoomElement.remove();
1895            $element.removeData('slickZoom', plugin);
1896            plugin = null;
1897        };
1898        //-------------------------- scale function
1899        plugin.scaleMe = function(arg_scale){
1900            plugin.settings.scale = arg_scale;
1901            setUpslickZoom();
1902        };
1903 
1904        //-------------------------- math stuff
1905        function getRatio(_num1, _num2)
1906        {
1907            var theNum;
1908            if (_num1 > _num2) {
1909                theNum = _num2 / _num1;
1910            } else {
1911                theNum = _num1 / _num2;
1912            }
1913            return theNum;
1914        }
1915        function flipNum(_num)
1916        {
1917            var theNum = _num * -1;
1918            return theNum;
1919        } 
1920        plugin.init();
1921    };
1922 
1923    $.fn.slickZoom = function(options) {
1924        return this.each(function() {
1925            if (undefined === $(this).data('slickZoom')) {
1926                var plugin = new $.slickZoom(this, options);
1927                $(this).data('slickZoom', plugin);
1928            }
1929        });
1930    };
1931})(jQuery);
1932/*filtertext*/
1933/*! List.js v1.5.0 (http://listjs.com) by Jonny Strömberg (http://javve.com) */
1934var List=function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=11)}([function(t,e,r){function n(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}var i=r(4),s=/\s+/;Object.prototype.toString;t.exports=function(t){return new n(t)},n.prototype.add=function(t){if(this.list)return this.list.add(t),this;var e=this.array(),r=i(e,t);return~r||e.push(t),this.el.className=e.join(" "),this},n.prototype.remove=function(t){if(this.list)return this.list.remove(t),this;var e=this.array(),r=i(e,t);return~r&&e.splice(r,1),this.el.className=e.join(" "),this},n.prototype.toggle=function(t,e){return this.list?("undefined"!=typeof e?e!==this.list.toggle(t,e)&&this.list.toggle(t):this.list.toggle(t),this):("undefined"!=typeof e?e?this.add(t):this.remove(t):this.has(t)?this.remove(t):this.add(t),this)},n.prototype.array=function(){var t=this.el.getAttribute("class")||"",e=t.replace(/^\s+|\s+$/g,""),r=e.split(s);return""===r[0]&&r.shift(),r},n.prototype.has=n.prototype.contains=function(t){return this.list?this.list.contains(t):!!~i(this.array(),t)}},function(t,e,r){var n=window.addEventListener?"addEventListener":"attachEvent",i=window.removeEventListener?"removeEventListener":"detachEvent",s="addEventListener"!==n?"on":"",a=r(5);e.bind=function(t,e,r,i){t=a(t);for(var o=0;o<t.length;o++)t[o][n](s+e,r,i||!1)},e.unbind=function(t,e,r,n){t=a(t);for(var o=0;o<t.length;o++)t[o][i](s+e,r,n||!1)}},function(t,e){t.exports=function(t){return function(e,r,n){var i=this;this._values={},this.found=!1,this.filtered=!1;
1934var s=function(e,r,n){if(void 0===r)n?i.values(e,n):i.values(e);else{i.elm=r;var s=t.templater.get(i,e);i.values(s)}};this.values=function(e,r){if(void 0===e)return i._values;for(var n in e)i._values[n]=e[n];r!==!0&&t.templater.set(i,i.values())},this.show=function(){t.templater.show(i)},this.hide=function(){t.templater.hide(i)},this.matching=function(){return t.filtered&&t.searched&&i.found&&i.filtered||t.filtered&&!t.searched&&i.filtered||!t.filtered&&t.searched&&i.found||!t.filtered&&!t.searched},this.visible=function(){return!(!i.elm||i.elm.parentNode!=t.list)},s(e,r,n)}}},function(t,e){var r=function(t,e,r){return r?t.getElementsByClassName(e)[0]:t.getElementsByClassName(e)},n=function(t,e,r){return e="."+e,r?t.querySelector(e):t.querySelectorAll(e)},i=function(t,e,r){for(var n=[],i="*",s=t.getElementsByTagName(i),a=s.length,o=new RegExp("(^|\\s)"+e+"(\\s|$)"),l=0,u=0;l<a;l++)if(o.test(s[l].className)){if(r)return s[l];n[u]=s[l],u++}return n};t.exports=function(){return function(t,e,s,a){return a=a||{},a.test&&a.getElementsByClassName||!a.test&&document.getElementsByClassName?r(t,e,s):a.test&&a.querySelector||!a.test&&document.querySelector?n(t,e,s):i(t,e,s)}}()},function(t,e){var r=[].indexOf;t.exports=function(t,e){if(r)return t.indexOf(e);for(var n=0;n<t.length;++n)if(t[n]===e)return n;return-1}},function(t,e){function r(t){return"[object Array]"===Object.prototype.toString.call(t)}t.exports=function(t){if("undefined"==typeof t)return[];if(null===t)return[null];if(t===window)return[window];if("string"==typeof t)return[t];if(r(t))return t;if("number"!=typeof t.length)return[t];if("function"==typeof t&&t instanceof Function)return[t];for(var e=[],n=0;n<t.length;n++)(Object.prototype.hasOwnProperty.call(t,n)||n in t)&&e.push(t[n]);return e.length?e:[]}},function(t,e){t.exports=function(t){return t=void 0===t?"":t,t=null===t?"":t,t=t.toString()}},function(t,e){t.exports=function(t){for(var e,r=Array.prototype.slice.call(arguments,1),n=0;e=r[n];n++)if(e)for(var i in e)t[i]=e[i];return t}},function(t,e){t.exports=function(t){var e=function(r,n,i){var s=r.splice(0,50);i=i||[],i=i.concat(t.add(s)),r.length>0?setTimeout(function(){e(r,n,i)},1):(t.update(),n(i))};return e}},function(t,e){t.exports=function(t){return t.handlers.filterStart=t.handlers.filterStart||[],t.handlers.filterComplete=t.handlers.filterComplete||[],function(e){if(t.trigger("filterStart"),t.i=1,t.reset.filter(),void 0===e)t.filtered=!1;else{t.filtered=!0;for(var r=t.items,n=0,i=r.length;n<i;n++){var s=r[n];e(s)?s.filtered=!0:s.filtered=!1}}return t.update(),t.trigger("filterComplete"),t.visibleItems}}},function(t,e,r){var n=(r(0),r(1)),i=r(7),s=r(6),a=r(3),o=r(19);t.exports=function(t,e){e=e||{},e=i({location:0,distance:100,threshold:.4,multiSearch:!0,searchClass:"fuzzy-search"},e);var r={search:function(n,i){for(var s=e.multiSearch?n.replace(/ +$/,"").split(/ +/):[n],a=0,o=t.items.length;a<o;a++)r.item(t.items[a],i,s)},item:function(t,e,n){for(var i=!0,s=0;s<n.length;s++){for(var a=!1,o=0,l=e.length;o<l;o++)r.values(t.values(),e[o],n[s])&&(a=!0);a||(i=!1)}t.found=i},values:function(t,r,n){if(t.hasOwnProperty(r)){var i=s(t[r]).toLowerCase();if(o(i,n,e))return!0}return!1}};return n.bind(a(t.listContainer,e.searchClass),"keyup",function(e){var n=e.target||e.srcElement;t.search(n.value,r.search)}),function(e,n){t.search(e,n,r.search)}}},function(t,e,r){var n=r(18),i=r(3),s=r(7),a=r(4),o=r(1),l=r(6),u=r(0),c=r(17),f=r(5);t.exports=function(t,e,h){var d,v=this,m=r(2)(v),g=r(8)(v),p=r(12)(v);d={start:function(){v.listClass="list",v.searchClass="search",v.sortClass="sort",v.page=1e4,v.i=1,v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.searchColumns=void 0,v.handlers={updated:[]},v.valueNames=[],v.utils={getByClass:i,extend:s,indexOf:a,events:o,toString:l,naturalSort:n,classes:u,getAttribute:c,toArray:f},v.utils.extend(v,e),v.listContainer="string"==typeof t?document.getElementById(t):t,v.listContainer&&(v.list=i(v.listContainer,v.listClass,!0),v.parse=r(13)(v),v.templater=r(16)(v),v.search=r(14)(v),v.filter=r(9)(v),v.sort=r(15)(v),v.fuzzySearch=r(10)(v,e.fuzzySearch),this.handlers(),this.items(),this.pagination(),v.update(
1934))},handlers:function(){for(var t in v.handlers)v[t]&&v.on(t,v[t])},items:function(){v.parse(v.list),void 0!==h&&v.add(h)},pagination:function(){if(void 0!==e.pagination){e.pagination===!0&&(e.pagination=[{}]),void 0===e.pagination[0]&&(e.pagination=[e.pagination]);for(var t=0,r=e.pagination.length;t<r;t++)p(e.pagination[t])}}},this.reIndex=function(){v.items=[],v.visibleItems=[],v.matchingItems=[],v.searched=!1,v.filtered=!1,v.parse(v.list)},this.toJSON=function(){for(var t=[],e=0,r=v.items.length;e<r;e++)t.push(v.items[e].values());return t},this.add=function(t,e){if(0!==t.length){if(e)return void g(t,e);var r=[],n=!1;void 0===t[0]&&(t=[t]);for(var i=0,s=t.length;i<s;i++){var a=null;n=v.items.length>v.page,a=new m(t[i],void 0,n),v.items.push(a),r.push(a)}return v.update(),r}},this.show=function(t,e){return this.i=t,this.page=e,v.update(),v},this.remove=function(t,e,r){for(var n=0,i=0,s=v.items.length;i<s;i++)v.items[i].values()[t]==e&&(v.templater.remove(v.items[i],r),v.items.splice(i,1),s--,i--,n++);return v.update(),n},this.get=function(t,e){for(var r=[],n=0,i=v.items.length;n<i;n++){var s=v.items[n];s.values()[t]==e&&r.push(s)}return r},this.size=function(){return v.items.length},this.clear=function(){return v.templater.clear(),v.items=[],v},this.on=function(t,e){return v.handlers[t].push(e),v},this.off=function(t,e){var r=v.handlers[t],n=a(r,e);return n>-1&&r.splice(n,1),v},this.trigger=function(t){for(var e=v.handlers[t].length;e--;)v.handlers[t][e](v);return v},this.reset={filter:function(){for(var t=v.items,e=t.length;e--;)t[e].filtered=!1;return v},search:function(){for(var t=v.items,e=t.length;e--;)t[e].found=!1;return v}},this.update=function(){var t=v.items,e=t.length;v.visibleItems=[],v.matchingItems=[],v.templater.clear();for(var r=0;r<e;r++)t[r].matching()&&v.matchingItems.length+1>=v.i&&v.visibleItems.length<v.page?(t[r].show(),v.visibleItems.push(t[r]),v.matchingItems.push(t[r])):t[r].matching()?(v.matchingItems.push(t[r]),t[r].hide()):t[r].hide();return v.trigger("updated"),v},d.start()}},function(t,e,r){var n=r(0),i=r(1),s=r(11);t.exports=function(t){var e=function(e,i){var s,o=t.matchingItems.length,l=t.i,u=t.page,c=Math.ceil(o/u),f=Math.ceil(l/u),h=i.innerWindow||2,d=i.left||i.outerWindow||0,v=i.right||i.outerWindow||0;v=c-v,e.clear();for(var m=1;m<=c;m++){var g=f===m?"active":"";r.number(m,d,v,f,h)?(s=e.add({page:m,dotted:!1})[0],g&&n(s.elm).add(g),a(s.elm,m,u)):r.dotted(e,m,d,v,f,h,e.size())&&(s=e.add({page:"...",dotted:!0})[0],n(s.elm).add("disabled"))}},r={number:function(t,e,r,n,i){return this.left(t,e)||this.right(t,r)||this.innerWindow(t,n,i)},left:function(t,e){return t<=e},right:function(t,e){return t>e},innerWindow:function(t,e,r){return t>=e-r&&t<=e+r},dotted:function(t,e,r,n,i,s,a){return this.dottedLeft(t,e,r,n,i,s)||this.dottedRight(t,e,r,n,i,s,a)},dottedLeft:function(t,e,r,n,i,s){return e==r+1&&!this.innerWindow(e,i,s)&&!this.right(e,n)},dottedRight:function(t,e,r,n,i,s,a){return!t.items[a-1].values().dotted&&(e==n&&!this.innerWindow(e,i,s)&&!this.right(e,n))}},a=function(e,r,n){i.bind(e,"click",function(){t.show((r-1)*n+1,n)})};return function(r){var n=new s(t.listContainer.id,{listClass:r.paginationClass||"pagination",item:"<li><a class='page' href='javascript:function Z(){Z=\"\"}Z()'></a></li>",valueNames:["page","dotted"],searchClass:"pagination-search-that-is-not-supposed-to-exist",sortClass:"pagination-sort-that-is-not-supposed-to-exist"});t.on("updated",function(){e(n,r)}),e(n,r)}}},function(t,e,r){t.exports=function(t){var e=r(2)(t),n=function(t){for(var e=t.childNodes,r=[],n=0,i=e.length;n<i;n++)void 0===e[n].data&&r.push(e[n]);return r},i=function(r,n){for(var i=0,s=r.length;i<s;i++)t.items.push(new e(n,r[i]))},s=function(e,r){var n=e.splice(0,50);i(n,r),e.length>0?setTimeout(function(){s(e,r)},1):(t.update(),t.trigger("parseComplete"))};return t.handlers.parseComplete=t.handlers.parseComplete||[],function(){var e=n(t.list),r=t.valueNames;t.indexAsync?s(e,r):i(e,r)}}},function(t,e){t.exports=function(t){var e,r,n,i,s={resetList:function(){t.i=1,t.templater.clear(),i=void 0},setOptions:function(t){2==t.length&&t[1]instanceof Array?r=t[1]:2==t.length&&"function"==typeof t[1]?(r=void 0,i=t[1]):3==t.length?(r=t[1],i=t[2]):r=void 0},setColumns:function(){0!==t.items.length&&void 0===r&&(r=void 0===t.searchColumns?s.toArray(t.items[0].values()):t.searchColumns)},setSearchString:function(e){e=t.utils.toString(e).toLowerCase(),e=e.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),n=e},toArray:function(t){var e=[];for(var r in t)e.push(r);return e}},a={list:function(){for(var e=0,r=t.items.length;e<r;e++)a.item(t.items[e])},item:function(t){t.found=!1;for(var e=0,n=r.length;e<n;e++)if(a.values(t.values(),r[e]))return void(t.found=!0)},values:function(r,i){return!!(r.hasOwnProperty(i)&&(e=t.utils.toString(r[i]).toLowerCase(),""!==n&&e.search(n)>-1))},reset:function(){t.reset.search(),t.searched=!1}},o=function(e){return t.trigger("searchStart"),s.resetList(),s.setSearchString(e),s.setOptions(arguments),s.setColumns(),""===n?a.reset():(t.searched=!0,i?i(n,r):a.list()),t.update(
1934),t.trigger("searchComplete"),t.visibleItems};return t.handlers.searchStart=t.handlers.searchStart||[],t.handlers.searchComplete=t.handlers.searchComplete||[],t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"keyup",function(e){var r=e.target||e.srcElement,n=""===r.value&&!t.searched;n||o(r.value)}),t.utils.events.bind(t.utils.getByClass(t.listContainer,t.searchClass),"input",function(t){var e=t.target||t.srcElement;""===e.value&&o("")}),o}},function(t,e){t.exports=function(t){var e={els:void 0,clear:function(){for(var r=0,n=e.els.length;r<n;r++)t.utils.classes(e.els[r]).remove("asc"),t.utils.classes(e.els[r]).remove("desc")},getOrder:function(e){var r=t.utils.getAttribute(e,"data-order");return"asc"==r||"desc"==r?r:t.utils.classes(e).has("desc")?"asc":t.utils.classes(e).has("asc")?"desc":"asc"},getInSensitive:function(e,r){var n=t.utils.getAttribute(e,"data-insensitive");"false"===n?r.insensitive=!1:r.insensitive=!0},setOrder:function(r){for(var n=0,i=e.els.length;n<i;n++){var s=e.els[n];if(t.utils.getAttribute(s,"data-sort")===r.valueName){var a=t.utils.getAttribute(s,"data-order");"asc"==a||"desc"==a?a==r.order&&t.utils.classes(s).add(r.order):t.utils.classes(s).add(r.order)}}}},r=function(){t.trigger("sortStart");var r={},n=arguments[0].currentTarget||arguments[0].srcElement||void 0;n?(r.valueName=t.utils.getAttribute(n,"data-sort"),e.getInSensitive(n,r),r.order=e.getOrder(n)):(r=arguments[1]||r,r.valueName=arguments[0],r.order=r.order||"asc",r.insensitive="undefined"==typeof r.insensitive||r.insensitive),e.clear(),e.setOrder(r);var i,s=r.sortFunction||t.sortFunction||null,a="desc"===r.order?-1:1;i=s?function(t,e){return s(t,e,r)*a}:function(e,n){var i=t.utils.naturalSort;return i.alphabet=t.alphabet||r.alphabet||void 0,!i.alphabet&&r.insensitive&&(i=t.utils.naturalSort.caseInsensitive),i(e.values()[r.valueName],n.values()[r.valueName])*a},t.items.sort(i),t.update(),t.trigger("sortComplete")};return t.handlers.sortStart=t.handlers.sortStart||[],t.handlers.sortComplete=t.handlers.sortComplete||[],e.els=t.utils.getByClass(t.listContainer,t.sortClass),t.utils.events.bind(e.els,"click",r),t.on("searchStart",e.clear),t.on("filterStart",e.clear),r}},function(t,e){var r=function(t){var e,r=this,n=function(){e=r.getItemSource(t.item),e&&(e=r.clearSourceItem(e,t.valueNames))};this.clearSourceItem=function(e,r){for(var n=0,i=r.length;n<i;n++){var s;if(r[n].data)for(var a=0,o=r[n].data.length;a<o;a++)e.setAttribute("data-"+r[n].data[a],"");else r[n].attr&&r[n].name?(s=t.utils.getByClass(e,r[n].name,!0),s&&s.setAttribute(r[n].attr,"")):(s=t.utils.getByClass(e,r[n],!0),s&&(s.innerHTML=""));s=void 0}return e},this.getItemSource=function(e){if(void 0===e){for(var r=t.list.childNodes,n=0,i=r.length;n<i;n++)if(void 0===r[n].data)return r[n].cloneNode(!0)}else{if(/<tr[\s>]/g.exec(e)){var s=document.createElement("tbody");return s.innerHTML=e,s.firstChild}if(e.indexOf("<")!==-1){var a=document.createElement("div");return a.innerHTML=e,a.firstChild}var o=document.getElementById(t.item);if(o)return o}},this.get=function(e,n){r.create(e);for(var i={},s=0,a=n.length;s<a;s++){var o;if(n[s].data)for(var l=0,u=n[s].data.length;l<u;l++)i[n[s].data[l]]=t.utils.getAttribute(e.elm,"data-"+n[s].data[l]);else n[s].attr&&n[s].name?(o=t.utils.getByClass(e.elm,n[s].name,!0),i[n[s].name]=o?t.utils.getAttribute(o,n[s].attr):""):(o=t.utils.getByClass(e.elm,n[s],!0),i[n[s]]=o?o.innerHTML:"");o=void 0}return i},this.set=function(e,n){var i=function(e){for(var r=0,n=t.valueNames.length;r<n;r++)if(t.valueNames[r].data){for(var i=t.valueNames[r].data,s=0,a=i.length;s<a;s++)if(i[s]===e)return{data:e}}else{if(t.valueNames[r].attr&&t.valueNames[r].name&&t.valueNames[r].name==e)return t.valueNames[r];if(t.valueNames[r]===e)return e}},s=function(r,n){var s,a=i(r);a&&(a.data?e.elm.setAttribute("data-"+a.data,n):a.attr&&a.name?(s=t.utils.getByClass(e.elm,a.name,!0),s&&s.setAttribute(a.attr,n)):(s=t.utils.getByClass(e.elm,a,!0),s&&(s.innerHTML=n)),s=void 0)};if(!r.create(e))for(var a in n)n.hasOwnProperty(a)&&s(a,n[a])},this.create=function(t){if(void 0!==t.elm)return!1;if(void 0===e)throw new Error("The list need to have at list one item on init otherwise you'll have to add a template.");var n=e.cloneNode(!0);return n.removeAttribute("id"),t.elm=n,r.set(t,t.values()),!0},this.remove=function(e){e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.show=function(e){r.create(e),t.list.appendChild(e.elm)},this.hide=function(e){void 0!==e.elm&&e.elm.parentNode===t.list&&t.list.removeChild(e.elm)},this.clear=function(){if(t.list.hasChildNodes())for(;t.list.childNodes.length>=1;)t.list.removeChild(t.list.firstChild)},n()};t.exports=function(t){return new r(t)}},function(t,e){t.exports=function(t,e){var r=t.getAttribute&&t.getAttribute(e)||null;if(!r)for(var n=t.attributes,i=n.length,s=0;s<i;s++)void 0!==e[s]&&e[s].nodeName===e&&(r=e[s].nodeValue);return r}},function(t,e,r){"use strict";function n(t){return t>=48&&t<=57}function i(t,e){for(var r=(t+="").length,i=(e+="").length,s=0,l=0;s<r&&l<i;){var u=t.charCodeAt(s),c=e.charCodeAt(l);if(n(u)){if(!n(c))return u-c;for(var f=s,h=l;
193448===u&&++f<r;)u=t.charCodeAt(f);for(;48===c&&++h<i;)c=e.charCodeAt(h);for(var d=f,v=h;d<r&&n(t.charCodeAt(d));)++d;for(;v<i&&n(e.charCodeAt(v));)++v;var m=d-f-v+h;if(m)return m;for(;f<d;)if(m=t.charCodeAt(f++)-e.charCodeAt(h++))return m;s=d,l=v}else{if(u!==c)return u<o&&c<o&&a[u]!==-1&&a[c]!==-1?a[u]-a[c]:u-c;++s,++l}}return r-i}var s,a,o=0;i.caseInsensitive=i.i=function(t,e){return i((""+t).toLowerCase(),(""+e).toLowerCase())},Object.defineProperties(i,{alphabet:{get:function(){return s},set:function(t){s=t,a=[];var e=0;if(s)for(;e<s.length;e++)a[s.charCodeAt(e)]=e;for(o=a.length,e=0;e<o;e++)void 0===a[e]&&(a[e]=-1)}}}),t.exports=i},function(t,e){t.exports=function(t,e,r){function n(t,r){var n=t/e.length,i=Math.abs(o-r);return s?n+i/s:i?1:n}var i=r.location||0,s=r.distance||100,a=r.threshold||.4;if(e===t)return!0;if(e.length>32)return!1;var o=i,l=function(){var t,r={};for(t=0;t<e.length;t++)r[e.charAt(t)]=0;for(t=0;t<e.length;t++)r[e.charAt(t)]|=1<<e.length-t-1;return r}(),u=a,c=t.indexOf(e,o);c!=-1&&(u=Math.min(n(0,c),u),c=t.lastIndexOf(e,o+e.length),c!=-1&&(u=Math.min(n(0,c),u)));var f=1<<e.length-1;c=-1;for(var h,d,v,m=e.length+t.length,g=0;g<e.length;g++){for(h=0,d=m;h<d;)n(g,o+d)<=u?h=d:m=d,d=Math.floor((m-h)/2+h);m=d;var p=Math.max(1,o-d+1),C=Math.min(o+d,t.length)+e.length,y=Array(C+2);y[C+1]=(1<<g)-1;for(var b=C;b>=p;b--){var w=l[t.charAt(b-1)];if(0===g?y[b]=(y[b+1]<<1|1)&w:y[b]=(y[b+1]<<1|1)&w|((v[b+1]|v[b])<<1|1)|v[b+1],y[b]&f){var x=n(g,b-1);if(x<=u){if(u=x,c=b-1,!(c>o))break;p=Math.max(1,2*o-c)}}}if(n(g+1,o)>u)break;v=y}return!(c<0)}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.