function preloadImages() {
	if (!document.imageArray) document.imageArray = new Array();
	var args = preloadImages.arguments;
	var i, j;
	for (i=0, j=document.imageArray.length; i<args.length; i++, j++) {
		document.imageArray[j] = new Image;
		document.imageArray[j].src = args[i];
	}
}

function imgOver(img) {
	img.oSrc = img.src;
	var suffix = img.src.substr(img.src.length - 3, 3);
	img.src = img.src.substr(0, img.src.length - 4) + "_over." + suffix;
}

function imgOut(img) {
	img.src = img.oSrc;
	img.oSrc = null;
}

function openWindow(what, options) {
	window.open(what, "_blank", options);
}

var tickerElement, tickerColor = 0xffffff, tickerSpeed;
var tickerIndex = 0, tickerStrings = new Array();

function initTicker(id, speed) {
	tickerElement = document.getElementById(id);
	tickerSpeed = speed;
	tickerElement.firstChild.nodeValue = tickerStrings[0];
}

function addTickerString(s) {
	tickerStrings.push(s);
}

function incTickerIndex() {
	setTickerIndex(tickerIndex+1);
}

function setTickerIndex(i) {
	tickerIndex = i;
	if (tickerIndex >= tickerStrings.length) tickerIndex = 0;
	fadeOut();
}

function fadeOut() {
	tickerColor = 0;
	window.setTimeout("alterTicker(0x111111)", tickerSpeed);
}

function fadeIn() {
	tickerColor = 0xffffff;
	window.setTimeout("alterTicker(-0x111111)", tickerSpeed);
}

function alterTicker(delta) {
	tickerColor += delta;
	if (delta > 0 && tickerColor > 0xffffff) {
		tickerColor = 0xffffff;
		tickerElement.firstChild.nodeValue = tickerStrings[tickerIndex];
		fadeIn();
	}
	else if (delta < 0 && tickerColor < 0x000000) {
		tickerColor = 0;
	}
	else {
		window.setTimeout("alterTicker("+delta+")", tickerSpeed);
	}
	tickerElement.style.color = toColor(tickerColor);
}

function toColor(i) {
	var result = "";
	while (i>0) {
		var digit = i % 16;
		i = i >> 4;
		if (digit < 10) result = String.fromCharCode(digit+48) + result;
		else result = String.fromCharCode(digit+87) + result;
	}
	while (result.length < 6) {
		result = "0"+result;
	}
	return "#"+result;
}

