function Rolling()
{
	this.Flush = Flush;
	function Flush()
	{
		if(arguments[0]==null || arguments[0]=="")
			return;
		else
		{
			for(k=1;k<document.all[arguments[0]].length;k++)
				document.all[arguments[0]][k].style.display = "none";
		}
	}

	if(arguments[0]==null || arguments[0]=="")
	{
		this.status = false;
		return;
	}
	else
		var objId = arguments[0];

	if(arguments[1]==null || arguments[1]=="")
		var dropDegree = 5;
	else
		var dropDegree = arguments[1];

	if(arguments[2]==null || arguments[2]=="")
		var DirectTerm = 5000;
	else
		var DirectTerm = arguments[2];

	if(arguments[3]==null || arguments[3]=="")
		var curDropIdx = 0;
	else
		var curDropIdx = arguments[3];

	this.dropDegree = dropDegree;
	this.DirectTerm = DirectTerm;
	this.curDropIdx = curDropIdx;
	this.objId = objId;

	var doDirect;
	var downLayerId;

	this.Start = Start;

	this.status = true;

	function Start()
	{
		if(arguments[0]==null || arguments[0]=="")
			DirectDown();
		else
		{
			if(arguments[0].toUpperCase() == "UP")
				DirectUp();
			else if(arguments[0] > 1)
				DirectUp();
			else if(arguments[0] > "1")
				DirectUp();
			else if(arguments[0] == 0)
				DirectDown();
			else if(arguments[0] == "0")
				DirectDown();
			else
				DirectDown();
		}
	}

	function DirectDown()
	{
		clearInterval(doDirect);
		clearInterval(downLayerId);

		for(i = curDropIdx ;i < document.all[objId].length + curDropIdx;i++)
		{
			document.all[objId][i%document.all[objId].length].style.posTop = document.all[objId][i%document.all[objId].length].style.posHeight * (-1*((i-curDropIdx)%document.all[objId].length));
		}

		downLayerId = setInterval(DownLayer,20);
		direction = "down";
	}

	function DownLayer()
	{
		if(document.all[objId][curDropIdx].style.posTop < document.all[objId][curDropIdx].style.posHeight)
		{
			for(j = curDropIdx ;j < document.all[objId].length + curDropIdx;j++)
			{
				document.all[objId][j%document.all[objId].length].style.posTop += dropDegree;
			}
		}
		else
		{
			clearInterval(downLayerId);

			for(j = curDropIdx ;j < document.all[objId].length + curDropIdx;j++)
			{
				document.all[objId][j%document.all[objId].length].style.posTop = document.all[objId][j%document.all[objId].length].style.posHeight *((-1*((j-curDropIdx)%document.all[objId].length))+1);
			}
			curDropIdx = (curDropIdx + 1) ;
			curDropIdx = curDropIdx > document.all[objId].length-1 ? curDropIdx%document.all[objId].length:curDropIdx;
			doDirect = setInterval(DirectDown,DirectTerm);
		}
	}

	function DirectUp()
	{
		clearInterval(doDirect);
		clearInterval(downLayerId);
		var tempIdx = 0;
		for(i = 0;i<document.all[objId].length;i++)
		{
			tempIdx = (document.all[objId].length + curDropIdx - i) %document.all[objId].length;

			document.all[objId][tempIdx].style.posTop = i*document.all[objId][tempIdx].style.posHeight;

		}

		downLayerId = setInterval(UpLayer,20);
		direction = "up";
	}

	function UpLayer()
	{
		var tempIdx = 0;
		if(document.all[objId][curDropIdx].style.posTop < document.all[objId][curDropIdx].style.posHeight && document.all[objId][curDropIdx].style.posTop > document.all[objId][curDropIdx].style.posHeight * (-1))
		{
			for(j = 0 ;j < document.all[objId].length;j++)
			{
				tempIdx = (document.all[objId].length + curDropIdx - j) %document.all[objId].length;
				document.all[objId][tempIdx].style.posTop -= dropDegree;
			}
		}
		else
		{
			clearInterval(downLayerId);
			for(j = 0;j<document.all[objId].length;j++)
			{
				tempIdx = (document.all[objId].length + curDropIdx - j) % document.all[objId].length;

				document.all[objId][tempIdx].style.posTop = (j-1)*(document.all[objId][tempIdx].style.posHeight);
			}
			curDropIdx = (curDropIdx - 1) ;
			curDropIdx = curDropIdx < 0 ? document.all[objId].length-1:curDropIdx;
			doDirect = setInterval(DirectUp,DirectTerm);
		}
	}

}
