(function($) {
	
	var news_settins;
	var news_is_on;
	var news_on_onter_blocked;
	var news_on_onter_blocked = false;


	function runTicker(settings) {


		if(settings==null){
			return true;
		}

		if(news_is_on=="stop"){
			return true;
		}

		
		if(settings.firstRun == 1){
			currentLength = settings.currentLength;
			currentItem = settings.currentItem;
			settings.firstRun = 0;
		}
		if(currentItem == settings.newsItemCounter + 1){
			currentItem = 0;
		}
		
		if(currentLength == 0) {
			if(settings.newsLinks[currentItem].length > 0) {

				$(settings.newsList).empty().append('<li><a class="ticker_link" href="'+ settings.newsLinks[currentItem] +'"></a></li>');
				$(".ticker_link").bind('mouseenter', function() { 
					
					//start
					if( !news_on_onter_blocked ){

						if( currentLength ==0 ){

							news_is_on = "stop";
							$(".start_stop").removeClass('started').addClass('stopped');
							$(".start_stop").attr('title',"Stop");
							$(".start_stop span").text("Stop");

						}else{
	
							news_is_on = "stop";
							settings = news_settins;
							$(settings.newsList + ' li a').text(settings.newsItems[settings.currentItem]);
							$(settings.newsList + ' li a').attr('href',settings.newsLinks[settings.currentItem]);
							$(".start_stop").removeClass('started').addClass('stopped');
							$(".start_stop").attr('title',"Stop");
							$(".start_stop span").text("Stop");
							settings.currentLength = 0;
							settings.currentItem++;
							if(settings.currentItem > settings.newsItemCounter ){
								settings.currentItem = 0;
							}
							settings.firstRun = 1;
							news_settins = settings;
	
						}


					}
					//end
					
					  }).bind('mouseleave', function() {  
					  	

					//start
					if(!news_on_onter_blocked ){
						
							news_is_on = "run";
							settings = news_settins;
							setTimeout(function(){runTicker(settings); settings = null;},100);
							$(".start_stop").removeClass('stopped').addClass('started');
							$(".start_stop").attr('title',"Start");
							$(".start_stop span").text("Start");


					}
					//stop
					  	
					  	
					  	  });


			}
			else {
				$(settings.newsList).empty().append('<li></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);
			if(settings.newsLinks[currentItem].length > 0) {
				$(settings.newsList + ' li a').text(tickerText + placeHolder);
			}
			else {
				$(settings.newsList + ' li').text(tickerText + placeHolder);
			}
			currentLength ++;
			news_settins = settings;
			newsTimeout = setTimeout(function(){news_settins = settings;runTicker(settings); settings = null;},settings.tickerRate);
		}
		else {
			if(settings.newsLinks[currentItem].length > 0) {
				$(settings.newsList + ' li a').text(settings.newsItems[currentItem]);
			}
			else {
				$(settings.newsList + ' li').text(settings.newsItems[currentItem]);
			}
			currentLength = 0;
			currentItem ++;
			settings.currentItem = currentItem;
			news_settins = settings;
			newsTimeout = setTimeout(function(){news_settins = settings;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').hide();
			
			$(settings.newsList + ' li').each(function(){
				if($(this).children('a').length) {
					newsItems[newsItemCounter] = $(this).children('a').text();
					newsLinks[newsItemCounter] = $(this).children('a').attr('href');
				}
				else {
					newsItems[newsItemCounter] = $(this).text();
					newsLinks[newsItemCounter] = '';
				}
				newsItemCounter ++;
			});

			

			settings = jQuery.extend(settings,{
				newsItems: newsItems,
				newsLinks: newsLinks,
				newsItemCounter: newsItemCounter - 1,
				currentItem: 0,
				currentLength: 0,
				firstRun:1
			});

			//buttons start
			$(".start_stop").click(function() {
				if(news_is_on == "stop"){

					news_on_onter_blocked = false;
					news_is_on = "run";
					settings = news_settins;
					setTimeout(function(){runTicker(settings); settings = null;},100);
					$(".start_stop").removeClass('stopped').addClass('started');
					$(".start_stop").attr('title',"Start");
					$(".start_stop span").text("Start");

				}else{
					news_is_on = "stop";
					
					news_on_onter_blocked = true;

					settings = news_settins;
					
					$(settings.newsList + ' li a').text(settings.newsItems[settings.currentItem]);
					$(settings.newsList + ' li a').attr('href',settings.newsLinks[settings.currentItem]);
					$(".start_stop").removeClass('started').addClass('stopped');
					$(".start_stop").attr('title',"Stop");
					$(".start_stop span").text("Stop");

					
					settings.currentLength = 0;
					settings.currentItem++;

					if(settings.currentItem > settings.newsItemCounter ){
						settings.currentItem = 0;
					}

					settings.firstRun = 1;
					news_settins = settings;

				}
				return false;
			});





			$(".prev").click(function() {

					settings = news_settins;


					settings.currentItem --;
					if(settings.currentItem < 0 ){
						settings.currentItem = settings.newsItemCounter;
					}

					$(settings.newsList + ' li a').text(settings.newsItems[settings.currentItem]);
					$(settings.newsList + ' li a').attr('href',settings.newsLinks[settings.currentItem]);
					$(".start_stop").removeClass('started').addClass('stopped');
					$(".start_stop").attr('title',"Stop");
					$(".start_stop span").text("Stop");

					settings.firstRun = 1;
					settings.currentLength = 0;
					news_settins = settings;
					news_is_on = "stop";

					return false;
			});


			$(".next").click(function() {

					settings = news_settins;
					settings.currentItem ++;
					if(settings.currentItem > settings.newsItemCounter ){
						settings.currentItem = 0;
					}

					$(settings.newsList + ' li a').text(settings.newsItems[settings.currentItem]);
					$(settings.newsList + ' li a').attr('href',settings.newsLinks[settings.currentItem]);
					$(".start_stop").removeClass('started').addClass('stopped');
					$(".start_stop").attr('title',"Stop");
					$(".start_stop span").text("Stop");



					settings.firstRun = 1;
					settings.currentLength = 0;
					news_settins = settings;
					news_is_on = "stop";

					return false;
			});


			//buttons end


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

	
	});
	

})(jQuery);


