var pageScroller = {};
(function(c) {
c.fn.extend({
pageScroller: function(f) {
f = c.extend({
currentSection: 0,
sectionClass: "section",
navigationClass: "scrollNav",
animationSpeed: 500,
scrollOffset: 20,
navigation: [],
appendID: '#scroll-content',
animationBefore: function() {},
animationComplete: function() {},
onChange: function() {}
}, f);
pageScroll = function(d, a) {
c.fx.interval = 5;
d.find(f.appendID).append('
');
pageScroller.navi = c(".pageScroll", d);
pageScroller.sections = c("." + a.sectionClass, d);
pageScroller.scrollDocument = c(document);
pageScroller.scrollWindow = c(window);
pageScroller.scrollBody = c("body");
pageScroller.scrollPosition = pageScroller.scrollWindow.scrollTop();
pageScroller.currentSection = pageScroller.scrollWindow.height();
pageScroller.options = a;
d.css({
position: "relative"
});
pageScroller.sections.each(function(b) {
var d = c(this);
d.css({
position: "relative",
margin: 0
});
d.addClass(pageScroller.options.sectionClass + "_" + (b + 1));
pageScroller.options.navigation.length ? pageScroller.navi.append('' + pageScroller.options.navigation[b] + "") : pageScroller.navi.append('Navigation ' + (b + 1) + "")
});
pageScroller.pageLinks = c("li", pageScroller.navi);
pageScroller.pageLinks.each(function(b) {
pageLink = c(this);
pageAnchor = c("a", this);
pageAnchor.click(function(c) {
c.preventDefault();
a.animationBefore();
e(d, pageScroller.sections.eq(b), b)
})
});
pageScroller.next = function() {
var b = pageScroller.options.currentSection + 1;
if (b != pageScroller.sections.length) {
var a = pageScroller.sections.eq(b);
e(d, a, b)
}
};
pageScroller.prev = function() {
var b = pageScroller.options.currentSection - 1;
0 >= b && (b = 0);
var a = pageScroller.sections.eq(b);
e(d, a, b)
};
pageScroller.goTo = function(a) {
var a = a - 1,
c = pageScroller.sections.eq(a);
e(d, c, a)
};
pageScroller.scrollWindow.scroll(function() {
h()
});
setTimeout(function() {
0 == pageScroller.scrollPosition && h()
}, 200)
};
var h = function() {
pageScroller.scrollPosition = pageScroller.scrollWindow.scrollTop();
pageScroller.scrollDistance = pageScroller.scrollPosition + pageScroller.currentSection;
for (i = 0; i < pageScroller.sections.length; i++) {
var d = pageScroller.sections.eq(i).offset().top;
pageScroller.options.scrollOffset && (d -= pageScroller.options.scrollOffset);
var a = 0;
if (i < pageScroller.sections.length - 1) var a = pageScroller.sections.eq(i + 1),
a = pageScroller.options.scrollOffset ? a.offset().top - pageScroller.options.scrollOffset : a.offset().top,
b = pageScroller.pageLinks.eq(i),
c = pageScroller.pageLinks.eq(pageScroller.sections.length - 1);
if (pageScroller.scrollBody.is(":animated")) return !1;
if (pageScroller.scrollDocument.height() == pageScroller.scrollDistance) {
if (!c.hasClass("active")) return updateTo = pageScroller.sections.length - 1, g(pageScroll, updateTo), !1
} else if (a) {
if (pageScroller.scrollPosition >= d && pageScroller.scrollPosition < a && !b.hasClass("active")) return updateTo = i, g(pageScroll, updateTo), !1
} else if (pageScroller.scrollPosition >= d && i == pageScroller.sections.length - 1 && !pageScroller.pageLinks.eq(pageScroller.sections.length - 1).hasClass("active")) return updateTo = pageScroller.sections.length - 1, g(pageScroll, updateTo), !1
}
},
e = function(d, a, b) {
a = a.offset().top;
pageScroller.options.scrollOffset && (a -= pageScroller.options.scrollOffset);
var e = c("html, body"),
f = c(window).scrollTop();
a != f && !e.is(":animated") && e.animate({
scrollTop: a
}, pageScroller.options.animationSpeed, function() {
g(d, b);
pageScroller.options.animationComplete()
})
},
g = function(c, a) {
pageScroller.pageLinks.removeClass("active");
pageScroller.pageLinks.eq(a).addClass("active");
pageScroller.options.currentSection = a;
pageScroller.options.onChange()
};
if (!pageScroller.options) return pageScroll(this, f)
}
})
})(jQuery);