window.addEvent("domready",function(){new SNT("#snt",{speed:3000,delay:6000,itemStyle:"separate"})});var SNT=new Class({Implements:Options,options:{speed:1500,delay:5000,direction:"vertical",itemStyle:"serial",adjustSize:true,body:".snt-body",content:".snt-body ul",statusClass:{started:"snt-statusStarted",stopped:"snt-statusStopped",paused:"snt-statusPaused"},cookie:{status:"snt-status",currentItem:"snt-currentItem",path:"/"},onComplete:Class.empty,onStart:Class.empty},initialize:function(a,b){this.setOptions(b);this.container=$$(a)[0];if($type(this.container)=="element"){this.body=this.container.getElement(this.options.body);this.content=this.container.getElement(this.options.content);if($type(this.content)=="element"){this.items=this.content.getElements("li");if(this.items.length>1){this.scrollTimer=null;this.currentItem=0;this.tickerStatus="started";if(this.options.adjustSize==true){this.adjustContentSize()}if(this.options.itemStyle=="separate"){this.extendItemSize()}this.initContentDimensions();this.recoverStatusFromCookie();this.initEvents();this.fx=this.createScrollEffect();this.initScroller()}}}},adjustContentSize:function(){var a=0;this.items.each(function(b){a=Math.max(a,b.getSize().y)});this.body.setStyle("height",Math.ceil(a))},extendItemSize:function(){var a=this.container.getSize().y;this.items.each(function(b){b.setStyle("height",Math.ceil(Math.max(a,b.getSize().y)))})},initContentDimensions:function(){var b=0,a=0;if(this.options.direction=="horizontal"){a=this.content.getSize().y;this.items.each(function(c){b+=c.getSize().x})}else{b=this.content.getSize().x;this.items.each(function(c){a+=c.getSize().y})}this.content.setStyles({top:0,height:a})},initEvents:function(){this.content.addEvents({mouseenter:function(){this.pause()}.bind(this),mouseleave:function(){this.resume()}.bind(this)})},recoverStatusFromCookie:function(){var b,a;b=Cookie.read(this.options.cookie.status);if($defined(b)&&($type(b)=="string")){this.tickerStatus=b}a=parseInt(Cookie.read(this.options.cookie.currentItem));if($defined(a)&&($type(a)=="number")&&(a>=0)){this.currentItem=this.jumpTo(a)}},createScrollEffect:function(){var a=new Fx.Tween(this.content,{link:"chain",duration:this.options.speed,transition:Fx.Transitions.Quart.easeInOut,onComplete:function(){var b=(this.currentItem==0)?this.items.length:this.currentItem;this.items[b-1].injectInside(this.content);this.content.setStyle("top",0)}.bind(this)});return a},initScroller:function(){if(this.tickerStatus=="started"){this.tickerStatus="initStart";this.start()}else{if(this.tickerStatus=="stopped"){this.tickerStatus="initStop";this.stop()}}},start:function(){if(this.tickerStatus!="started"){this.tickerStatus="started";this.scrollTimer=this.next.periodical(this.options.delay+this.options.speed,this);this.container.removeClass(this.options.statusClass.stopped).addClass(this.options.statusClass.started);Cookie.write(this.options.cookie.status,this.tickerStatus)}return this.tickerStatus},stop:function(){if(this.tickerStatus!="stopped"){this.tickerStatus="stopped";this.scrollTimer=$clear(this.scrollTimer);this.container.removeClass(this.options.statusClass.started).addClass(this.options.statusClass.stopped);Cookie.write(this.options.cookie.status,this.tickerStatus)}return this.tickerStatus},pause:function(){if(this.tickerStatus!="stopped"){this.tickerStatus="paused";this.scrollTimer=$clear(this.scrollTimer);this.container.removeClass(this.options.statusClass.started).addClass(this.options.statusClass.paused)}return this.tickerStatus},resume:function(){if(this.tickerStatus=="paused"){if(this.scrollTimer==null){this.tickerStatus="started";this.scrollTimer=this.next.periodical(this.options.delay+this.options.speed,this);this.container.removeClass(this.options.statusClass.paused).addClass(this.options.statusClass.started)}}return this.tickerStatus},next:function(){if(this.tickerStatus=="started"){this.currentItem=++this.currentItem%this.items.length;var a=this.items[this.currentItem];this.fx.start("top",-a.offsetTop);Cookie.write(this.options.cookie.currentItem,this.currentItem);return this.currentItem}},jumpTo:function(a){for(currentItem=0;currentItem<a;currentItem++){this.items[currentItem].injectInside(this.content)}return currentItem}});
