function homepageAnimation(elementId)
{
	this.tween = false;
	this.interval = false;
	this.lastSlide = 0;
	this.slides = new Array();
	this.slideButtons = new Array();

	this.init = function(elementId)
	{
		var container = document.getElementById(elementId);
		var self = this;
	
		this.slides = container.getElementsByTagName("div");
	
		for(var i = 0; i < this.slides.length; i++)
		{
			this.slides[i].style.zIndex = 1000 - i;
			
			var a = document.createElement("a");
			var img = document.createElement("img");
			var span = document.createElement("span");
			img.alt = "";
			img.src = i ? "./assets/images/btn-hero-animation.png" : "./assets/images/btn-hero-animation-on.png";
			img.className = "png";
			span.appendChild(document.createTextNode(i+1));
			a.appendChild(img);
			a.appendChild(span);
			a.href = "#";
			a.slide = i;
			a.onclick = function() { self.set(this.slide); return false; };
			a.className = "button";
			a.style.zIndex = 1001 + i;
			a.style.left = (17 + (i * 36)) + "px";
			container.appendChild(a);
			this.slideButtons[i] = img;
		}
		
		this.slides[0].style.visibility = "visible";
		this.setOpacity(this.slides[0], 1);
		
		this.play();
	}
	
	this.set = function(slide)
	{
		if(this.interval)
		{
			clearInterval(this.interval);
			this.interval = false;
		}
		if(this.tween)
			this.tween.stop();

		for(var i = 0; i < this.slides.length; i++)
			this.slides[i].style.visibility = (i == slide) ? "visible" : "hidden";
			
		this.setOpacity(this.slides[slide], 1);
		this.setButtonOn(slide);
	}
	
	this.setButtonOn = function(slide)
	{
		for(var i = 0; i < this.slideButtons.length; i++)
			this.slideButtons[i].src = (i != slide) ? "./assets/images/btn-hero-animation.png" : "./assets/images/btn-hero-animation-on.png";
	}

	this.nextSlide = function()
	{
		if(this.lastSlide == (this.slides.length-1))
		{
			this.tween = new OpacityTween(this.slides[0], Tween.regularEaseIn, 0, 100, 1);

			var obj = this.slides[this.lastSlide];
			this.tween.onMotionFinished = function()
			{
				obj.style.visibility = "hidden";
			}

			this.tween.start();
			this.lastSlide = 0;
		}
		else
		{
			this.tween = new OpacityTween(this.slides[this.lastSlide], Tween.regularEaseOut, 100, 0, 1);
			this.tween.start();
			
			var obj = this.slides[this.lastSlide];
			this.tween.onMotionFinished = function()
			{
				obj.style.visibility = "hidden";
			}
			
			this.lastSlide++;

			this.setOpacity(this.slides[this.lastSlide], 1);
		}

		this.slides[this.lastSlide].style.visibility = "visible";
		this.setButtonOn(this.lastSlide);
	}
	
	this.setOpacity = function(o, i)
	{
		o.style.opacity = Math.abs(i - .001);
		o.style.MozOpacity = Math.abs(i - .001);
		o.style.KhtmlOpacity = Math.abs(i - .001);
		o.style.filter = "alpha(opacity=" + Math.round(i * 100) + ")";
    }
	
	this.play = function()
	{
		if(!this.interval)
		{
			var self = this;
			this.interval = setInterval(function() { self.nextSlide() }, 8000);
		}
	}
	
	this.init(elementId);
}
