﻿var divBanner;
var speedFactor = 1.0;
var framerate = 25;
var msperframe = 1000 / framerate;

function setOpacity(obj, op)
{
	obj.style.opacity = op;
	obj.style.filter = "alpha(opacity=" + Math.floor(op * 100) + ")";
}
function fadeInScriptLine(line)
{
	bannerScript[line].FadeInValue += msperframe;

	var opacity = bannerScript[line].FadeInValue / (bannerScript[line].FadeIn * speedFactor);
	if (opacity > 1.0)
		opacity = 1.0;

	setOpacity(bannerScript[line].DomObject, opacity);

	if (opacity == 1.0)
	{
		clearInterval(bannerScript[line].FadeInInterval);

		if (typeof bannerScript[line].OnScreen != 'undefined')
		{
			setTimeout("onScreenScriptLine(" + line + ");", bannerScript[line].OnScreen * speedFactor);
		}
	}
}
function onScreenScriptLine(line)
{
	bannerScript[line].FadeOutInterval = setInterval("fadeOutScriptLine(" + line + ");", msperframe);

	var i;
	for (i = 0; i < bannerScript.length; i++)
	{
		if (typeof bannerScript[i].FadeWith != 'undefined' && bannerScript[i].FadeWith == bannerScript[line].Display)
		{
			bannerScript[i].FadeOutInterval = setInterval("fadeOutScriptLine(" + i + ");", msperframe);
		}
	}
}
function fadeOutScriptLine(line)
{
	bannerScript[line].FadeOutValue += msperframe;

	var opacity = 1.0 - (bannerScript[line].FadeOutValue / (bannerScript[line].FadeOut * speedFactor));
	if (opacity < 0.0)
		opacity = 0.0;

	setOpacity(bannerScript[line].DomObject, opacity);

	if (opacity == 0.0)
	{
		clearInterval(bannerScript[line].FadeOutInterval);
		divBanner.removeChild(bannerScript[line].DomObject);
		delete bannerScript[line].DomObject;
		return;
	}
}


function startScriptLine(line)
{
	var src = document.getElementById(bannerScript[line].Display);

	//bannerScript[line].DomObject = document.createElement("div");
	bannerScript[line].DomObject = src.cloneNode(true);
	bannerScript[line].FadeInValue = 0;
	bannerScript[line].FadeOutValue = 0;
	bannerScript[line].OnScreenValue = 0;
	bannerScript[line].FadeInInterval = setInterval("fadeInScriptLine(" + line + ");", msperframe);

	bannerScript[line].DomObject.style.display = "";
	bannerScript[line].DomObject.style.zIndex = (typeof(bannerScript[line].zIndex) != 'undefined') ? bannerScript[line].zIndex : (4 + line);

	setOpacity(bannerScript[line].DomObject, 0.0);
	divBanner.appendChild(bannerScript[line].DomObject);

	var nextLine = line + 1;
	if (nextLine >= bannerScript.length)
		nextLine = 0;
	if (bannerScript[line].RunNext != 0)
		setTimeout("startScriptLine(" + nextLine + ");", bannerScript[line].RunNext * speedFactor);
	else
		startScriptLine(nextLine);
}
function startBannerScript(bannerRef)
{
	divBanner = document.getElementById(bannerRef);

	startScriptLine(0);
}
