/**
 * 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);
