Advertisement
Guest User

FlexSlider

a guest
Oct 21st, 2013
801
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * jQuery FlexSlider v2.2.0
  3.  * Copyright 2012 WooThemes
  4.  * Contributing Author: Tyler Smith
  5.  */
  6. (function(e) {
  7.     e.flexslider = function(t, n) {
  8.         var r = e(t);
  9.         r.vars = e.extend({}, e.flexslider.defaults, n);
  10.         var i = r.vars.namespace, s = window.navigator && window.navigator.msPointerEnabled && window.MSGesture, o = ("ontouchstart"in window || s || window.DocumentTouch && document instanceof DocumentTouch) && r.vars.touch, u = "click touchend MSPointerUp", a = "", f, l = r.vars.direction === "vertical", c = r.vars.reverse, h = r.vars.itemWidth > 0, p = r.vars.animation === "fade", d = r.vars.asNavFor !== "", v = {}, m = !0;
  11.         e.data(t, "flexslider", r);
  12.         v = {init: function() {
  13.                 r.animating = !1;
  14.                 r.currentSlide = parseInt(r.vars.startAt ? r.vars.startAt : 0);
  15.                 isNaN(r.currentSlide) && (r.currentSlide = 0);
  16.                 r.animatingTo = r.currentSlide;
  17.                 r.atEnd = r.currentSlide === 0 || r.currentSlide === r.last;
  18.                 r.containerSelector = r.vars.selector.substr(0, r.vars.selector.search(" "));
  19.                 r.slides = e(r.vars.selector, r);
  20.                 r.container = e(r.containerSelector, r);
  21.                 r.count = r.slides.length;
  22.                 r.syncExists = e(r.vars.sync).length > 0;
  23.                 r.vars.animation === "slide" && (r.vars.animation = "swing");
  24.                 r.prop = l ? "top" : "marginLeft";
  25.                 r.args = {};
  26.                 r.manualPause = !1;
  27.                 r.stopped = !1;
  28.                 r.started = !1;
  29.                 r.startTimeout = null;
  30.                 r.transitions = !r.vars.video && !p && r.vars.useCSS && function() {
  31.                     var e = document.createElement("div"), t = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
  32.                     for (var n in t)
  33.                         if (e.style[t[n]] !== undefined) {
  34.                             r.pfx = t[n].replace("Perspective", "").toLowerCase();
  35.                             r.prop = "-" + r.pfx + "-transform";
  36.                             return!0
  37.                         }
  38.                     return!1
  39.                 }();
  40.                 r.vars.controlsContainer !== "" && (r.controlsContainer = e(r.vars.controlsContainer).length > 0 && e(r.vars.controlsContainer));
  41.                 r.vars.manualControls !== "" && (r.manualControls = e(r.vars.manualControls).length > 0 && e(r.vars.manualControls));
  42.                 if (r.vars.randomize) {
  43.                     r.slides.sort(function() {
  44.                         return Math.round(Math.random()) - .5
  45.                     });
  46.                     r.container.empty().append(r.slides)
  47.                 }
  48.                 r.doMath();
  49.                 r.setup("init");
  50.                 r.vars.controlNav && v.controlNav.setup();
  51.                 r.vars.directionNav && v.directionNav.setup();
  52.                 r.vars.keyboard && (e(r.containerSelector).length === 1 || r.vars.multipleKeyboard) && e(document).bind("keyup", function(e) {
  53.                     var t = e.keyCode;
  54.                     if (!r.animating && (t === 39 || t === 37)) {
  55.                         var n = t === 39 ? r.getTarget("next") : t === 37 ? r.getTarget("prev") : !1;
  56.                         r.flexAnimate(n, r.vars.pauseOnAction)
  57.                     }
  58.                 });
  59.                 r.vars.mousewheel && r.bind("mousewheel", function(e, t, n, i) {
  60.                     e.preventDefault();
  61.                     var s = t < 0 ? r.getTarget("next") : r.getTarget("prev");
  62.                     r.flexAnimate(s, r.vars.pauseOnAction)
  63.                 });
  64.                 r.vars.pausePlay && v.pausePlay.setup();
  65.                 r.vars.slideshow && r.vars.pauseInvisible && v.pauseInvisible.init();
  66.                 if (r.vars.slideshow) {
  67.                     r.vars.pauseOnHover && r.hover(function() {
  68.                         !r.manualPlay && !r.manualPause && r.pause()
  69.                     }, function() {
  70.                         !r.manualPause && !r.manualPlay && !r.stopped && r.play()
  71.                     });
  72.                     if (!r.vars.pauseInvisible || !v.pauseInvisible.isHidden())
  73.                         r.vars.initDelay > 0 ? r.startTimeout = setTimeout(r.play, r.vars.initDelay) : r.play()
  74.                 }
  75.                 d && v.asNav.setup();
  76.                 o && r.vars.touch && v.touch();
  77.                 (!p || p && r.vars.smoothHeight) && e(window).bind("resize orientationchange focus", v.resize);
  78.                 r.find("img").attr("draggable", "false");
  79.                 setTimeout(function() {
  80.                     r.vars.start(r)
  81.                 }, 200)
  82.             }, asNav: {setup: function() {
  83.                     r.asNav = !0;
  84.                     r.animatingTo = Math.floor(r.currentSlide / r.move);
  85.                     r.currentItem = r.currentSlide;
  86.                     r.slides.removeClass(i + "active-slide").eq(r.currentItem).addClass(i + "active-slide");
  87.                     if (!s)
  88.                         r.slides.click(function(t) {
  89.                             t.preventDefault();
  90.                             var n = e(this), s = n.index(), o = n.offset().left - e(r).scrollLeft();
  91.                             if (o <= 0 && n.hasClass(i + "active-slide"))
  92.                                 r.flexAnimate(r.getTarget("prev"), !0);
  93.                             else if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass(i + "active-slide")) {
  94.                                 r.direction = r.currentItem < s ? "next" : "prev";
  95.                                 r.flexAnimate(s, r.vars.pauseOnAction, !1, !0, !0)
  96.                             }
  97.                         });
  98.                     else {
  99.                         t._slider = r;
  100.                         r.slides.each(function() {
  101.                             var t = this;
  102.                             t._gesture = new MSGesture;
  103.                             t._gesture.target = t;
  104.                             t.addEventListener("MSPointerDown", function(e) {
  105.                                 e.preventDefault();
  106.                                 e.currentTarget._gesture && e.currentTarget._gesture.addPointer(e.pointerId)
  107.                             }, !1);
  108.                             t.addEventListener("MSGestureTap", function(t) {
  109.                                 t.preventDefault();
  110.                                 var n = e(this), i = n.index();
  111.                                 if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass("active")) {
  112.                                     r.direction = r.currentItem < i ? "next" : "prev";
  113.                                     r.flexAnimate(i, r.vars.pauseOnAction, !1, !0, !0)
  114.                                 }
  115.                             })
  116.                         })
  117.                     }
  118.                 }}, controlNav: {setup: function() {
  119.                     r.manualControls ? v.controlNav.setupManual() : v.controlNav.setupPaging()
  120.                 }, setupPaging: function() {
  121.                     var t = r.vars.controlNav === "thumbnails" ? "control-thumbs" : "control-paging", n = 1, s, o;
  122.                     r.controlNavScaffold = e('<ol class="' + i + "control-nav " + i + t + '"></ol>');
  123.                     if (r.pagingCount > 1)
  124.                         for (var f = 0; f < r.pagingCount; f++) {
  125.                             o = r.slides.eq(f);
  126.                             s = r.vars.controlNav === "thumbnails" ? '<img src="' + o.attr("data-thumb") + '"/>' : "<a>" + n + "</a>";
  127.                             if ("thumbnails" === r.vars.controlNav && !0 === r.vars.thumbCaptions) {
  128.                                 var l = o.attr("data-thumbcaption");
  129.                                 "" != l && undefined != l && (s += '<span class="' + i + 'caption">' + l + "</span>")
  130.                             }
  131.                             r.controlNavScaffold.append("<li>" + s + "</li>");
  132.                             n++
  133.                         }
  134.                     r.controlsContainer ? e(r.controlsContainer).append(r.controlNavScaffold) : r.append(r.controlNavScaffold);
  135.                     v.controlNav.set();
  136.                     v.controlNav.active();
  137.                     r.controlNavScaffold.delegate("a, img", u, function(t) {
  138.                         t.preventDefault();
  139.                         if (a === "" || a === t.type) {
  140.                             var n = e(this), s = r.controlNav.index(n);
  141.                             if (!n.hasClass(i + "active")) {
  142.                                 r.direction = s > r.currentSlide ? "next" : "prev";
  143.                                 r.flexAnimate(s, r.vars.pauseOnAction)
  144.                             }
  145.                         }
  146.                         a === "" && (a = t.type);
  147.                         v.setToClearWatchedEvent()
  148.                     })
  149.                 }, setupManual: function() {
  150.                     r.controlNav = r.manualControls;
  151.                     v.controlNav.active();
  152.                     r.controlNav.bind(u, function(t) {
  153.                         t.preventDefault();
  154.                         if (a === "" || a === t.type) {
  155.                             var n = e(this), s = r.controlNav.index(n);
  156.                             if (!n.hasClass(i + "active")) {
  157.                                 s > r.currentSlide ? r.direction = "next" : r.direction = "prev";
  158.                                 r.flexAnimate(s, r.vars.pauseOnAction)
  159.                             }
  160.                         }
  161.                         a === "" && (a = t.type);
  162.                         v.setToClearWatchedEvent()
  163.                     })
  164.                 }, set: function() {
  165.                     var t = r.vars.controlNav === "thumbnails" ? "img" : "a";
  166.                     r.controlNav = e("." + i + "control-nav li " + t, r.controlsContainer ? r.controlsContainer : r)
  167.                 }, active: function() {
  168.                     r.controlNav.removeClass(i + "active").eq(r.animatingTo).addClass(i + "active")
  169.                 }, update: function(t, n) {
  170.                     r.pagingCount > 1 && t === "add" ? r.controlNavScaffold.append(e("<li><a>" + r.count + "</a></li>")) : r.pagingCount === 1 ? r.controlNavScaffold.find("li").remove() : r.controlNav.eq(n).closest("li").remove();
  171.                     v.controlNav.set();
  172.                     r.pagingCount > 1 && r.pagingCount !== r.controlNav.length ? r.update(n, t) : v.controlNav.active()
  173.                 }}, directionNav: {setup: function() {
  174.                     var t = e('<ul class="' + i + 'direction-nav"><li><a class="' + i + 'prev" href="#">' + r.vars.prevText + '</a></li><li><a class="' + i + 'next" href="#">' + r.vars.nextText + "</a></li></ul>");
  175.                     if (r.controlsContainer) {
  176.                         e(r.controlsContainer).append(t);
  177.                         r.directionNav = e("." + i + "direction-nav li a", r.controlsContainer)
  178.                     } else {
  179.                         r.append(t);
  180.                         r.directionNav = e("." + i + "direction-nav li a", r)
  181.                     }
  182.                     v.directionNav.update();
  183.                     r.directionNav.bind(u, function(t) {
  184.                         t.preventDefault();
  185.                         var n;
  186.                         if (a === "" || a === t.type) {
  187.                             n = e(this).hasClass(i + "next") ? r.getTarget("next") : r.getTarget("prev");
  188.                             r.flexAnimate(n, r.vars.pauseOnAction)
  189.                         }
  190.                         a === "" && (a = t.type);
  191.                         v.setToClearWatchedEvent()
  192.                     })
  193.                 }, update: function() {
  194.                     var e = i + "disabled";
  195.                     r.pagingCount === 1 ? r.directionNav.addClass(e).attr("tabindex", "-1") : r.vars.animationLoop ? r.directionNav.removeClass(e).removeAttr("tabindex") : r.animatingTo === 0 ? r.directionNav.removeClass(e).filter("." + i + "prev").addClass(e).attr("tabindex", "-1") : r.animatingTo === r.last ? r.directionNav.removeClass(e).filter("." + i + "next").addClass(e).attr("tabindex", "-1") : r.directionNav.removeClass(e).removeAttr("tabindex")
  196.                 }}, pausePlay: {setup: function() {
  197.                     var t = e('<div class="' + i + 'pauseplay"><a></a></div>');
  198.                     if (r.controlsContainer) {
  199.                         r.controlsContainer.append(t);
  200.                         r.pausePlay = e("." + i + "pauseplay a", r.controlsContainer)
  201.                     } else {
  202.                         r.append(t);
  203.                         r.pausePlay = e("." + i + "pauseplay a", r)
  204.                     }
  205.                     v.pausePlay.update(r.vars.slideshow ? i + "pause" : i + "play");
  206.                     r.pausePlay.bind(u, function(t) {
  207.                         t.preventDefault();
  208.                         if (a === "" || a === t.type)
  209.                             if (e(this).hasClass(i + "pause")) {
  210.                                 r.manualPause = !0;
  211.                                 r.manualPlay = !1;
  212.                                 r.pause()
  213.                             } else {
  214.                                 r.manualPause = !1;
  215.                                 r.manualPlay = !0;
  216.                                 r.play()
  217.                             }
  218.                         a === "" && (a = t.type);
  219.                         v.setToClearWatchedEvent()
  220.                     })
  221.                 }, update: function(e) {
  222.                     e === "play" ? r.pausePlay.removeClass(i + "pause").addClass(i + "play").html(r.vars.playText) : r.pausePlay.removeClass(i + "play").addClass(i + "pause").html(r.vars.pauseText)
  223.                 }}, touch: function() {
  224.                 var e, n, i, o, u, a, f = !1, d = 0, v = 0, m = 0, swiping = !1, scrollingNew = !1;
  225.                 if (!s) {
  226.                     t.addEventListener("touchstart", g, !1);
  227.                     // g = onTouchStart
  228.                     function g(se) {
  229.                         swiping = !1;
  230.                         scrollingNew = !1;
  231.                         if (r.animating)
  232.                             se.preventDefault();
  233.                         else if (window.navigator.msPointerEnabled || se.touches.length === 1) {
  234.                             r.pause();
  235.                             o = l ? r.h : r.w;
  236.                             a = Number(new Date);
  237.                            
  238.                             // localX
  239.                             d = se.touches[0].pageX;
  240.                             // localY
  241.                             v = se.touches[0].pageY;
  242.                            
  243.                             i = h && c && r.animatingTo === r.last ? 0 : h && c ? r.limit - (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo : h && r.currentSlide === r.last ? r.limit : h ? (r.itemW + r.vars.itemMargin) * r.move * r.currentSlide : c ? (r.last - r.currentSlide + r.cloneOffset) * o : (r.currentSlide + r.cloneOffset) * o;
  244.                            
  245.                             // startX
  246.                             e = l ? v : d;
  247.                             // startY
  248.                             n = l ? d : v;
  249.                             t.addEventListener("touchmove", y, !1);
  250.                             t.addEventListener("touchend", b, !1)
  251.                         }
  252.                     }
  253.                     // y = onTouchMove
  254.                     function y(t) {
  255.                         d = t.touches[0].pageX;
  256.                         v = t.touches[0].pageY;
  257.                         // dx
  258.                         u = l ? e - v : e - d;
  259.                         // scrolling
  260.                         f = l ? Math.abs(u) < Math.abs(d - n) : Math.abs(u) < Math.abs(v - n);
  261.                         f = swiping ? !1 : f;
  262.                         var s = 500;
  263.                         if ((!f || Number(new Date) - a > s) && !scrollingNew) {
  264.                             t.preventDefault();
  265.                             swiping = 1;
  266.                             if (!p && r.transitions) {
  267.                                 r.vars.animationLoop || (u /= r.currentSlide === 0 && u < 0 || r.currentSlide === r.last && u > 0 ? Math.abs(u) / o + 2 : 1);
  268.                                 r.setProps(i + u, "setTouch")
  269.                             }
  270.                         }
  271.                         scrollingNew = f ? 1 : scrollingNew;
  272.                     }
  273.                     // b = onTouchEnd
  274.                     function b(s) {
  275.                         t.removeEventListener("touchmove", y, !1);
  276.                         //if (r.animatingTo === r.currentSlide && !f && u !== null) {
  277.                         if (r.animatingTo === r.currentSlide && !f && u !== null) {
  278.                             var l = c ? -u : u, h = l > 0 ? r.getTarget("next") : r.getTarget("prev");
  279.                             r.canAdvance(h) && (Number(new Date) - a < 550 && Math.abs(l) > 50 || Math.abs(l) > o / 2) ? r.flexAnimate(h, r.vars.pauseOnAction) : p || r.flexAnimate(r.currentSlide, r.vars.pauseOnAction, !0)
  280.                         }
  281.                         if (f || scrollingNew) r.animating = !1;
  282.                         t.removeEventListener("touchend", b, !1);
  283.                         e = null;
  284.                         n = null;
  285.                         u = null;
  286.                         i = null
  287.                     }}
  288.                 else {
  289.                     t.style.msTouchAction = "none";
  290.                     t._gesture = new MSGesture;
  291.                     t._gesture.target = t;
  292.                     t.addEventListener("MSPointerDown", w, !1);
  293.                     t._slider = r;
  294.                     t.addEventListener("MSGestureChange", E, !1);
  295.                     t.addEventListener("MSGestureEnd", S, !1);
  296.                     function w(e) {
  297.                         e.stopPropagation();
  298.                         if (r.animating)
  299.                             e.preventDefault();
  300.                         else {
  301.                             r.pause();
  302.                             t._gesture.addPointer(e.pointerId);
  303.                             m = 0;
  304.                             o = l ? r.h : r.w;
  305.                             a = Number(new Date);
  306.                             i = h && c && r.animatingTo === r.last ? 0 : h && c ? r.limit - (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo : h && r.currentSlide === r.last ? r.limit : h ? (r.itemW + r.vars.itemMargin) * r.move * r.currentSlide : c ? (r.last - r.currentSlide + r.cloneOffset) * o : (r.currentSlide + r.cloneOffset) * o
  307.                         }
  308.                     }
  309.                     function E(e) {
  310.                         e.stopPropagation();
  311.                         var n = e.target._slider;
  312.                         if (!n)
  313.                             return;
  314.                         var r = -e.translationX, s = -e.translationY;
  315.                         m += l ? s : r;
  316.                         u = m;
  317.                         f = l ? Math.abs(m) < Math.abs(-r) : Math.abs(m) < Math.abs(-s);
  318.                         if (e.detail === e.MSGESTURE_FLAG_INERTIA) {
  319.                             setImmediate(function() {
  320.                                 t._gesture.stop()
  321.                             });
  322.                             return
  323.                         }
  324.                         if (!f || Number(new Date) - a > 500) {
  325.                             e.preventDefault();
  326.                             if (!p && n.transitions) {
  327.                                 n.vars.animationLoop || (u = m / (n.currentSlide === 0 && m < 0 || n.currentSlide === n.last && m > 0 ? Math.abs(m) / o + 2 : 1));
  328.                                 n.setProps(i + u, "setTouch")
  329.                             }
  330.                         }
  331.                     }
  332.                     function S(t) {
  333.                         t.stopPropagation();
  334.                         var r = t.target._slider;
  335.                         if (!r)
  336.                             return;
  337.                         if (r.animatingTo === r.currentSlide && !f && u !== null) {
  338.                             var s = c ? -u : u, l = s > 0 ? r.getTarget("next") : r.getTarget("prev");
  339.                             r.canAdvance(l) && (Number(new Date) - a < 550 && Math.abs(s) > 50 || Math.abs(s) > o / 2) ? r.flexAnimate(l, r.vars.pauseOnAction) : p || r.flexAnimate(r.currentSlide, r.vars.pauseOnAction, !0)
  340.                         }
  341.                         e = null;
  342.                         n = null;
  343.                         u = null;
  344.                         i = null;
  345.                         m = 0
  346.                     }}
  347.             }, resize: function() {
  348.                 if (!r.animating && r.is(":visible")) {
  349.                     h || r.doMath();
  350.                     if (p)
  351.                         v.smoothHeight();
  352.                     else if (h) {
  353.                         r.slides.width(r.computedW);
  354.                         r.update(r.pagingCount);
  355.                         r.setProps()
  356.                     } else if (l) {
  357.                         r.viewport.height(r.h);
  358.                         r.setProps(r.h, "setTotal")
  359.                     } else {
  360.                         r.vars.smoothHeight && v.smoothHeight();
  361.                         r.newSlides.width(r.computedW);
  362.                         r.setProps(r.computedW, "setTotal")
  363.                     }
  364.                 }
  365.             }, smoothHeight: function(e) {
  366.                 if (!l || p) {
  367.                     var t = p ? r : r.viewport;
  368.                     e ? t.animate({height: r.slides.eq(r.animatingTo).height()}, e) : t.height(r.slides.eq(r.animatingTo).height())
  369.                 }
  370.             }, sync: function(t) {
  371.                 var n = e(r.vars.sync).data("flexslider"), i = r.animatingTo;
  372.                 switch (t) {
  373.                     case"animate":
  374.                         n.flexAnimate(i, r.vars.pauseOnAction, !1, !0);
  375.                         break;
  376.                     case"play":
  377.                         !n.playing && !n.asNav && n.play();
  378.                         break;
  379.                     case"pause":
  380.                         n.pause()
  381.                     }
  382.             }, pauseInvisible: {visProp: null, init: function() {
  383.                     var e = ["webkit", "moz", "ms", "o"];
  384.                     if ("hidden"in document)
  385.                         return"hidden";
  386.                     for (var t = 0; t < e.length; t++)
  387.                         e[t] + "Hidden"in document && (v.pauseInvisible.visProp = e[t] + "Hidden");
  388.                     if (v.pauseInvisible.visProp) {
  389.                         var n = v.pauseInvisible.visProp.replace(/[H|h]idden/, "") + "visibilitychange";
  390.                         document.addEventListener(n, function() {
  391.                             v.pauseInvisible.isHidden() ? r.startTimeout ? clearTimeout(r.startTimeout) : r.pause() : r.started ? r.play() : r.vars.initDelay > 0 ? setTimeout(r.play, r.vars.initDelay) : r.play()
  392.                         })
  393.                     }
  394.                 }, isHidden: function() {
  395.                     return document[v.pauseInvisible.visProp] || !1
  396.                 }}, setToClearWatchedEvent: function() {
  397.                 clearTimeout(f);
  398.                 f = setTimeout(function() {
  399.                     a = ""
  400.                 }, 3e3)
  401.             }};
  402.         r.flexAnimate = function(t, n, s, u, a) {
  403.             !r.vars.animationLoop && t !== r.currentSlide && (r.direction = t > r.currentSlide ? "next" : "prev");
  404.             d && r.pagingCount === 1 && (r.direction = r.currentItem < t ? "next" : "prev");
  405.             if (!r.animating && (r.canAdvance(t, a) || s) && r.is(":visible")) {
  406.                 if (d && u) {
  407.                     var f = e(r.vars.asNavFor).data("flexslider");
  408.                     r.atEnd = t === 0 || t === r.count - 1;
  409.                     f.flexAnimate(t, !0, !1, !0, a);
  410.                     r.direction = r.currentItem < t ? "next" : "prev";
  411.                     f.direction = r.direction;
  412.                     if (Math.ceil((t + 1) / r.visible) - 1 === r.currentSlide || t === 0) {
  413.                         r.currentItem = t;
  414.                         r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
  415.                         return!1
  416.                     }
  417.                     r.currentItem = t;
  418.                     r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
  419.                     t = Math.floor(t / r.visible)
  420.                 }
  421.                 r.animating = !0;
  422.                 r.animatingTo = t;
  423.                 n && r.pause();
  424.                 r.vars.before(r);
  425.                 r.syncExists && !a && v.sync("animate");
  426.                 r.vars.controlNav && v.controlNav.active();
  427.                 h || r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
  428.                 r.atEnd = t === 0 || t === r.last;
  429.                 r.vars.directionNav && v.directionNav.update();
  430.                 if (t === r.last) {
  431.                     r.vars.end(r);
  432.                     r.vars.animationLoop || r.pause()
  433.                 }
  434.                 if (!p) {
  435.                     var m = l ? r.slides.filter(":first").height() : r.computedW, g, y, b;
  436.                     if (h) {
  437.                         g = r.vars.itemMargin;
  438.                         b = (r.itemW + g) * r.move * r.animatingTo;
  439.                         y = b > r.limit && r.visible !== 1 ? r.limit : b
  440.                     } else
  441.                         r.currentSlide === 0 && t === r.count - 1 && r.vars.animationLoop && r.direction !== "next" ? y = c ? (r.count + r.cloneOffset) * m : 0 : r.currentSlide === r.last && t === 0 && r.vars.animationLoop && r.direction !== "prev" ? y = c ? 0 : (r.count + 1) * m : y = c ? (r.count - 1 - t + r.cloneOffset) * m : (t + r.cloneOffset) * m;
  442.                     r.setProps(y, "", r.vars.animationSpeed);
  443.                     if (r.transitions) {
  444.                         if (!r.vars.animationLoop || !r.atEnd) {
  445.                             r.animating = !1;
  446.                             r.currentSlide = r.animatingTo
  447.                         }
  448.                         r.container.unbind("webkitTransitionEnd transitionend");
  449.                         r.container.bind("webkitTransitionEnd transitionend", function() {
  450.                             r.wrapup(m)
  451.                         })
  452.                     } else
  453.                         r.container.animate(r.args, r.vars.animationSpeed, r.vars.easing, function() {
  454.                             r.wrapup(m)
  455.                         })
  456.                 } else if (!o) {
  457.                     r.slides.eq(r.currentSlide).css({zIndex: 1}).animate({opacity: 0}, r.vars.animationSpeed, r.vars.easing);
  458.                     r.slides.eq(t).css({zIndex: 2}).animate({opacity: 1}, r.vars.animationSpeed, r.vars.easing, r.wrapup)
  459.                 } else {
  460.                     r.slides.eq(r.currentSlide).css({opacity: 0, zIndex: 1});
  461.                     r.slides.eq(t).css({opacity: 1, zIndex: 2});
  462.                     r.wrapup(m)
  463.                 }
  464.                 r.vars.smoothHeight && v.smoothHeight(r.vars.animationSpeed)
  465.             }
  466.         };
  467.         r.wrapup = function(e) {
  468.             !p && !h && (r.currentSlide === 0 && r.animatingTo === r.last && r.vars.animationLoop ? r.setProps(e, "jumpEnd") : r.currentSlide === r.last && r.animatingTo === 0 && r.vars.animationLoop && r.setProps(e, "jumpStart"));
  469.             r.animating = !1;
  470.             r.currentSlide = r.animatingTo;
  471.             r.vars.after(r)
  472.         };
  473.         r.animateSlides = function() {
  474.             !r.animating && m && r.flexAnimate(r.getTarget("next"))
  475.         };
  476.         r.pause = function() {
  477.             clearInterval(r.animatedSlides);
  478.             r.animatedSlides = null;
  479.             r.playing = !1;
  480.             r.vars.pausePlay && v.pausePlay.update("play");
  481.             r.syncExists && v.sync("pause")
  482.         };
  483.         r.play = function() {
  484.             r.playing && clearInterval(r.animatedSlides);
  485.             r.animatedSlides = r.animatedSlides || setInterval(r.animateSlides, r.vars.slideshowSpeed);
  486.             r.started = r.playing = !0;
  487.             r.vars.pausePlay && v.pausePlay.update("pause");
  488.             r.syncExists && v.sync("play")
  489.         };
  490.         r.stop = function() {
  491.             r.pause();
  492.             r.stopped = !0
  493.         };
  494.         r.canAdvance = function(e, t) {
  495.             var n = d ? r.pagingCount - 1 : r.last;
  496.             return t ? !0 : d && r.currentItem === r.count - 1 && e === 0 && r.direction === "prev" ? !0 : d && r.currentItem === 0 && e === r.pagingCount - 1 && r.direction !== "next" ? !1 : e === r.currentSlide && !d ? !1 : r.vars.animationLoop ? !0 : r.atEnd && r.currentSlide === 0 && e === n && r.direction !== "next" ? !1 : r.atEnd && r.currentSlide === n && e === 0 && r.direction === "next" ? !1 : !0
  497.         };
  498.         r.getTarget = function(e) {
  499.             r.direction = e;
  500.             return e === "next" ? r.currentSlide === r.last ? 0 : r.currentSlide + 1 : r.currentSlide === 0 ? r.last : r.currentSlide - 1
  501.         };
  502.         r.setProps = function(e, t, n) {
  503.             var i = function() {
  504.                 var n = e ? e : (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo, i = function() {
  505.                     if (h)
  506.                         return t === "setTouch" ? e : c && r.animatingTo === r.last ? 0 : c ? r.limit - (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo : r.animatingTo === r.last ? r.limit : n;
  507.                     switch (t) {
  508.                         case"setTotal":
  509.                             return c ? (r.count - 1 - r.currentSlide + r.cloneOffset) * e : (r.currentSlide + r.cloneOffset) * e;
  510.                         case"setTouch":
  511.                             return c ? e : e;
  512.                         case"jumpEnd":
  513.                             return c ? e : r.count * e;
  514.                         case"jumpStart":
  515.                             return c ? r.count * e : e;
  516.                         default:
  517.                             return e
  518.                         }
  519.                 }();
  520.                 i = Math.round(i)
  521.                 return i * -1 + "px"
  522.             }();
  523.             if (r.transitions) {
  524.                 i = l ? "translate3d(0," + i + ",0)" : "translate3d(" + i + ",0,0)";
  525.                 n = n !== undefined ? n / 1e3 + "s" : "0s";
  526.                 r.container.css("-" + r.pfx + "-transition-duration", n)
  527.             }
  528.             r.args[r.prop] = i;
  529.             (r.transitions || n === undefined) && r.container.css(r.args)
  530.         };
  531.         r.setup = function(t) {
  532.             if (!p) {
  533.                 var n, s;
  534.                 if (t === "init") {
  535.                     r.viewport = e('<div class="' + i + 'viewport"></div>').css({overflow: "hidden", position: "relative"}).appendTo(r).append(r.container);
  536.                     r.cloneCount = 0;
  537.                     r.cloneOffset = 0;
  538.                     if (c) {
  539.                         s = e.makeArray(r.slides).reverse();
  540.                         r.slides = e(s);
  541.                         r.container.empty().append(r.slides)
  542.                     }
  543.                 }
  544.                 if (r.vars.animationLoop && !h) {
  545.                     r.cloneCount = 2;
  546.                     r.cloneOffset = 1;
  547.                     t !== "init" && r.container.find(".clone").remove();
  548.                     r.container.append(r.slides.first().clone().addClass("clone").attr("aria-hidden", "true")).prepend(r.slides.last().clone().addClass("clone").attr("aria-hidden", "true"))
  549.                 }
  550.                 r.newSlides = e(r.vars.selector, r);
  551.                 n = c ? r.count - 1 - r.currentSlide + r.cloneOffset : r.currentSlide + r.cloneOffset;
  552.                 if (l && !h) {
  553.                     r.container.height((r.count + r.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
  554.                     setTimeout(function() {
  555.                         r.newSlides.css({display: "block"});
  556.                         r.doMath();
  557.                         r.viewport.height(r.h);
  558.                         r.setProps(n * r.h, "init")
  559.                     }, t === "init" ? 100 : 0)
  560.                 } else {
  561.                     r.container.width((r.count + r.cloneCount) * 200 + "%");
  562.                     r.setProps(n * r.computedW, "init");
  563.                     setTimeout(function() {
  564.                         r.doMath();
  565.                         r.newSlides.css({width: r.computedW, "float": "left", display: "block"});
  566.                         r.vars.smoothHeight && v.smoothHeight()
  567.                     }, t === "init" ? 100 : 0)
  568.                 }
  569.             } else {
  570.                 r.slides.css({width: "100%", "float": "left", marginRight: "-100%", position: "relative"});
  571.                 t === "init" && (o ? r.slides.css({opacity: 0, display: "block", webkitTransition: "opacity " + r.vars.animationSpeed / 1e3 + "s ease", zIndex: 1}).eq(r.currentSlide).css({opacity: 1, zIndex: 2}) : r.slides.css({opacity: 0, display: "block", zIndex: 1}).eq(r.currentSlide).css({zIndex: 2}).animate({opacity: 1}, r.vars.animationSpeed, r.vars.easing));
  572.                 r.vars.smoothHeight && v.smoothHeight()
  573.             }
  574.             h || r.slides.removeClass(i + "active-slide").eq(r.currentSlide).addClass(i + "active-slide")
  575.         };
  576.         r.doMath = function() {
  577.             var e = r.slides.first(), t = r.vars.itemMargin, n = r.vars.minItems, i = r.vars.maxItems;
  578.             r.w = r.viewport === undefined ? r.width() : r.viewport.width();
  579.             r.h = e.height();
  580.             r.boxPadding = e.outerWidth() - e.width();
  581.             if (h) {
  582.                 r.itemT = r.vars.itemWidth + t;
  583.                 r.minW = n ? n * r.itemT : r.w;
  584.                 r.maxW = i ? i * r.itemT - t : r.w;
  585.                 r.itemW = r.minW > r.w ? (r.w - t * (n - 1)) / n : r.maxW < r.w ? (r.w - t * (i - 1)) / i : r.vars.itemWidth > r.w ? r.w : r.vars.itemWidth;
  586.                 r.visible = Math.floor(r.w / r.itemW);
  587.                 r.move = r.vars.move > 0 && r.vars.move < r.visible ? r.vars.move : r.visible;
  588.                 r.pagingCount = Math.ceil((r.count - r.visible) / r.move + 1);
  589.                 r.last = r.pagingCount - 1;
  590.                 r.limit = r.pagingCount === 1 ? 0 : r.vars.itemWidth > r.w ? r.itemW * (r.count - 1) + t * (r.count - 1) : (r.itemW + t) * r.count - r.w - t
  591.             } else {
  592.                 r.itemW = r.w;
  593.                 r.pagingCount = r.count;
  594.                 r.last = r.count - 1
  595.             }
  596.             r.computedW = r.itemW - r.boxPadding
  597.         };
  598.         r.update = function(e, t) {
  599.             r.doMath();
  600.             if (!h) {
  601.                 e < r.currentSlide ? r.currentSlide += 1 : e <= r.currentSlide && e !== 0 && (r.currentSlide -= 1);
  602.                 r.animatingTo = r.currentSlide
  603.             }
  604.             if (r.vars.controlNav && !r.manualControls)
  605.                 if (t === "add" && !h || r.pagingCount > r.controlNav.length)
  606.                     v.controlNav.update("add");
  607.                 else if (t === "remove" && !h || r.pagingCount < r.controlNav.length) {
  608.                     if (h && r.currentSlide > r.last) {
  609.                         r.currentSlide -= 1;
  610.                         r.animatingTo -= 1
  611.                     }
  612.                     v.controlNav.update("remove", r.last)
  613.                 }
  614.             r.vars.directionNav && v.directionNav.update()
  615.         };
  616.         r.addSlide = function(t, n) {
  617.             var i = e(t);
  618.             r.count += 1;
  619.             r.last = r.count - 1;
  620.             l && c ? n !== undefined ? r.slides.eq(r.count - n).after(i) : r.container.prepend(i) : n !== undefined ? r.slides.eq(n).before(i) : r.container.append(i);
  621.             r.update(n, "add");
  622.             r.slides = e(r.vars.selector + ":not(.clone)", r);
  623.             r.setup();
  624.             r.vars.added(r)
  625.         };
  626.         r.removeSlide = function(t) {
  627.             var n = isNaN(t) ? r.slides.index(e(t)) : t;
  628.             r.count -= 1;
  629.             r.last = r.count - 1;
  630.             isNaN(t) ? e(t, r.slides).remove() : l && c ? r.slides.eq(r.last).remove() : r.slides.eq(t).remove();
  631.             r.doMath();
  632.             r.update(n, "remove");
  633.             r.slides = e(r.vars.selector + ":not(.clone)", r);
  634.             r.setup();
  635.             r.vars.removed(r)
  636.         };
  637.         r.setOpts = function(opts) {
  638.             for (var opt in opts) {
  639.                 r.vars[opt] = opts[opt];
  640.             }
  641.             r.setup();
  642.         };
  643.         r.getOpts = function() {
  644.             return r.vars;
  645.         };
  646.         r.refresh = function() {
  647.             r.args[r.prop] = "translate3d(0,0,0)";
  648.             (r.transitions || n === undefined) && r.container.css(r.args);
  649.             r.animatingTo = 0;
  650.             r.pagingCount = 0;
  651.             r.currentSlide = 0;
  652.         };
  653.         v.init()
  654.     };
  655.     e(window).blur(function(e) {
  656.         focused = !1
  657.     }).focus(function(e) {
  658.         focused = !0
  659.     });
  660.     e.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, 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: "", sync: "", asNavFor: "", itemWidth: 0, itemMargin: 0, minItems: 1, maxItems: 0, move: 0, allowOneSlide: !0, start: function() {
  661.         }, before: function() {
  662.         }, after: function() {
  663.         }, end: function() {
  664.         }, added: function() {
  665.         }, removed: function() {
  666.         }};
  667.     e.fn.flexslider = function(t) {
  668.         t === undefined && (t = {});
  669.         if (typeof t == "object")
  670.             return this.each(function() {
  671.                 var n = e(this), r = t.selector ? t.selector : ".slides > li", i = n.find(r);
  672.                 if (i.length === 1 && t.allowOneSlide === !0 || i.length === 0) {
  673.                     i.fadeIn(400);
  674.                     t.start && t.start(n)
  675.                 } else
  676.                     n.data("flexslider") === undefined && new e.flexslider(this, t)
  677.             });
  678.         var n = e(this).data("flexslider");
  679.         switch (t) {
  680.             case"play":
  681.                 n.play();
  682.                 break;
  683.             case"pause":
  684.                 n.pause();
  685.                 break;
  686.             case"stop":
  687.                 n.stop();
  688.                 break;
  689.             case"next":
  690.                 n.flexAnimate(n.getTarget("next"), !0);
  691.                 break;
  692.             case"prev":
  693.             case"previous":
  694.                 n.flexAnimate(n.getTarget("prev"), !0);
  695.                 break;
  696.             default:
  697.                 typeof t == "number" && n.flexAnimate(t, !0)
  698.             }
  699.     }
  700. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement