(function() {
	var links;
	var totalLinks = 0;
	var currentIndex = -1;
	var animIn;
	var animOut;
	var fadeOutDuration = .5;
	var fadeInDuration = .75;
	var delayDuration = 5000; // milliseconds
	
	function fadeIn() {
		if (currentIndex > -1) {
			YAHOO.util.Dom.setStyle(links[currentIndex], "display", "none");
		}
		currentIndex++;
		if (currentIndex >= totalLinks) {
			currentIndex = 0;
		}
		YAHOO.util.Dom.setStyle(links[currentIndex], "opacity", 0);
		YAHOO.util.Dom.setStyle(links[currentIndex], "display", "block");
		animIn.setEl(links[currentIndex]);
		animIn.animate();
	}
	
	function animateFade() {
		if (currentIndex != -1) {
			// Fade out existing item
			var attributes = {
				opacity: { from: 1, to: 0 }
			}
			animOut.setEl(links[currentIndex]);
			animOut.animate();
		} else {
			fadeIn();
		}
	}
		
	function init() {
		links = document.getElementById("newsTicker").getElementsByTagName("li");	
		totalLinks = links.length;
		
		if (totalLinks > 0) {
			// Define animations
			animIn = new YAHOO.util.Anim(links[0], {
				opacity: { from: 0, to: 1 }
			});
			animIn.duration = fadeInDuration;
			animIn.onComplete.subscribe(function() {
				setTimeout(animateFade, delayDuration);
			});
			
			animOut = new YAHOO.util.Anim(links[0], {
				opacity: { from: 1, to: 0 }
			});
			animOut.duration = fadeOutDuration;
			animOut.onComplete.subscribe(fadeIn);
			
			// Start animation
			animateFade();
		}
	}
	
	YAHOO.util.Event.onContentReady("newsTicker", init);

})();