/*
* jQuery FlexSlider v2.2.2
* Copyright 2012 WooThemes
* Contributing Author: Tyler Smith
*/
(function (e) {
e.flexslider = function (t, n) {
var r = e(t);
r.vars = e.extend({}, e.flexslider.defaults, n);
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;
e.data(t, "flexslider", r);
v = {
init: function () {
r.animating = !1;
r.currentSlide = parseInt(r.vars.startAt ? r.vars.startAt : 0, 10);
isNaN(r.currentSlide) && (r.currentSlide = 0);
r.animatingTo = r.currentSlide;
r.atEnd = r.currentSlide === 0 || r.currentSlide === r.last;
r.containerSelector = r.vars.selector.substr(0, r.vars.selector.search(" "));
r.slides = e(r.vars.selector, r);
r.container = e(r.containerSelector, r);
r.count = r.slides.length;
r.syncExists = e(r.vars.sync).length > 0;
r.vars.animation === "slide" && (r.vars.animation = "swing");
r.prop = l ? "top" : "marginLeft";
r.args = {};
r.manualPause = !1;
r.stopped = !1;
r.started = !1;
r.startTimeout = null;
r.transitions = !r.vars.video && !p && r.vars.useCSS && function () {
var e = document.createElement("div"), t = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
for (var n in t)if (e.style[t[n]] !== undefined) {
r.pfx = t[n].replace("Perspective", "").toLowerCase();
r.prop = "-" + r.pfx + "-transform";
return !0
}
return !1
}();
r.vars.controlsContainer !== "" && (r.controlsContainer = e(r.vars.controlsContainer).length > 0 && e(r.vars.controlsContainer));
r.vars.manualControls !== "" && (r.manualControls = e(r.vars.manualControls).length > 0 && e(r.vars.manualControls));
if (r.vars.randomize) {
r.slides.sort(function () {
return Math.round(Math.random()) - .5
});
r.container.empty().append(r.slides)
}
r.doMath();
r.setup("init");
r.vars.controlNav && v.controlNav.setup();
r.vars.directionNav && v.directionNav.setup();
r.vars.keyboard && (e(r.containerSelector).length === 1 || r.vars.multipleKeyboard) && e(document).bind("keyup", function (e) {
var t = e.keyCode;
if (!r.animating && (t === 39 || t === 37)) {
var n = t === 39 ? r.getTarget("next") : t === 37 ? r.getTarget("prev") : !1;
r.flexAnimate(n, r.vars.pauseOnAction)
}
});
r.vars.mousewheel && r.bind("mousewheel", function (e, t, n, i) {
e.preventDefault();
var s = t < 0 ? r.getTarget("next") : r.getTarget("prev");
r.flexAnimate(s, r.vars.pauseOnAction)
});
r.vars.pausePlay && v.pausePlay.setup();
r.vars.slideshow && r.vars.pauseInvisible && v.pauseInvisible.init();
if (r.vars.slideshow) {
r.vars.pauseOnHover && r.hover(function () {
!r.manualPlay && !r.manualPause && r.pause()
}, function () {
!r.manualPause && !r.manualPlay && !r.stopped && r.play()
});
if (!r.vars.pauseInvisible || !v.pauseInvisible.isHidden())r.vars.initDelay > 0 ? r.startTimeout = setTimeout(r.play, r.vars.initDelay) : r.play()
}
d && v.asNav.setup();
o && r.vars.touch && v.touch();
(!p || p && r.vars.smoothHeight) && e(window).bind("resize orientationchange focus", v.resize);
r.find("img").attr("draggable", "false");
setTimeout(function () {
r.vars.start(r)
}, 200)
}, asNav: {
setup: function () {
r.asNav = !0;
r.animatingTo = Math.floor(r.currentSlide / r.move);
r.currentItem = r.currentSlide;
r.slides.removeClass(i + "active-slide").eq(r.currentItem).addClass(i + "active-slide");
if (!s)r.slides.on(u, function (t) {
t.preventDefault();
var n = e(this), s = n.index(), o = n.offset().left - e(r).scrollLeft();
if (o <= 0 && n.hasClass(i + "active-slide"))r.flexAnimate(r.getTarget("prev"), !0); else if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass(i + "active-slide")) {
r.direction = r.currentItem < s ? "next" : "prev";
r.flexAnimate(s, r.vars.pauseOnAction, !1, !0, !0)
}
}); else {
t._slider = r;
r.slides.each(function () {
var t = this;
t._gesture = new MSGesture;
t._gesture.target = t;
t.addEventListener("MSPointerDown", function (e) {
e.preventDefault();
e.currentTarget._gesture && e.currentTarget._gesture.addPointer(e.pointerId)
}, !1);
t.addEventListener("MSGestureTap", function (t) {
t.preventDefault();
var n = e(this), i = n.index();
if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass("active")) {
r.direction = r.currentItem < i ? "next" : "prev";
r.flexAnimate(i, r.vars.pauseOnAction, !1, !0, !0)
}
})
})
}
}
}, controlNav: {
setup: function () {
r.manualControls ? v.controlNav.setupManual() : v.controlNav.setupPaging()
}, setupPaging: function () {
var t = r.vars.controlNav === "thumbnails" ? "control-thumbs" : "control-paging", n = 1, s, o;
r.controlNavScaffold = e('
');
if (r.pagingCount > 1)for (var f = 0; f < r.pagingCount; f++) {
o = r.slides.eq(f);
s = r.vars.controlNav === "thumbnails" ? ' ' : "" + n + " ";
if ("thumbnails" === r.vars.controlNav && !0 === r.vars.thumbCaptions) {
var l = o.attr("data-thumbcaption");
"" != l && undefined != l && (s += '' + l + " ")
}
r.controlNavScaffold.append("" + s + " ");
n++
}
r.controlsContainer ? e(r.controlsContainer).append(r.controlNavScaffold) : r.append(r.controlNavScaffold);
v.controlNav.set();
v.controlNav.active();
r.controlNavScaffold.delegate("a, img", u, function (t) {
t.preventDefault();
if (a === "" || a === t.type) {
var n = e(this), s = r.controlNav.index(n);
if (!n.hasClass(i + "active")) {
r.direction = s > r.currentSlide ? "next" : "prev";
r.flexAnimate(s, r.vars.pauseOnAction)
}
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, setupManual: function () {
r.controlNav = r.manualControls;
v.controlNav.active();
r.controlNav.bind(u, function (t) {
t.preventDefault();
if (a === "" || a === t.type) {
var n = e(this), s = r.controlNav.index(n);
if (!n.hasClass(i + "active")) {
s > r.currentSlide ? r.direction = "next" : r.direction = "prev";
r.flexAnimate(s, r.vars.pauseOnAction)
}
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, set: function () {
var t = r.vars.controlNav === "thumbnails" ? "img" : "a";
r.controlNav = e("." + i + "control-nav li " + t, r.controlsContainer ? r.controlsContainer : r)
}, active: function () {
r.controlNav.removeClass(i + "active").eq(r.animatingTo).addClass(i + "active")
}, update: function (t, n) {
r.pagingCount > 1 && t === "add" ? r.controlNavScaffold.append(e("" + r.count + " ")) : r.pagingCount === 1 ? r.controlNavScaffold.find("li").remove() : r.controlNav.eq(n).closest("li").remove();
v.controlNav.set();
r.pagingCount > 1 && r.pagingCount !== r.controlNav.length ? r.update(n, t) : v.controlNav.active()
}
}, directionNav: {
setup: function () {
var t = e('");
if (r.controlsContainer) {
e(r.controlsContainer).append(t);
r.directionNav = e("." + i + "direction-nav li a", r.controlsContainer)
} else {
r.append(t);
r.directionNav = e("." + i + "direction-nav li a", r)
}
v.directionNav.update();
r.directionNav.bind(u, function (t) {
t.preventDefault();
var n;
if (a === "" || a === t.type) {
n = e(this).hasClass(i + "next") ? r.getTarget("next") : r.getTarget("prev");
r.flexAnimate(n, r.vars.pauseOnAction)
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, update: function () {
var e = i + "disabled";
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")
}
}, pausePlay: {
setup: function () {
var t = e('');
if (r.controlsContainer) {
r.controlsContainer.append(t);
r.pausePlay = e("." + i + "pauseplay a", r.controlsContainer)
} else {
r.append(t);
r.pausePlay = e("." + i + "pauseplay a", r)
}
v.pausePlay.update(r.vars.slideshow ? i + "pause" : i + "play");
r.pausePlay.bind(u, function (t) {
t.preventDefault();
if (a === "" || a === t.type)if (e(this).hasClass(i + "pause")) {
r.manualPause = !0;
r.manualPlay = !1;
r.pause()
} else {
r.manualPause = !1;
r.manualPlay = !0;
r.play()
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, update: function (e) {
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)
}
}, touch: function () {
var e, n, i, o, u, a, f = !1, d = 0, v = 0, m = 0;
if (!s) {
t.addEventListener("touchstart", g, !1);
function g(s) {
if (r.animating)s.preventDefault(); else if (window.navigator.msPointerEnabled || s.touches.length === 1) {
r.pause();
o = l ? r.h : r.w;
a = Number(new Date);
d = s.touches[0].pageX;
v = s.touches[0].pageY;
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;
e = l ? v : d;
n = l ? d : v;
t.addEventListener("touchmove", y, !1);
t.addEventListener("touchend", b, !1)
}
}
function y(t) {
d = t.touches[0].pageX;
v = t.touches[0].pageY;
u = l ? e - v : e - d;
f = l ? Math.abs(u) < Math.abs(d - n) : Math.abs(u) < Math.abs(v - n);
var s = 500;
if (!f || Number(new Date) - a > s) {
t.preventDefault();
if (!p && r.transitions) {
r.vars.animationLoop || (u /= r.currentSlide === 0 && u < 0 || r.currentSlide === r.last && u > 0 ? Math.abs(u) / o + 2 : 1);
r.setProps(i + u, "setTouch")
}
}
}
function b(s) {
t.removeEventListener("touchmove", y, !1);
if (r.animatingTo === r.currentSlide && !f && u !== null) {
var l = c ? -u : u, h = l > 0 ? r.getTarget("next") : r.getTarget("prev");
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)
}
t.removeEventListener("touchend", b, !1);
e = null;
n = null;
u = null;
i = null
}
} else {
t.style.msTouchAction = "none";
t._gesture = new MSGesture;
t._gesture.target = t;
t.addEventListener("MSPointerDown", w, !1);
t._slider = r;
t.addEventListener("MSGestureChange", E, !1);
t.addEventListener("MSGestureEnd", S, !1);
function w(e) {
e.stopPropagation();
if (r.animating)e.preventDefault(); else {
r.pause();
t._gesture.addPointer(e.pointerId);
m = 0;
o = l ? r.h : r.w;
a = Number(new Date);
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
}
}
function E(e) {
e.stopPropagation();
var n = e.target._slider;
if (!n)return;
var r = -e.translationX, s = -e.translationY;
m += l ? s : r;
u = m;
f = l ? Math.abs(m) < Math.abs(-r) : Math.abs(m) < Math.abs(-s);
if (e.detail === e.MSGESTURE_FLAG_INERTIA) {
setImmediate(function () {
t._gesture.stop()
});
return
}
if (!f || Number(new Date) - a > 500) {
e.preventDefault();
if (!p && n.transitions) {
n.vars.animationLoop || (u = m / (n.currentSlide === 0 && m < 0 || n.currentSlide === n.last && m > 0 ? Math.abs(m) / o + 2 : 1));
n.setProps(i + u, "setTouch")
}
}
}
function S(t) {
t.stopPropagation();
var r = t.target._slider;
if (!r)return;
if (r.animatingTo === r.currentSlide && !f && u !== null) {
var s = c ? -u : u, l = s > 0 ? r.getTarget("next") : r.getTarget("prev");
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)
}
e = null;
n = null;
u = null;
i = null;
m = 0
}
}
}, resize: function () {
if (!r.animating && r.is(":visible")) {
h || r.doMath();
if (p)v.smoothHeight(); else if (h) {
r.slides.width(r.computedW);
r.update(r.pagingCount);
r.setProps()
} else if (l) {
r.viewport.height(r.h);
r.setProps(r.h, "setTotal")
} else {
r.vars.smoothHeight && v.smoothHeight();
r.newSlides.width(r.computedW);
r.setProps(r.computedW, "setTotal")
}
}
}, smoothHeight: function (e) {
if (!l || p) {
var t = p ? r : r.viewport;
e ? t.animate({height: r.slides.eq(r.animatingTo).height()}, e) : t.height(r.slides.eq(r.animatingTo).height())
}
}, sync: function (t) {
var n = e(r.vars.sync).data("flexslider"), i = r.animatingTo;
switch (t) {
case"animate":
n.flexAnimate(i, r.vars.pauseOnAction, !1, !0);
break;
case"play":
!n.playing && !n.asNav && n.play();
break;
case"pause":
n.pause()
}
}, uniqueID: function (t) {
t.find("[id]").each(function () {
var t = e(this);
t.attr("id", t.attr("id") + "_clone")
});
return t
}, pauseInvisible: {
visProp: null, init: function () {
var e = ["webkit", "moz", "ms", "o"];
if ("hidden"in document)return "hidden";
for (var t = 0; t < e.length; t++)e[t] + "Hidden"in document && (v.pauseInvisible.visProp = e[t] + "Hidden");
if (v.pauseInvisible.visProp) {
var n = v.pauseInvisible.visProp.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(n, function () {
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()
})
}
}, isHidden: function () {
return document[v.pauseInvisible.visProp] || !1
}
}, setToClearWatchedEvent: function () {
clearTimeout(f);
f = setTimeout(function () {
a = ""
}, 3e3)
}
};
r.flexAnimate = function (t, n, s, u, a) {
!r.vars.animationLoop && t !== r.currentSlide && (r.direction = t > r.currentSlide ? "next" : "prev");
d && r.pagingCount === 1 && (r.direction = r.currentItem < t ? "next" : "prev");
if (!r.animating && (r.canAdvance(t, a) || s) && r.is(":visible")) {
if (d && u) {
var f = e(r.vars.asNavFor).data("flexslider");
r.atEnd = t === 0 || t === r.count - 1;
f.flexAnimate(t, !0, !1, !0, a);
r.direction = r.currentItem < t ? "next" : "prev";
f.direction = r.direction;
if (Math.ceil((t + 1) / r.visible) - 1 === r.currentSlide || t === 0) {
r.currentItem = t;
r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
return !1
}
r.currentItem = t;
r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
t = Math.floor(t / r.visible)
}
r.animating = !0;
r.animatingTo = t;
n && r.pause();
r.vars.before(r);
r.syncExists && !a && v.sync("animate");
r.vars.controlNav && v.controlNav.active();
h || r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
r.atEnd = t === 0 || t === r.last;
r.vars.directionNav && v.directionNav.update();
if (t === r.last) {
r.vars.end(r);
r.vars.animationLoop || r.pause()
}
if (!p) {
var m = l ? r.slides.filter(":first").height() : r.computedW, g, y, b;
if (h) {
g = r.vars.itemMargin;
b = (r.itemW + g) * r.move * r.animatingTo;
y = b > r.limit && r.visible !== 1 ? r.limit : b
} else 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;
r.setProps(y, "", r.vars.animationSpeed);
if (r.transitions) {
if (!r.vars.animationLoop || !r.atEnd) {
r.animating = !1;
r.currentSlide = r.animatingTo
}
r.container.unbind("webkitTransitionEnd transitionend");
r.container.bind("webkitTransitionEnd transitionend", function () {
r.wrapup(m)
})
} else r.container.animate(r.args, r.vars.animationSpeed, r.vars.easing, function () {
r.wrapup(m)
})
} else if (!o) {
r.slides.eq(r.currentSlide).css({zIndex: 1}).animate({opacity: 0}, r.vars.animationSpeed, r.vars.easing);
r.slides.eq(t).css({zIndex: 2}).animate({opacity: 1}, r.vars.animationSpeed, r.vars.easing, r.wrapup)
} else {
r.slides.eq(r.currentSlide).css({opacity: 0, zIndex: 1});
r.slides.eq(t).css({opacity: 1, zIndex: 2});
r.wrapup(m)
}
r.vars.smoothHeight && v.smoothHeight(r.vars.animationSpeed)
}
};
r.wrapup = function (e) {
!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"));
r.animating = !1;
r.currentSlide = r.animatingTo;
r.vars.after(r)
};
r.animateSlides = function () {
!r.animating && m && r.flexAnimate(r.getTarget("next"))
};
r.pause = function () {
clearInterval(r.animatedSlides);
r.animatedSlides = null;
r.playing = !1;
r.vars.pausePlay && v.pausePlay.update("play");
r.syncExists && v.sync("pause")
};
r.play = function () {
r.playing && clearInterval(r.animatedSlides);
r.animatedSlides = r.animatedSlides || setInterval(r.animateSlides, r.vars.slideshowSpeed);
r.started = r.playing = !0;
r.vars.pausePlay && v.pausePlay.update("pause");
r.syncExists && v.sync("play")
};
r.stop = function () {
r.pause();
r.stopped = !0
};
r.canAdvance = function (e, t) {
var n = d ? r.pagingCount - 1 : r.last;
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
};
r.getTarget = function (e) {
r.direction = e;
return e === "next" ? r.currentSlide === r.last ? 0 : r.currentSlide + 1 : r.currentSlide === 0 ? r.last : r.currentSlide - 1
};
r.setProps = function (e, t, n) {
var i = function () {
var n = e ? e : (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo, i = function () {
if (h)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;
switch (t) {
case"setTotal":
return c ? (r.count - 1 - r.currentSlide + r.cloneOffset) * e : (r.currentSlide + r.cloneOffset) * e;
case"setTouch":
return c ? e : e;
case"jumpEnd":
return c ? e : r.count * e;
case"jumpStart":
return c ? r.count * e : e;
default:
return e
}
}();
return i * -1 + "px"
}();
if (r.transitions) {
i = l ? "translate3d(0," + i + ",0)" : "translate3d(" + i + ",0,0)";
n = n !== undefined ? n / 1e3 + "s" : "0s";
r.container.css("-" + r.pfx + "-transition-duration", n);
r.container.css("transition-duration", n)
}
r.args[r.prop] = i;
(r.transitions || n === undefined) && r.container.css(r.args);
r.container.css("transform", i)
};
r.setup = function (t) {
if (!p) {
var n, s;
if (t === "init") {
r.viewport = e('
').css({
overflow: "hidden",
position: "relative"
}).appendTo(r).append(r.container);
r.cloneCount = 0;
r.cloneOffset = 0;
if (c) {
s = e.makeArray(r.slides).reverse();
r.slides = e(s);
r.container.empty().append(r.slides)
}
}
if (r.vars.animationLoop && !h) {
r.cloneCount = 2;
r.cloneOffset = 1;
t !== "init" && r.container.find(".clone").remove();
r.container.append(r.slides.first().clone().addClass("clone").attr("aria-hidden", "true")).prepend(r.slides.last().clone().addClass("clone").attr("aria-hidden", "true"));
v.uniqueID(r.slides.first().clone().addClass("clone")).appendTo(r.container);
v.uniqueID(r.slides.last().clone().addClass("clone")).prependTo(r.container)
}
r.newSlides = e(r.vars.selector, r);
n = c ? r.count - 1 - r.currentSlide + r.cloneOffset : r.currentSlide + r.cloneOffset;
if (l && !h) {
r.container.height((r.count + r.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
setTimeout(function () {
r.newSlides.css({display: "block"});
r.doMath();
r.viewport.height(r.h);
r.setProps(n * r.h, "init")
}, t === "init" ? 100 : 0)
} else {
r.container.width((r.count + r.cloneCount) * 200 + "%");
r.setProps(n * r.computedW, "init");
setTimeout(function () {
r.doMath();
r.newSlides.css({width: r.computedW, "float": "left", display: "block"});
r.vars.smoothHeight && v.smoothHeight()
}, t === "init" ? 100 : 0)
}
} else {
r.slides.css({width: "100%", "float": "left", marginRight: "-100%", position: "relative"});
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));
r.vars.smoothHeight && v.smoothHeight()
}
h || r.slides.removeClass(i + "active-slide").eq(r.currentSlide).addClass(i + "active-slide");
r.vars.init(r)
};
r.doMath = function () {
var e = r.slides.first(), t = r.vars.itemMargin, n = r.vars.minItems, i = r.vars.maxItems;
r.w = r.viewport === undefined ? r.width() : r.viewport.width();
r.h = e.height();
r.boxPadding = e.outerWidth() - e.width();
if (h) {
r.itemT = r.vars.itemWidth + t;
r.minW = n ? n * r.itemT : r.w;
r.maxW = i ? i * r.itemT - t : r.w;
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;
r.visible = Math.floor(r.w / r.itemW);
r.move = r.vars.move > 0 && r.vars.move < r.visible ? r.vars.move : r.visible;
r.pagingCount = Math.ceil((r.count - r.visible) / r.move + 1);
r.last = r.pagingCount - 1;
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
} else {
r.itemW = r.w;
r.pagingCount = r.count;
r.last = r.count - 1
}
r.computedW = r.itemW - r.boxPadding
};
r.update = function (e, t) {
r.doMath();
if (!h) {
e < r.currentSlide ? r.currentSlide += 1 : e <= r.currentSlide && e !== 0 && (r.currentSlide -= 1);
r.animatingTo = r.currentSlide
}
if (r.vars.controlNav && !r.manualControls)if (t === "add" && !h || r.pagingCount > r.controlNav.length)v.controlNav.update("add"); else if (t === "remove" && !h || r.pagingCount < r.controlNav.length) {
if (h && r.currentSlide > r.last) {
r.currentSlide -= 1;
r.animatingTo -= 1
}
v.controlNav.update("remove", r.last)
}
r.vars.directionNav && v.directionNav.update()
};
r.addSlide = function (t, n) {
var i = e(t);
r.count += 1;
r.last = r.count - 1;
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);
r.update(n, "add");
r.slides = e(r.vars.selector + ":not(.clone)", r);
r.setup();
r.vars.added(r)
};
r.removeSlide = function (t) {
var n = isNaN(t) ? r.slides.index(e(t)) : t;
r.count -= 1;
r.last = r.count - 1;
isNaN(t) ? e(t, r.slides).remove() : l && c ? r.slides.eq(r.last).remove() : r.slides.eq(t).remove();
r.doMath();
r.update(n, "remove");
r.slides = e(r.vars.selector + ":not(.clone)", r);
r.setup();
r.vars.removed(r)
};
v.init()
};
e(window).blur(function (e) {
focused = !1
}).focus(function (e) {
focused = !0
});
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 () {
},
before: function () {
},
after: function () {
},
end: function () {
},
added: function () {
},
removed: function () {
},
init: function () {
}
};
e.fn.flexslider = function (t) {
t === undefined && (t = {});
if (typeof t == "object")return this.each(function () {
var n = e(this), r = t.selector ? t.selector : ".slides > li", i = n.find(r);
if (i.length === 1 && t.allowOneSlide === !0 || i.length === 0) {
i.fadeIn(400);
t.start && t.start(n)
} else n.data("flexslider") === undefined && new e.flexslider(this, t)
});
var n = e(this).data("flexslider");
switch (t) {
case"play":
n.play();
break;
case"pause":
n.pause();
break;
case"stop":
n.stop();
break;
case"next":
n.flexAnimate(n.getTarget("next"), !0);
break;
case"prev":
case"previous":
n.flexAnimate(n.getTarget("prev"), !0);
break;
default:
typeof t == "number" && n.flexAnimate(t, !0)
}
}
})(jQuery);
(function (e) {
e.flexslider = function (t, n) {
var r = e(t);
r.vars = e.extend({}, e.flexslider.defaults, n);
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;
e.data(t, "flexslider", r);
v = {
init: function () {
r.animating = !1;
r.currentSlide = parseInt(r.vars.startAt ? r.vars.startAt : 0, 10);
isNaN(r.currentSlide) && (r.currentSlide = 0);
r.animatingTo = r.currentSlide;
r.atEnd = r.currentSlide === 0 || r.currentSlide === r.last;
r.containerSelector = r.vars.selector.substr(0, r.vars.selector.search(" "));
r.slides = e(r.vars.selector, r);
r.container = e(r.containerSelector, r);
r.count = r.slides.length;
r.syncExists = e(r.vars.sync).length > 0;
r.vars.animation === "slide" && (r.vars.animation = "swing");
r.prop = l ? "top" : "marginLeft";
r.args = {};
r.manualPause = !1;
r.stopped = !1;
r.started = !1;
r.startTimeout = null;
r.transitions = !r.vars.video && !p && r.vars.useCSS && function () {
var e = document.createElement("div"), t = ["perspectiveProperty", "WebkitPerspective", "MozPerspective", "OPerspective", "msPerspective"];
for (var n in t)if (e.style[t[n]] !== undefined) {
r.pfx = t[n].replace("Perspective", "").toLowerCase();
r.prop = "-" + r.pfx + "-transform";
return !0
}
return !1
}();
r.vars.controlsContainer !== "" && (r.controlsContainer = e(r.vars.controlsContainer).length > 0 && e(r.vars.controlsContainer));
r.vars.manualControls !== "" && (r.manualControls = e(r.vars.manualControls).length > 0 && e(r.vars.manualControls));
if (r.vars.randomize) {
r.slides.sort(function () {
return Math.round(Math.random()) - .5
});
r.container.empty().append(r.slides)
}
r.doMath();
r.setup("init");
r.vars.controlNav && v.controlNav.setup();
r.vars.directionNav && v.directionNav.setup();
r.vars.keyboard && (e(r.containerSelector).length === 1 || r.vars.multipleKeyboard) && e(document).bind("keyup", function (e) {
var t = e.keyCode;
if (!r.animating && (t === 39 || t === 37)) {
var n = t === 39 ? r.getTarget("next") : t === 37 ? r.getTarget("prev") : !1;
r.flexAnimate(n, r.vars.pauseOnAction)
}
});
r.vars.mousewheel && r.bind("mousewheel", function (e, t, n, i) {
e.preventDefault();
var s = t < 0 ? r.getTarget("next") : r.getTarget("prev");
r.flexAnimate(s, r.vars.pauseOnAction)
});
r.vars.pausePlay && v.pausePlay.setup();
r.vars.slideshow && r.vars.pauseInvisible && v.pauseInvisible.init();
if (r.vars.slideshow) {
r.vars.pauseOnHover && r.hover(function () {
!r.manualPlay && !r.manualPause && r.pause()
}, function () {
!r.manualPause && !r.manualPlay && !r.stopped && r.play()
});
if (!r.vars.pauseInvisible || !v.pauseInvisible.isHidden())r.vars.initDelay > 0 ? r.startTimeout = setTimeout(r.play, r.vars.initDelay) : r.play()
}
d && v.asNav.setup();
o && r.vars.touch && v.touch();
(!p || p && r.vars.smoothHeight) && e(window).bind("resize orientationchange focus", v.resize);
r.find("img").attr("draggable", "false");
setTimeout(function () {
r.vars.start(r)
}, 200)
}, asNav: {
setup: function () {
r.asNav = !0;
r.animatingTo = Math.floor(r.currentSlide / r.move);
r.currentItem = r.currentSlide;
r.slides.removeClass(i + "active-slide").eq(r.currentItem).addClass(i + "active-slide");
if (!s)r.slides.on(u, function (t) {
t.preventDefault();
var n = e(this), s = n.index(), o = n.offset().left - e(r).scrollLeft();
if (o <= 0 && n.hasClass(i + "active-slide"))r.flexAnimate(r.getTarget("prev"), !0); else if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass(i + "active-slide")) {
r.direction = r.currentItem < s ? "next" : "prev";
r.flexAnimate(s, r.vars.pauseOnAction, !1, !0, !0)
}
}); else {
t._slider = r;
r.slides.each(function () {
var t = this;
t._gesture = new MSGesture;
t._gesture.target = t;
t.addEventListener("MSPointerDown", function (e) {
e.preventDefault();
e.currentTarget._gesture && e.currentTarget._gesture.addPointer(e.pointerId)
}, !1);
t.addEventListener("MSGestureTap", function (t) {
t.preventDefault();
var n = e(this), i = n.index();
if (!e(r.vars.asNavFor).data("flexslider").animating && !n.hasClass("active")) {
r.direction = r.currentItem < i ? "next" : "prev";
r.flexAnimate(i, r.vars.pauseOnAction, !1, !0, !0)
}
})
})
}
}
}, controlNav: {
setup: function () {
r.manualControls ? v.controlNav.setupManual() : v.controlNav.setupPaging()
}, setupPaging: function () {
var t = r.vars.controlNav === "thumbnails" ? "control-thumbs" : "control-paging", n = 1, s, o;
r.controlNavScaffold = e(' ');
if (r.pagingCount > 1)for (var f = 0; f < r.pagingCount; f++) {
o = r.slides.eq(f);
s = r.vars.controlNav === "thumbnails" ? ' ' : "" + n + " ";
if ("thumbnails" === r.vars.controlNav && !0 === r.vars.thumbCaptions) {
var l = o.attr("data-thumbcaption");
"" != l && undefined != l && (s += '' + l + " ")
}
r.controlNavScaffold.append("" + s + " ");
n++
}
r.controlsContainer ? e(r.controlsContainer).append(r.controlNavScaffold) : r.append(r.controlNavScaffold);
v.controlNav.set();
v.controlNav.active();
r.controlNavScaffold.delegate("a, img", u, function (t) {
t.preventDefault();
if (a === "" || a === t.type) {
var n = e(this), s = r.controlNav.index(n);
if (!n.hasClass(i + "active")) {
r.direction = s > r.currentSlide ? "next" : "prev";
r.flexAnimate(s, r.vars.pauseOnAction)
}
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, setupManual: function () {
r.controlNav = r.manualControls;
v.controlNav.active();
r.controlNav.bind(u, function (t) {
t.preventDefault();
if (a === "" || a === t.type) {
var n = e(this), s = r.controlNav.index(n);
if (!n.hasClass(i + "active")) {
s > r.currentSlide ? r.direction = "next" : r.direction = "prev";
r.flexAnimate(s, r.vars.pauseOnAction)
}
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, set: function () {
var t = r.vars.controlNav === "thumbnails" ? "img" : "a";
r.controlNav = e("." + i + "control-nav li " + t, r.controlsContainer ? r.controlsContainer : r)
}, active: function () {
r.controlNav.removeClass(i + "active").eq(r.animatingTo).addClass(i + "active")
}, update: function (t, n) {
r.pagingCount > 1 && t === "add" ? r.controlNavScaffold.append(e("" + r.count + " ")) : r.pagingCount === 1 ? r.controlNavScaffold.find("li").remove() : r.controlNav.eq(n).closest("li").remove();
v.controlNav.set();
r.pagingCount > 1 && r.pagingCount !== r.controlNav.length ? r.update(n, t) : v.controlNav.active()
}
}, directionNav: {
setup: function () {
var t = e('");
if (r.controlsContainer) {
e(r.controlsContainer).append(t);
r.directionNav = e("." + i + "direction-nav li a", r.controlsContainer)
} else {
r.append(t);
r.directionNav = e("." + i + "direction-nav li a", r)
}
v.directionNav.update();
r.directionNav.bind(u, function (t) {
t.preventDefault();
var n;
if (a === "" || a === t.type) {
n = e(this).hasClass(i + "next") ? r.getTarget("next") : r.getTarget("prev");
r.flexAnimate(n, r.vars.pauseOnAction)
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, update: function () {
var e = i + "disabled";
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")
}
}, pausePlay: {
setup: function () {
var t = e('');
if (r.controlsContainer) {
r.controlsContainer.append(t);
r.pausePlay = e("." + i + "pauseplay a", r.controlsContainer)
} else {
r.append(t);
r.pausePlay = e("." + i + "pauseplay a", r)
}
v.pausePlay.update(r.vars.slideshow ? i + "pause" : i + "play");
r.pausePlay.bind(u, function (t) {
t.preventDefault();
if (a === "" || a === t.type)if (e(this).hasClass(i + "pause")) {
r.manualPause = !0;
r.manualPlay = !1;
r.pause()
} else {
r.manualPause = !1;
r.manualPlay = !0;
r.play()
}
a === "" && (a = t.type);
v.setToClearWatchedEvent()
})
}, update: function (e) {
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)
}
}, touch: function () {
var e, n, i, o, u, a, f = !1, d = 0, v = 0, m = 0;
if (!s) {
t.addEventListener("touchstart", g, !1);
function g(s) {
if (r.animating)s.preventDefault(); else if (window.navigator.msPointerEnabled || s.touches.length === 1) {
r.pause();
o = l ? r.h : r.w;
a = Number(new Date);
d = s.touches[0].pageX;
v = s.touches[0].pageY;
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;
e = l ? v : d;
n = l ? d : v;
t.addEventListener("touchmove", y, !1);
t.addEventListener("touchend", b, !1)
}
}
function y(t) {
d = t.touches[0].pageX;
v = t.touches[0].pageY;
u = l ? e - v : e - d;
f = l ? Math.abs(u) < Math.abs(d - n) : Math.abs(u) < Math.abs(v - n);
var s = 500;
if (!f || Number(new Date) - a > s) {
t.preventDefault();
if (!p && r.transitions) {
r.vars.animationLoop || (u /= r.currentSlide === 0 && u < 0 || r.currentSlide === r.last && u > 0 ? Math.abs(u) / o + 2 : 1);
r.setProps(i + u, "setTouch")
}
}
}
function b(s) {
t.removeEventListener("touchmove", y, !1);
if (r.animatingTo === r.currentSlide && !f && u !== null) {
var l = c ? -u : u, h = l > 0 ? r.getTarget("next") : r.getTarget("prev");
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)
}
t.removeEventListener("touchend", b, !1);
e = null;
n = null;
u = null;
i = null
}
} else {
t.style.msTouchAction = "none";
t._gesture = new MSGesture;
t._gesture.target = t;
t.addEventListener("MSPointerDown", w, !1);
t._slider = r;
t.addEventListener("MSGestureChange", E, !1);
t.addEventListener("MSGestureEnd", S, !1);
function w(e) {
e.stopPropagation();
if (r.animating)e.preventDefault(); else {
r.pause();
t._gesture.addPointer(e.pointerId);
m = 0;
o = l ? r.h : r.w;
a = Number(new Date);
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
}
}
function E(e) {
e.stopPropagation();
var n = e.target._slider;
if (!n)return;
var r = -e.translationX, s = -e.translationY;
m += l ? s : r;
u = m;
f = l ? Math.abs(m) < Math.abs(-r) : Math.abs(m) < Math.abs(-s);
if (e.detail === e.MSGESTURE_FLAG_INERTIA) {
setImmediate(function () {
t._gesture.stop()
});
return
}
if (!f || Number(new Date) - a > 500) {
e.preventDefault();
if (!p && n.transitions) {
n.vars.animationLoop || (u = m / (n.currentSlide === 0 && m < 0 || n.currentSlide === n.last && m > 0 ? Math.abs(m) / o + 2 : 1));
n.setProps(i + u, "setTouch")
}
}
}
function S(t) {
t.stopPropagation();
var r = t.target._slider;
if (!r)return;
if (r.animatingTo === r.currentSlide && !f && u !== null) {
var s = c ? -u : u, l = s > 0 ? r.getTarget("next") : r.getTarget("prev");
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)
}
e = null;
n = null;
u = null;
i = null;
m = 0
}
}
}, resize: function () {
if (!r.animating && r.is(":visible")) {
h || r.doMath();
if (p)v.smoothHeight(); else if (h) {
r.slides.width(r.computedW);
r.update(r.pagingCount);
r.setProps()
} else if (l) {
r.viewport.height(r.h);
r.setProps(r.h, "setTotal")
} else {
r.vars.smoothHeight && v.smoothHeight();
r.newSlides.width(r.computedW
);
r.setProps(r.computedW, "setTotal")
}
}
}, smoothHeight: function (e) {
if (!l || p) {
var t = p ? r : r.viewport;
e ? t.animate({height: r.slides.eq(r.animatingTo).height()}, e) : t.height(r.slides.eq(r.animatingTo).height())
}
}, sync: function (t) {
var n = e(r.vars.sync).data("flexslider"), i = r.animatingTo;
switch (t) {
case"animate":
n.flexAnimate(i, r.vars.pauseOnAction, !1, !0);
break;
case"play":
!n.playing && !n.asNav && n.play();
break;
case"pause":
n.pause()
}
}, uniqueID: function (t) {
t.find("[id]").each(function () {
var t = e(this);
t.attr("id", t.attr("id") + "_clone")
});
return t
}, pauseInvisible: {
visProp: null, init: function () {
var e = ["webkit", "moz", "ms", "o"];
if ("hidden"in document)return "hidden";
for (var t = 0; t < e.length; t++)e[t] + "Hidden"in document && (v.pauseInvisible.visProp = e[t] + "Hidden");
if (v.pauseInvisible.visProp) {
var n = v.pauseInvisible.visProp.replace(/[H|h]idden/, "") + "visibilitychange";
document.addEventListener(n, function () {
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()
})
}
}, isHidden: function () {
return document[v.pauseInvisible.visProp] || !1
}
}, setToClearWatchedEvent: function () {
clearTimeout(f);
f = setTimeout(function () {
a = ""
}, 3e3)
}
};
r.flexAnimate = function (t, n, s, u, a) {
!r.vars.animationLoop && t !== r.currentSlide && (r.direction = t > r.currentSlide ? "next" : "prev");
d && r.pagingCount === 1 && (r.direction = r.currentItem < t ? "next" : "prev");
if (!r.animating && (r.canAdvance(t, a) || s) && r.is(":visible")) {
if (d && u) {
var f = e(r.vars.asNavFor).data("flexslider");
r.atEnd = t === 0 || t === r.count - 1;
f.flexAnimate(t, !0, !1, !0, a);
r.direction = r.currentItem < t ? "next" : "prev";
f.direction = r.direction;
if (Math.ceil((t + 1) / r.visible) - 1 === r.currentSlide || t === 0) {
r.currentItem = t;
r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
return !1
}
r.currentItem = t;
r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
t = Math.floor(t / r.visible)
}
r.animating = !0;
r.animatingTo = t;
n && r.pause();
r.vars.before(r);
r.syncExists && !a && v.sync("animate");
r.vars.controlNav && v.controlNav.active();
h || r.slides.removeClass(i + "active-slide").eq(t).addClass(i + "active-slide");
r.atEnd = t === 0 || t === r.last;
r.vars.directionNav && v.directionNav.update();
if (t === r.last) {
r.vars.end(r);
r.vars.animationLoop || r.pause()
}
if (!p) {
var m = l ? r.slides.filter(":first").height() : r.computedW, g, y, b;
if (h) {
g = r.vars.itemMargin;
b = (r.itemW + g) * r.move * r.animatingTo;
y = b > r.limit && r.visible !== 1 ? r.limit : b
} else 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;
r.setProps(y, "", r.vars.animationSpeed);
if (r.transitions) {
if (!r.vars.animationLoop || !r.atEnd) {
r.animating = !1;
r.currentSlide = r.animatingTo
}
r.container.unbind("webkitTransitionEnd transitionend");
r.container.bind("webkitTransitionEnd transitionend", function () {
r.wrapup(m)
})
} else r.container.animate(r.args, r.vars.animationSpeed, r.vars.easing, function () {
r.wrapup(m)
})
} else if (!o) {
r.slides.eq(r.currentSlide).css({zIndex: 1}).animate({opacity: 0}, r.vars.animationSpeed, r.vars.easing);
r.slides.eq(t).css({zIndex: 2}).animate({opacity: 1}, r.vars.animationSpeed, r.vars.easing, r.wrapup)
} else {
r.slides.eq(r.currentSlide).css({opacity: 0, zIndex: 1});
r.slides.eq(t).css({opacity: 1, zIndex: 2});
r.wrapup(m)
}
r.vars.smoothHeight && v.smoothHeight(r.vars.animationSpeed)
}
};
r.wrapup = function (e) {
!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"));
r.animating = !1;
r.currentSlide = r.animatingTo;
r.vars.after(r)
};
r.animateSlides = function () {
!r.animating && m && r.flexAnimate(r.getTarget("next"))
};
r.pause = function () {
clearInterval(r.animatedSlides);
r.animatedSlides = null;
r.playing = !1;
r.vars.pausePlay && v.pausePlay.update("play");
r.syncExists && v.sync("pause")
};
r.play = function () {
r.playing && clearInterval(r.animatedSlides);
r.animatedSlides = r.animatedSlides || setInterval(r.animateSlides, r.vars.slideshowSpeed);
r.started = r.playing = !0;
r.vars.pausePlay && v.pausePlay.update("pause");
r.syncExists && v.sync("play")
};
r.stop = function () {
r.pause();
r.stopped = !0
};
r.canAdvance = function (e, t) {
var n = d ? r.pagingCount - 1 : r.last;
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
};
r.getTarget = function (e) {
r.direction = e;
return e === "next" ? r.currentSlide === r.last ? 0 : r.currentSlide + 1 : r.currentSlide === 0 ? r.last : r.currentSlide - 1
};
r.setProps = function (e, t, n) {
var i = function () {
var n = e ? e : (r.itemW + r.vars.itemMargin) * r.move * r.animatingTo, i = function () {
if (h)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;
switch (t) {
case"setTotal":
return c ? (r.count - 1 - r.currentSlide + r.cloneOffset) * e : (r.currentSlide + r.cloneOffset) * e;
case"setTouch":
return c ? e : e;
case"jumpEnd":
return c ? e : r.count * e;
case"jumpStart":
return c ? r.count * e : e;
default:
return e
}
}();
return i * -1 + "px"
}();
if (r.transitions) {
i = l ? "translate3d(0," + i + ",0)" : "translate3d(" + i + ",0,0)";
n = n !== undefined ? n / 1e3 + "s" : "0s";
r.container.css("-" + r.pfx + "-transition-duration", n);
r.container.css("transition-duration", n)
}
r.args[r.prop] = i;
(r.transitions || n === undefined) && r.container.css(r.args);
r.container.css("transform", i)
};
r.setup = function (t) {
if (!p) {
var n, s;
if (t === "init") {
r.viewport = e('
').css({
overflow: "hidden",
position: "relative"
}).appendTo(r).append(r.container);
r.cloneCount = 0;
r.cloneOffset = 0;
if (c) {
s = e.makeArray(r.slides).reverse();
r.slides = e(s);
r.container.empty().append(r.slides)
}
}
if (r.vars.animationLoop && !h) {
r.cloneCount = 2;
r.cloneOffset = 1;
t !== "init" && r.container.find(".clone").remove();
r.container.append(r.slides.first().clone().addClass("clone").attr("aria-hidden", "true")).prepend(r.slides.last().clone().addClass("clone").attr("aria-hidden", "true"));
v.uniqueID(r.slides.first().clone().addClass("clone")).appendTo(r.container);
v.uniqueID(r.slides.last().clone().addClass("clone")).prependTo(r.container)
}
r.newSlides = e(r.vars.selector, r);
n = c ? r.count - 1 - r.currentSlide + r.cloneOffset : r.currentSlide + r.cloneOffset;
if (l && !h) {
r.container.height((r.count + r.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
setTimeout(function () {
r.newSlides.css({display: "block"});
r.doMath();
r.viewport.height(r.h);
r.setProps(n * r.h, "init")
}, t === "init" ? 100 : 0)
} else {
r.container.width((r.count + r.cloneCount) * 200 + "%");
r.setProps(n * r.computedW, "init");
setTimeout(function () {
r.doMath();
r.newSlides.css({width: r.computedW, "float": "left", display: "block"});
r.vars.smoothHeight && v.smoothHeight()
}, t === "init" ? 100 : 0)
}
} else {
r.slides.css({width: "100%", "float": "left", marginRight: "-100%", position: "relative"});
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));
r.vars.smoothHeight && v.smoothHeight()
}
h || r.slides.removeClass(i + "active-slide").eq(r.currentSlide).addClass(i + "active-slide");
r.vars.init(r)
};
r.doMath = function () {
var e = r.slides.first(), t = r.vars.itemMargin, n = r.vars.minItems, i = r.vars.maxItems;
r.w = r.viewport === undefined ? r.width() : r.viewport.width();
r.h = e.height();
r.boxPadding = e.outerWidth() - e.width();
if (h) {
r.itemT = r.vars.itemWidth + t;
r.minW = n ? n * r.itemT : r.w;
r.maxW = i ? i * r.itemT - t : r.w;
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;
r.visible = Math.floor(r.w / r.itemW);
r.move = r.vars.move > 0 && r.vars.move < r.visible ? r.vars.move : r.visible;
r.pagingCount = Math.ceil((r.count - r.visible) / r.move + 1);
r.last = r.pagingCount - 1;
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
} else {
r.itemW = r.w;
r.pagingCount = r.count;
r.last = r.count - 1
}
r.computedW = r.itemW - r.boxPadding
};
r.update = function (e, t) {
r.doMath();
if (!h) {
e < r.currentSlide ? r.currentSlide += 1 : e <= r.currentSlide && e !== 0 && (r.currentSlide -= 1);
r.animatingTo = r.currentSlide
}
if (r.vars.controlNav && !r.manualControls)if (t === "add" && !h || r.pagingCount > r.controlNav.length)v.controlNav.update("add"); else if (t === "remove" && !h || r.pagingCount < r.controlNav.length) {
if (h && r.currentSlide > r.last) {
r.currentSlide -= 1;
r.animatingTo -= 1
}
v.controlNav.update("remove", r.last)
}
r.vars.directionNav && v.directionNav.update()
};
r.addSlide = function (t, n) {
var i = e(t);
r.count += 1;
r.last = r.count - 1;
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);
r.update(n, "add");
r.slides = e(r.vars.selector + ":not(.clone)", r);
r.setup();
r.vars.added(r)
};
r.removeSlide = function (t) {
var n = isNaN(t) ? r.slides.index(e(t)) : t;
r.count -= 1;
r.last = r.count - 1;
isNaN(t) ? e(t, r.slides).remove() : l && c ? r.slides.eq(r.last).remove() : r.slides.eq(t).remove();
r.doMath();
r.update(n, "remove");
r.slides = e(r.vars.selector + ":not(.clone)", r);
r.setup();
r.vars.removed(r)
};
v.init()
};
e(window).blur(function (e) {
focused = !1
}).focus(function (e) {
focused = !0
});
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 () {
},
before: function () {
},
after: function () {
},
end: function () {
},
added: function () {
},
removed: function () {
},
init: function () {
}
};
e.fn.flexslider = function (t) {
t === undefined && (t = {});
if (typeof t == "object")return this.each(function () {
var n = e(this), r = t.selector ? t.selector : ".slides > li", i = n.find(r);
if (i.length === 1 && t.allowOneSlide === !0 || i.length === 0) {
i.fadeIn(400);
t.start && t.start(n)
} else n.data("flexslider") === undefined && new e.flexslider(this, t)
});
var n = e(this).data("flexslider");
switch (t) {
case"play":
n.play();
break;
case"pause":
n.pause();
break;
case"stop":
n.stop();
break;
case"next":
n.flexAnimate(n.getTarget("next"), !0);
break;
case"prev":
case"previous":
n.flexAnimate(n.getTarget("prev"), !0);
break;
default:
typeof t == "number" && n.flexAnimate(t, !0)
}
}
})(jQuery);
//Responsive Menu
/*!
* jQuery meanMenu v2.0.8
* @Copyright (C) 2012-2014 Chris Wharton @ MeanThemes (https://github.com/meanthemes/meanMenu)
*
*/
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
* HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR
* FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE
* OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
* COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.COPYRIGHT HOLDERS WILL NOT
* BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL
* DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* Find more information at http://www.meanthemes.com/plugins/meanmenu/
*
*/
(function ($) {
"use strict";
$.fn.meanmenu = function (options) {
var defaults = {
meanMenuTarget: jQuery('.main-navigation'), // Target the current HTML markup you wish to replace
meanMenuContainer: 'body', // Choose where meanmenu will be placed within the HTML
meanMenuClose: "X", // single character you want to represent the close menu button
meanMenuCloseSize: "18px", // set font size of close button
meanMenuOpen: " ", // text/markup you want when menu is closed
meanRevealPosition: "right", // left right or center positions
meanRevealPositionDistance: "0", // Tweak the position of the menu
meanRevealColour: "", // override CSS colours for the reveal background
meanScreenWidth: "767", // set the screen width you want meanmenu to kick in at
meanNavPush: "", // set a height here in px, em or % if you want to budge your layout now the navigation is missing.
meanShowChildren: true, // true to show children in the menu, false to hide them
meanExpandableChildren: true, // true to allow expand/collapse children
meanExpand: "+", // single character you want to represent the expand for ULs
meanContract: "-", // single character you want to represent the contract for ULs
meanRemoveAttrs: false, // true to remove classes and IDs, false to keep them
onePage: false, // set to true for one page sites
meanDisplay: "block", // override display method for table cell based layouts e.g. table-cell
removeElements: "" // set to hide page elements
};
options = $.extend(defaults, options);
// get browser width
var currentWidth = window.innerWidth || document.documentElement.clientWidth;
return this.each(function () {
var meanMenu = options.meanMenuTarget;
var meanContainer = options.meanMenuContainer;
var meanMenuClose = options.meanMenuClose;
var meanMenuCloseSize = options.meanMenuCloseSize;
var meanMenuOpen = options.meanMenuOpen;
var meanRevealPosition = options.meanRevealPosition;
var meanRevealPositionDistance = options.meanRevealPositionDistance;
var meanRevealColour = options.meanRevealColour;
var meanScreenWidth = options.meanScreenWidth;
var meanNavPush = options.meanNavPush;
var meanRevealClass = ".meanmenu-reveal";
var meanShowChildren = options.meanShowChildren;
var meanExpandableChildren = options.meanExpandableChildren;
var meanExpand = options.meanExpand;
var meanContract = options.meanContract;
var meanRemoveAttrs = options.meanRemoveAttrs;
var onePage = options.onePage;
var meanDisplay = options.meanDisplay;
var removeElements = options.removeElements;
//detect known mobile/tablet usage
var isMobile = false;
if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)) || (navigator.userAgent.match(/Android/i)) || (navigator.userAgent.match(/Blackberry/i)) || (navigator.userAgent.match(/Windows Phone/i))) {
isMobile = true;
}
if ((navigator.userAgent.match(/MSIE 8/i)) || (navigator.userAgent.match(/MSIE 7/i))) {
// add scrollbar for IE7 & 8 to stop breaking resize function on small content sites
jQuery('html').css("overflow-y", "scroll");
}
var meanRevealPos = "";
var meanCentered = function () {
if (meanRevealPosition === "center") {
var newWidth = window.innerWidth || document.documentElement.clientWidth;
var meanCenter = ( (newWidth / 2) - 22 ) + "px";
meanRevealPos = "left:" + meanCenter + ";right:auto;";
if (!isMobile) {
jQuery('.meanmenu-reveal').css("left", meanCenter);
} else {
jQuery('.meanmenu-reveal').animate({
left: meanCenter
});
}
}
};
var menuOn = false;
var meanMenuExist = false;
if (meanRevealPosition === "right") {
meanRevealPos = "right:" + meanRevealPositionDistance + ";left:auto;";
}
if (meanRevealPosition === "left") {
meanRevealPos = "left:" + meanRevealPositionDistance + ";right:auto;";
}
// run center function
meanCentered();
// set all styles for mean-reveal
var $navreveal = "";
var meanInner = function () {
// get last class name
if (jQuery($navreveal).is(".meanmenu-reveal.meanclose")) {
$navreveal.html(meanMenuClose);
} else {
$navreveal.html(meanMenuOpen);
}
};
// re-instate original nav (and call this on window.width functions)
var meanOriginal = function () {
jQuery('.mean-bar,.mean-push').remove();
jQuery(meanContainer).removeClass("mean-container");
jQuery(meanMenu).css('display', meanDisplay);
menuOn = false;
meanMenuExist = false;
jQuery(removeElements).removeClass('mean-remove');
};
// navigation reveal
var showMeanMenu = function () {
var meanStyles = "background:" + meanRevealColour + ";color:" + meanRevealColour + ";" + meanRevealPos;
if (currentWidth <= meanScreenWidth) {
jQuery(removeElements).addClass('mean-remove');
meanMenuExist = true;
// add class to body so we don't need to worry about media queries here, all CSS is wrapped in '.mean-container'
jQuery(meanContainer).addClass("mean-container");
jQuery('.mean-container').prepend('
');
//push meanMenu navigation into .mean-nav
var meanMenuContents = jQuery(meanMenu).html();
jQuery('.mean-nav').html(meanMenuContents);
// remove all classes from EVERYTHING inside meanmenu nav
if (meanRemoveAttrs) {
jQuery('nav.mean-nav ul, nav.mean-nav ul *').each(function () {
// First check if this has mean-remove class
if (jQuery(this).is('.mean-remove')) {
jQuery(this).attr('class', 'mean-remove');
} else {
jQuery(this).removeAttr("class");
}
jQuery(this).removeAttr("id");
});
}
// push in a holder div (this can be used if removal of nav is causing layout issues)
jQuery(meanMenu).before('
');
jQuery('.mean-push').css("margin-top", meanNavPush);
// hide current navigation and reveal mean nav link
jQuery(meanMenu).hide();
jQuery(".meanmenu-reveal").show();
// turn 'X' on or off
jQuery(meanRevealClass).html(meanMenuOpen);
$navreveal = jQuery(meanRevealClass);
//hide mean-nav ul
jQuery('.mean-nav ul').hide();
// hide sub nav
if (meanShowChildren) {
// allow expandable sub nav(s)
if (meanExpandableChildren) {
jQuery('.mean-nav ul ul').each(function () {
if (jQuery(this).children().length) {
jQuery(this, 'li:first').parent().append('' + meanExpand + ' ');
}
});
jQuery('.mean-expand').on("click", function (e) {
e.preventDefault();
if (jQuery(this).hasClass("mean-clicked")) {
jQuery(this).text(meanExpand);
jQuery(this).prev('ul').slideUp(300, function () {
});
} else {
jQuery(this).text(meanContract);
jQuery(this).prev('ul').slideDown(300, function () {
});
}
jQuery(this).toggleClass("mean-clicked");
});
} else {
jQuery('.mean-nav ul ul').show();
}
} else {
jQuery('.mean-nav ul ul').hide();
}
// add last class to tidy up borders
jQuery('.mean-nav ul li').last().addClass('mean-last');
$navreveal.removeClass("meanclose");
jQuery($navreveal).click(function (e) {
e.preventDefault();
if (menuOn === false) {
$navreveal.css("text-align", "center");
$navreveal.css("text-indent", "0");
$navreveal.css("font-size", meanMenuCloseSize);
jQuery('.mean-nav ul:first').slideDown();
menuOn = true;
} else {
jQuery('.mean-nav ul:first').slideUp();
menuOn = false;
}
$navreveal.toggleClass("meanclose");
meanInner();
jQuery(removeElements).addClass('mean-remove');
});
// for one page websites, reset all variables...
if (onePage) {
jQuery('.mean-nav ul > li > a:first-child').on("click", function () {
jQuery('.mean-nav ul:first').slideUp();
menuOn = false;
jQuery($navreveal).toggleClass("meanclose").html(meanMenuOpen);
});
}
} else {
meanOriginal();
}
};
if (!isMobile) {
// reset menu on resize above meanScreenWidth
jQuery(window).resize(function () {
currentWidth = window.innerWidth || document.documentElement.clientWidth;
if (currentWidth > meanScreenWidth) {
meanOriginal();
} else {
meanOriginal();
}
if (currentWidth <= meanScreenWidth) {
showMeanMenu();
meanCentered();
} else {
meanOriginal();
}
});
}
jQuery(window).resize(function () {
// get browser width
currentWidth = window.innerWidth || document.documentElement.clientWidth;
if (!isMobile) {
meanOriginal();
if (currentWidth <= meanScreenWidth) {
showMeanMenu();
meanCentered();
}
} else {
meanCentered();
if (currentWidth <= meanScreenWidth) {
if (meanMenuExist === false) {
showMeanMenu();
}
} else {
meanOriginal();
}
}
});
// run main menuMenu function on load
showMeanMenu();
});
};
})(jQuery);
// Generated by CoffeeScript 1.4.0
/*
jQuery Waypoints - v2.0.2
Copyright (c) 2011-2013 Caleb Troughton
Dual licensed under the MIT license and GPL license.
https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
*/
(function () {
var t = [].indexOf || function (t) {
for (var e = 0, n = this.length; e < n; e++) {
if (e in this && this[e] === t)return e
}
return -1
}, e = [].slice;
(function (t, e) {
if (typeof define === "function" && define.amd) {
return define("waypoints", ["jquery"], function (n) {
return e(n, t)
})
} else {
return e(t.jQuery, t)
}
})(this, function (n, r) {
var i, o, l, s, f, u, a, c, h, d, p, y, v, w, g, m;
i = n(r);
c = t.call(r, "ontouchstart") >= 0;
s = {horizontal: {}, vertical: {}};
f = 1;
a = {};
u = "waypoints-context-id";
p = "resize.waypoints";
y = "scroll.waypoints";
v = 1;
w = "waypoints-waypoint-ids";
g = "waypoint";
m = "waypoints";
o = function () {
function t(t) {
var e = this;
this.$element = t;
this.element = t[0];
this.didResize = false;
this.didScroll = false;
this.id = "context" + f++;
this.oldScroll = {x: t.scrollLeft(), y: t.scrollTop()};
this.waypoints = {horizontal: {}, vertical: {}};
t.data(u, this.id);
a[this.id] = this;
t.bind(y, function () {
var t;
if (!(e.didScroll || c)) {
e.didScroll = true;
t = function () {
e.doScroll();
return e.didScroll = false
};
return r.setTimeout(t, n[m].settings.scrollThrottle)
}
});
t.bind(p, function () {
var t;
if (!e.didResize) {
e.didResize = true;
t = function () {
n[m]("refresh");
return e.didResize = false
};
return r.setTimeout(t, n[m].settings.resizeThrottle)
}
})
}
t.prototype.doScroll = function () {
var t, e = this;
t = {
horizontal: {
newScroll: this.$element.scrollLeft(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left"
},
vertical: {
newScroll: this.$element.scrollTop(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up"
}
};
if (c && (!t.vertical.oldScroll || !t.vertical.newScroll)) {
n[m]("refresh")
}
n.each(t, function (t, r) {
var i, o, l;
l = [];
o = r.newScroll > r.oldScroll;
i = o ? r.forward : r.backward;
n.each(e.waypoints[t], function (t, e) {
var n, i;
if (r.oldScroll < (n = e.offset) && n <= r.newScroll) {
return l.push(e)
} else if (r.newScroll < (i = e.offset) && i <= r.oldScroll) {
return l.push(e)
}
});
l.sort(function (t, e) {
return t.offset - e.offset
});
if (!o) {
l.reverse()
}
return n.each(l, function (t, e) {
if (e.options.continuous || t === l.length - 1) {
return e.trigger([i])
}
})
});
return this.oldScroll = {x: t.horizontal.newScroll, y: t.vertical.newScroll}
};
t.prototype.refresh = function () {
var t, e, r, i = this;
r = n.isWindow(this.element);
e = this.$element.offset();
this.doScroll();
t = {
horizontal: {
contextOffset: r ? 0 : e.left,
contextScroll: r ? 0 : this.oldScroll.x,
contextDimension: this.$element.width(),
oldScroll: this.oldScroll.x,
forward: "right",
backward: "left",
offsetProp: "left"
},
vertical: {
contextOffset: r ? 0 : e.top,
contextScroll: r ? 0 : this.oldScroll.y,
contextDimension: r ? n[m]("viewportHeight") : this.$element.height(),
oldScroll: this.oldScroll.y,
forward: "down",
backward: "up",
offsetProp: "top"
}
};
return n.each(t, function (t, e) {
return n.each(i.waypoints[t], function (t, r) {
var i, o, l, s, f;
i = r.options.offset;
l = r.offset;
o = n.isWindow(r.element) ? 0 : r.$element.offset()[e.offsetProp];
if (n.isFunction(i)) {
i = i.apply(r.element)
} else if (typeof i === "string") {
i = parseFloat(i);
if (r.options.offset.indexOf("%") > -1) {
i = Math.ceil(e.contextDimension * i / 100)
}
}
r.offset = o - e.contextOffset + e.contextScroll - i;
if (r.options.onlyOnScroll && l != null || !r.enabled) {
return
}
if (l !== null && l < (s = e.oldScroll) && s <= r.offset) {
return r.trigger([e.backward])
} else if (l !== null && l > (f = e.oldScroll) && f >= r.offset) {
return r.trigger([e.forward])
} else if (l === null && e.oldScroll >= r.offset) {
return r.trigger([e.forward])
}
})
})
};
t.prototype.checkEmpty = function () {
if (n.isEmptyObject(this.waypoints.horizontal) && n.isEmptyObject(this.waypoints.vertical)) {
this.$element.unbind([p, y].join(" "));
return delete a[this.id]
}
};
return t
}();
l = function () {
function t(t, e, r) {
var i, o;
r = n.extend({}, n.fn[g].defaults, r);
if (r.offset === "bottom-in-view") {
r.offset = function () {
var t;
t = n[m]("viewportHeight");
if (!n.isWindow(e.element)) {
t = e.$element.height()
}
return t - n(this).outerHeight()
}
}
this.$element = t;
this.element = t[0];
this.axis = r.horizontal ? "horizontal" : "vertical";
this.callback = r.handler;
this.context = e;
this.enabled = r.enabled;
this.id = "waypoints" + v++;
this.offset = null;
this.options = r;
e.waypoints[this.axis][this.id] = this;
s[this.axis][this.id] = this;
i = (o = t.data(w)) != null ? o : [];
i.push(this.id);
t.data(w, i)
}
t.prototype.trigger = function (t) {
if (!this.enabled) {
return
}
if (this.callback != null) {
this.callback.apply(this.element, t)
}
if (this.options.triggerOnce) {
return this.destroy()
}
};
t.prototype.disable = function () {
return this.enabled = false
};
t.prototype.enable = function () {
this.context.refresh();
return this.enabled = true
};
t.prototype.destroy = function () {
delete s[this.axis][this.id];
delete this.context.waypoints[this.axis][this.id];
return this.context.checkEmpty()
};
t.getWaypointsByElement = function (t) {
var e, r;
r = n(t).data(w);
if (!r) {
return []
}
e = n.extend({}, s.horizontal, s.vertical);
return n.map(r, function (t) {
return e[t]
})
};
return t
}();
d = {
init: function (t, e) {
var r;
if (e == null) {
e = {}
}
if ((r = e.handler) == null) {
e.handler = t
}
this.each(function () {
var t, r, i, s;
t = n(this);
i = (s = e.context) != null ? s : n.fn[g].defaults.context;
if (!n.isWindow(i)) {
i = t.closest(i)
}
i = n(i);
r = a[i.data(u)];
if (!r) {
r = new o(i)
}
return new l(t, r, e)
});
n[m]("refresh");
return this
}, disable: function () {
return d._invoke(this, "disable")
}, enable: function () {
return d._invoke(this, "enable")
}, destroy: function () {
return d._invoke(this, "destroy")
}, prev: function (t, e) {
return d._traverse.call(this, t, e, function (t, e, n) {
if (e > 0) {
return t.push(n[e - 1])
}
})
}, next: function (t, e) {
return d._traverse.call(this, t, e, function (t, e, n) {
if (e < n.length - 1) {
return t.push(n[e + 1])
}
})
}, _traverse: function (t, e, i) {
var o, l;
if (t == null) {
t = "vertical"
}
if (e == null) {
e = r
}
l = h.aggregate(e);
o = [];
this.each(function () {
var e;
e = n.inArray(this, l[t]);
return i(o, e, l[t])
});
return this.pushStack(o)
}, _invoke: function (t, e) {
t.each(function () {
var t;
t = l.getWaypointsByElement(this);
return n.each(t, function (t, n) {
n[e]();
return true
})
});
return this
}
};
n.fn[g] = function () {
var t, r;
r = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : [];
if (d[r]) {
return d[r].apply(this, t)
} else if (n.isFunction(r)) {
return d.init.apply(this, arguments)
} else if (n.isPlainObject(r)) {
return d.init.apply(this, [null, r])
} else if (!r) {
return n.error("jQuery Waypoints needs a callback function or handler option.")
} else {
return n.error("The " + r + " method does not exist in jQuery Waypoints.")
}
};
n.fn[g].defaults = {
context: r,
continuous: true,
enabled: true,
horizontal: false,
offset: 0,
triggerOnce: false
};
h = {
refresh: function () {
return n.each(a, function (t, e) {
return e.refresh()
})
}, viewportHeight: function () {
var t;
return (t = r.innerHeight) != null ? t : i.height()
}, aggregate: function (t) {
var e, r, i;
e = s;
if (t) {
e = (i = a[n(t).data(u)]) != null ? i.waypoints : void 0
}
if (!e) {
return []
}
r = {horizontal: [], vertical: []};
n.each(r, function (t, i) {
n.each(e[t], function (t, e) {
return i.push(e)
});
i.sort(function (t, e) {
return t.offset - e.offset
});
r[t] = n.map(i, function (t) {
return t.element
});
return r[t] = n.unique(r[t])
});
return r
}, above: function (t) {
if (t == null) {
t = r
}
return h._filter(t, "vertical", function (t, e) {
return e.offset <= t.oldScroll.y
})
}, below: function (t) {
if (t == null) {
t = r
}
return h._filter(t, "vertical", function (t, e) {
return e.offset > t.oldScroll.y
})
}, left: function (t) {
if (t == null) {
t = r
}
return h._filter(t, "horizontal", function (t, e) {
return e.offset <= t.oldScroll.x
})
}, right: function (t) {
if (t == null) {
t = r
}
return h._filter(t, "horizontal", function (t, e) {
return e.offset > t.oldScroll.x
})
}, enable: function () {
return h._invoke("enable")
}, disable: function () {
return h._invoke("disable")
}, destroy: function () {
return h._invoke("destroy")
}, extendFn: function (t, e) {
return d[t] = e
}, _invoke: function (t) {
var e;
e = n.extend({}, s.vertical, s.horizontal);
return n.each(e, function (e, n) {
n[t]();
return true
})
}, _filter: function (t, e, r) {
var i, o;
i = a[n(t).data(u)];
if (!i) {
return []
}
o = [];
n.each(i.waypoints[e], function (t, e) {
if (r(i, e)) {
return o.push(e)
}
});
o.sort(function (t, e) {
return t.offset - e.offset
});
return n.map(o, function (t) {
return t.element
})
}
};
n[m] = function () {
var t, n;
n = arguments[0], t = 2 <= arguments.length ? e.call(arguments, 1) : [];
if (h[n]) {
return h[n].apply(null, t)
} else {
return h.aggregate.call(null, n)
}
};
n[m].settings = {resizeThrottle: 100, scrollThrottle: 30};
return i.load(function () {
return n[m]("refresh")
})
})
}).call(this);