/* -------------------------------------------------------------------------- */
/** 
 *    Smooth Scroll by Anchor
 *
 *    @version rev002.2007-12-14
 *    @requires init.js,prototype.js
 */
/* -------------------------------------------------------------------------- */

var scrollPosition;
var interval;

function startScroll() {

	var obj = document.getElementById(this.href2);
	scrollPosition = 0;
	while (obj) {
		scrollPosition += obj.offsetTop;
		obj = obj.offsetParent;
		}
	if(document.all) {
		var myheight = document.documentElement.clientHeight;
	} else {
		var myheight = window.innerHeight;
	}
	if(scrollPosition > document.body.scrollHeight - myheight) scrollPosition = document.body.scrollHeight - myheight;
	interval = setInterval('startScrollByAnchor()', 20);
	return false;
}


function startScrollByAnchor() {
	if(document.all) {
		var nowY = document.documentElement.scrollTop;
	} else {
		var nowY = window.pageYOffset;
	}
	var move = Math.floor((scrollPosition - nowY) / 22);
	window.scrollBy(0, move);
	if(1 > Math.abs(move)) {
		window.scrollTo(0, scrollPosition);
		clearInterval(interval);
	}
}

function endScrollByAnchor() {
	clearInterval(interval);
}

function initScrollByAnchor() {
	var aryObj = document.getElementsByTagName("a");
	
	for(var i = 0; i < aryObj.length; i++) {	
			var src = aryObj[i].getAttribute('href');
			var ftype = src.substring(src.lastIndexOf('#'), src.length);
			if(ftype.indexOf('#') == 0) {
			aryObj[i].href2 = aryObj[i].getAttribute("href").split("#")[1];
			aryObj[i].onclick = startScroll;
			
		}
	}
	//if (window.addEventListener) window.addEventListener('DOMMouseScroll', endScrollByAnchor, false);
	//window.onmousewheel = document.onmousewheel = endScrollByAnchor;
}

//window.onload = initScrollByAnchor;
onloadFunctions.appendFunction(new OnloadFunction(initScrollByAnchor) ); 