var newsHeight = 0;
var newsLineHeight = 0;
var newsTop = 0;
var newsTime = 7000;

/**
 * Starts the news ticker.
 * @return {Void}
 */
function startNews()
{
	var newsEl = document.getElementById("news_content");
	
	// Get the news content height.
	newsHeight = parseInt(document.getElementById("news_content").clientHeight, 10);
	//alert(newsHeight);
	
	// Get the news line height.
	// Firefox, Safari, Opera, Chrome
	if (window.getComputedStyle)
		newsLineHeight = parseInt(window.getComputedStyle(document.getElementById("news"), "").getPropertyValue("line-height"), 10);
	// Internet Explorer
	else if (document.getElementById("news").currentStyle)
		newsLineHeight = parseInt(document.getElementById("news").currentStyle.getAttribute("lineHeight"), 10);
	//alert(newsLineHeight);
	
	window.setTimeout("fadeOut('news_content', 1, 0)", newsTime);
}

/**
 * Fades out an element.
 * @param {String} id Id of html-element that should be fades out.
 * @param {Number} valueFrom Opacity value start, i. e. 1.
 * @param {Number} valueTo Opacity value end, i. e. 0.
 * @return
 */
function fadeOut(id, valueFrom, valueTo)
{
	if (valueFrom <= valueTo)
	{
		document.getElementById(id).style.opacity = valueTo;
		document.getElementById(id).style.filter = "alpha(opacity = " + (valueTo * 100).toString() + ")";
		
		nextEntry(id);
		
		return;
	}
	
	valueFrom -= 0.05;
	
	document.getElementById(id).style.opacity = valueFrom;
	document.getElementById(id).style.filter = "alpha(opacity = " + (valueFrom * 100).toString() + ")";
	
	window.setTimeout("fadeOut('" + id + "', " + valueFrom + ", " + valueTo + ")", 33);
}

/**
 * Fades in an element.
 * @param {String} id Id of html-element that should be fades in.
 * @param {Number} valueFrom Opacity value start, i. e. 0.
 * @param {Number} valueTo Opacity value end, i. e. 1.
 * @return
 */
function fadeIn(id, valueFrom, valueTo)
{
	if (valueFrom >= valueTo)
	{
		document.getElementById(id).style.opacity = valueTo;
		document.getElementById(id).style.filter = "alpha(opacity = " + (valueTo * 100).toString() + ")";
		
		window.setTimeout("fadeOut('" + id + "', 1, 0)", newsTime);
		
		return;
	}
	
	valueFrom += 0.05;
	
	document.getElementById(id).style.opacity = valueFrom;
	document.getElementById(id).style.filter = "alpha(opacity = " + (valueFrom * 100).toString() + ")";
	
	window.setTimeout("fadeIn('" + id + "', " + valueFrom + ", " + valueTo + ")", 33);
}

/**
 * Get next news-entry.
 * @param {String} id Id of html-element.
 * @return {Void}
 */
function nextEntry(id)
{
	newsTop -= newsLineHeight;
	if(newsHeight + newsTop <= 0)
		newsTop = 0;
	
	document.getElementById(id).style.top = newsTop.toString() + "px";
	
	fadeIn(id, 0, 1);
}
