/**
 * 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.call(b, a, f, h) === false)
			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);

