/**
 * jQuery.LocalScroll - Animated scrolling navigation, using anchors. Copyright
 * (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com |
 * http://flesler.blogspot.com Dual licensed under MIT and GPL. Date: 3/11/2009
 * 
 * @author Ariel Flesler
 * @version 1.2.7
 */
;
(function($) {
	var l = location.href.replace(/#.*/, '');
	var g = $.localScroll = function(a) {
		$('body').localScroll(a)
	};
	g.defaults = {
		duration : 1e3,
		axis : 'y',
		event : 'click',
		stop : true,
		target : window,
		reset : true
	};
	g.hash = function(a) {
		if (location.hash) {
			a = $.extend( {}, g.defaults, a);
			a.hash = false;
			if (a.reset) {
				var e = a.duration;
				delete a.duration;
				$(a.target).scrollTo(0, a);
				a.duration = e
			}
			i(0, location, a)
		}
	};
	$.fn.localScroll = function(b) {
		b = $.extend( {}, g.defaults, b);
		return b.lazy ? this.bind(b.event, function(a) {
			var e = $( [ a.target, a.target.parentNode ]).filter(d)[0];
			if (e)
				i(a, e, b)
		}) : this.find('a,area').filter(d).bind(b.event, function(a) {
			i(a, this, b)
		}).end().end();
		function d() {
			return !!this.href && !!this.hash
					&& this.href.replace(this.hash, '') == l
					&& (!b.filter || $(this).is(b.filter))
		}
	};
	function i(a, e, b) {
		var d = e.hash.slice(1), f = document.getElementById(d)
				|| document.getElementsByName(d)[0];
		if (!f)
			return;
		if (a)
			a.preventDefault();
		var h = $(b.target);
		if (b.lock && h.is(':animated') || b.onBefore
				&& b.onBefore(b, a, f, h) === !1)
			return;
		if (b.stop)
			h.stop(true);
		if (b.hash) {
			var j = f.id == d ? 'id' : 'name', k = $('<a> </a>').attr(j, d)
					.css( {
						position : 'absolute',
						top : $(window).scrollTop(),
						left : $(window).scrollLeft()
					});
			f[j] = '';
			$('body').prepend(k);
			location = e.hash;
			k.remove();
			f[j] = d
		}
		h.scrollTo(f, b).trigger('notify.serialScroll', [ f ])
	}
})(jQuery);