var dec = true, vOrig = 100, cframe, d, p, timePos;
var img1, img2, t, start, end, op;

function InitTransition (animTime, pauseTime)
{
 d = animTime; p = pauseTime;
 img1 = document.getElementById("img1"), img2 = document.getElementById("img2");
 img2.style.visibility = "visible"; setTimeout("StartTransition()", p);
}

function StartTransition()
{
 start = new Date().getTime(); end = start + d; 
 cframe = 0; t = setInterval(function(){ loop(); }, 40);
}

function loop()
{
 timePos = new Date().getTime(); DoTransition(timePos);
}

function DoTransition(tpos)
{
 var apos = (tpos - start) / d;
 var frame = apos * 25.0 * (d / 1000); 

 if (frame != cframe) 
 {
  cframe = frame;
  
  if (tpos >= end) 
  {
   op = dec ? 0: 100; clearInterval(t); dec = !dec; vOrig = dec ? 100 : 0;
   setTimeout("StartTransition()", p); update(op); 
   return;
  }
 
  op = (tpos - start) / (end - start);
  op *= 100; op *= dec ? -1 : 1; op += vOrig;

  update(op); 
 } 
}

function update(opval)
{
 if (img1.filters && img1.filters[0])
 {
  if (typeof img1.filters[0].opacity == "number") 
  {
   img1.filters[0].opacity = opval; 
  }
  else
   img1.style.filter = "alpha(opacity=" + parseInt(opval) + ")";
 }
 else
  img1.style.opacity = opval / 100;
} 
