/*!
* multiscroll.js 0.2.2
* https://github.com/alvarotrigo/multiscroll.js
* @license MIT licensed
*
* Copyright (C) 2016 alvarotrigo.com - A project by Alvaro Trigo
*/
! function(R, Y, I, W, X) {
R.fn.multiscroll = function(f) {
var o = R.fn.multiscroll;
f = R.extend({
verticalCentered: !0,
scrollingSpeed: 700,
easing: "easeInQuart",
menu: !1,
sectionsColor: [],
anchors: [],
navigation: !1,
navigationPosition: "right",
navigationColor: "#000",
navigationTooltips: [],
loopBottom: !1,
loopTop: !1,
css3: !1,
paddingTop: 0,
paddingBottom: 0,
fixedElements: null,
normalScrollElements: null,
keyboardScrolling: !0,
touchSensitivity: 5,
sectionSelector: ".ms-section",
leftSelector: ".ms-left",
rightSelector: ".ms-right",
afterLoad: null,
onLeave: null,
afterRender: null,
afterResize: null
}, f);
var h = 600,
n = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/),
i = "ontouchstart" in Y || 0 < navigator.msMaxTouchPoints || navigator.maxTouchPoints;
".ms-right" !== f.rightSelector && R(f.rightSelector).addClass("ms-right"), ".ms-left" !== f.leftSelector && R(f.leftSelector).addClass("ms-left");
var s, a, l, u = R(".ms-left").find(".ms-section").length,
p = !1,
r = R(Y).height(),
e = function() {
var e;
e = Y.PointerEvent ? {
down: "pointerdown",
move: "pointermove"
} : {
down: "MSPointerDown",
move: "MSPointerMove"
};
return e
}(),
t = {
touchmove: "ontouchmove" in Y ? "touchmove" : e.move,
touchstart: "ontouchstart" in Y ? "touchstart" : e.down
};
function c() {
var e = Y.location.hash.replace("#", "");
if (e.length) {
var t = R(".ms-left").find('[data-anchor="' + e + '"]');
("undefined" == typeof lastScrolledDestiny || e !== lastScrolledDestiny) && y(t)
}
}
function m(e) {
e.preventDefault();
var t = R(this).parent().index();
y(R(".ms-left .ms-section").eq(t))
}
function d() {
var e = R(this).data("tooltip");
R('
' + e + "
").hide().appendTo(R(this)).fadeIn(200)
}
function v() {
R(this).find(".multiscroll-tooltip").fadeOut(200, function() {
R(this).remove()
})
}
w(), z(), f.css3 && (f.css3 = function() {
var e, t = I.createElement("p"),
n = {
webkitTransform: "-webkit-transform",
OTransform: "-o-transform",
msTransform: "-ms-transform",
MozTransform: "-moz-transform",
transform: "transform"
};
for (var o in I.body.insertBefore(t, null), n) t.style[o] !== X && (t.style[o] = "translate3d(1px,1px,1px)", e = Y.getComputedStyle(t).getPropertyValue(n[o]));
return I.body.removeChild(t), e !== X && 0 < e.length && "none" !== e
}()), R("html, body").css({
overflow: "hidden",
height: "100%"
}), ".ms-section" !== f.sectionSelector && R(f.sectionSelector).each(function() {
R(this).addClass("ms-section")
}), f.navigation && (R("body").append(''), (s = R("#multiscroll-nav")).css("color", f.navigationColor), s.addClass(f.navigationPosition)), R(".ms-right, .ms-left").css({
width: "50%",
position: "absolute",
height: "100%",
"-ms-touch-action": "none"
}), R(".ms-right").css({
right: "1px",
top: "0",
"-ms-touch-action": "none",
"touch-action": "none"
}), R(".ms-left").css({
left: "0",
top: "0",
"-ms-touch-action": "none",
"touch-action": "none"
}), R(".ms-left .ms-section, .ms-right .ms-section").each(function() {
var e, t = R(this).index();
if ((f.paddingTop || f.paddingBottom) && R(this).css("padding", f.paddingTop + " 0 " + f.paddingBottom + " 0"), void 0 !== f.sectionsColor[t] && R(this).css("background-color", f.sectionsColor[t]), void 0 !== f.anchors[t] && R(this).attr("data-anchor", f.anchors[t]), f.verticalCentered && (e = R(this)).addClass("ms-table").wrapInner(''), R(this).closest(".ms-left").length && f.navigation) {
var n = "";
f.anchors.length && (n = f.anchors[t]);
var o = f.navigationTooltips[t];
void 0 === o && (o = ""), f.navigation && s.find("ul").append('')
}
}), R(".ms-right").html(R(".ms-right").find(".ms-section").get().reverse()), R(".ms-left .ms-section, .ms-right .ms-section").each(function() {
var e = R(this).index();
R(this).css({
height: "100%"
}), !e && f.navigation && s.find("li").eq(e).find("a").addClass("active")
}).promise().done(function() {
R(".ms-left .ms-section.active").length || (R(".ms-right").find(".ms-section").last().addClass("active"), R(".ms-left").find(".ms-section").first().addClass("active")), f.navigation && s.css("margin-top", "-" + s.height() / 2 + "px"), R.isFunction(f.afterRender) && f.afterRender.call(this), b(), E(), R(Y).on("load", function() {
var e, t;
e = Y.location.hash.replace("#", ""), t = R('.ms-left .ms-section[data-anchor="' + e + '"]'), e.length && y(t)
})
}), R(Y).on("hashchange", c), R(I).keydown(function(e) {
clearTimeout(l);
var t = R(I.activeElement);
if (!t.is("textarea") && !t.is("input") && !t.is("select") && f.keyboardScrolling) {
var n = e.which; - 1 < R.inArray(n, [40, 38, 32, 33, 34]) && e.preventDefault(), l = setTimeout(function() {
! function(e) {
var t = e.shiftKey;
switch (e.which) {
case 38:
case 33:
o.moveSectionUp();
break;
case 32:
if (t) {
o.moveSectionUp();
break
}
case 40:
case 34:
o.moveSectionDown();
break;
case 36:
o.moveTo(1);
break;
case 35:
o.moveTo(R(".ms-left .ms-section").length);
break;
default:
;
}
}(e)
}, 150)
}
}), R(I).mousedown(function(e) {
if (1 == e.button) return e.preventDefault(), !1
}), R(I).on("click", "#multiscroll-nav a", m), R(I).on({
mouseenter: d,
mouseleave: v
}, "#multiscroll-nav li"), f.normalScrollElements && (R(I).on("mouseenter", f.normalScrollElements, function() {
o.setMouseWheelScrolling(!1)
}), R(I).on("mouseleave", f.normalScrollElements, function() {
o.setMouseWheelScrolling(!0)
})), R(Y).on("resize", S);
var g = r;
function S() {
if (n) {
var e = R(I.activeElement);
if (!e.is("textarea") && !e.is("input") && !e.is("select")) {
var t = R(Y).height();
W.abs(t - g) > 20 * W.max(g, t) / 100 && (x(!0), g = t)
}
} else clearTimeout(a), a = setTimeout(function() {
x(!0)
}, 350)
}
function x(e) {
r = R(Y).height(), R(".ms-tableCell").each(function() {
R(this).css({
height: L(R(this).parent())
})
}), f.scrollOverflow && scrollBarHandler.createScrollBarForAll(), b(), R.isFunction(f.afterResize) && f.afterResize.call(this)
}
function b() {
f.css3 ? (T(R(".ms-left"), "translate3d(0px, -" + R(".ms-left").find(".ms-section.active").position().top + "px, 0px)", !1), T(R(".ms-right"), "translate3d(0px, -" + R(".ms-right").find(".ms-section.active").position().top + "px, 0px)", !1)) : (R(".ms-left").css("top", -R(".ms-left").find(".ms-section.active").position().top), R(".ms-right").css("top", -R(".ms-right").find(".ms-section.active").position().top))
}
function y(e) {
var t = e.index(),
n = R(".ms-right").find(".ms-section").eq(u - 1 - t),
o = e.data("anchor"),
i = R(".ms-left .ms-section.active").index() + 1,
s = function(e) {
var t = R(".ms-left .ms-section.active").index(),
n = e.index();
if (n < t) return "up";
return "down"
}(e);
p = !0;
var a, l, r, c = e.position().top,
m = n.position().top;
if (n.addClass("active").siblings().removeClass("active"), e.addClass("active").siblings().removeClass("active"), function(e) {
f.anchors.length && (location.hash = e);
E()
}(o), f.css3) {
R.isFunction(f.onLeave) && f.onLeave.call(this, i, t + 1, s);
var d = "translate3d(0px, -" + c + "px, 0px)",
v = "translate3d(0px, -" + m + "px, 0px)";
T(R(".ms-left"), d, !0), T(R(".ms-right"), v, !0), setTimeout(function() {
R.isFunction(f.afterLoad) && f.afterLoad.call(this, o, t + 1), setTimeout(function() {
p = !1
}, h)
}, f.scrollingSpeed)
} else R.isFunction(f.onLeave) && f.onLeave.call(this, i, t + 1, s), R(".ms-left").animate({
top: -c
}, f.scrollingSpeed, f.easing, function() {
R.isFunction(f.afterLoad) && f.afterLoad.call(this, o, t + 1), setTimeout(function() {
p = !1
}, h)
}), R(".ms-right").animate({
top: -m
}, f.scrollingSpeed, f.easing);
lastScrolledDestiny = o, a = o, f.menu && (R(f.menu).find(".active").removeClass("active"), R(f.menu).find('[data-menuanchor="' + a + '"]').addClass("active")), l = o, r = t, f.navigation && (R("#multiscroll-nav").find(".active").removeClass("active"), l ? R("#multiscroll-nav").find('a[href="#' + l + '"]').addClass("active") : R("#multiscroll-nav").find("li").eq(r).find("a").addClass("active"))
}
function w() {
I.addEventListener ? (I.addEventListener("mousewheel", C, !1), I.addEventListener("wheel", C, !1)) : I.attachEvent("onmousewheel", C)
}
function C(e) {
e = Y.event || e;
var t = W.max(-1, W.min(1, e.wheelDelta || -e.deltaY || -e.detail));
return p || (t < 0 ? o.moveSectionDown() : o.moveSectionUp()), !1
}
function T(e, t, n) {
var o;
e.toggleClass("ms-easing", n), e.css({
"-webkit-transform": o = t,
"-moz-transform": o,
"-ms-transform": o,
transform: o
})
}
function E() {
var e = R(".ms-left .ms-section.active"),
t = e.data("anchor"),
n = e.index(),
o = String(n);
f.anchors.length && (o = t), o = o.replace("/", "-").replace("#", "");
var i = new RegExp("\\b\\s?ms-viewing-[^\\s]+\\b", "g");
R("body")[0].className = R("body")[0].className.replace(i, ""), R("body").addClass("ms-viewing-" + o)
}
function L(e) {
var t = r;
if (f.paddingTop || f.paddingBottom) {
var n = parseInt(e.css("padding-top")) + parseInt(e.css("padding-bottom"));
t = r - n
}
return t
}
o.moveSectionUp = function() {
var e = R(".ms-left .ms-section.active").prev(".ms-section");
!e.length && f.loopTop && (e = R(".ms-left .ms-section").last()), e.length && y(e)
}, o.moveSectionDown = function() {
var e = R(".ms-left .ms-section.active").next(".ms-section");
!e.length && f.loopBottom && (e = R(".ms-left .ms-section").first()), e.length && y(e)
}, o.moveTo = function(e) {
y(isNaN(e) ? R('.ms-left [data-anchor="' + e + '"]') : R(".ms-left .ms-section").eq(e - 1))
}, o.setKeyboardScrolling = function(e) {
f.keyboardScrolling = e
}, o.setMouseWheelScrolling = function(e) {
e ? w() : I.addEventListener ? (I.removeEventListener("mousewheel", C, !1), I.removeEventListener("wheel", C, !1)) : I.detachEvent("onmousewheel", C)
}, o.setScrollingSpeed = function(e) {
f.scrollingSpeed = e
};
var k = 0,
B = 0;
function D(e) {
if (M(e)) {
event.preventDefault();
R(".ms-left .ms-section.active");
if (!p) {
var t = F(e);
B = t.y, t.x, W.abs(k - B) > R(Y).height() / 100 * f.touchSensitivity && (B < k ? o.moveSectionDown() : k < B && o.moveSectionUp())
}
}
}
function M(e) {
return void 0 === e.pointerType || "mouse" != e.pointerType
}
function P(e) {
if (M(e)) {
var t = F(e);
k = t.y, t.x
}
}
function z() {
(i || n) && (I.removeEventListener(t.touchstart, P), I.removeEventListener(t.touchmove, D, {
passive: !1
}), I.addEventListener(t.touchstart, P), I.addEventListener(t.touchmove, D, {
passive: !1
}))
}
function F(e) {
var t = [];
return t.y = void 0 !== e.pageY && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY, t.x = void 0 !== e.pageX && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX, i && M(e) && void 0 !== e.touches && (t.y = e.touches[0].pageY, t.x = e.touches[0].pageX), t
}
o.destroy = function() {
o.setKeyboardScrolling(!1), o.setMouseWheelScrolling(!1), (i || n) && (I.removeEventListener(t.touchstart, P), I.removeEventListener(t.touchmove, D, {
passive: !1
})), R(Y).off("hashchange", c).off("resize", S), R(I).off("mouseenter", "#multiscroll-nav li").off("mouseleave", "#multiscroll-nav li").off("click", "#multiscroll-nav a")
}, o.build = function() {
o.setKeyboardScrolling(!0), o.setMouseWheelScrolling(!0), z(), R(Y).on("hashchange", c).on("resize", S), R(I).on("mouseenter", "#multiscroll-nav li", d).on("mouseleave", "#multiscroll-nav li", v).on("click", "#multiscroll-nav a", m)
}
}
}(jQuery, window, document, Math);
//# sourceMappingURL=jquery.multiscroll.min.js.map