var TimerLen = 2;
var SlidTime = 500;

var TimerID = new Array();
var StartTime = new Array();
var Obj = new Array();
var EndHeight = new Array();
var Moving = new Array();
var Dir = new Array();

function SlidDown(objectName)
{
	if (Moving[objectName])
		return;
	
	if (document.getElementById(objectName).style.display != "none")
		return;
	
	Moving[objectName] = true;
	Dir[objectName] = "down";
	StartSlid(objectName);
}

function SlidUp(objectName)
{
	if (Moving[objectName])
		return;
	
	if(document.getElementById(objectName).style.display == "none")
		return;
	
	Moving[objectName] = true;
	Dir[objectName] = "up";
	StartSlid(objectName);
}

function StartSlid(objectName)
{
	Obj[objectName] = document.getElementById(objectName);
	EndHeight[objectName] = parseInt(Obj[objectName].style.height);
	StartTime[objectName] = (new Date()).getTime();
	
	if(Dir[objectName] == "down")
	{
		Obj[objectName].style.height = "1px";
	}
	
	Obj[objectName].style.display = "block";
	
	TimerID[objectName] = setInterval("SlidTick('" + objectName + "')",TimerLen);
}

function SlidTick(objectName)
{
	var elapsed = (new Date()).getTime() - StartTime[objectName];
	
	if(elapsed > SlidTime)
		EndSlid(objectName);
	else
	{
		var d = Math.round(elapsed / SlidTime * EndHeight[objectName]);
		
		if (Dir[objectName] == "up")
			d = EndHeight[objectName] - d;
		
		Obj[objectName].style.height = d + "px";		
	}
	return;
}

function EndSlid(objectName)
{
	clearInterval(TimerID[objectName]);
	
	if(Dir[objectName] == "up")
		Obj[objectName].style.display = "none";
	
	Obj[objectName].style.height = EndHeight[objectName] + "px";
	
	delete(Moving[objectName]);
	delete(TimerID[objectName]);
	delete(StartTime[objectName]);
	delete(EndHeight[objectName]);
	delete(Obj[objectName]);
	delete(Dir[objectName]);
}
