﻿var UP = 1;
var DOWN = 2;
var INIT_STEP_UP=1;
var MAX_STEP_UP=3;
var INIT_STEP_DOWN=1;
var MAX_STEP_DOWN=4;
var IntervalHash= new Array();
function increase(x){
	return x+0.1;
}
function scroll(id){
	sc = IntervalHash[id];
	//Step increase
	if(sc.step< ((sc.dir==UP)? MAX_STEP_UP:MAX_STEP_DOWN))
		sc.step = increase(sc.step);
	if(sc.dir==UP)
	{
		sc.y+=sc.step;		
		if(sc.y>0){sc.y=0;scrollstop(id);}
	}
	else{
		sc.y-=sc.step;
		if( sc.y<-(sc.Height-sc.ParentHeight)) sc.y = -(sc.Height-sc.ParentHeight);
		}
	
	sc.el.style.top= Math.round(sc.y)+"px";
}
function CScroller(id,parent,el,dir){
	this.parent = parent;
	this.ParentHeight = parseInt(parent.style.height);
	this.Height = parseInt(el.scrollHeight)// parseInt(el.style.height);
	this.el = el;
	this.id=id;
	this.dir = dir;
	this.intervalID = setInterval("scroll('"+this.id+"')",20);
	this.y = parseInt(el.style.top);
	if(!this.y)this.y=0;
	this.step = (dir)?INIT_STEP_UP:INIT_STEP_DOWN;
}
function scrollinit(id,parent,DIR){
	el = document.getElementById(id);
	if(!el)return;	
	p = document.getElementById(parent);
	if(!p)return;	
    IntervalHash[id] = new CScroller(id,p, el, DIR);
	
}
function scrollstop(id){
	if(IntervalHash[id].intervalID)
		clearInterval(IntervalHash[id].intervalID);
}
