(function($) {

	function runTicker(settings) {
		if(settings.firstRun == 1){
			currentLength = settings.currentLength;
			currentItem = settings.currentItem;
			settings.firstRun = 0;
		}

		if(currentLength == 0) {
			$(settings.newsList).empty().append('<li><a href="'+ settings.newsLink +'"></a></li>');
		}

		if( currentLength % 2 == 0) {
				placeHolder = settings.placeHolder1;
		}
		else {
			placeHolder = settings.placeHolder2;
		}

		if( currentLength <= settings.newsItem.length + 1) {
			var tickerText = settings.newsItem.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.newsItem);
			readMoreHtml = settings.newsReadMore;
			if (readMoreHtml) {
				$(settings.newsList + ' li a').append ("<span>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;"+readMoreHtml+"</span>");
				$(settings.newsList + ' li a span').fadeIn('slow', function () {
					currentLength = 0;
					loadNewItem (settings);
				});

			} else {
				currentLength = 0;
				loadNewItem (settings);
			}

		}
	}

	function loadNewItem (settings) {
		$.ajax({
				type: "POST",
				url: "modules/mod_newsTicker.php",
				data: "",
				success: function(html){
					setTimeout(function(){changeCurrentItem(settings, html); settings = null;},3000);
				  	//changeCurrentItem (settings, html);
				}
 		});
	}

	function changeCurrentItem (settings, html) {
		$(settings.newsList + ' li').fadeOut ('slow', function (){
			$(settings.newsList).html (html);
			settings = getNewsItem (settings);
			$(settings.newsList).html ('<li></li>');
			setTimeout(function(){runTicker(settings); settings = null;}, 0);
		});
	}

	function getNewsItem (settings) {
		newsItemObject = $(settings.newsList + ' li a')
		settings.newsItem = newsItemObject.text();
		settings.newsLink = newsItemObject.attr('href');
		settings.newsReadMore = newsItemObject.parent().find("span").html();
		return settings;
	}
	$.fn.extend({
		newsTicker: function(settings) {
			settings = jQuery.extend({
		 	  	newsList: "#newsTicker",
		   		tickerRate: 70,
		    	startDelay: 100,
		    	loopDelay: 3000,
		    	placeHolder1: " |",
		    	placeHolder2: "_"
			}, settings);

			newsItemObject = $(settings.newsList + ' li a')
			var newsItem = newsItemObject.text();
			var newsLink = newsItemObject.attr('href');
			var newsReadMore = newsItemObject.parent().find("span").html();

			settings = jQuery.extend(settings,{
				newsItem: newsItem,
				newsLink: newsLink,
				newsReadMore: newsReadMore,
				currentItem: 0,
				currentLength: 0,
				firstRun:1
			});

			setTimeout(function(){runTicker(settings); settings = null;},settings.startDelay);
		}

	});

})(jQuery);