var newsTimeout = null;
var newsItems = new Array();

var divNews = null;

function addEvent(a_sEventType, a_oEventFunction)
{
	if( typeof window.addEventListener != "undefined" )
	{
		window.addEventListener(a_sEventType, a_oEventFunction, false);
	}
	else if( typeof document.addEventListener != "undefined" )
	{
		document.addEventListener(a_sEventType, a_oEventFunction, false);
	}
	else if( typeof window.attachEvent != "undefined" )
	{
		window.attachEvent("on" + a_sEventType, a_oEventFunction);
	}
}

function newsInit()
{
	if ( !( divNews = document.getElementById("news") ) ) { return; }

	// ---- get news items ---- //	
	allItems = divNews.getElementsByTagName("DIV");
	for ( i = 0; i < allItems.length; i++ )
	{
		if ( allItems[i].className == "newsItem" ) 
		{
			newsItems.push(allItems[i]);
		}
	}

	// ---- quit if no news items ---- //
	if ( newsItems.length < 1 ) { return; }
		
	// ---- set first item ---- //
	newsItems[0].style.top = "0";
	newsItems[0].style.display = "block";
	
	// ---- start first timeout ---- //
	newsTimeout = setTimeout(newsTransition, newsTimeoutLengthItem);
}

var newsTransitionStarted = false;
var newsCurrentItem = 0;
var newsNextItem = 0;

function newsTransition()
{
	if ( !newsTransitionStarted )
	{
		// ---- start new transition ---- //
		newsTransitionStarted = true;
		
		newsNextItem = newsCurrentItem + 1;
		if ( newsNextItem >= newsItems.length )
		{
			newsNextItem = 0;
		}
		
		newsItems[newsNextItem].style.top = "24px";
		newsItems[newsNextItem].style.display = "block";
				
		newsTimeout = setTimeout(newsTransition, newsTimeoutLengthTransition);	
	}
	else
	{
		// ---- continue transition ---- //
		newItemTop = newsItems[newsNextItem].offsetTop;
		newItemTop -= 1;

		if ( newItemTop < 0 )
		{
			newsTransitionStarted = false;
			
			newsItems[newsCurrentItem].display = "none";
			
			newsCurrentItem = newsNextItem;
			newsTimeout = setTimeout(newsTransition, newsTimeoutLengthItem);	
		}
		else
		{
			newsItems[newsCurrentItem].style.top = ( newItemTop - 24 ) + "px";
			newsItems[newsNextItem].style.top = newItemTop + "px";
			newsTimeout = setTimeout(newsTransition, newsTimeoutLengthTransition);	
		}
	}	
}

addEvent("load", newsInit);

