(function(n){function i(t,i){$host=n(t);var r={target:null,scrollAdj:null,initialise:function(){var t,u;if(i.supportsCssAnims){if(t=i.targetAllHashAnchors?"a[href^='#']":i.targetAnchorSelector,t=i.ignoreAnchorSelector?t+":not("+i.ignoreAnchorSelector+")":t,u=n(t),!i.explicitOnly)u.on("click",r.targetClickHandler);i.lockInitial&&(r.currentScroll=n(document).scrollTop(),r.performLock())}},targetClickHandler:function(t){t.preventDefault();var i=n(this).attr("href");return r.performScroll(i),!1},performScroll:function(t){var e,o,u,f;r.clearLock();n(document).on("transitionend webkitTransitionEnd msTransitionEnd oTransitionEnd",r.endCssScroll);e=n(document).scrollTop();r.target=t!="#"?n(t):n("body");o=t!="#"?i.adjustTop:0;r.absAdj=r.target.offset().top-o;u=n(document).height();f=n(window).height();r.absAdj=u-r.absAdj<f?u-f:r.absAdj;r.relAdj=r.absAdj-e;i.supportsCssAnims&&r.transformScroll()},transformScroll:function(){Math.abs(r.relAdj)>i.minAdj&&n("body").css({transition:i.animDuration/1e3+"s ease",transform:"translateY("+-1*r.relAdj+"px)"}).data("glideScrolling",!0)},endCssScroll:function(){n("body").data("glideScrolling")&&(n(document).data("glideScrolling",!1),n("body").css({transition:"",transform:""}),n(document).scrollTop(r.absAdj),r.target=null,r.scrollAdj=null,n(document).off("transitionend webkitTransitionEnd msTransitionEnd oTransitionEnd",r.endCssScroll),setTimeout(function(){i.lockScroll&&r.lockScroll()},50))},currentScroll:0,lockScroll:function(){r.currentScroll=n(document).scrollTop();n(document).on("scroll",r.performLock)},performLock:function(){clearTimeout(n.data($host,"timer"));n.data($host,"timer",setTimeout(function(){r.absAdj=r.currentScroll;r.relAdj=r.currentScroll-n(document).scrollTop();Math.abs(r.relAdj)>i.minAdj&&(r.clearLock(),i.supportsCssAnims&&r.transformScroll())},250))},clearLock:function(){clearTimeout(n.data($host,"timer"));n(document).off("scroll",r.performLock)}};return t.glideScrollOptions=i,t.glideScrollActions=r,t.glideScrollActions.initialise(),t}var t=!1;n(document).ready(function(){t=!0;n("body").data("glideScroll")&&n(document).glideScroll()});n.fn.glideScroll=function(r){var u=n.extend({},n.fn.glideScroll.defaults,r);return this.each(function(){var r=this;t?i(r,u):n(document).ready(function(){i(r,u)})})};n.fn.scrollTo=function(n,t,i){return this.each(function(){var r=this;return r.glideScrollActions&&((t||t===0)&&(r.glideScrollOptions.adjustTop=t),r.glideScrollOptions.lockScroll=i!=undefined?i:r.glideScrollOptions.lockScroll,r.glideScrollActions.performScroll(n)),r})};n.fn.cancelLocking=function(){return this.each(function(){var n=this;return n.glideScrollActions&&(n.glideScrollOptions.lockScroll=!1,n.glideScrollActions.clearLock()),n})};n.fn.lockingOn=function(){return this.each(function(){var n=this;return n.glideScrollActions&&(n.glideScrollOptions.lockScroll=!0),n})};n.fn.glideScroll.defaults={targetAllHashAnchors:!0,targetAnchorSelector:".scroller",ignoreAnchorSelector:".ignore",animDuration:800,supportsCssAnims:!0,adjustTop:100,minAdj:30,lockScroll:!1,lockInitial:!1,explicitOnly:!1}})(jQuery)