// This is the support file used for banner rotating.
// (C) www.in.gr

var HTMLs, nActive, nItems, Intervals, Layers;
var ns4, ie4;
var bInitialized;
var nOffsetX, nOffsetY

// function  : Allocate
// Purpose   : Prepare banner mechanism. Call it before inserting banners.
// Arguments :
// 						 nX, nY      : Offset in pixels from the start of 'positioner' element

function Allocate(nX, nY)
{
	nItems = 0;
	Layers = new Array();
	Intervals = new Array();
	
	nActive = 0;
	ns4 = (document.layers) ? true : false;
	ie4 = (document.getElementById) ? true : false;
	
	nOffsetX = nX; nOffsetY = nY;
	
	bInitialized = 0;
}

// Function  : AddBanner
// Purpose   : Add banners one by one after calling Allocate
// Arguments :
//             strLayer     : ID attribute of layer containing banner. (Layer = DIV with absolute position style)
//             nDelay       : Display time in ms

function AddBanner(strHTML, nDelay)
{
	Intervals[nItems] = nDelay;
	Layers[nItems++] = strHTML;
}

// function  : Initiate
// Purpose   : Starts display and rotation. Call it upon 'onload' BODY event.

function Initiate()
{
	if (nItems && !bInitialized) {
		nActive = nItems - 1;
		
		window.setTimeout("Rotate()", 100);
	}
}

// Internal section

function Rotate()
{
	if (!bInitialized) {
		RepositionLayers();
		bInitialized = 1;
	}
	Activate(Layers[nActive], 0);
	nActive = (++nActive) % nItems;
	Activate(Layers[nActive], 1);
	setTimeout("Rotate()", Intervals[nActive]);
}

function RepositionLayers()
{
	var HiddenLayer;
	var Anchor;
	
	if (ns4) {
		Anchor = document.layers["Positioner"];
		for (i = 0; i < nItems; i++) {
			HiddenLayer = document.layers[Layers[i]];
			HiddenLayer.pageX = Anchor.pageX + nOffsetX;
			HiddenLayer.pageY = Anchor.pageY + nOffsetY;
		}
	}
	else {
		Anchor = document.getElementById("Positioner");
		for (i = 0; i < nItems; i++) {
			HiddenLayer = document.getElementById(Layers[i]).style;
			HiddenLayer.left = AbsoluteX(Anchor) + nOffsetX;
			HiddenLayer.top = AbsoluteY(Anchor) + nOffsetY;
		}
	}

}

function Activate(strLayer, bShow)
{
	var Layer;
	
	if (ns4) {
		Layer = document.layers[strLayer];
		if (bShow) Layer.visibility = "show";
		else Layer.visibility = "hide";
	}
	else {
		Layer = document.getElementById(strLayer).style;
		if (bShow) Layer.visibility = "visible";
		else Layer.visibility = "hidden";
	}

}

function AbsoluteX(e)
{
	if (e.tagName == "BODY") return e.offsetLeft;
	else return e.offsetLeft + AbsoluteX(e.offsetParent);
}

function AbsoluteY(e)
{
	if (e.tagName == "BODY") return e.offsetTop;
	else return e.offsetTop + AbsoluteY(e.offsetParent);
}
