
var slidingInterval = 10;
var interval = new Array();
var obj = new Array();
var originalHeight = new Array();
var currentHeight = new Array();
var endHeight = new Array();
var direction = new Array();
var sliding = new Array();
var slidingDuration = new Array();
var slidingStep = new Array();

function slide(objname, duration) {

	if ( sliding[objname] ) {
		return;
	} else { 
		sliding[objname] = true;
		slidingDuration[objname] = duration;
	}

	if( document.getElementById(objname).style.display == "none" ) {
		direction[objname] = "down";
		startSliding(objname);
	} else if( document.getElementById(objname).style.display != "none" ) {
		direction[objname] = "up";
		startSliding(objname);
	}
}

function startSliding(objname) {

	obj[objname] = document.getElementById(objname);

	if( direction[objname] == "down") {
		originalHeight[objname] = parseInt(obj[objname].style.height);
		currentHeight[objname] = 0;
		endHeight[objname] = originalHeight[objname];
		obj[objname].style.display = "block";
	} else if( direction[objname] == "up") {
		originalHeight[objname] = parseInt(obj[objname].style.height);
		currentHeight[objname] = originalHeight[objname];
		endHeight[objname] = 0;
	}

	slidingStep[objname] = Math.ceil( originalHeight[objname] / (slidingDuration[objname]/slidingInterval) );

	interval[objname] = setInterval("doSlide('" + objname + "')", slidingInterval);
}

function doSlide(objname) {
 
	if ( ( direction[objname] == "up" && currentHeight[objname] <= endHeight[objname] ) || ( direction[objname] == "down" && currentHeight[objname] >= endHeight[objname] ) ){

		clearInterval(interval[objname]);
 
		if(direction[objname] == "up") {
			obj[objname].style.display = "none";
			obj[objname].style.height = originalHeight[objname] + "px";
		}

		delete(originalHeight[objname]);
		delete(currentHeight[objname]);
		delete(endHeight[objname]);
		delete(obj[objname]);
		delete(direction[objname]);
		delete(sliding[objname]);
		delete(slidingDuration[objname]);
		delete(slidingStep[objname]);

	} else {

		if( direction[objname] == "up" ) {
			currentHeight[objname] -= slidingStep[objname];
		} else if( direction[objname] == "down" ) {
			currentHeight[objname] += slidingStep[objname];
		}

		obj[objname].style.height = currentHeight[objname] + "px";
	}

}
