var Scroll = {};

Scroll.init = function(){
	//変数オブジェクトを作成
	var vars_ary = location.search.substr(1).split('&');
	var vars = {};
	for(i = 0; i < vars_ary.length; i++){
		var var_set = vars_ary[i].split('=');
		vars[var_set[0]] = var_set[1];
	}
	//コンテンツIDの指定があったらスクロール
	if(vars.id != undefined){

		var intervalId;
		var fnc = function(){
			Scroll.toContents(vars.id);
			clearInterval(intervalId);
		}
		intervalId = setInterval(fnc,200);
	}
};

Scroll.toTop = function(){
	this.scroll(this.getBodyScroll(), 0);
	return false;
};

Scroll.toContents = function(id){

	id = id.match( /#(.*?)$/ )[1] || id;

	//スクロールの最大値を取得
	var screenHeight = window.innerHeight || document.documentElement.clientHeight;
	var scrollHeight = document.body.scrollHeight;
	var maxScroll = scrollHeight - screenHeight;
	
	//目標位置を取得
	if(id.charAt(0) == "#") id = id.substr(1);
	var target = document.getElementById(id);
	var targetPos = Math.min(maxScroll,target.offsetTop);
	//現在のスクロール位置からターゲットの位置までスクロール
	this.scroll(this.getBodyScroll(), targetPos);
	return false;
};

Scroll.getBodyScroll = function(){
	return document.documentElement.scrollTop || window.scrollY || document.body.scrollTop;
};

Scroll.scroll = function(pos, targetPos){
	var spd = .5;
	var interval = Math.floor(1000/24);
	var intervalId;

	var _scroll = function(){
		var dst = targetPos - pos;
		if(Math.abs(dst) <= 1){
			pos = targetPos;
			clearInterval(intervalId);
		}else{
			pos += dst * spd;
			pos = Math.floor(pos);
		}
		scrollTo(0,pos);
	}
	intervalId = setInterval(_scroll,interval);
}

/*
if(window.addEventListener){
	window.addEventListener('load',Scroll.init,false);
}else{
	window.attachEvent('onload',Scroll.init);
}
*/
