
	function animate(elementID, newLeft, newTop, newWidth,
		  newHeight, time, callback)
	{
	  var el = document.getElementById(elementID);
	  if(el == null)
		return;
     
	  var cLeft = parseInt(el.style.left);
	  var cTop = parseInt(el.style.top);
	  var cWidth = parseInt(el.style.width);
	  var cHeight = parseInt(el.style.height);
     
	  var totalFrames = 1;
	  if(time> 0)
		totalFrames = time/40;

	  var fLeft = newLeft - cLeft;
	  if(fLeft != 0)
		fLeft /= totalFrames;
     
	  var fTop = newTop - cTop;
	  if(fTop != 0)
		fTop /= totalFrames;
     
	  var fWidth = newWidth - cWidth;
	  if(fWidth != 0)
		fWidth /= totalFrames;
     
	  var fHeight = newHeight - cHeight;
	  if(fHeight != 0)
		fHeight /= totalFrames;
       
	  doFrame(elementID, cLeft, newLeft, fLeft,
		  cTop, newTop, fTop, cWidth, newWidth, fWidth,
		  cHeight, newHeight, fHeight, callback);
	}

	function doFrame(eID, cLeft, nLeft, fLeft,
		  cTop, nTop, fTop, cWidth, nWidth, fWidth,
		  cHeight, nHeight, fHeight, callback)
	{
	   var el = document.getElementById(eID);
	   if(el == null)
		 return;

	  cLeft = moveSingleVal(cLeft, nLeft, fLeft);
	  cTop = moveSingleVal(cTop, nTop, fTop);
	  cWidth = moveSingleVal(cWidth, nWidth, fWidth);
	  cHeight = moveSingleVal(cHeight, nHeight, fHeight);

	  el.style.left = Math.round(cLeft) + 'px';
	  el.style.top = Math.round(cTop) + 'px';
	  el.style.width = Math.round(cWidth) + 'px';
	  el.style.height = Math.round(cHeight) + 'px';
     
	  if(cLeft == nLeft && cTop == nTop && cHeight == nHeight
		&& cWidth == nWidth)
	  {
		if(callback != null)
		  callback();
		return;
	  }
       
	  setTimeout( 'doFrame(""'+eID+'"",'+cLeft+','+nLeft+','+fLeft+','
		+cTop+','+nTop+','+fTop+','+cWidth+','+nWidth+','+fWidth+','
		+cHeight+','+nHeight+','+fHeight+','+callback+')', 40);
	}

	function moveSingleVal(currentVal, finalVal, frameAmt)
	{
	  if(frameAmt == 0 || currentVal == finalVal)
		return finalVal;
     
	  currentVal += frameAmt;
	  if((frameAmt> 0 && currentVal>= finalVal)
		|| (frameAmt <0 && currentVal <= finalVal))
	  {
		return finalVal;
	  }
	  return currentVal;
	}
    
	function MoveThatShit(elementId, headerElementId)
	{
	   var element = document.getElementById(elementId);
	   var header = document.getElementById(headerElementId);

	   if(element.up == null || element.down)
	   {       
		  //animate(elementID, newLeft, newTop, newWidth, newHeight, time, callback)       
		  animate(elementId, 0, 0, 0, 25, 200, null);
		  element.up = true;
		  element.down = false;          
		  header.innerHTML = '<img src=""/images/toggleOff.gif""/>';
	   }
	   else
	   {
		  animate(elementId, 0, 0, 75, 25, 200, null);
		  element.down = true;
		  element.up = false;
	   }
	}  