
var setScrollScreenControl = {

	addEvent : function(){
		try {
			window.addEventListener('load', this.set, false);
		} catch (e) {
			window.attachEvent('onload', this.ie6hover);
			window.attachEvent('onload', this.set);
		}
	},
	
	set : function(){
		var pageScroll = document.createElement("ul");
		pageScroll.id = "pageScroll";
		pageScroll.innerHTML = '<li onclick="scrollScreen.main(\'up\')" id="pageUp">page up</li><li id="pageDown" onclick="scrollScreen.main(\'down\')">page down</li>'
		document.getElementById("header").appendChild(pageScroll);
	},
	
	ie6hover : function(){
		var u = document.getElementById("pageUp");
		var d = document.getElementById("pageDown");
		u.onmouseover = function(){this.className=" hover"}
		d.onmouseover = function(){this.className=" hover"}
		
		u.onmouseout = function(){this.className=""}
		d.onmouseout = function(){this.className=""}
	}

}
setScrollScreenControl.addEvent();


var scrollScreen = {
	
	targetPositionY : 0,
	rangeY : 0,
	
	main : function(action){
		var targetPositionY;
		var pageHeight = getPageSize().height;
					
		if(action == "up"){
			targetPositionY = getPageOffset().y - getClientSize().height + 50;
			targetPositionY = targetPositionY < 0 ? 0 : targetPositionY;
		}
		else if (action == "down"){
			targetPositionY = getPageOffset().y + getClientSize().height - 50;
			targetPositionY = ( pageHeight - targetPositionY + 50) <= getClientSize().height ? pageHeight - getClientSize().height : targetPositionY;
		}
		this.targetPositionY = targetPositionY;
		this.pageScroll();
	},

	pageScroll : function(){
		var beforeY = getPageOffset().y
		this.rangeY = Math.abs(getPageOffset().y - this.targetPositionY);
		if(this.targetPositionY > getPageOffset().y){ // scrollDown
			window.scrollTo( getPageOffset().x, Math.floor( this.targetPositionY - this.rangeY / 1.5 ));
		}
		else if (this.targetPositionY < getPageOffset().y){ // scrollUp
			window.scrollTo( getPageOffset().x, Math.floor( this.targetPositionY + this.rangeY / 1.5 ));
		}
		
		if (this.rangeY>4 && beforeY != getPageOffset().y) {
			window.setTimeout("scrollScreen.pageScroll()", 20);
		}
		
		else {
			window.scrollTo( getPageOffset().x, this.targetPositionY );
		}
	}
	
}


//--------------------------------------------------
// functions
//--------------------------------------------------
var getPageSize = function(){
	var stndardWidth, stndardHeight, QuirksWidth, QuirksHeight, width, height;
	
	stndardWidth  = document.documentElement.scrollWidth || 0;
	stndardHeight = document.documentElement.scrollHeight|| 0;
	
	QuirksWidth  = (document.body && document.body.scrollWidth)  || 0;
	QuirksHeight = (document.body && document.body.scrollHeight) || 0;
	
	width  = Math.max(stndardWidth,  QuirksWidth);
	height = Math.max(stndardHeight, QuirksHeight);
	
	return {width: width, height: height};
}

var getPageOffset = function(){
	var x, y;
	x = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft)
	y = Math.max(document.documentElement.scrollTop,  document.body.scrollTop)
	return {x: x, y: y};
}

var getClientSize = function (){
	var width = height = 0;
	if(window.innerWidth){// Mozilla, Opera, Safari
		width  = window.innerWidth;
		height = window.innerHeight;
	}
  else { // IE Standard || IE Quirks || 0
		width  = document.documentElement.clientWidth  || document.body.clientWidth  || 0;
		height = document.documentElement.clientHeight || document.body.clientHeight || 0;
  }
	return {width:width,height:height}
}