var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf('msie 4.') != -1));
var is_ie7    = ((is_ie) && (userAgent.indexOf('msie 7.') != -1));
var is_ie8    = ((is_ie) && (userAgent.indexOf('msie 8.') != -1));
var is_ps3    = (userAgent.indexOf('playstation 3') != -1);
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);

function Fader(settype)
{
	this.m_FadeOut = 0;
	this.m_FadeIn = 100;

	if (settype == 'ticker')
	{
		this.m_FadeWait = 2600;
	}
	else
	{
		this.m_FadeWait = 3000;
	}

	this.m_FadeStep = 1;
	this.m_bFadeOut = true;
	this.m_iFadeInterval;

	this.fades = [];
	this.type = settype;
	this.arrFadeItems = Array();
	this.posters = Array();
	this.arrFadeCursor = 0;
	this.arrFadeCursor2 = 1;
	this.arrFadeMax;
	this.init = false;

	this.ticker = document.getElementById(this.type);
}

Fader.prototype.Fadewl = function()
{
	this.m_iFadeInterval = setInterval("Tickers['" + this.type + "'].fade_ontimer()", 10);
	this.arrFadeMax = this.arrFadeItems.length - 1;
	this.setFadeItem();
}

Fader.prototype.setFadeItem = function()
{
	if (this.type == 'poster-ticker')
	{
		if (!this.init)
		{
			for (var i = 0; i < this.arrFadeItems.length; i++)
			{
				this.posters[i] = document.createElement('img');
				this.posters[i].id = "poster-ticker-" + i;
				this.posters[i].alt = "";
				this.posters[i].src = this.arrFadeItems[i];

				this.ticker.appendChild(this.posters[i]);
				this.set_opacity(this.posters[i], 0);
				this.fades[i] = 0;
			}

			this.set_opacity(this.posters[0], 100);
			this.fades[0] = 100;
			this.init = true;
		}
	}
	else if (this.type == 'ticker')
	{
		if (!this.init)
		{
			this.init = true;
			this.set_opacity(this.ticker, 0);

			for (var i = 0; i < this.arrFadeItems.length; i++)
			{
				this.fades[i] = 0;
			}
		}

		for (var item in this.arrFadeItems[this.arrFadeCursor])
		{
			var quote = document.createElement("span");
			quote.innerHTML = item;

			if (this.arrFadeItems[this.arrFadeCursor][item] != "")
			{
				var speaker = document.createElement("span");
				speaker.className = "speaker";
				speaker.innerHTML = "- " + this.arrFadeItems[this.arrFadeCursor][item];
			}

			this.ticker.innerHTML = "";
			this.ticker.appendChild(quote);

			if (speaker)
			{
				this.ticker.appendChild(speaker);
			}
		}
	}
}

Fader.prototype.fade_ontimer = function()
{
	if (this.m_bFadeOut)
	{
		if (this.fades[this.arrFadeCursor] > this.m_FadeIn)
		{
			clearInterval(this.m_iFadeInterval);
			setTimeout("Tickers['" + this.type + "'].Faderesume()", this.m_FadeWait);
			this.m_bFadeOut = false;
		}
		else
		{
			if (this.type == "poster-ticker")
			{
				this.fades[this.arrFadeCursor] += this.m_FadeStep;
				this.fades[this.arrFadeCursor2] -= this.m_FadeStep;
			}
			else
			{
				this.fades[this.arrFadeCursor] += this.m_FadeStep;
			}
		}
	}
	else
	{
	    if (this.fades[this.arrFadeCursor] == this.m_FadeOut)
		{
			this.arrFadeCursor++;

			if (this.arrFadeCursor > this.arrFadeMax)
			{
				this.arrFadeCursor = 0;
			}

			if (this.type == "ticker")
			{
				this.setFadeItem();
			}
			else
			{
				this.arrFadeCursor2 = this.arrFadeCursor + 1;

				if (this.arrFadeCursor2 > this.arrFadeMax)
				{
					this.arrFadeCursor2 = 0;
				}
			}

			this.m_bFadeOut = true;
		}
		else
		{
			if (this.type == "poster-ticker")
			{
				this.fades[this.arrFadeCursor] -= this.m_FadeStep;
				this.fades[this.arrFadeCursor2] += this.m_FadeStep;
			}
			else
			{
				this.fades[this.arrFadeCursor] -= this.m_FadeStep;
			}
		}
	}

	if (this.fades[this.arrFadeCursor] >= this.m_FadeOut && this.fades[this.arrFadeCursor] <= this.m_FadeIn)
	{
		if (this.type == "poster-ticker")
		{
			this.set_opacity(this.posters[this.arrFadeCursor2], this.fades[this.arrFadeCursor2]);
			this.set_opacity(this.posters[this.arrFadeCursor], this.fades[this.arrFadeCursor]);
		}
		else
		{
			this.set_opacity(this.ticker, this.fades[this.arrFadeCursor]);
		}
	}
}

Fader.prototype.Faderesume = function()
{
	this.m_iFadeInterval = setInterval("Tickers['" + this.type + "'].fade_ontimer()", 10);
}

Fader.prototype.set_opacity = function(el, value)
{
	if (is_ie8)
	{
		el.style.MsFilter = '"progid:DXImageTransform.Microsoft.Alpha(opacity = ' + value / 10 + ')"';
	}
	else if (is_ie)
	{
		el.style.filter = 'alpha(opacity = ' + value / 10 + ')';
	}
	else if (is_moz)
	{
		el.style.MozOpacity = value / 100;
	}
	else
	{
		el.style.opacity = value / 100;
	}
}

var Tickers = new Object();