/**
 * @author csimpson
 */

var minAlpha = 0.0;
var maxAlpha = 0.999;
var cycleTimerMultiplier = 40;
var cycleTimerMinimum = 10000;
var imageCycleTimer = 5000;
var mode;
function initNews()
{
	var news = document.getElementById("homeContentNews");
	mode = "news";
	if(!news)
	{
		news = document.getElementById("focalPointRotator");
		mode = "images";
		cycleTimerMinimum = imageCycleTimer;
	}
	var newsitems = news.childNodes;
	var found = false;
	for(var index = 0; index < newsitems.length; index++)
	{
		var newsitem = newsitems[index];
		if(newsitem.style && newsitem.innerHTML )
		{
			if(found)
				setOpacity(newsitem, minAlpha);
			if(!found)
			{
				setOpacity(newsitem, maxAlpha);
				infade = newsitem;
				found = true;
			}
		}
	}

}
function cycleNews()
{
	var news = document.getElementById("homeContentNews");
	mode = "news";
	if(!news)
	{
		news = document.getElementById("focalPointRotator");
		mode = "images";
	}
	var newsitems = news.childNodes;
	var currentitem;
	var nextitem;
	for(var index = 0; index < newsitems.length; index++)
	{
		var newsitem = newsitems[index];
		if(newsitem.style && newsitem.innerHTML && !currentitem && (newsitem.style.display == "block" || !newsitem.style.display))
		{
			currentitem = newsitem;
		}
		if(currentitem && currentitem != newsitem && newsitem.style && newsitem.innerHTML && !nextitem)
		{
			nextitem = newsitem;
		}
		if(currentitem && nextitem)
		{
			break;
		}
	}
	if(!currentitem)
	{
		for(var index = 0; index < newsitems.length; index++)
		{
			var newsitem = newsitems[index];
			if(newsitem.style && newsitem.innerHTML && !currentitem)
			{
				currentitem = newsitem;
			}
			if(currentitem && currentitem != newsitem && newsitem.style && newsitem.innerHTML && !nextitem)
			{
				nextitem = newsitem;
			}
			if(currentitem && nextitem)
			{
				break;
			}
		}
	}
	if(currentitem && !nextitem)
	{
		for(var index = 0; index < newsitems.length; index++)
		{
			var newsitem = newsitems[index];
			if(newsitem.style && newsitem.innerHTML )
			{
				nextitem = newsitem;
				break;
			}
		}		
	}
	if(currentitem && nextitem)
	{
		outfade = currentitem;
		infade = nextitem;
		crossFade();
	}
}
var infade;
var outfade;
function setOpacity(target, alpha) {
	if(alpha < minAlpha)
		alpha = minAlpha;
	if(alpha > maxAlpha)
		alpha = maxAlpha;
	target.style.opacity = alpha;
	target.style.MozOpacity = alpha;
	target.style.filter = "alpha(opacity=" + (alpha * 100) + ")";
	if(alpha > minAlpha)
		target.style.display = "block";
	if(alpha >= maxAlpha)
		target.style.filter = null;
	if(alpha <= minAlpha)
		target.style.display = "none";		
}
function getOpacity(target) {
	var alpha;
	alpha = parseFloat(target.style.opacity);
	return alpha;
}
function crossFade() {
	if(infade && outfade && infade != outfade)
	{
		var currentIn = getOpacity(infade);
		var currentOut = getOpacity(outfade);
		if(isNaN(currentOut) || currentOut == undefined)
			currentOut = maxAlpha;
		if(isNaN(currentIn) || currentIn == undefined)
			currentIn = maxAlpha;
		if(currentIn < maxAlpha) {
			if(mode == "news")
				currentIn += .1;
			else if(mode == "images")
				currentIn += .025;
			setOpacity(infade, currentIn);
		}
		if(currentOut > minAlpha) {
			if(mode == "news")
				currentOut -= .1;
			else if(mode == "images")
				currentOut -= .025;
			setOpacity(outfade, currentOut);
		}
		if(currentIn < maxAlpha || currentOut > minAlpha)
		{
			if(mode == "news")
				setTimeout("crossFade();", 100);
			else if(mode == "images")
				setTimeout("crossFade();", 10);
		}
		else
		{
			setTimeout("cycleNews();", calcTimer());
		}
	}
}
function calcTimer()
{
	var timer = infade.innerHTML.replace(/(<([^>]+)>)/ig,"").length * cycleTimerMultiplier;
	if(timer < cycleTimerMinimum)
		timer = cycleTimerMinimum;
	return timer;
}
initNews();
setTimeout("cycleNews();", calcTimer());
