function slide(element){
  if (element){
    if (element.style.display==="none")
      slideOut(element);
    else
      slideIn(element);

  }
}

function slideIn(element){
  if (!element)
    return;

  var actualHeight = getActualHeight(element);
  var currentHeight = element.offsetHeight;//isNaN(parseInt(element.style.height))?0:parseInt(element.style.height);

  if (parseInt(element.style.height)>0){
    element.style.height = ((currentHeight-5)<0?0:(currentHeight-5)) + "px";
    setTimeout("slideIn(document.getElementById('"+ element.getAttribute("id") +"'))",50);
  }
  else if (parseInt(element.style.height)<=0){
    element.style.height = "0px";
    element.style.display = "none";
  }
}

function slideOut(element){
  if (!element)
    return;

  element.style.display = "";
  var actualHeight = getActualHeight(element);
  //alert("Current Element Height "+ parseInt(element.style.height));
  var currentHeight = element.offsetHeight;//isNaN(parseInt(element.style.height))?0:parseInt(element.style.height);
  if (actualHeight > currentHeight){
    element.style.height = (currentHeight+5) + "px";
    setTimeout("slideOut(document.getElementById('"+ element.getAttribute("id") +"'))",50);
  }
  else{
    //element.style.height = (parseInt(element.style.height)+5)+"px";
  }
}

function getActualHeight(element){
  if (!element) return;
  //check the children
  var height = 0;
  for(var i=0; i< element.childNodes.length; i++){
    if (element.childNodes[i].nodeType !== 1) continue;
    if (element.childNodes[i].nodeName.toLowerCase() != "div".toLowerCase()) continue;
    //alert("OffsetHeight "+element.childNodes[i].offsetHeight);
    height = parseInt(height)+ parseInt(element.childNodes[i].offsetHeight) ;
  }
  return (height+10);
}