(function($){
  $.extend({
    smoothAnchors : function(speed, easing, redirect){
      speed = speed || "fast";
      easing = easing || null;
      redirect = (redirect === true || redirect == null) ? true : false;
      $("a").each(function(i){
        var url = $(this).attr("href");
        if(url){
          if(url.indexOf("#") != -1 && url.indexOf("#") == 0){
            var aParts = url.split("#",2);
            var anchor = $("a[name='"+aParts[1]+"']");
            if(anchor){
              $(this).click(function(){
                if($(document).height()-anchor.offset().top >= $(window).height()
                 || anchor.offset().top > $(window).height()
                 || $(document).width()-anchor.offset().left >= $(window).width()
                 || anchor.offset().left > $(window).width()){
                  $('html, body').animate({
                    scrollTop: anchor.offset().top,
                    scrollLeft: anchor.offset().left
                  }, speed, easing, function(){ if(redirect){ window.location = url } });
                }
                return false;
              });
            }
          }
        }
      });
    }
  });
})(jQuery);

