
function banner()
{
  this.e = null;
  this.url = "";
}

// init fader

var currentBanner = 0;   // on top
var opacity = 0;         // (visibility of "nextBanner")
var maxZ = 1;
var bannerHasStarted = false;
var numBanners = 0;
var bannerDelaySlow = 3000;
var bannerDelayFast = 1;
var bannerDelay = 4000;

var banners = new Array();

function getElement(id)
{
  return document.getElementById ? document.getElementById(id) : document.all[id];
}

function getLeft(e)
{
  if(e.offsetParent) return e.offsetLeft + getLeft(e.offsetParent);
  return e.offsetLeft;
}

function getTop(e)
{
  if(e.offsetParent) return e.offsetTop + getTop(e.offsetParent);
  return e.offsetTop;
}

function getWidth(e)
{
  return parseInt(e.offsetWidth, 10);
}

function getHeight(e)
{
  return parseInt(e.offsetHeight, 10);
}

function setOpacity(e, pc)
{
  var u = (pc * 1.0) / 100.0;
  e.style.opacity = u;
  e.style.MozOpacity = u;
  e.style.KhtmlOpacity = u;
  e.style.filter = "alpha(opacity=" + pc + ")";
}

function setEvent(e, type, fn)
{
  if(e.attachEvent)
  {
    e.attachEvent('on' + type, fn);
  }
  else
  {
    e.addEventListener(type, fn, false);
  }
}

function startBanners()
{
  var e = null;
  var i = 0;
  while((e = getElement("banner" + i)) != null)
  {
    banners[i] = new banner();
    banners[i].e = e;
    banners[i].url = e.getAttribute("targeturl");
    if(i > 0) 
    {
      setOpacity(e, 0);
      e.style.display = "inline";
    }
    e.style.zIndex = maxZ;
    maxZ++;
    i++;
  }
  numBanners = i;
  if(numBanners > 1) 
  {
    currentBanner = 1;
    bannerHasStarted = true;
    window.setTimeout("blendBanners();", bannerDelay);
  }
}

function blendBanners()
{
  if(bannerDelay >= bannerDelaySlow) 
  {
    bannerDelay = bannerDelayFast;
  }
  if(opacity > 100)
  {
    // progress to next banner
    currentBanner++;
    if(currentBanner >= numBanners) currentBanner = 0;
    // move top banner to top...
    setOpacity(banners[currentBanner].e, 0);
    banners[currentBanner].e.style.zIndex = maxZ;
    maxZ++;
    opacity = 0;
  }
  else
  {
    if(opacity == 100)
    {
      bannerDelay = bannerDelaySlow;
    }
    opacity++;
    setOpacity(banners[currentBanner].e, opacity);
  }
  window.setTimeout("blendBanners();", bannerDelay);
}      

function bannerClick(e)
{
  var url = defaultUrl;
  if(numBanners > 0 && bannerHasStarted)
  {
    var banner = currentBanner;
    if(opacity < 50) banner--;
    if(banner < 0) banner = numBanners - 1;
    url = banners[banner].url
  }
  document.location.href = url;
}

