/*News ticker plugin (BBC news style)
Bryan Gullan,2007
version 1.1.1
http://www.makemineatriple.com/jquery
*************************************
Original code was modified to accomadate using xml as source for news arrays.
The following item: serRoot, langCode were added to settings values.
*/
(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) {
			jQuery(settings.newsList).empty().append('<a target="_blank" href="'+ settings.newsLinks[currentItem] +'"></a>');
		}
		//determines which place holder to use based on even or odd character
		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);
			jQuery(settings.newsList + ' a').text(tickerText + placeHolder);
			currentLength ++;
			setTimeout(function(){runTicker(settings); settings = null;},settings.tickerRate);
		}
		else {
			jQuery(settings.newsList + ' a').text(settings.newsItems[currentItem]);
			currentLength = 0;
			currentItem ++;
			setTimeout(function(){runTicker(settings); settings = null;},settings.loopDelay);	
		}	
	}	
	$.fn.extend({
		newsTicker: function(settings) {
			settings = jQuery.extend({
				langCode: "en",
		 	  	newsList: "#news",				
		   		tickerRate: 80,
		    	startDelay: 100,
		    	loopDelay: 3000,
		    	placeHolder1: " |",
		    	placeHolder2: "_"
			}, settings);			
			var newsItems = new Array();
			var newsLinks = new Array();
			var newsItemCounter = 0;
			var languageCode = settings.langCode;
			var dataToSend = "languageCode=" + languageCode;
			var serverRoot = settings.serRoot;
//replaced unorder list of news items and links with ajax call to get xml file for source of news items and links
//using hard coded language code
			jQuery.post(serverRoot + "includes/php/newsTickerFeed.php", dataToSend, function(data){
				$.get(serverRoot + "xml/" + languageCode + "_newsTickerFeed.xml", function(data){
					jQuery(data).find('item').each(function(){
						newsItems[newsItemCounter] = jQuery(this).find('title').text();
						newsLinks[newsItemCounter] = jQuery(this).find('link').text();					
						newsItemCounter++;
					});//data find call closing
					settings = jQuery.extend(settings,{
						newsItems: newsItems,
						newsLinks: newsLinks,
						newsItemCounter: newsItemCounter - 1,
						currentItem: 0,
						currentLength: 0,
						firstRun:1
					}); //settings closing
					setTimeout(function(){runTicker(settings); settings = null;},settings.startDelay);
				});	// second ajax call closing
			});	// first ajax call closing		
		} // news ticker function closing
	}); //fn closeing
})(jQuery);