var TimeToFade = 500.0;
var MaxAlpha = 90;

function closeAllBlock(pref, n)
{
    i=1;
    while (document.getElementById(pref+i) != null) 
    {
      if (i != n)
      {    
        elem = document.getElementById(pref+i);
        if (pref == "info_block") elem.style.left="-20000px";
        elem.FadeState = -2;
        SetOpacity(elem,0);
      }
     i++;
    }
}

function openBlock(pref, i)
{
    closeAllBlock(pref, i);
    if (pref == "info_block") document.getElementById(pref+i).style.left=0;
    ShowBlock(pref+i);
}

function ShowBlock(eid)
{
  var element = document.getElementById(eid);
  if(element == null) return;
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }

  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState = 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    if (element.FadeState == 2) return;
    element.FadeState = 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 5);
  }  
}

function HideBlock(eid)
{
  var element = document.getElementById(eid);
  if(element == null) return;
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }

  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState = -1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    if (element.FadeState == -2) return;
    element.FadeState = -1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 1);
  }  
}


function fadeInOut(eid)
{
  var element = document.getElementById(eid);
  if(element == null) return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }
   
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 5);
  }  
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    if (element.FadeState == 1)  SetOpacity(element, MaxAlpha); else SetOpacity(element, 0);;
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1) newOpVal = MaxAlpha/100 - newOpVal;

  SetOpacity(element, newOpVal*100);
  //element.style.opacity = newOpVal;
  //element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 5);
}

function SetOpacity(elem, opacityAsInt)
{
    if(elem == null) return;
    var opacityAsDecimal = opacityAsInt;
    
    if (opacityAsInt > 100)
        opacityAsInt = opacityAsDecimal = 100; 
    else if (opacityAsInt < 0)
        opacityAsInt = opacityAsDecimal = 0; 
   
    opacityAsDecimal /= 100;
    if (opacityAsInt < 1) opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
    
    elem.style.opacity = (opacityAsDecimal);
    elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}


