(function (e)
{
	"use strict";
	var t = "ScrollIt",
		n = "1.0.3";
	var r = {
		upKey: 38,
		downKey: 40,
		easing: "linear",
		scrollTime: 600,
		activeClass: "active",
		onPageChange: null,
		topOffset: 0
	};
	e.scrollIt = function (t)
	{
		var n = e.extend(r, t),
			i = 0,
			s = e("[data-scroll-index]:last").attr("data-scroll-index");
		var o = function (t)
		{
			if (t < 0 || t > s) return;
			var r = e("[data-scroll-index=" + t + "]").offset().top + n.topOffset + 1;
			e("html,body").animate(
			{
				scrollTop: r,
				easing: n.easing
			}, n.scrollTime)
		};
		var u = function (t)
		{
			var n = e(t.target).closest("[data-scroll-nav]").attr("data-scroll-nav") || e(t.target).closest("[data-scroll-goto]").attr("data-scroll-goto");
			o(parseInt(n))
		};
		var a = function (t)
		{
			var r = t.which;
			if (e("html,body").is(":animated") && (r == n.upKey || r == n.downKey))
			{
				return false
			}
			if (r == n.upKey && i > 0)
			{
				o(parseInt(i) - 1);
				return false
			}
			else if (r == n.downKey && i < s)
			{
				o(parseInt(i) + 1);
				return false
			}
			return true
		};
		var f = function (t)
		{
			if (n.onPageChange && t && i != t) n.onPageChange(t);
			i = t;
			e("[data-scroll-nav]").removeClass(n.activeClass);
			e("[data-scroll-nav=" + t + "]").addClass(n.activeClass)
		};
		var l = function ()
		{
			var t = e(window).scrollTop();
			var r = e("[data-scroll-index]").filter(function (r, i)
			{
				return t >= e(i).offset().top + n.topOffset && t < e(i).offset().top + n.topOffset + e(i).outerHeight()
			});
			var i = r.first().attr("data-scroll-index");
			f(i)
		};
		e(window).on("scroll", l).scroll();
		e(window).on("keydown", a);
		e("body").on("click", "[data-scroll-nav], [data-scroll-goto]", function (e)
		{
			e.preventDefault();
			u(e)
		})
	}
})(jQuery)