addLoadListener(init);

toolbarheight = 30; //height of bbc tool bar
drop = 200; //distance that spider drops
position = toolbarheight; //height of bbc toolbar 
weblength = 75; //initial length of spider web image from the toolbar to the spider
startdelay = 1500;
bottomdelay = 1000;
hidedelay = 1000;
animationrate = 11;

function init()
	{
		if(!document.getElementById) return false;
	
		if(document.getElementById("promo"))
		{
			/* add image for spider web */
			var spiderweb = document.getElementById("spiderweb");
			spiderweb.innerHTML='<img src="/switch/slink/randompromo/1/img/spider_web.gif" width="1" height="1" alt="" id="spidewebimg" />';
			
			/* set initial length of web */
			var spidewebimg = document.getElementById("spidewebimg");
			spidewebimg.height=weblength;
			
			/* add image for spider and set position */
			var promo = document.getElementById("promo");
			promo.innerHTML = '<img src="/switch/slink/randompromo/1/img/pudsey.png" width="150" height="186" alt="Pudsey" border="0"/>';
			promo.style.top = position;
			promo.style.left = 570;
			
			/* start animation */
			window.setTimeout("increaseWebLength(spidewebimg);", startdelay)
			window.setTimeout("moveDown(promo);", startdelay)
		}
		
		return true;
	}
	
function moveDown(promo)
{
	position +=1 ;
	if (position > drop)
	{
		window.setTimeout("moveUp(promo);", bottomdelay)
		return false;
	} else
	{
		promo.style.top = position;
		window.setTimeout("moveDown(promo);", animationrate)
	}
}

function moveUp(promo)
{
	position -=1 ;
	if (position < -3 )
	{
		window.setTimeout("hide();", hidedelay)
		return false;
	} else
	{
		promo.style.top = position;
		window.setTimeout("moveUp(promo);", animationrate)
	}
}

function increaseWebLength(spidewebimg) {
	weblength +=1 ;
	if (weblength > 250)
	{
		window.setTimeout("decreaseWebLength(spidewebimg);", bottomdelay)
		return false;
	} else
	{
		spidewebimg.height=weblength;
		window.setTimeout("increaseWebLength(spidewebimg);", animationrate)
	}
	
}

function decreaseWebLength(spidewebimg) {
	weblength -=1 ;
	if (weblength < 50)
	{
		return false;
	} else
	{
		spidewebimg.height=weblength;
		window.setTimeout("decreaseWebLength(spidewebimg);", animationrate)
	}
	
}

function hide() {
	document.getElementById("promo").innerHTML='';
	document.getElementById("spiderweb").innerHTML='';
}

/*
	=====================================================================
	This single function allows us to assign any number of load event handlers,
	without any of them conflicting
	=====================================================================
*/
function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}
