var timerlen = 5;
var slideAniLen = 750;

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 slidedown(objname){
if(moving[objname]) return;
if(document.getElementById(objname).style.display != "none") return;
// cannot slide down something that is already visible
moving[objname] = true; dir[objname] = "down";
startslide(objname);
}

function slideup(objname){
if(moving[objname]) return;
if(document.getElementById(objname).style.display == "none") return;
// cannot slide up something that is already hidden
moving[objname] = true; dir[objname] = "up";
startslide(objname);
}

function startslide(objname){
obj[objname] = document.getElementById(objname);
obj[objname].style.display = "block";
endHeight[objname] = parseInt(obj[objname].offsetHeight);
obj[objname].style.display = "none";
startTime[objname] = (new Date()).getTime();
if(dir[objname] == "down")
{
obj[objname].style.height = "1px";
}
obj[objname].style.display = "block";
timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
var elapsed = (new Date()).getTime() - startTime[objname];
if (elapsed > slideAniLen) endSlide(objname);
else {
var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
if(dir[objname] == "up") d = endHeight[objname] - d; obj[objname].style.height = d + "px"
 }
 return;
 }
 
 function endSlide(objname){
 clearInterval(timerID[objname]);
 if(dir[objname] == "up") obj[objname].style.display = "none";
 obj[objname].style.height = endHeight[objname] + "px";
 delete(moving[objname]);
 delete(timerID[objname]);
 delete(startTime[objname]);
 delete(endHeight[objname]);
 delete(obj[objname]);
 delete(dir[objname]);
 return;
 }
 
 function toggleSlide(objname){
 if(document.getElementById(objname).style.display == "none"){
 // div is hidden, so let's slide down
 slidedown(objname);
 }
 else{
 // div is not hidden, so slide up
 slideup(objname);
 }
 }
 
 function commentstoggle(objname){
 var f=1; for (f=1;f<=30;f++) {
 if (document.getElementById("commentstoggle" + f)) {
 slideup("commentstoggle" + f);
 }
 slidedown(objname);
 }
 }

function allup() {
slideup('panel01');
slideup('panel02');
slideup('panel03');
}

