
  /*******************************************************************************/
  /*                                                                             */
  /*******************************************************************************/




  var timerlen = 5;
  var slideAniLen = 250;




  var timerID = new Array();
  var startTime = new Array();
  var obj = new Array();
  var endHeight = new Array();
  var moving = new Array();
  var direction = new Array();




  /*******************************************************************************/
  /*                                                                             */
  /*******************************************************************************/

  function slide(objname)
  {



   if(moving[objname]) return;
   moving[objname] = true;


   direction[objname] = String(document.getElementById(objname).style.display=="none" ? "down" : "up");


   startslide(objname);
  }



  /*******************************************************************************/
  /*                                                                             */
  /*******************************************************************************/

  function startslide(objname)
  {



   obj[objname] = document.getElementById(objname);
   obj[objname].style.display = "block";
   endHeight[objname] = parseInt(document.getElementById(objname).offsetHeight); 







   startTime[objname] = (new Date()).getTime();

   slideAniLen = 100+parseInt(endHeight[objname]/(direction[objname]=="down" ? 2.0 : 4.0));







   timerID[objname] = setInterval('slidetick(\'' + objname + '\');', timerlen);
  }


  /*******************************************************************************/
  /*                                                                             */
  /*******************************************************************************/

  function slidetick(objname)
  {var d, elapsed;

   elapsed = (new Date()).getTime()-startTime[objname];

   if(elapsed>slideAniLen)
   {
    endSlide(objname);
   }
   else
   {
    l = Math.pow(elapsed/slideAniLen, direction[objname]=="down" ? 0.75 : 2.0);

    d = l*endHeight[objname];
    if(direction[objname]=="up") d = endHeight[objname]- d;
    obj[objname].style.height = d + "px";






   }

   return;
  }


  /*******************************************************************************/
  /*                                                                             */
  /*******************************************************************************/

  function endSlide(objname)
  {
   clearInterval(timerID[objname]);

   if(direction[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(direction[objname]);




   return;
  }
