﻿/**
* jQuery.LocalScroll - Animated scrolling navigation, using anchors.
**/
; (function($) { var g = location.href.replace(/#.*/, ''), h = $.localScroll = function(a) { $('body').localScroll(a) }; h.defaults = { duration: 1e3, axis: 'y', event: 'click', stop: 1 }; h.hash = function(a) { a = $.extend({}, h.defaults, a); a.hash = 0; if (location.hash) setTimeout(function() { i(0, location, a) }, 0) }; $.fn.localScroll = function(b) { b = $.extend({}, h.defaults, b); return (b.persistent || b.lazy) ? this.bind(b.event, function(e) { var a = $([e.target, e.target.parentNode]).filter(c)[0]; a && i(e, a, b) }) : this.find('a,area').filter(c).bind(b.event, function(e) { i(e, this, b) }).end().end(); function c() { var a = this; return !!a.href && !!a.hash && a.href.replace(a.hash, '') == g && (!b.filter || $(a).is(b.filter)) } }; function i(e, a, b) { var c = a.hash.slice(1), d = document.getElementById(c) || document.getElementsByName(c)[0], f; if (d) { e && e.preventDefault(); f = $(b.target || $.scrollTo.window()); if (b.lock && f.is(':animated') || b.onBefore && b.onBefore.call(a, e, d, f) === !1) return; if (b.stop) f.queue('fx', []).stop(); f.scrollTo(d, b).trigger('notify.serialScroll', [d]); if (b.hash) f.queue(function() { location = a.hash; $(this).dequeue() }) } } })(jQuery);
