/*** Basic Animation **************************************************/

function animate(e,fn,t)
{
  timer = setInterval(fn+'("'+e+'")', t)
}

/*** Fade Functionality ***********************************************/

function fade(e)
{
  elem = document.getElementById(e);
  if (!elem) return;
  elem.style.overflow = 'hidden';
  currentOpacity = elem.style.opacity;
  if (currentOpacity >= 1) {
    elem.style.opacity = 1;
    animate(e,'fadeOut',10);
  } else {
    elem.style.display= 'block';
    elem.style.opacity = 0;
    animate(e,'fadeIn',10);            
  }
}

function fadeOut(e)
{
  elem = document.getElementById(e);          
  currentOpacity = elem.style.opacity;
  if (currentOpacity <= 0)
  {
    clearInterval(timer);
    elem.style.display= 'none';
  }
  newOpacity = Math.round((currentOpacity-0.1)*10)/10;
  elem.style.opacity = newOpacity;
}

function fadeIn(e)
{
  elem = document.getElementById(e);          
  currentOpacity = parseFloat(elem.style.opacity);
  if (currentOpacity >= 1)
  {
    clearInterval(timer);
  }
  newOpacity = Math.round((currentOpacity+0.1)*10)/10;
  elem.style.opacity = newOpacity;
}

/*** Slide Functionality **********************************************/

function getHeight(e) // get real height of minimized element
{
  elem = document.getElementById(e);
  elem.style.position = 'absolute';
  elem.style.visibility = 'hidden';
  elem.style.display = 'block';
  elem.style.height = 'auto';
  elemHeight = elem.offsetHeight;
  elem.style.position = 'static';
  elem.style.visibility = 'visible';
  return elemHeight;
}

function slide(e)
{
  elem = document.getElementById(e);
  if (!elem) return;
  elem.style.overflow = 'hidden';
  currentHeight = elem.offsetHeight;
  if (currentHeight > 0) {
    elem.style.height = currentHeight+'px';
    animate(e,'slideOut',10);
  } else {
    targetHeight = getHeight(e);
    elem.style.height = 0+'px';
    animate(e,'slideIn',10);            
  }
}

function slideOut(e)
{
  elem = document.getElementById(e);
  currentHeight = parseInt(elem.offsetHeight);
  if (currentHeight <= 0)
  {
    elem.style.visibility = 'hidden';
    elem.style.display= 'none';
    clearInterval(timer);
  } else {
//    newHeight = Math.floor((currentHeight/100)*90);
	// schneller sein
    newHeight = Math.floor((currentHeight/100)*1);
    elem.style.height = newHeight+'px';
  }
}

function slideIn(e)
{
  elem = document.getElementById(e);
  elem.style.visibility = 'visible';
  currentHeight = parseInt(elem.offsetHeight);
  if (currentHeight >= targetHeight)
  {
    clearInterval(timer);
    elem.style.height = targetHeight+'px';
  } else {
    if (currentHeight == 0)
      currentHeight = 1;
//    newHeight = Math.ceil((targetHeight-currentHeight)/10);
	// schneller sein
    newHeight = Math.ceil((targetHeight-currentHeight)/1);
    elem.style.height = currentHeight+newHeight+'px';
  } 
}







