/*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];			
						$(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: 0,		    	startDelay: 10,		    	loopDelay: 2000,		    	
												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);