var j = 0;
var news = new Array ( );;

function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function do_request( request_url, callback ) {
	if ( window.XMLHttpRequest ) {
		request = new XMLHttpRequest();
	} else if ( window.ActiveXObject ) {
		request = new ActiveXObject ( "Microsoft.XMLHTTP" );
	} else {
		alert( "You need to upgrade your browser!" );
		return false;
	}
	request.onreadystatechange = callback;
	request.open ( "GET", request_url );
	request.send( null );
	return true;
}

function get_news ( url_prefix ) {
	url = url_prefix + "_includes/news.php";
	do_request ( url, news_response );
}

function news_response ( ) {
	if ( request.readyState != 4 )
		return request.readyState;

	if ( request.status != 200 ) {
		alert ( "The system is currently not available.  Please try again." );
		return false;
	}

	var response = request.responseText;
	var response_array = response.split ( "|~|" );

	if ( response_array[ 0 ] == 0 ) {
		news = response_array[ 1 ].split ( "|~!~|" );
		rotate_news ( news );
	} else {
		alert ( 'There is no recent news.' );
		return false;
	}
}

function rotate_news ( news ) {
	var n = news[ j % 6 ];
	var div = document.getElementById ( 'recentNews' );
	var div2 = document.getElementById ( 'recentNews2' );

	if ( j == 0 ) {
		changeOpac ( 0, 'recentNews' );
		changeOpac ( 0, 'recentNews2' );

		n_array = n.split ( "|!~!|" );

		div.innerHTML = make_news ( n_array[ 0 ], n_array[ 1 ], n_array[ 2 ] );

		opacity ( 'recentNews', 0, 99, 1000 );
	} else {
		n_array = n.split ( "|!~!|" );

		if ( j % 2 == 0 ) {
			div.innerHTML = make_news ( n_array[ 0 ], n_array[ 1 ], n_array[ 2 ] );
			opacity ( 'recentNews', 0, 99, 2000 );
			opacity ( 'recentNews2', 99, 0, 2000 );
			setTimeout ( function ( ) { div2.innerHTML = ''; }, 2000 );
		} else {
			div2.innerHTML = make_news ( n_array[ 0 ], n_array[ 1 ], n_array[ 2 ] );
			opacity ( 'recentNews', 99, 0, 2000 );
			opacity ( 'recentNews2', 0, 99, 2000 );
			setTimeout ( function ( ) { div.innerHTML = ''; }, 2000 );
		}
	}

	j ++;

	setTimeout ( function ( ) { rotate_news ( news ); }, 6000 );
}

function make_news(url, date, title) {
	var newsItem = '<em>' + date + '</em>  <a href="' + url + '" target="_blank">' + title + '</a>';
	return newsItem;
}
