var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var endWidth = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
		
		if(moving[objname])
                return;
        moving[objname] = true;
		obj[objname] = document.getElementById(objname);
        startTime[objname] = (new Date()).getTime();
		obj[objname].style.left = "416px";
		endHeight[objname] = 746;
		endWidth[objname] = 60;
        timerID[objname] = setInterval('slidetick(\'' + objname + '\', 0);',timerlen);

}

function slideup(objname){

		if(moving[objname])
                return;
        moving[objname] = true;
		obj[objname] = document.getElementById(objname);
        startTime[objname] = (new Date()).getTime();
		obj[objname].style.left = "746px";
		endHeight[objname] = 416;
		endWidth[objname] = 390;
        timerID[objname] = setInterval('slidetick(\'' + objname + '\', 100);',timerlen);

}


function slidetick(objname, korak){
        
		var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else 
			{
				if (korak == 0) {
					var d = 416 + Math.round(elapsed / slideAniLen * 330);
					var e = 390 - Math.round(elapsed / slideAniLen * 330);
				}
				else {
					var d = 745 - Math.round(elapsed / slideAniLen * 330);
					var e = 60 + Math.round(elapsed / slideAniLen * 330);
				}
                obj[objname].style.left = d + "px";
                obj[objname].style.width = e + "px";

		}

        return;
}

function endSlide(objname){
        
		clearInterval(timerID[objname]);

        obj[objname].style.left = endHeight[objname] + "px";
        obj[objname].style.width = endWidth[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(endWidth[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}
