
var slideElem = null;
var onSlideFinished = null;
var slideStart = null;
var slideStartLeft = null;
var slideDuration = 1500;
var slideIn = false;
var slideOutLimit = 8;
var slideInLimit = 0;

function slide(elem, doSlideIn, onFinished)
{
  if (typeof(elem) == "string")
    slideElem = document.getElementById(elem);
	else
	  slideElem = elem;
  slideIn = doSlideIn;
  slideStart = new Date();
  slideStartLeft = slideElem.offsetLeft;
  onSlideFinished = onFinished;
  slideStep();
}

function slideStep()
{
  var elapsed = new Date().getTime() - slideStart.getTime();
  if (elapsed < slideDuration)
	{
	  var factor = (1 - Math.cos(3.14 * elapsed / slideDuration)) / 2;
	  if (slideIn)
    	slideElem.style.left = slideOutLimit - slideElem.offsetWidth +
        Math.round((slideElem.offsetWidth - slideOutLimit)  * factor) + "px";
		else
    	slideElem.style.left = slideInLimit - Math.round((slideElem.offsetWidth - slideOutLimit) * factor) + "px";
  	setTimeout("slideStep()", 10);
	}
  else
	{
	  if (slideIn)
    	slideElem.style.left = slideInLimit + "px";
		else
    	slideElem.style.left = slideOutLimit  - slideElem.offsetWidth + "px";
		var s = onSlideFinished;
		onSlideFinished = null;
  	if (typeof(s) == "function")
  	  s()
  	else
			eval(s);
	}
}

