/**
These global variables reduce the NewsTicker object to one ticker/page.  Copying the globals should make dublicates allowable though.
*/

var _newsTicker = null;
var _newsTicker_cnt = -1;
var _newsTicker_pause = false;
var _newsTicker_arr = new Array();
/**
Reading Good News Ticker Data
*/
_newsTickerGoodData = function (data) {
	for (var a = 0; a < data.articles.length; a++) {
		var arty = data.articles[a];
		var addMe = null;
		if (arty.url != undefined) {
			addMe = A({'href':arty.url, 'alt':arty.summary, 'title':arty.summary}, arty.date + ": "+arty.title)
		} else {
			addMe = SPAN({'alt':arty.subtitle, 'title':arty.subtitle});
			addMe.innerHTML = /*arty.date + ": "+*/ arty.title
		}
		updateNodeAttributes(addMe, {'onmouseover' : function () { _newsTicker_pause = true;}});
		updateNodeAttributes(addMe, {'onmouseout' : function () { _newsTicker_pause = false;}});
		_newsTicker_arr.push(addMe);
	}
}
/**
Reading Bad News Ticker Data
*/
_newsTickerBadData = function (e) {
	alert (e)
	alert (e.message());
}

/**
Constructor
*/
NewsTicker = function (tickerName) {
	this.tickerId = tickerName;
}

/**
This joins news data to the main feed.
*/
NewsTicker.prototype.addNews = function(url) {
	d = loadJSONDoc(url);
	d.addCallbacks(_newsTickerGoodData, _newsTickerBadData);
}
/**
This updates the ticker area.
*/
NewsTicker.prototype.write = function () {
		
		if ( _newsTicker_arr.length != 0) {
			_newsTicker = this.tickerId;
			_newsTicker_cnt++;
			_newsTicker_cnt = _newsTicker_cnt % _newsTicker_arr.length;
			fade(getElement(this.tickerId),
				{
					afterFinish: function () {
						swapDOM(getElement(_newsTicker), SPAN({'id':_newsTicker}, _newsTicker_arr[_newsTicker_cnt]));						
//						appear(getElement(_newsTicker), {
//							afterFinish: function () {
								updateNodeAttributes(getElement(_newsTicker), {'style' : ''}); 
//							}
//						});
					}
				}
			);
		}

}
/**
This handles looped calling.
*/
NewsTicker.prototype.Initiate = function () {
	with (this) {
		if ( _newsTicker_pause == false ) { write(); }
		setTimeout(function f() { Initiate() }, 10000);
	}

}