function fade(lastTick, divId, imgName, imgSrc1, imgSrc2, wasPaused, nSwitches)
{
  var kFadeRate = 0.001;
  var kPauseTicks = 6000;
  var kUpdateTicks = 33;

  var curTick = new Date().getTime();
  var elapsedTicks = (0 != wasPaused) ? 0 : (curTick - lastTick);
  var element = document.getElementById(divId);

  var timerTicks = kUpdateTicks;

  if (null == element)
  {
    return;
  }

  if (null == element.myOpacity)
  {
    if (document.images)
    {
      preloadImg = new Image(654, 296);
      preloadImg.src = imgSrc1;

      preloadImg = new Image(654, 296);
      preloadImg.src = imgSrc2;
    }
    else
    {
      return;
    }

    element.myOpacity = 1.0;
    element.myFadeOut = 1;
    element.myImageNo = 0;
    timerTicks = kPauseTicks;
    elapsedTicks = 0;
  }

  if (nSwitches <= 0 && element.myOpacity >= 1.0)
  {
    return;
  }

  if (element.myFadeOut != 0)
  {
    element.myOpacity -= kFadeRate * elapsedTicks;
    if (element.myOpacity <= 0.0)
    {
      element.myOpacity = 0.0;
      element.myFadeOut = 0;
      nSwitches--;
      if (0 == element.myImageNo)
      {
        document.images[imgName].src = imgSrc2;
        element.myImageNo = 1;
      }
      else
      {
        document.images[imgName].src = imgSrc1;
        element.myImageNo = 0;
      }
    }
  }
  else
  {
    element.myOpacity += kFadeRate * elapsedTicks;
    if (element.myOpacity >= 1.0)
    {
      element.myOpacity = 1.0;
      element.myFadeOut = 1.0;
      timerTicks = kPauseTicks;
    }
  }

  element.style.opacity = element.myOpacity;
  element.style.filter = 'alpha(opacity = ' + (element.myOpacity * 100.0) + ')'; 
  setTimeout(
    "fade(" + curTick + ",'" +
    divId + "','" +
    imgName + "','" +
    imgSrc1 + "','" +
    imgSrc2 + "'," +
    (timerTicks == kPauseTicks ? 1 : 0) + "," +
    nSwitches + ")", timerTicks);
}

