function getFlashMovieObject(movieName)
{
  if (navigator.userAgent.indexOf("WebKit")!=-1)
  {
    return document.getElementById(movieName);
  }

  if (window.document[movieName]) 
  {
    return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

function AdvertSpinner(itemList)
{
	var timeoutId
	var fade = 0
	var fadeSpeed = 20
	var currentItem = 0
	var nextItem = 1
	var itemList
	var thisObj = this
	
	this.itemList = itemList

	this.runNextImage = function() { thisObj.nextImage() }

	function run()
	{
		this.showCurrentImage()
		this.setImageTimeout();
	}
	this.run = run

	function setOpacity(obj, percent)
	{
		if (undefined !== obj.filters)
			obj.filters.alpha.opacity = percent
		else if (undefined !== obj.style.MozOpacity)
			obj.style.MozOpacity = percent / 101
		else if (undefined !== obj.style.opacity)
			obj.style.opacity = percent / 100
	}
	this.setOpacity = setOpacity
	
	function showCurrentImage()
	{
		for (n = 0; n < 5; n++)
		{
			obj = document.getElementById("arrow"+n);
	
			if (fade == 0)
			{
				//setOpacity(obj, n == currentItem ? 50 : 100);
				setOpacity(obj, n == currentItem ? 100 : 0);
				//obj.style.top = (n == currentItem ? -10 : 0) + "px"
			}
			else if (n == currentItem)
			{
				//setOpacity(obj, 50 + fade * 0.5);
				setOpacity(obj, 100 - fade);
				//obj.style.top = -10 + fade * 0.1 + "px"
			}
			else if (n == nextItem)
			{
				//setOpacity(obj, 100 - fade * 0.5);
				setOpacity(obj, fade);
				//obj.style.top = -fade * 0.1 + "px"
			}
	
		}
		
		obj = document.getElementById("mainimage1");
		flashObj = getFlashMovieObject("asFlash");
			//document.getElementById("asFlash");

		obj.src = this.itemList[currentItem][0];

		if (this.itemList[currentItem][4] != "")
		{
			setOpacity(flashObj, 100 - fade)
			flashObj.style.visibility = 'visible';
			obj.style.visibility = 'hidden';
		}
		else
		{
			flashObj.style.visibility = 'hidden';
			//flashObj.Stop();
			obj.style.visibility = 'visible';
			setOpacity(obj, (this.itemList[nextItem][4] != "") ? 100 : 100 - fade)
		}

		obj = document.getElementById("mainimage0");
		obj.src = (fade == 0) ? this.itemList[currentItem][0] : this.itemList[nextItem][0];
				
		obj = document.getElementById("sLinkButton");
		setOpacity(obj, (fade < 50) ? (100 - fade*2) : ((fade - 50)*2));
	
		if (fade == 0)
		{
			obj = document.getElementById("sLinkMain");
			obj.href = this.itemList[currentItem][2]
			obj = document.getElementById("sLinkButton");
			obj.href = this.itemList[currentItem][2] + "btn"
		}
	
		// Preload next image:
		preload = new Image()
		preload.src = this.itemList[nextItem][0];
	}
	this.showCurrentImage = showCurrentImage
	
	function mouseOver(obj)
	{
	
		nextItem = obj.id.substr(5, 1) * 1
		//showCurrentImage()
	
		fade = 0
		fadeSpeed = 50
		if (timeoutId)
		{
			clearTimeout(timeoutId)
		}
		timeoutId = setTimeout(this.runNextImage, 50);
	}
	this.mouseOver = mouseOver

	function nextImage()
	{
		fade += fadeSpeed
	
		var image1 = document.getElementById("mainimage1");
	
		if (fade < 100)
		{
			this.showCurrentImage();
	
			if (timeoutId)
			{
				clearTimeout(timeoutId)
			}
			timeoutId = setTimeout(this.runNextImage, 50);
		}
		else
		{
			currentItem = nextItem
			nextItem = (currentItem + 1) % 5
			//alert("Current " + currentItem + " next " + nextItem);
			fade = 0
			fadeSpeed = 20
			this.showCurrentImage();
			
			if (this.itemList[currentItem][4] != "")
			{
				flashObj = getFlashMovieObject("asFlash"); //document["asFlash"];
				flashObj.Rewind();
				flashObj.Play();
			}
			
			this.setImageTimeout();
		}
	}
	this.nextImage = nextImage
	
	function setImageTimeout()
	{
		if (this.itemList[currentItem][4] == "")
		{
			if (timeoutId)
			{
				clearTimeout(timeoutId)
			}
			timeoutId = setTimeout(this.runNextImage, this.itemList[currentItem][3]);
		}
	}
	this.setImageTimeout = setImageTimeout
	
	function getCurrentItem()
	{
		return currentItem;
	}
	this.getCurrentItem = getCurrentItem;

	for (n = 0; n < 5; n++)
	{
		var obj

		obj = document.getElementById("thumb" + n)
		obj.style.filter = 'alpha(opacity=100)'
		obj.src = this.itemList[n][1]
		
		obj = document.getElementById("arrow" + n)
		obj.style.filter = 'alpha(opacity=100)'
		
		obj = document.getElementById("sLink" + n)
		obj.href = this.itemList[n][2]
	}
}

function asFlash_DoFSCommand(command, args)
{
	if (spinner.itemList[spinner.getCurrentItem()][4] != "")
	{
		var flashUrl = location.protocol + "//" + location.host + spinner.itemList[spinner.getCurrentItem()][4];
		if (command == "call_spin" && args == flashUrl)
		{
			// alert("I finished!");
			spinner.nextImage();
		}
	}
}
