/*News ticker plugin (BBC news style)Bryan Gullan,2007
version 1.1.1http://www.makemineatriple.com/jqueryUse and distrubute freely with this headerOptions (defaults shown):newsList: "#news" 	// assumes unordered list; specify the ul holding the news itemstickerRate: 80 		// time gap between display of each letter (ms)startDelay: 100 	// delay before first run of the ticker (ms)loopDelay: 3000 	// time for which full text of each item is shown at end of print-out (ms)placeHolder1: " |"	// character placeholder shown on even loopsplaceHolder2: "_"	// character placeholder shown on odd loopsSample usage:$(document).ready(function() {	var options = {  		newsList: "#news", 		startDelay: 10, 		placeHolder1: " []"	}	$().newsTicker(options);});for markup as follows:<ul id="news"><li><a href="http://www.makemineatriple.com">MakeMineATriple.com</a></li><li><a href="http://www.jquery.com">jQuery</a></li></ul>Underline text decoration on the link is not recommended! :-)*/(function($) {		function runTicker(settings) {		if(settings.firstRun == 1){			currentLength = settings.currentLength;			currentItem = settings.currentItem;			settings.firstRun = 0;		}		if(currentItem == settings.newsItemCounter + 1){			currentItem = 0;		}				if(currentLength == 0) {			$(settings.newsList).empty().append('<li><a href="'+ settings.newsLinks[currentItem] +'"></a></li>');		}				if( currentLength % 2 == 0) {				placeHolder = settings.placeHolder1;		}		else {			placeHolder = settings.placeHolder2;		}				if( currentLength <= settings.newsItems[currentItem].length + 1) {			var tickerText = settings.newsItems[currentItem].substring(0,currentLength);			$(settings.newsList + ' li a').text(tickerText + placeHolder);			currentLength ++;			setTimeout(function(){runTicker(settings); settings = null;},settings.tickerRate);		}		else {			$(settings.newsList + ' li a').text(settings.newsItems[currentItem]);			currentLength = 0;			currentItem ++;			setTimeout(function(){runTicker(settings); settings = null;},settings.loopDelay);			}		}		$.fn.extend({		newsTicker: function(settings) {			settings = jQuery.extend({		 	  	newsList: "#news",		   		tickerRate: 80,		    	startDelay: 100,		    	loopDelay: 3000,		    	placeHolder1: " |",		    	placeHolder2: "_"			}, settings);						var newsItems = new Array();			var newsLinks = new Array();			var newsItemCounter = 0;						$(settings.newsList + ' li a').each(function(){				newsItems[newsItemCounter] = $(this).text();				newsLinks[newsItemCounter] = $(this).attr('href');				newsItemCounter ++;			});						settings = jQuery.extend(settings,{				newsItems: newsItems,				newsLinks: newsLinks,				newsItemCounter: newsItemCounter - 1,				currentItem: 0,				currentLength: 0,				firstRun:1			});						setTimeout(function(){runTicker(settings); settings = null;},settings.startDelay);		}		});	})(jQuery);