(function(n,t,i){var u=function(r,u){this.elem=r,this.$elem=n(r),this.options=u,this.metadata=this.$elem.data("plugin-options"),this.$nav=this.$elem.find("a"),this.$win=n(t),this.sections={},this.didScroll=!1,this.$doc=n(i),this.docHeight=this.$doc.height()};u.prototype={defaults:{currentClass:"current",changeHash:!1,easing:"swing",filter:"",scrollSpeed:750,scrollOffset:0,scrollThreshold:.5,begin:!1,end:!1,scrollChange:!1},init:function(){var t=this;t.config=n.extend({},t.defaults,t.options,t.metadata),t.config.filter!==""&&(t.$nav=t.$nav.filter(t.config.filter));t.$nav.on("click.onePageNav",n.proxy(t.handleClick,t));t.getPositions(),t.bindInterval();t.$win.on("resize.onePageNav",n.proxy(t.getPositions,t));return this},adjustNav:function(n,t){n.$elem.find("."+n.config.currentClass).removeClass(n.config.currentClass),t.addClass(n.config.currentClass)},bindInterval:function(){var n=this,t;n.$win.on("scroll.onePageNav",function(){n.didScroll=!0});n.t=setInterval(function(){t=n.$doc.height(),n.didScroll&&(n.didScroll=!1,n.scrollChange()),t!==n.docHeight&&(n.docHeight=t,n.getPositions())},250)},getHash:function(n){return n.attr("href").split("#")[1]},getPositions:function(){var t=this,i,u,r;t.$nav.each(function(){i=t.getHash(n(this)),r=n("#"+i),r.length&&(u=r.offset().top,t.sections[i]=Math.round(u)-t.config.scrollOffset)})},getSection:function(n){var i=null,r=Math.round(this.$win.height()*this.config.scrollThreshold),t;for(t in this.sections)this.sections[t]-r<n&&(i=t);return i},handleClick:function(i){var r=this,u=n(i.currentTarget),f=u.parent(),e="#"+r.getHash(u);f.hasClass(r.config.currentClass)||(r.config.begin&&r.config.begin(),r.adjustNav(r,f),r.unbindInterval(),n.scrollTo(e,r.config.scrollSpeed,{axis:"y",easing:r.config.easing,offset:{top:-r.config.scrollOffset},onAfter:function(){r.config.changeHash&&(t.location.hash=e),r.bindInterval(),r.config.end&&r.config.end()}})),i.preventDefault()},scrollChange:function(){var i=this.$win.scrollTop(),t=this.getSection(i),n;t!==null&&(n=this.$elem.find('a[href$="#'+t+'"]').parent(),n.hasClass(this.config.currentClass)||(this.adjustNav(this,n),this.config.scrollChange&&this.config.scrollChange(n)))},unbindInterval:function(){clearInterval(this.t),this.$win.unbind("scroll.onePageNav")}},u.defaults=u.prototype.defaults,n.fn.onePageNav=function(n){return this.each(function(){new u(this,n).init()})}})(jQuery,window,document),function(n){function i(n){return typeof n=="object"?n:{top:n,left:n}}var t=n.scrollTo=function(t,i,r){n(window).scrollTo(t,i,r)};t.defaults={axis:"xy",duration:parseFloat(n.fn.jquery)>=1.3?0:1,limit:!0},t.window=function(){return n(window)._scrollable()},n.fn._scrollable=function(){return this.map(function(){var t=this,r=!t.nodeName||n.inArray(t.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1,i;return r?(i=(t.contentWindow||t).document||t.ownerDocument||t,/webkit/i.test(navigator.userAgent)||i.compatMode=="BackCompat"?i.body:i.documentElement):t})},n.fn.scrollTo=function(r,u,f){return typeof u=="object"&&(f=u,u=0),typeof f=="function"&&(f={onAfter:f}),r=="max"&&(r=9e9),f=n.extend({},t.defaults,f),u=u||f.duration,f.queue=f.queue&&f.axis.length>1,f.queue&&(u/=2),f.offset=i(f.offset),f.over=i(f.over),this._scrollable().each(function(){function l(n){h.animate(o,u,f.easing,n&&function(){n.call(this,r,f)})}if(r){var s=this,h=n(s),e=r,c,o={},a=h.is("html,body");switch(typeof e){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(e)){e=i(e);break}if(e=n(e,this),!e.length)return;case"object":(e.is||e.style)&&(c=(e=n(e)).offset())}n.each(f.axis.split(""),function(n,i){var y=i=="x"?"Left":"Top",u=y.toLowerCase(),r="scroll"+y,p=s[r],w=t.max(s,i),v;c?(o[r]=c[u]+(a?0:p-h.offset()[u]),f.margin&&(o[r]-=parseInt(e.css("margin"+y))||0,o[r]-=parseInt(e.css("border"+y+"Width"))||0),o[r]+=f.offset[u]||0,f.over[u]&&(o[r]+=e[i=="x"?"width":"height"]()*f.over[u])):(v=e[u],o[r]=v.slice&&v.slice(-1)=="%"?parseFloat(v)/100*w:v),f.limit&&/^\d+$/.test(o[r])&&(o[r]=o[r]<=0?0:Math.min(o[r],w)),!n&&f.queue&&(p!=o[r]&&l(f.onAfterFirst),delete o[r])}),l(f.onAfter)}}).end()},t.max=function(t,i){var r=i=="x"?"Width":"Height",u="scroll"+r;if(!n(t).is("html,body"))return t[u]-n(t)[r.toLowerCase()]();var f="client"+r,e=t.ownerDocument.documentElement,o=t.ownerDocument.body;return Math.max(e[u],o[u])-Math.min(e[f],o[f])}}(jQuery)