(function($){var name='newsTicker';var debugMode=false;function runTicker(settings){tickerData=$(settings.newsList).data('newsTicker');if(tickerData.currentItem>tickerData.newsItemCounter){tickerData.currentItem=0;}
else if(tickerData.currentItem<0){tickerData.currentItem=tickerData.newsItemCounter;}
if(tickerData.currentPosition==0){if(tickerData.newsLinks[tickerData.currentItem].length>0){$(tickerData.newsList).empty().append('<li><a '+tickerData.newsAttributes[tickerData.currentItem]+'></a></li>');}
else{$(tickerData.newsList).empty().append('<li></li>');}}
if(tickerData.animating){if(tickerData.currentPosition%2==0){var placeHolder=tickerData.placeHolder1;}
else{var placeHolder=tickerData.placeHolder2;}
if(tickerData.currentPosition<tickerData.newsItems[tickerData.currentItem].length){var tickerText=tickerData.newsItems[tickerData.currentItem].substring(0,tickerData.currentPosition);if(tickerData.newsLinks[tickerData.currentItem].length>0){$(tickerData.newsList+' li a').text(tickerText+placeHolder);}
else{$(tickerData.newsList+' li').text(tickerText+placeHolder);}
tickerData.currentPosition++;setTimeout(function(){runTicker(settings);settings=null;},tickerData.tickerRate);}
else{if(tickerData.newsLinks[tickerData.currentItem].length>0){$(tickerData.newsList+' li a').text(tickerData.newsItems[tickerData.currentItem]);}
else{$(tickerData.newsList+' li').text(tickerData.newsItems[tickerData.currentItem]);}
setTimeout(function(){if(tickerData.animating){tickerData.currentPosition=0;tickerData.currentItem++;runTicker(settings);settings=null;}},tickerData.loopDelay);}}
else{var tickerText=tickerData.newsItems[tickerData.currentItem];if(tickerData.newsLinks[tickerData.currentItem].length>0){$(tickerData.newsList+' li a').text(tickerText);}
else{$(tickerData.newsList+' li').text(tickerText);}}}
jQuery.fn[name]=function(options){var settings=jQuery.extend({},jQuery.fn.newsTicker.defaults,options);var newsItems=new Array();var newsLinks=new Array();var newsAttributes=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');var linkAttributes=new Object();var attrs=$(this).children('a')[0].attributes;for(var i=0;i<attrs.length;i++){linkAttributes[attrs[i].nodeName]=attrs[i].nodeValue;}
if(debugMode){console.log(linkAttributes);}
var linkAttributesProcessed='';for(var prop in linkAttributes){linkAttributesProcessed=linkAttributesProcessed+prop+'="'+linkAttributes[prop]+'" ';}
if(debugMode){console.log(linkAttributesProcessed);}
newsAttributes[newsItemCounter]=linkAttributesProcessed;}
else{newsItems[newsItemCounter]=$(this).text();newsLinks[newsItemCounter]='';newsAttributes[newsItemCounter]='';}
newsItemCounter++;});var tickerElement=$(settings.newsList);tickerElement.data(name,{newsList:settings.newsList,tickerRate:settings.tickerRate,startDelay:settings.startDelay,loopDelay:settings.loopDelay,placeHolder1:settings.placeHolder1,placeHolder2:settings.placeHolder2,controls:settings.controls,ownControls:settings.ownControls,stopOnHover:settings.stopOnHover,resumeOffHover:settings.resumeOffHover,newsItems:newsItems,newsLinks:newsLinks,newsAttributes:newsAttributes,newsItemCounter:newsItemCounter-1,currentItem:0,currentPosition:0,firstRun:1}).bind({stop:function(event){tickerData=tickerElement.data(name);if(tickerData.animating){tickerData.animating=false;if(debugMode){console.log('stop'+tickerData.currentItem+' '+tickerData.animating);}}},play:function(event){tickerData=tickerElement.data(name);if(!tickerData.animating){tickerData.animating=true;if(debugMode){console.log('play'+tickerData.currentItem+' '+tickerData.animating);}
setTimeout(function(){runTicker(tickerData);tickerData=null;},tickerData.startDelay);}},resume:function(event){tickerData=tickerElement.data(name);if(!tickerData.animating){tickerData.animating=true;tickerData.currentPosition=0;tickerData.currentItem++;if(debugMode){console.log('resume'+tickerData.currentItem+' '+tickerData.animating);}
runTicker(tickerData);}},next:function(event){tickerData=tickerElement.data(name);$(tickerData.newsList).trigger("stop");tickerData.currentPosition=0;tickerData.currentItem++;if(debugMode){console.log('next'+tickerData.currentItem+' '+tickerData.animating);}
runTicker(tickerData);},previous:function(event){tickerData=tickerElement.data(name);$(tickerData.newsList).trigger("stop");tickerData.currentPosition=0;tickerData.currentItem--;if(debugMode){console.log('previous'+tickerData.currentItem+' '+tickerData.animating);}
runTicker(tickerData);}});if(settings.stopOnHover){tickerElement.bind({mouseover:function(event){tickerData=tickerElement.data(name);if(tickerData.animating){$(tickerData.newsList).trigger("stop");if(tickerData.controls){$('.stop').hide();$('.resume').show();}}}});if(settings.resumeOffHover){tickerElement.bind({mouseout:function(event){tickerData=tickerElement.data(name);if(!tickerData.animating){$(tickerData.newsList).trigger("resume");if(debugMode){console.log('resumeoffhover'+tickerData.currentItem+' '+tickerData.animating);}}}});}}
tickerData=tickerElement.data(name);if(tickerData.controls||tickerData.ownControls){if(!tickerData.ownControls){$('<ul class="ticker-controls"><li class="play"><a href="#play">Play</a></li><li class="resume"><a href="#resume">Resume</a></li><li class="stop"><a href="#stop">Stop</a></li><li class="previous"><a href="#previous">Previous</a></li><li class="next"><a href="#next">Next</a></li></ul>').insertAfter($(tickerData.newsList));}
$('.play').hide();$('.resume').hide();$('.play').click(function(event){$(tickerData.newsList).trigger("play");$('.play').hide();$('.resume').hide();$('.stop').show();event.preventDefault();});$('.resume').click(function(event){$(tickerData.newsList).trigger("resume");$('.play').hide();$('.resume').hide();$('.stop').show();event.preventDefault();});$('.stop').click(function(event){$(tickerData.newsList).trigger("stop");$('.stop').hide();$('.resume').show();event.preventDefault();});$('.previous').click(function(event){$(tickerData.newsList).trigger("previous");$('.stop').hide();$('.resume').show();event.preventDefault();});$('.next').click(function(event){$(tickerData.newsList).trigger("next");$('.stop').hide();$('.resume').show();event.preventDefault();});};$(tickerData.newsList).trigger("play");};jQuery.fn[name].defaults={newsList:"#news",tickerRate:80,startDelay:100,loopDelay:3000,placeHolder1:" |",placeHolder2:"_",controls:true,ownControls:false,stopOnHover:true,resumeOffHover:false}})(jQuery);
