// JavaScript Document

$(function(){
    var $scrollTarget = $.support.boxModel  ?  window.opera  ?  $( 'html' )  :  $( 'html, body' )  :  $( 'body' ),
        $hasHash = $( 'a[href^="#"]' ).filter(function() {
            var hash = this.hash.replace( '#', '' );
            return this.hash.length > 0 && document.getElementById( hash ) || $( 'a[name^="' + hash + '"]' )[0];
        });
    
    for ( var i = -1, l = $hasHash.length;  ++i < l; ) {
        var $this = $( $hasHash[i] );
        
        $this.bind( 'click.scrollStart', function() {
            var $target = (function( hash ) {
                    var $id = $( hash ),
                        $name = $( 'a[name^="' + hash.replace( '#', '' ) + '"]' );
                    
                    return $name[0]  ?  $name  :  $id;
                })( this.hash ),
                offset = $target.offset();
            
            $scrollTarget.animate({
                scrollTop: offset.top
            }, 800, 'swing', false );
            
            return false;
        });
    }
    
    $( document ).bind( 'click.scrollStop', function() {
        $scrollTarget.stop();
    });
});
