Effect.DefaultOptions.duration = 0.3;
NewsTicker = {
	tickerTitle: "newsdef",
	feedURL: "/rss.php",
	pauseLength: 3500,
	timer: 0,
	currentTitle: 0,
	items: [],
	init: function() {
		new Ajax.Request(
			NewsTicker.feedURL,
			{
				method: "get",
				onSuccess: function(response) {
					NewsTicker.parseXML(response.responseXML);
					NewsTicker.buildTicker();
				},
				onFailure: function() {
					console.log("Impossible de charger le fichier XML.");
				}
			}
		);
	},
	
	buildTicker: function() {
		// replace the placeholder content with the first news title
		$(NewsTicker.tickerTitle).innerHTML = NewsTicker.items[NewsTicker.currentTitle]['title'];
		$(NewsTicker.tickerTitle).setAttribute("href", NewsTicker.items[NewsTicker.currentTitle]['link']);
		NewsTicker.start();		// start the timer
	},
	
	parseXML: function(xml) {
		NewsTicker.xml = xml;
		
		// build the array of news titles
		$A(xml.getElementsByTagName("item")).each(function(item) {
			var nouveau = new Array();
			nouveau['title']	=	item.getElementsByTagName("title")[0].childNodes[0].nodeValue;
			nouveau['link']	=	item.getElementsByTagName("link")[0].childNodes[0].nodeValue;
			
			NewsTicker.items.push(nouveau);
		});
	},
	
	start: function() {
		NewsTicker.interval = setInterval(NewsTicker.showNext, NewsTicker.pauseLength);
	},
	
	stop: function() {
		clearInterval(NewsTicker.interval)
	},
	
	showNext: function() {
		
		//determine next headline
		if ( NewsTicker.currentTitle < NewsTicker.items.length-1 ) {
			NewsTicker.currentTitle = NewsTicker.currentTitle+1;
		} else {
			NewsTicker.currentTitle = 0;
		}
		
		new Effect.Fade(NewsTicker.tickerTitle, {
			afterFinish: function() {
				NewsTicker.switchData();
				new Effect.Appear(NewsTicker.tickerTitle); }});

	},
	
    switchData: function() {
		$(NewsTicker.tickerTitle).setAttribute("href", NewsTicker.items[NewsTicker.currentTitle]['link']);
		$(NewsTicker.tickerTitle).innerHTML = NewsTicker.items[NewsTicker.currentTitle]['title'];
	}
}

Event.observe(window, 'load', NewsTicker.init);
