$(document).ready(function() {
  function filterPath(string) {
	return string
	  .replace(/^\//,'')
	  .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
	  .replace(/\/$/,'');
  }
  $('a[href*=#]').each(function() {
		if ( (filterPath(location.pathname) == filterPath(this.pathname))
		&& (location.hostname == this.hostname)
		&& (this.hash.replace(/#/,'')) ) {
			var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']');
			var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false;
			 if ($target) {
			 var divOffset = $target.parent().offset().top;
			 var pOffset = $target.offset().top;
			 var pScroll = pOffset - divOffset;
			 $(this).click(function() {
				 $target.parent().animate({scrollTop: pScroll + 'px'}, 500);
				 return false;
			 });
			}
		}
  });
});
