lightspeeddevelopment/lsx-customizer

View on GitHub
assets/js/jquery.flexslider.min.js

Summary

Maintainability
A
1 hr
Test Coverage
/*
 * jQuery FlexSlider v2.5.0
 * Copyright 2012 WooThemes
 * Contributing Author: Tyler Smith
 */ !(function($) {
    ($.flexslider = function(e, t) {
        var a = $(e);
        a.vars = $.extend({}, $.flexslider.defaults, t);
        var n = a.vars.namespace,
            i =
                window.navigator &&
                window.navigator.msPointerEnabled &&
                window.MSGesture,
            s =
                ("ontouchstart" in window ||
                    i ||
                    (window.DocumentTouch &&
                        document instanceof DocumentTouch)) &&
                a.vars.touch,
            r = "click touchend MSPointerUp keyup",
            o = "",
            l,
            c = "vertical" === a.vars.direction,
            d = a.vars.reverse,
            u = a.vars.itemWidth > 0,
            v = "fade" === a.vars.animation,
            p = "" !== a.vars.asNavFor,
            m = {},
            f = !0;
        $.data(e, "flexslider", a),
            (m = {
                init: function() {
                    (a.animating = !1),
                        (a.currentSlide = parseInt(
                            a.vars.startAt ? a.vars.startAt : 0,
                            10
                        )),
                        isNaN(a.currentSlide) && (a.currentSlide = 0),
                        (a.animatingTo = a.currentSlide),
                        (a.atEnd =
                            0 === a.currentSlide || a.currentSlide === a.last),
                        (a.containerSelector = a.vars.selector.substr(
                            0,
                            a.vars.selector.search(" ")
                        )),
                        (a.slides = $(a.vars.selector, a)),
                        (a.container = $(a.containerSelector, a)),
                        (a.count = a.slides.length),
                        (a.syncExists = $(a.vars.sync).length > 0),
                        "slide" === a.vars.animation &&
                            (a.vars.animation = "swing"),
                        (a.prop = c ? "top" : "marginLeft"),
                        (a.args = {}),
                        (a.manualPause = !1),
                        (a.stopped = !1),
                        (a.started = !1),
                        (a.startTimeout = null),
                        (a.transitions =
                            !a.vars.video &&
                            !v &&
                            a.vars.useCSS &&
                            (function() {
                                var e = document.createElement("div"),
                                    t = [
                                        "perspectiveProperty",
                                        "WebkitPerspective",
                                        "MozPerspective",
                                        "OPerspective",
                                        "msPerspective"
                                    ];
                                for (var n in t)
                                    if (void 0 !== e.style[t[n]])
                                        return (
                                            (a.pfx = t[n]
                                                .replace("Perspective", "")
                                                .toLowerCase()),
                                            (a.prop =
                                                "-" + a.pfx + "-transform"),
                                            !0
                                        );
                                return !1;
                            })()),
                        (a.ensureAnimationEnd = ""),
                        "" !== a.vars.controlsContainer &&
                            (a.controlsContainer =
                                $(a.vars.controlsContainer).length > 0 &&
                                $(a.vars.controlsContainer)),
                        "" !== a.vars.manualControls &&
                            (a.manualControls =
                                $(a.vars.manualControls).length > 0 &&
                                $(a.vars.manualControls)),
                        "" !== a.vars.customDirectionNav &&
                            (a.customDirectionNav =
                                2 === $(a.vars.customDirectionNav).length &&
                                $(a.vars.customDirectionNav)),
                        a.vars.randomize &&
                            (a.slides.sort(function() {
                                return Math.round(Math.random()) - 0.5;
                            }),
                            a.container.empty().append(a.slides)),
                        a.doMath(),
                        a.setup("init"),
                        a.vars.controlNav && m.controlNav.setup(),
                        a.vars.directionNav && m.directionNav.setup(),
                        a.vars.keyboard &&
                            (1 === $(a.containerSelector).length ||
                                a.vars.multipleKeyboard) &&
                            $(document).bind("keyup", function(e) {
                                var t = e.keyCode;
                                if (!a.animating && (39 === t || 37 === t)) {
                                    var n =
                                        39 === t
                                            ? a.getTarget("next")
                                            : 37 === t
                                            ? a.getTarget("prev")
                                            : !1;
                                    a.flexAnimate(n, a.vars.pauseOnAction);
                                }
                            }),
                        a.vars.mousewheel &&
                            a.bind("mousewheel", function(e, t, n, i) {
                                e.preventDefault();
                                var s = a.getTarget(0 > t ? "next" : "prev");
                                a.flexAnimate(s, a.vars.pauseOnAction);
                            }),
                        a.vars.pausePlay && m.pausePlay.setup(),
                        a.vars.slideshow &&
                            a.vars.pauseInvisible &&
                            m.pauseInvisible.init(),
                        a.vars.slideshow &&
                            (a.vars.pauseOnHover &&
                                a.hover(
                                    function() {
                                        a.manualPlay ||
                                            a.manualPause ||
                                            a.pause();
                                    },
                                    function() {
                                        a.manualPause ||
                                            a.manualPlay ||
                                            a.stopped ||
                                            a.play();
                                    }
                                ),
                            (a.vars.pauseInvisible &&
                                m.pauseInvisible.isHidden()) ||
                                (a.vars.initDelay > 0
                                    ? (a.startTimeout = setTimeout(
                                            a.play,
                                            a.vars.initDelay
                                      ))
                                    : a.play())),
                        p && m.asNav.setup(),
                        s && a.vars.touch && m.touch(),
                        (!v || (v && a.vars.smoothHeight)) &&
                            $(window).bind(
                                "resize orientationchange focus",
                                m.resize
                            ),
                        a.find("img").attr("draggable", "false"),
                        setTimeout(function() {
                            a.vars.start(a);
                        }, 200);
                },
                asNav: {
                    setup: function() {
                        (a.asNav = !0),
                            (a.animatingTo = Math.floor(
                                a.currentSlide / a.move
                            )),
                            (a.currentItem = a.currentSlide),
                            a.slides
                                .removeClass(n + "active-slide")
                                .eq(a.currentItem)
                                .addClass(n + "active-slide"),
                            i
                                ? ((e._slider = a),
                                  a.slides.each(function() {
                                        var e = this;
                                        (e._gesture = new MSGesture()),
                                            (e._gesture.target = e),
                                            e.addEventListener(
                                                "MSPointerDown",
                                                function(e) {
                                                    e.preventDefault(),
                                                        e.currentTarget
                                                            ._gesture &&
                                                            e.currentTarget._gesture.addPointer(
                                                                e.pointerId
                                                            );
                                                },
                                                !1
                                            ),
                                            e.addEventListener(
                                                "MSGestureTap",
                                                function(e) {
                                                    e.preventDefault();
                                                    var t = $(this),
                                                        n = t.index();
                                                    $(a.vars.asNavFor).data(
                                                        "flexslider"
                                                    ).animating ||
                                                        t.hasClass("active") ||
                                                        ((a.direction =
                                                            a.currentItem < n
                                                                ? "next"
                                                                : "prev"),
                                                        a.flexAnimate(
                                                            n,
                                                            a.vars
                                                                .pauseOnAction,
                                                            !1,
                                                            !0,
                                                            !0
                                                        ));
                                                }
                                            );
                                  }))
                                : a.slides.on(r, function(e) {
                                        e.preventDefault();
                                        var t = $(this),
                                            i = t.index(),
                                            s =
                                                t.offset().left -
                                                $(a).scrollLeft();
                                        0 >= s && t.hasClass(n + "active-slide")
                                            ? a.flexAnimate(
                                                    a.getTarget("prev"),
                                                    !0
                                              )
                                            : $(a.vars.asNavFor).data(
                                                    "flexslider"
                                              ).animating ||
                                              t.hasClass(n + "active-slide") ||
                                              ((a.direction =
                                                    a.currentItem < i
                                                        ? "next"
                                                        : "prev"),
                                              a.flexAnimate(
                                                    i,
                                                    a.vars.pauseOnAction,
                                                    !1,
                                                    !0,
                                                    !0
                                              ));
                                  });
                    }
                },
                controlNav: {
                    setup: function() {
                        a.manualControls
                            ? m.controlNav.setupManual()
                            : m.controlNav.setupPaging();
                    },
                    setupPaging: function() {
                        var e =
                                "thumbnails" === a.vars.controlNav
                                    ? "control-thumbs"
                                    : "control-paging",
                            t = 1,
                            i,
                            s;
                        if (
                            ((a.controlNavScaffold = $(
                                '<ol class="' +
                                    n +
                                    "control-nav " +
                                    n +
                                    e +
                                    '"></ol>'
                            )),
                            a.pagingCount > 1)
                        )
                            for (var l = 0; l < a.pagingCount; l++) {
                                if (
                                    ((s = a.slides.eq(l)),
                                    (i =
                                        "thumbnails" === a.vars.controlNav
                                            ? '<img src="' +
                                              s.attr("data-thumb") +
                                              '"/>'
                                            : "<a>" + t + "</a>"),
                                    "thumbnails" === a.vars.controlNav &&
                                        !0 === a.vars.thumbCaptions)
                                ) {
                                    var c = s.attr("data-thumbcaption");
                                    "" !== c &&
                                        void 0 !== c &&
                                        (i +=
                                            '<span class="' +
                                            n +
                                            'caption">' +
                                            c +
                                            "</span>");
                                }
                                a.controlNavScaffold.append(
                                    "<li>" + i + "</li>"
                                ),
                                    t++;
                            }
                        a.controlsContainer
                            ? $(a.controlsContainer).append(
                                    a.controlNavScaffold
                              )
                            : a.append(a.controlNavScaffold),
                            m.controlNav.set(),
                            m.controlNav.active(),
                            a.controlNavScaffold.delegate("a, img", r, function(
                                e
                            ) {
                                if (
                                    (e.preventDefault(),
                                    "" === o || o === e.type)
                                ) {
                                    var t = $(this),
                                        i = a.controlNav.index(t);
                                    t.hasClass(n + "active") ||
                                        ((a.direction =
                                            i > a.currentSlide
                                                ? "next"
                                                : "prev"),
                                        a.flexAnimate(i, a.vars.pauseOnAction));
                                }
                                "" === o && (o = e.type),
                                    m.setToClearWatchedEvent();
                            });
                    },
                    setupManual: function() {
                        (a.controlNav = a.manualControls),
                            m.controlNav.active(),
                            a.controlNav.bind(r, function(e) {
                                if (
                                    (e.preventDefault(),
                                    "" === o || o === e.type)
                                ) {
                                    var t = $(this),
                                        i = a.controlNav.index(t);
                                    t.hasClass(n + "active") ||
                                        ((a.direction =
                                            i > a.currentSlide
                                                ? "next"
                                                : "prev"),
                                        a.flexAnimate(i, a.vars.pauseOnAction));
                                }
                                "" === o && (o = e.type),
                                    m.setToClearWatchedEvent();
                            });
                    },
                    set: function() {
                        var e =
                            "thumbnails" === a.vars.controlNav ? "img" : "a";
                        a.controlNav = $(
                            "." + n + "control-nav li " + e,
                            a.controlsContainer ? a.controlsContainer : a
                        );
                    },
                    active: function() {
                        a.controlNav
                            .removeClass(n + "active")
                            .eq(a.animatingTo)
                            .addClass(n + "active");
                    },
                    update: function(e, t) {
                        a.pagingCount > 1 && "add" === e
                            ? a.controlNavScaffold.append(
                                    $("<li><a>" + a.count + "</a></li>")
                              )
                            : 1 === a.pagingCount
                            ? a.controlNavScaffold.find("li").remove()
                            : a.controlNav
                                    .eq(t)
                                    .closest("li")
                                    .remove(),
                            m.controlNav.set(),
                            a.pagingCount > 1 &&
                            a.pagingCount !== a.controlNav.length
                                ? a.update(t, e)
                                : m.controlNav.active();
                    }
                },
                directionNav: {
                    setup: function() {
                        var e = $(
                            '<ul class="' +
                                n +
                                'direction-nav"><li class="' +
                                n +
                                'nav-prev"><a class="' +
                                n +
                                'prev" href="#">' +
                                a.vars.prevText +
                                '</a></li><li class="' +
                                n +
                                'nav-next"><a class="' +
                                n +
                                'next" href="#">' +
                                a.vars.nextText +
                                "</a></li></ul>"
                        );
                        a.customDirectionNav
                            ? (a.directionNav = a.customDirectionNav)
                            : a.controlsContainer
                            ? ($(a.controlsContainer).append(e),
                              (a.directionNav = $(
                                    "." + n + "direction-nav li a",
                                    a.controlsContainer
                              )))
                            : (a.append(e),
                              (a.directionNav = $(
                                    "." + n + "direction-nav li a",
                                    a
                              ))),
                            m.directionNav.update(),
                            a.directionNav.bind(r, function(e) {
                                e.preventDefault();
                                var t;
                                ("" === o || o === e.type) &&
                                    ((t = a.getTarget(
                                        $(this).hasClass(n + "next")
                                            ? "next"
                                            : "prev"
                                    )),
                                    a.flexAnimate(t, a.vars.pauseOnAction)),
                                    "" === o && (o = e.type),
                                    m.setToClearWatchedEvent();
                            });
                    },
                    update: function() {
                        var e = n + "disabled";
                        1 === a.pagingCount
                            ? a.directionNav.addClass(e).attr("tabindex", "-1")
                            : a.vars.animationLoop
                            ? a.directionNav
                                    .removeClass(e)
                                    .removeAttr("tabindex")
                            : 0 === a.animatingTo
                            ? a.directionNav
                                    .removeClass(e)
                                    .filter("." + n + "prev")
                                    .addClass(e)
                                    .attr("tabindex", "-1")
                            : a.animatingTo === a.last
                            ? a.directionNav
                                    .removeClass(e)
                                    .filter("." + n + "next")
                                    .addClass(e)
                                    .attr("tabindex", "-1")
                            : a.directionNav
                                    .removeClass(e)
                                    .removeAttr("tabindex");
                    }
                },
                pausePlay: {
                    setup: function() {
                        var e = $(
                            '<div class="' + n + 'pauseplay"><a></a></div>'
                        );
                        a.controlsContainer
                            ? (a.controlsContainer.append(e),
                              (a.pausePlay = $(
                                    "." + n + "pauseplay a",
                                    a.controlsContainer
                              )))
                            : (a.append(e),
                              (a.pausePlay = $("." + n + "pauseplay a", a))),
                            m.pausePlay.update(
                                a.vars.slideshow ? n + "pause" : n + "play"
                            ),
                            a.pausePlay.bind(r, function(e) {
                                e.preventDefault(),
                                    ("" === o || o === e.type) &&
                                        ($(this).hasClass(n + "pause")
                                            ? ((a.manualPause = !0),
                                              (a.manualPlay = !1),
                                              a.pause())
                                            : ((a.manualPause = !1),
                                              (a.manualPlay = !0),
                                              a.play())),
                                    "" === o && (o = e.type),
                                    m.setToClearWatchedEvent();
                            });
                    },
                    update: function(e) {
                        "play" === e
                            ? a.pausePlay
                                    .removeClass(n + "pause")
                                    .addClass(n + "play")
                                    .html(a.vars.playText)
                            : a.pausePlay
                                    .removeClass(n + "play")
                                    .addClass(n + "pause")
                                    .html(a.vars.pauseText);
                    }
                },
                touch: function() {
                    function t(t) {
                        t.stopPropagation(),
                            a.animating
                                ? t.preventDefault()
                                : (a.pause(),
                                  e._gesture.addPointer(t.pointerId),
                                  (w = 0),
                                  (p = c ? a.h : a.w),
                                  (f = Number(new Date())),
                                  (l =
                                        u && d && a.animatingTo === a.last
                                            ? 0
                                            : u && d
                                            ? a.limit -
                                              (a.itemW + a.vars.itemMargin) *
                                                    a.move *
                                                    a.animatingTo
                                            : u && a.currentSlide === a.last
                                            ? a.limit
                                            : u
                                            ? (a.itemW + a.vars.itemMargin) *
                                              a.move *
                                              a.currentSlide
                                            : d
                                            ? (a.last -
                                                    a.currentSlide +
                                                    a.cloneOffset) *
                                              p
                                            : (a.currentSlide + a.cloneOffset) *
                                              p));
                    }
                    function n(t) {
                        t.stopPropagation();
                        var a = t.target._slider;
                        if (a) {
                            var n = -t.translationX,
                                i = -t.translationY;
                            return (
                                (w += c ? i : n),
                                (m = w),
                                (y = c
                                    ? Math.abs(w) < Math.abs(-n)
                                    : Math.abs(w) < Math.abs(-i)),
                                t.detail === t.MSGESTURE_FLAG_INERTIA
                                    ? void setImmediate(function() {
                                            e._gesture.stop();
                                      })
                                    : void (
                                            (!y ||
                                                Number(new Date()) - f > 500) &&
                                            (t.preventDefault(),
                                            !v &&
                                                a.transitions &&
                                                (a.vars.animationLoop ||
                                                    (m =
                                                        w /
                                                        ((0 ===
                                                            a.currentSlide &&
                                                            0 > w) ||
                                                        (a.currentSlide ===
                                                            a.last &&
                                                            w > 0)
                                                            ? Math.abs(w) / p +
                                                              2
                                                            : 1)),
                                                a.setProps(l + m, "setTouch")))
                                      )
                            );
                        }
                    }
                    function s(e) {
                        e.stopPropagation();
                        var t = e.target._slider;
                        if (t) {
                            if (
                                t.animatingTo === t.currentSlide &&
                                !y &&
                                null !== m
                            ) {
                                var a = d ? -m : m,
                                    n = t.getTarget(a > 0 ? "next" : "prev");
                                t.canAdvance(n) &&
                                ((Number(new Date()) - f < 550 &&
                                    Math.abs(a) > 50) ||
                                    Math.abs(a) > p / 2)
                                    ? t.flexAnimate(n, t.vars.pauseOnAction)
                                    : v ||
                                      t.flexAnimate(
                                            t.currentSlide,
                                            t.vars.pauseOnAction,
                                            !0
                                      );
                            }
                            (r = null),
                                (o = null),
                                (m = null),
                                (l = null),
                                (w = 0);
                        }
                    }
                    var r,
                        o,
                        l,
                        p,
                        m,
                        f,
                        g,
                        h,
                        S,
                        y = !1,
                        x = 0,
                        b = 0,
                        w = 0;
                    i
                        ? ((e.style.msTouchAction = "none"),
                          (e._gesture = new MSGesture()),
                          (e._gesture.target = e),
                          e.addEventListener("MSPointerDown", t, !1),
                          (e._slider = a),
                          e.addEventListener("MSGestureChange", n, !1),
                          e.addEventListener("MSGestureEnd", s, !1))
                        : ((g = function(t) {
                                a.animating
                                    ? t.preventDefault()
                                    : (window.navigator.msPointerEnabled ||
                                            1 === t.touches.length) &&
                                      (a.pause(),
                                      (p = c ? a.h : a.w),
                                      (f = Number(new Date())),
                                      (x = t.touches[0].pageX),
                                      (b = t.touches[0].pageY),
                                      (l =
                                            u && d && a.animatingTo === a.last
                                                ? 0
                                                : u && d
                                                ? a.limit -
                                                  (a.itemW +
                                                        a.vars.itemMargin) *
                                                        a.move *
                                                        a.animatingTo
                                                : u && a.currentSlide === a.last
                                                ? a.limit
                                                : u
                                                ? (a.itemW +
                                                        a.vars.itemMargin) *
                                                  a.move *
                                                  a.currentSlide
                                                : d
                                                ? (a.last -
                                                        a.currentSlide +
                                                        a.cloneOffset) *
                                                  p
                                                : (a.currentSlide +
                                                        a.cloneOffset) *
                                                  p),
                                      (r = c ? b : x),
                                      (o = c ? x : b),
                                      e.addEventListener("touchmove", h, !1),
                                      e.addEventListener("touchend", S, !1));
                          }),
                          (h = function(e) {
                                (x = e.touches[0].pageX),
                                    (b = e.touches[0].pageY),
                                    (m = c ? r - b : r - x),
                                    (y = c
                                        ? Math.abs(m) < Math.abs(x - o)
                                        : Math.abs(m) < Math.abs(b - o));
                                var t = 500;
                                (!y || Number(new Date()) - f > t) &&
                                    (e.preventDefault(),
                                    !v &&
                                        a.transitions &&
                                        (a.vars.animationLoop ||
                                            (m /=
                                                (0 === a.currentSlide &&
                                                    0 > m) ||
                                                (a.currentSlide === a.last &&
                                                    m > 0)
                                                    ? Math.abs(m) / p + 2
                                                    : 1),
                                        a.setProps(l + m, "setTouch")));
                          }),
                          (S = function(t) {
                                if (
                                    (e.removeEventListener("touchmove", h, !1),
                                    a.animatingTo === a.currentSlide &&
                                        !y &&
                                        null !== m)
                                ) {
                                    var n = d ? -m : m,
                                        i = a.getTarget(
                                            n > 0 ? "next" : "prev"
                                        );
                                    a.canAdvance(i) &&
                                    ((Number(new Date()) - f < 550 &&
                                        Math.abs(n) > 50) ||
                                        Math.abs(n) > p / 2)
                                        ? a.flexAnimate(i, a.vars.pauseOnAction)
                                        : v ||
                                          a.flexAnimate(
                                                a.currentSlide,
                                                a.vars.pauseOnAction,
                                                !0
                                          );
                                }
                                e.removeEventListener("touchend", S, !1),
                                    (r = null),
                                    (o = null),
                                    (m = null),
                                    (l = null);
                          }),
                          e.addEventListener("touchstart", g, !1));
                },
                resize: function() {
                    !a.animating &&
                        a.is(":visible") &&
                        (u || a.doMath(),
                        v
                            ? m.smoothHeight()
                            : u
                            ? (a.slides.width(a.computedW),
                              a.update(a.pagingCount),
                              a.setProps())
                            : c
                            ? (a.viewport.height(a.h),
                              a.setProps(a.h, "setTotal"))
                            : (a.vars.smoothHeight && m.smoothHeight(),
                              a.newSlides.width(a.computedW),
                              a.setProps(a.computedW, "setTotal")));
                },
                smoothHeight: function(e) {
                    if (!c || v) {
                        var t = v ? a : a.viewport;
                        e
                            ? t.animate(
                                    {
                                        height: a.slides
                                            .eq(a.animatingTo)
                                            .height()
                                    },
                                    e
                              )
                            : t.height(a.slides.eq(a.animatingTo).height());
                    }
                },
                sync: function(e) {
                    var t = $(a.vars.sync).data("flexslider"),
                        n = a.animatingTo;
                    switch (e) {
                        case "animate":
                            t.flexAnimate(n, a.vars.pauseOnAction, !1, !0);
                            break;
                        case "play":
                            t.playing || t.asNav || t.play();
                            break;
                        case "pause":
                            t.pause();
                    }
                },
                uniqueID: function(e) {
                    return (
                        e
                            .filter("[id]")
                            .add(e.find("[id]"))
                            .each(function() {
                                var e = $(this);
                                e.attr("id", e.attr("id") + "_clone");
                            }),
                        e
                    );
                },
                pauseInvisible: {
                    visProp: null,
                    init: function() {
                        var e = m.pauseInvisible.getHiddenProp();
                        if (e) {
                            var t =
                                e.replace(/[H|h]idden/, "") +
                                "visibilitychange";
                            document.addEventListener(t, function() {
                                m.pauseInvisible.isHidden()
                                    ? a.startTimeout
                                        ? clearTimeout(a.startTimeout)
                                        : a.pause()
                                    : a.started
                                    ? a.play()
                                    : a.vars.initDelay > 0
                                    ? setTimeout(a.play, a.vars.initDelay)
                                    : a.play();
                            });
                        }
                    },
                    isHidden: function() {
                        var e = m.pauseInvisible.getHiddenProp();
                        return e ? document[e] : !1;
                    },
                    getHiddenProp: function() {
                        var e = ["webkit", "moz", "ms", "o"];
                        if ("hidden" in document) return "hidden";
                        for (var t = 0; t < e.length; t++)
                            if (e[t] + "Hidden" in document)
                                return e[t] + "Hidden";
                        return null;
                    }
                },
                setToClearWatchedEvent: function() {
                    clearTimeout(l),
                        (l = setTimeout(function() {
                            o = "";
                        }, 3e3));
                }
            }),
            (a.flexAnimate = function(e, t, i, r, o) {
                if (
                    (a.vars.animationLoop ||
                        e === a.currentSlide ||
                        (a.direction = e > a.currentSlide ? "next" : "prev"),
                    p &&
                        1 === a.pagingCount &&
                        (a.direction = a.currentItem < e ? "next" : "prev"),
                    !a.animating &&
                        (a.canAdvance(e, o) || i) &&
                        a.is(":visible"))
                ) {
                    if (p && r) {
                        var l = $(a.vars.asNavFor).data("flexslider");
                        if (
                            ((a.atEnd = 0 === e || e === a.count - 1),
                            l.flexAnimate(e, !0, !1, !0, o),
                            (a.direction = a.currentItem < e ? "next" : "prev"),
                            (l.direction = a.direction),
                            Math.ceil((e + 1) / a.visible) - 1 ===
                                a.currentSlide || 0 === e)
                        )
                            return (
                                (a.currentItem = e),
                                a.slides
                                    .removeClass(n + "active-slide")
                                    .eq(e)
                                    .addClass(n + "active-slide"),
                                !1
                            );
                        (a.currentItem = e),
                            a.slides
                                .removeClass(n + "active-slide")
                                .eq(e)
                                .addClass(n + "active-slide"),
                            (e = Math.floor(e / a.visible));
                    }
                    if (
                        ((a.animating = !0),
                        (a.animatingTo = e),
                        t && a.pause(),
                        a.vars.before(a),
                        a.syncExists && !o && m.sync("animate"),
                        a.vars.controlNav && m.controlNav.active(),
                        u ||
                            a.slides
                                .removeClass(n + "active-slide")
                                .eq(e)
                                .addClass(n + "active-slide"),
                        (a.atEnd = 0 === e || e === a.last),
                        a.vars.directionNav && m.directionNav.update(),
                        e === a.last &&
                            (a.vars.end(a), a.vars.animationLoop || a.pause()),
                        v)
                    )
                        s
                            ? (a.slides
                                    .eq(a.currentSlide)
                                    .css({ opacity: 0, zIndex: 1 }),
                              a.slides.eq(e).css({ opacity: 1, zIndex: 2 }),
                              a.wrapup(f))
                            : (a.slides
                                    .eq(a.currentSlide)
                                    .css({ zIndex: 1 })
                                    .animate(
                                        { opacity: 0 },
                                        a.vars.animationSpeed,
                                        a.vars.easing
                                    ),
                              a.slides
                                    .eq(e)
                                    .css({ zIndex: 2 })
                                    .animate(
                                        { opacity: 1 },
                                        a.vars.animationSpeed,
                                        a.vars.easing,
                                        a.wrapup
                                    ));
                    else {
                        var f = c
                                ? a.slides.filter(":first").height()
                                : a.computedW,
                            g,
                            h,
                            S;
                        u
                            ? ((g = a.vars.itemMargin),
                              (S = (a.itemW + g) * a.move * a.animatingTo),
                              (h =
                                    S > a.limit && 1 !== a.visible
                                        ? a.limit
                                        : S))
                            : (h =
                                    0 === a.currentSlide &&
                                    e === a.count - 1 &&
                                    a.vars.animationLoop &&
                                    "next" !== a.direction
                                        ? d
                                            ? (a.count + a.cloneOffset) * f
                                            : 0
                                        : a.currentSlide === a.last &&
                                          0 === e &&
                                          a.vars.animationLoop &&
                                          "prev" !== a.direction
                                        ? d
                                            ? 0
                                            : (a.count + 1) * f
                                        : d
                                        ? (a.count - 1 - e + a.cloneOffset) * f
                                        : (e + a.cloneOffset) * f),
                            a.setProps(h, "", a.vars.animationSpeed),
                            a.transitions
                                ? ((a.vars.animationLoop && a.atEnd) ||
                                        ((a.animating = !1),
                                        (a.currentSlide = a.animatingTo)),
                                  a.container.unbind(
                                        "webkitTransitionEnd transitionend"
                                  ),
                                  a.container.bind(
                                        "webkitTransitionEnd transitionend",
                                        function() {
                                            clearTimeout(a.ensureAnimationEnd),
                                                a.wrapup(f);
                                        }
                                  ),
                                  clearTimeout(a.ensureAnimationEnd),
                                  (a.ensureAnimationEnd = setTimeout(
                                        function() {
                                            a.wrapup(f);
                                        },
                                        a.vars.animationSpeed + 100
                                  )))
                                : a.container.animate(
                                        a.args,
                                        a.vars.animationSpeed,
                                        a.vars.easing,
                                        function() {
                                            a.wrapup(f);
                                        }
                                  );
                    }
                    a.vars.smoothHeight &&
                        m.smoothHeight(a.vars.animationSpeed);
                }
            }),
            (a.wrapup = function(e) {
                v ||
                    u ||
                    (0 === a.currentSlide &&
                    a.animatingTo === a.last &&
                    a.vars.animationLoop
                        ? a.setProps(e, "jumpEnd")
                        : a.currentSlide === a.last &&
                          0 === a.animatingTo &&
                          a.vars.animationLoop &&
                          a.setProps(e, "jumpStart")),
                    (a.animating = !1),
                    (a.currentSlide = a.animatingTo),
                    a.vars.after(a);
            }),
            (a.animateSlides = function() {
                !a.animating && f && a.flexAnimate(a.getTarget("next"));
            }),
            (a.pause = function() {
                clearInterval(a.animatedSlides),
                    (a.animatedSlides = null),
                    (a.playing = !1),
                    a.vars.pausePlay && m.pausePlay.update("play"),
                    a.syncExists && m.sync("pause");
            }),
            (a.play = function() {
                a.playing && clearInterval(a.animatedSlides),
                    (a.animatedSlides =
                        a.animatedSlides ||
                        setInterval(a.animateSlides, a.vars.slideshowSpeed)),
                    (a.started = a.playing = !0),
                    a.vars.pausePlay && m.pausePlay.update("pause"),
                    a.syncExists && m.sync("play");
            }),
            (a.stop = function() {
                a.pause(), (a.stopped = !0);
            }),
            (a.canAdvance = function(e, t) {
                var n = p ? a.pagingCount - 1 : a.last;
                return t
                    ? !0
                    : p &&
                      a.currentItem === a.count - 1 &&
                      0 === e &&
                      "prev" === a.direction
                    ? !0
                    : p &&
                      0 === a.currentItem &&
                      e === a.pagingCount - 1 &&
                      "next" !== a.direction
                    ? !1
                    : e !== a.currentSlide || p
                    ? a.vars.animationLoop
                        ? !0
                        : a.atEnd &&
                          0 === a.currentSlide &&
                          e === n &&
                          "next" !== a.direction
                        ? !1
                        : a.atEnd &&
                          a.currentSlide === n &&
                          0 === e &&
                          "next" === a.direction
                        ? !1
                        : !0
                    : !1;
            }),
            (a.getTarget = function(e) {
                return (
                    (a.direction = e),
                    "next" === e
                        ? a.currentSlide === a.last
                            ? 0
                            : a.currentSlide + 1
                        : 0 === a.currentSlide
                        ? a.last
                        : a.currentSlide - 1
                );
            }),
            (a.setProps = function(e, t, n) {
                var i = (function() {
                    var n = e
                            ? e
                            : (a.itemW + a.vars.itemMargin) *
                              a.move *
                              a.animatingTo,
                        i = (function() {
                            if (u)
                                return "setTouch" === t
                                    ? e
                                    : d && a.animatingTo === a.last
                                    ? 0
                                    : d
                                    ? a.limit -
                                      (a.itemW + a.vars.itemMargin) *
                                            a.move *
                                            a.animatingTo
                                    : a.animatingTo === a.last
                                    ? a.limit
                                    : n;
                            switch (t) {
                                case "setTotal":
                                    return d
                                        ? (a.count -
                                                1 -
                                                a.currentSlide +
                                                a.cloneOffset) *
                                                e
                                        : (a.currentSlide + a.cloneOffset) * e;
                                case "setTouch":
                                    return d ? e : e;
                                case "jumpEnd":
                                    return d ? e : a.count * e;
                                case "jumpStart":
                                    return d ? a.count * e : e;
                                default:
                                    return e;
                            }
                        })();
                    return -1 * i + "px";
                })();
                a.transitions &&
                    ((i = c
                        ? "translate3d(0," + i + ",0)"
                        : "translate3d(" + i + ",0,0)"),
                    (n = void 0 !== n ? n / 1e3 + "s" : "0s"),
                    a.container.css("-" + a.pfx + "-transition-duration", n),
                    a.container.css("transition-duration", n)),
                    (a.args[a.prop] = i),
                    (a.transitions || void 0 === n) && a.container.css(a.args),
                    a.container.css("transform", i);
            }),
            (a.setup = function(e) {
                if (v)
                    a.slides.css({
                        width: "100%",
                        float: "left",
                        marginRight: "-100%",
                        position: "relative"
                    }),
                        "init" === e &&
                            (s
                                ? a.slides
                                        .css({
                                            opacity: 0,
                                            display: "block",
                                            webkitTransition:
                                                "opacity " +
                                                a.vars.animationSpeed / 1e3 +
                                                "s ease",
                                            zIndex: 1
                                        })
                                        .eq(a.currentSlide)
                                        .css({ opacity: 1, zIndex: 2 })
                                : 0 == a.vars.fadeFirstSlide
                                ? a.slides
                                        .css({
                                            opacity: 0,
                                            display: "block",
                                            zIndex: 1
                                        })
                                        .eq(a.currentSlide)
                                        .css({ zIndex: 2 })
                                        .css({ opacity: 1 })
                                : a.slides
                                        .css({
                                            opacity: 0,
                                            display: "block",
                                            zIndex: 1
                                        })
                                        .eq(a.currentSlide)
                                        .css({ zIndex: 2 })
                                        .animate(
                                            { opacity: 1 },
                                            a.vars.animationSpeed,
                                            a.vars.easing
                                        )),
                        a.vars.smoothHeight && m.smoothHeight();
                else {
                    var t, i;
                    "init" === e &&
                        ((a.viewport = $(
                            '<div class="' + n + 'viewport"></div>'
                        )
                            .css({ overflow: "hidden", position: "relative" })
                            .appendTo(a)
                            .append(a.container)),
                        (a.cloneCount = 0),
                        (a.cloneOffset = 0),
                        d &&
                            ((i = $.makeArray(a.slides).reverse()),
                            (a.slides = $(i)),
                            a.container.empty().append(a.slides))),
                        a.vars.animationLoop &&
                            !u &&
                            ((a.cloneCount = 2),
                            (a.cloneOffset = 1),
                            "init" !== e && a.container.find(".clone").remove(),
                            a.container
                                .append(
                                    m
                                        .uniqueID(
                                            a.slides
                                                .first()
                                                .clone()
                                                .addClass("clone")
                                        )
                                        .attr("aria-hidden", "true")
                                )
                                .prepend(
                                    m
                                        .uniqueID(
                                            a.slides
                                                .last()
                                                .clone()
                                                .addClass("clone")
                                        )
                                        .attr("aria-hidden", "true")
                                )),
                        (a.newSlides = $(a.vars.selector, a)),
                        (t = d
                            ? a.count - 1 - a.currentSlide + a.cloneOffset
                            : a.currentSlide + a.cloneOffset),
                        c && !u
                            ? (a.container
                                    .height(
                                        200 * (a.count + a.cloneCount) + "%"
                                    )
                                    .css("position", "absolute")
                                    .width("100%"),
                              setTimeout(
                                    function() {
                                        a.newSlides.css({ display: "block" }),
                                            a.doMath(),
                                            a.viewport.height(a.h),
                                            a.setProps(t * a.h, "init");
                                    },
                                    "init" === e ? 100 : 0
                              ))
                            : (a.container.width(
                                    200 * (a.count + a.cloneCount) + "%"
                              ),
                              a.setProps(t * a.computedW, "init"),
                              setTimeout(
                                    function() {
                                        a.doMath(),
                                            a.newSlides.css({
                                                width: a.computedW,
                                                float: "left",
                                                display: "block"
                                            }),
                                            a.vars.smoothHeight &&
                                                m.smoothHeight();
                                    },
                                    "init" === e ? 100 : 0
                              ));
                }
                u ||
                    a.slides
                        .removeClass(n + "active-slide")
                        .eq(a.currentSlide)
                        .addClass(n + "active-slide"),
                    a.vars.init(a);
            }),
            (a.doMath = function() {
                var e = a.slides.first(),
                    t = a.vars.itemMargin,
                    n = a.vars.minItems,
                    i = a.vars.maxItems;
                (a.w = void 0 === a.viewport ? a.width() : a.viewport.width()),
                    (a.h = e.height()),
                    (a.boxPadding = e.outerWidth() - e.width()),
                    u
                        ? ((a.itemT = a.vars.itemWidth + t),
                          (a.minW = n ? n * a.itemT : a.w),
                          (a.maxW = i ? i * a.itemT - t : a.w),
                          (a.itemW =
                                a.minW > a.w
                                    ? (a.w - t * (n - 1)) / n
                                    : a.maxW < a.w
                                    ? (a.w - t * (i - 1)) / i
                                    : a.vars.itemWidth > a.w
                                    ? a.w
                                    : a.vars.itemWidth),
                          (a.visible = Math.floor(a.w / a.itemW)),
                          (a.move =
                                a.vars.move > 0 && a.vars.move < a.visible
                                    ? a.vars.move
                                    : a.visible),
                          (a.pagingCount = Math.ceil(
                                (a.count - a.visible) / a.move + 1
                          )),
                          (a.last = a.pagingCount - 1),
                          (a.limit =
                                1 === a.pagingCount
                                    ? 0
                                    : a.vars.itemWidth > a.w
                                    ? a.itemW * (a.count - 1) +
                                      t * (a.count - 1)
                                    : (a.itemW + t) * a.count - a.w - t))
                        : ((a.itemW = a.w),
                          (a.pagingCount = a.count),
                          (a.last = a.count - 1)),
                    (a.computedW = a.itemW - a.boxPadding);
            }),
            (a.update = function(e, t) {
                a.doMath(),
                    u ||
                        (e < a.currentSlide
                            ? (a.currentSlide += 1)
                            : e <= a.currentSlide &&
                              0 !== e &&
                              (a.currentSlide -= 1),
                        (a.animatingTo = a.currentSlide)),
                    a.vars.controlNav &&
                        !a.manualControls &&
                        (("add" === t && !u) ||
                        a.pagingCount > a.controlNav.length
                            ? m.controlNav.update("add")
                            : (("remove" === t && !u) ||
                                    a.pagingCount < a.controlNav.length) &&
                              (u &&
                                    a.currentSlide > a.last &&
                                    ((a.currentSlide -= 1),
                                    (a.animatingTo -= 1)),
                              m.controlNav.update("remove", a.last))),
                    a.vars.directionNav && m.directionNav.update();
            }),
            (a.addSlide = function(e, t) {
                var n = $(e);
                (a.count += 1),
                    (a.last = a.count - 1),
                    c && d
                        ? void 0 !== t
                            ? a.slides.eq(a.count - t).after(n)
                            : a.container.prepend(n)
                        : void 0 !== t
                        ? a.slides.eq(t).before(n)
                        : a.container.append(n),
                    a.update(t, "add"),
                    (a.slides = $(a.vars.selector + ":not(.clone)", a)),
                    a.setup(),
                    a.vars.added(a);
            }),
            (a.removeSlide = function(e) {
                var t = isNaN(e) ? a.slides.index($(e)) : e;
                (a.count -= 1),
                    (a.last = a.count - 1),
                    isNaN(e)
                        ? $(e, a.slides).remove()
                        : c && d
                        ? a.slides.eq(a.last).remove()
                        : a.slides.eq(e).remove(),
                    a.doMath(),
                    a.update(t, "remove"),
                    (a.slides = $(a.vars.selector + ":not(.clone)", a)),
                    a.setup(),
                    a.vars.removed(a);
            }),
            m.init();
    }),
        $(window)
            .blur(function(e) {
                focused = !1;
            })
            .focus(function(e) {
                focused = !0;
            }),
        ($.flexslider.defaults = {
            namespace: "flex-",
            selector: ".slides > li",
            animation: "fade",
            easing: "swing",
            direction: "horizontal",
            reverse: !1,
            animationLoop: !0,
            smoothHeight: !1,
            startAt: 0,
            slideshow: !0,
            slideshowSpeed: 7e3,
            animationSpeed: 600,
            initDelay: 0,
            randomize: !1,
            fadeFirstSlide: !0,
            thumbCaptions: !1,
            pauseOnAction: !0,
            pauseOnHover: !1,
            pauseInvisible: !0,
            useCSS: !0,
            touch: !0,
            video: !1,
            controlNav: !0,
            directionNav: !0,
            prevText: "Previous",
            nextText: "Next",
            keyboard: !0,
            multipleKeyboard: !1,
            mousewheel: !1,
            pausePlay: !1,
            pauseText: "Pause",
            playText: "Play",
            controlsContainer: "",
            manualControls: "",
            customDirectionNav: "",
            sync: "",
            asNavFor: "",
            itemWidth: 0,
            itemMargin: 0,
            minItems: 1,
            maxItems: 0,
            move: 0,
            allowOneSlide: !0,
            start: function() {},
            before: function() {},
            after: function() {},
            end: function() {},
            added: function() {},
            removed: function() {},
            init: function() {}
        }),
        ($.fn.flexslider = function(e) {
            if ((void 0 === e && (e = {}), "object" == typeof e))
                return this.each(function() {
                    var t = $(this),
                        a = e.selector ? e.selector : ".slides > li",
                        n = t.find(a);
                    (1 === n.length && e.allowOneSlide === !0) || 0 === n.length
                        ? (n.fadeIn(400), e.start && e.start(t))
                        : void 0 === t.data("flexslider") &&
                          new $.flexslider(this, e);
                });
            var t = $(this).data("flexslider");
            switch (e) {
                case "play":
                    t.play();
                    break;
                case "pause":
                    t.pause();
                    break;
                case "stop":
                    t.stop();
                    break;
                case "next":
                    t.flexAnimate(t.getTarget("next"), !0);
                    break;
                case "prev":
                case "previous":
                    t.flexAnimate(t.getTarget("prev"), !0);
                    break;
                default:
                    "number" == typeof e && t.flexAnimate(e, !0);
            }
        });
})(jQuery);