jQuery.fn.extend({
	newsTicker:function(options){
		
		settings = jQuery.extend({
			fadeInTime:2500,
			fadeOutTime:1200,
			tickerShowTimeAfterSlide:1200,
			tickerShowTime:3000,
			scrollPixelsPerSecond:40,
			headerWidth:'200px',
			maskedContentWidth:'610px'
		}, options);

  		this.each(function(i,el){
			var ptr = 0;
			var tickers = $(el).find('.ticker').hide();
			if(tickers.length==0)return;
			var tickerDiv = $(el).append('<div class="ticker-content" />').find('div.ticker-content');
			var ticker = $(tickers[ptr]);
			var header = tickerDiv.append('<h3 class="ticker-title"><span class="tl" /><span class="ticker-title-content" /></h3>').find('h3.ticker-title span.ticker-title-content').hide();
			var mask = tickerDiv.append('<div class="ticker-mask" /><span class="tr" />').find('div.ticker-mask');
			var content = mask.append('<p class="ticker-inner" />').find('p.ticker-inner').hide();
			header.parent().width(settings.headerWidth);
			mask.width(settings.maskedContentWidth);
			tickerDiv.width(header.parent().outerWidth(true) + mask.outerWidth(true));
			var onTickerHided = function(){
				header.hide().html("");
				content.hide().html("");
				content.css({left:'0px'});
				ptr<tickers.length-1?ptr++:ptr=0;
				showTicker();
			}
			var onEndTickerShowed = function(){
				setTimeout( function(){ ticker.fadeOut(settings.fadeOutTime,onTickerHided) },settings.tickerShowTimeAfterSlide);
			}
			
			var showTicker = function(){
				ticker = $(tickers[ptr]);
				var offsetContainerWidth = mask.width();
				var headerContent = ticker.find('h4').html();
				header.html(headerContent).fadeIn(settings.fadeInTime);
				var bodyContent = ticker.find('p').html();
				content.html(bodyContent);
				var offsetContentWidth = content.outerWidth(true);
				content.fadeIn(settings.fadeInTime);
				var despWidth = offsetContentWidth - offsetContainerWidth;
				if(despWidth > 0 ){
					var scrollSpeed = (despWidth / settings.scrollPixelsPerSecond)*1000;
					content.animate({left:(despWidth*-1)+'px'},scrollSpeed,"linear",onEndTickerShowed)
				}else{
					setTimeout(onEndTickerShowed,settings.tickerShowTime);
				}
			}
			showTicker();
		})
	}
});

