jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, { def: "easeOutQuad", swing: function (e, t, n, a, i) { return jQuery.easing[jQuery.easing.def](e, t, n, a, i) }, easeInQuad: function (e, t, n, a, i) { return a * (t /= i) * t + n }, easeOutQuad: function (e, t, n, a, i) { return -a * (t /= i) * (t - 2) + n }, easeInOutQuad: function (e, t, n, a, i) { return (t /= i / 2) < 1 ? a / 2 * t * t + n : -a / 2 * (--t * (t - 2) - 1) + n }, easeInCubic: function (e, t, n, a, i) { return a * (t /= i) * t * t + n }, easeOutCubic: function (e, t, n, a, i) { return a * ((t = t / i - 1) * t * t + 1) + n }, easeInOutCubic: function (e, t, n, a, i) { return (t /= i / 2) < 1 ? a / 2 * t * t * t + n : a / 2 * ((t -= 2) * t * t + 2) + n }, easeInQuart: function (e, t, n, a, i) { return a * (t /= i) * t * t * t + n }, easeOutQuart: function (e, t, n, a, i) { return -a * ((t = t / i - 1) * t * t * t - 1) + n }, easeInOutQuart: function (e, t, n, a, i) { return (t /= i / 2) < 1 ? a / 2 * t * t * t * t + n : -a / 2 * ((t -= 2) * t * t * t - 2) + n }, easeInQuint: function (e, t, n, a, i) { return a * (t /= i) * t * t * t * t + n }, easeOutQuint: function (e, t, n, a, i) { return a * ((t = t / i - 1) * t * t * t * t + 1) + n }, easeInOutQuint: function (e, t, n, a, i) { return (t /= i / 2) < 1 ? a / 2 * t * t * t * t * t + n : a / 2 * ((t -= 2) * t * t * t * t + 2) + n }, easeInSine: function (e, t, n, a, i) { return -a * Math.cos(t / i * (Math.PI / 2)) + a + n }, easeOutSine: function (e, t, n, a, i) { return a * Math.sin(t / i * (Math.PI / 2)) + n }, easeInOutSine: function (e, t, n, a, i) { return -a / 2 * (Math.cos(Math.PI * t / i) - 1) + n }, easeInExpo: function (e, t, n, a, i) { return 0 == t ? n : a * Math.pow(2, 10 * (t / i - 1)) + n }, easeOutExpo: function (e, t, n, a, i) { return t == i ? n + a : a * (-Math.pow(2, -10 * t / i) + 1) + n }, easeInOutExpo: function (e, t, n, a, i) { return 0 == t ? n : t == i ? n + a : (t /= i / 2) < 1 ? a / 2 * Math.pow(2, 10 * (t - 1)) + n : a / 2 * (-Math.pow(2, -10 * --t) + 2) + n }, easeInCirc: function (e, t, n, a, i) { return -a * (Math.sqrt(1 - (t /= i) * t) - 1) + n }, easeOutCirc: function (e, t, n, a, i) { return a * Math.sqrt(1 - (t = t / i - 1) * t) + n }, easeInOutCirc: function (e, t, n, a, i) { return (t /= i / 2) < 1 ? -a / 2 * (Math.sqrt(1 - t * t) - 1) + n : a / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + n }, easeInElastic: function (e, t, n, a, i) { var r = 1.70158, o = 0, s = a; if (0 == t) return n; if (1 == (t /= i)) return n + a; if (o || (o = .3 * i), s < Math.abs(a)) { s = a; var r = o / 4 } else var r = o / (2 * Math.PI) * Math.asin(a / s); return -(s * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * i - r) * (2 * Math.PI) / o)) + n }, easeOutElastic: function (e, t, n, a, i) { var r = 1.70158, o = 0, s = a; if (0 == t) return n; if (1 == (t /= i)) return n + a; if (o || (o = .3 * i), s < Math.abs(a)) { s = a; var r = o / 4 } else var r = o / (2 * Math.PI) * Math.asin(a / s); return s * Math.pow(2, -10 * t) * Math.sin((t * i - r) * (2 * Math.PI) / o) + a + n }, easeInOutElastic: function (e, t, n, a, i) { var r = 1.70158, o = 0, s = a; if (0 == t) return n; if (2 == (t /= i / 2)) return n + a; if (o || (o = i * (.3 * 1.5)), s < Math.abs(a)) { s = a; var r = o / 4 } else var r = o / (2 * Math.PI) * Math.asin(a / s); return t < 1 ? -.5 * (s * Math.pow(2, 10 * (t -= 1)) * Math.sin((t * i - r) * (2 * Math.PI) / o)) + n : s * Math.pow(2, -10 * (t -= 1)) * Math.sin((t * i - r) * (2 * Math.PI) / o) * .5 + a + n }, easeInBack: function (e, t, n, a, i, r) { return void 0 == r && (r = 1.70158), a * (t /= i) * t * ((r + 1) * t - r) + n }, easeOutBack: function (e, t, n, a, i, r) { return void 0 == r && (r = 1.70158), a * ((t = t / i - 1) * t * ((r + 1) * t + r) + 1) + n }, easeInOutBack: function (e, t, n, a, i, r) { return void 0 == r && (r = 1.70158), (t /= i / 2) < 1 ? a / 2 * (t * t * (((r *= 1.525) + 1) * t - r)) + n : a / 2 * ((t -= 2) * t * (((r *= 1.525) + 1) * t + r) + 2) + n }, easeInBounce: function (e, t, n, a, i) { return a - jQuery.easing.easeOutBounce(e, i - t, 0, a, i) + n }, easeOutBounce: function (e, t, n, a, i) { return (t /= i) < 1 / 2.75 ? a * (7.5625 * t * t) + n : t < 2 / 2.75 ? a * (7.5625 * (t -= 1.5 / 2.75) * t + .75) + n : t < 2.5 / 2.75 ? a * (7.5625 * (t -= 2.25 / 2.75) * t + .9375) + n : a * (7.5625 * (t -= 2.625 / 2.75) * t + .984375) + n }, easeInOutBounce: function (e, t, n, a, i) { return t < i / 2 ? .5 * jQuery.easing.easeInBounce(e, 2 * t, 0, a, i) + n : .5 * jQuery.easing.easeOutBounce(e, 2 * t - i, 0, a, i) + .5 * a + n } }), function (e, t, n) { function a(e, t, n) { e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent("on" + t, n) } function i(e) { if ("keypress" == e.type) { var t = String.fromCharCode(e.which); return e.shiftKey || (t = t.toLowerCase()), t } return v[e.which] ? v[e.which] : m[e.which] ? m[e.which] : String.fromCharCode(e.which).toLowerCase() } function r(e) { e = e || {}; var t, n = !1; for (t in M) e[t] ? n = !0 : M[t] = 0; n || (S = !1) } function o(e, t, n, a, i, r) { var o, s, l = [], u = n.type; if (!b[e]) return []; for ("keyup" == u && c(e) && (t = [e]), o = 0; o < b[e].length; ++o) if (s = b[e][o], !(!a && s.seq && M[s.seq] != s.level || u != s.action || ("keypress" != u || n.metaKey || n.ctrlKey) && t.sort().join(",") !== s.modifiers.sort().join(","))) { var f = a && s.seq == a && s.level == r; (!a && s.combo == i || f) && b[e].splice(o, 1), l.push(s) } return l } function s(e) { var t = []; return e.shiftKey && t.push("shift"), e.altKey && t.push("alt"), e.ctrlKey && t.push("ctrl"), e.metaKey && t.push("meta"), t } function l(e, t, n, a) { I.stopCallback(t, t.target || t.srcElement, n, a) || !1 !== e(t, n) || (t.preventDefault ? t.preventDefault() : t.returnValue = !1, t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0) } function u(e) { "number" != typeof e.which && (e.which = e.keyCode); var t = i(e); t && ("keyup" == e.type && k === t ? k = !1 : I.handleKey(t, s(e), e)) } function c(e) { return "shift" == e || "ctrl" == e || "alt" == e || "meta" == e } function f(e, t, n, a) { function o(t) { return function () { S = t, ++M[e], clearTimeout(g), g = setTimeout(r, 1e3) } } function s(t) { l(n, t, e), "keyup" !== a && (k = i(t)), setTimeout(r, 10) } for (var u = M[e] = 0; u < t.length; ++u) { var c = u + 1 === t.length ? s : o(a || p(t[u + 1]).action); d(t[u], c, a, e, u) } } function p(e, t) { var n, a, i, r = []; for (n = "+" === e ? ["+"] : e.split("+"), i = 0; i < n.length; ++i) a = n[i], w[a] && (a = w[a]), t && "keypress" != t && y[a] && (a = y[a], r.push("shift")), c(a) && r.push(a); if (n = a, i = t, !i) { if (!h) { h = {}; for (var o in v) 95 < o && 112 > o || v.hasOwnProperty(o) && (h[v[o]] = o) } i = h[n] ? "keydown" : "keypress" } return "keypress" == i && r.length && (i = "keydown"), { key: a, modifiers: r, action: i } } function d(e, t, n, a, i) { $[e + ":" + n] = t, e = e.replace(/\s+/g, " "); var r = e.split(" "); 1 < r.length ? f(e, r, t, n) : (n = p(e, n), b[n.key] = b[n.key] || [], o(n.key, n.modifiers, { type: n.action }, a, e, i), b[n.key][a ? "unshift" : "push"]({ callback: t, modifiers: n.modifiers, action: n.action, seq: a, level: i, combo: e })) } var h, g, v = { 8: "backspace", 9: "tab", 13: "enter", 16: "shift", 17: "ctrl", 18: "alt", 20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home", 37: "left", 38: "up", 39: "right", 40: "down", 45: "ins", 46: "del", 91: "meta", 93: "meta", 224: "meta" }, m = { 106: "*", 107: "+", 109: "-", 110: ".", 111: "/", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" }, y = { "~": "`", "!": "1", "@": "2", "#": "3", $: "4", "%": "5", "^": "6", "&": "7", "*": "8", "(": "9", ")": "0", _: "-", "+": "=", ":": ";", '"': "'", "<": ",", ">": ".", "?": "/", "|": "\\" }, w = { option: "alt", command: "meta", "return": "enter", escape: "esc", mod: /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? "meta" : "ctrl" }, b = {}, $ = {}, M = {}, k = !1, C = !1, S = !1; for (n = 1; 20 > n; ++n) v[111 + n] = "f" + n; for (n = 0; 9 >= n; ++n) v[n + 96] = n; a(t, "keypress", u), a(t, "keydown", u), a(t, "keyup", u); var I = { bind: function (e, t, n) { e = e instanceof Array ? e : [e]; for (var a = 0; a < e.length; ++a) d(e[a], t, n); return this }, unbind: function (e, t) { return I.bind(e, function () { }, t) }, trigger: function (e, t) { return $[e + ":" + t] && $[e + ":" + t]({}, e), this }, reset: function () { return b = {}, $ = {}, this }, stopCallback: function (e, t) { return !(-1 < (" " + t.className + " ").indexOf(" mousetrap ")) && ("INPUT" == t.tagName || "SELECT" == t.tagName || "TEXTAREA" == t.tagName || t.isContentEditable) }, handleKey: function (e, t, n) { var a, i = o(e, t, n); t = {}; var s = 0, u = !1; for (a = 0; a < i.length; ++a) i[a].seq && (s = Math.max(s, i[a].level)); for (a = 0; a < i.length; ++a) i[a].seq ? i[a].level == s && (u = !0, t[i[a].seq] = 1, l(i[a].callback, n, i[a].combo, i[a].seq)) : u || l(i[a].callback, n, i[a].combo); i = "keypress" == n.type && C, n.type != S || c(e) || i || r(t), C = u && "keydown" == n.type } }; e.Mousetrap = I, "function" == typeof define && define.amd && define(I) }(window, document); var ScrollTo = { settings: {}, init: function () { this.settings; $(".scroll-marker").click(function (e) { ScrollTo.scrollToSection(e, $(this).attr("href").split("#")[1]) }) }, scrollToSection: function (e, t) { e.preventDefault(); var n = 0, a = $("#" + t).offset().top - n; $("body,html").animate({ scrollTop: a }, 500, "easeInOutCubic") } }; !function (e, t, n) { e.tapHandling = !1; var a = function (n) { return n.each(function () { function n(e) { t(e.target).trigger("tap", [e, t(e.target).attr("href")]), e.stopImmediatePropagation() } function a(e) { var t = e.originalEvent || e, n = t.touches || t.targetTouches; return n ? [n[0].pageX, n[0].pageY] : null } function i(e) { if (e.touches && e.touches.length > 1 || e.targetTouches && e.targetTouches.length > 1) return !1; var t = a(e); u = t[0], l = t[1] } function r(e) { if (!c) { var t = a(e); t && (Math.abs(l - t[1]) > p || Math.abs(u - t[0]) > p) && (c = !0) } } function o(t) { if (clearTimeout(s), s = setTimeout(function () { e.tapHandling = !1, c = !1 }, 1e3), !(t.which && t.which > 1 || t.shiftKey || t.altKey || t.metaKey || t.ctrlKey)) { if (t.preventDefault(), c || e.tapHandling && e.tapHandling !== t.type) return void (c = !1); e.tapHandling = t.type, n(t) } } var s, l, u, c, f = t(this), p = 10; f.bind("touchstart.tappy MSPointerDown.tappy", i).bind("touchmove.tappy MSPointerMove.tappy", r).bind("touchend.tappy MSPointerUp.tappy", o).bind("click.tappy", o) }) }, i = function (e) { return e.unbind(".tappy") }; if (t.event && t.event.special) t.event.special.tap = { add: function (e) { a(t(this)) }, remove: function (e) { i(t(this)) } }; else { var r = t.fn.bind, o = t.fn.unbind; t.fn.bind = function (e) { return /(^| )tap( |$)/.test(e) && a(this), r.apply(this, arguments) }, t.fn.unbind = function (e) { return /(^| )tap( |$)/.test(e) && i(this), o.apply(this, arguments) } } }(this, jQuery); var Gallery = { settings: { launcher: $("a.launcher"), gallery: $(".gallery"), slides: $(".gallery .slides img"), btn: $(".gallery a.btn"), close: $("a.close"), current: 0 }, init: function () { var e = this.settings; Gallery.launchGallery(e), Gallery.closeGallery(e), Gallery.keyboardActions(e) }, windowSizeChecker: function (e, t) { e.slides.each(function (e) { var t = -($(this).height() / 2), n = -($(this).width() / 2); $(this).css({ "margin-left": n, "margin-top": t }) }) }, dotCounter: function (e, t) { $(".dots").remove(); var n = '