new function()
{
	var oldOnload = ( window.onload ) ? window.onload : function(){};
	window.onload = function()
	{
		oldOnload();
		var as = document.getElementsByTagName('a');
		for ( var i=0; i<as.length; i++ ) {
			var a = as[i];
			if ( 'scrollTo' != a.className ) continue;
			var idx	= a.href.lastIndexOf('#');
			if ( 0 > idx ) continue;
			var name = a.href.substring(idx+1);
			if ( !name ) continue;
			var elms = document.getElementsByName(name);
			if ( !elms.length ) continue;
			var elm	= elms[0];
			var absX	= elm.offsetLeft;
			var absY	= elm.offsetTop;

			a.onclick = function(x, y, m){
				function animation()
				{
					var left	= document.body.scrollLeft || document.documentElement.scrollLeft;
					var top		= document.body.scrollTop  || document.documentElement.scrollTop;

					var h	= Math.floor((-1 * (left - x) * 0.5));
					var v	= Math.floor((-1 * (top - y) * 0.5));
					window.scrollBy(h, v);

					if ( 1
						&& ((h == 0) || ((left + h) != (document.body.scrollLeft || document.documentElement.scrollLeft)))
						&& ((v == 0) || ((top + v) != (document.body.scrollTop  || document.documentElement.scrollTop)))
					) return true;

					setTimeout(animation, m);
					return false;
				}
				return function()
				{
					setTimeout(animation, m);
					return false;
				}
			}(absX,absY, 40);
		}
	}
}