(function($){$.extend($.easing,{easein:function(p,n,firstNum,delta,duration){return delta*(n/=duration)*n*n+firstNum;},easeout:function(p,n,firstNum,delta,duration){return-delta*((n=n/duration-1)*n*n*n-1)+firstNum;},easeboth:function(p,n,firstNum,delta,duration){if((n/=duration/2)<1)return delta/2*n*n*n*n+firstNum;return-delta/2*((n-=2)*n*n*n-2)+firstNum;},bounceout:function(p,n,firstNum,delta,duration){if((n/=duration) < (1/2.75)){return delta*(7.5625*n*n)+firstNum;}else if(n<(2/2.75)){return delta*(7.5625*(n-=(1.5/2.75))*n+.75)+firstNum;}else if(n<(2.5/2.75)){return delta*(7.5625*(n-=(2.25/2.75))*n+.9375)+firstNum;}else{return delta*(7.5625*(n-=(2.625/2.75))*n+.984375)+firstNum;}},bouncein:function(p,n,firstNum,delta,duration){if(jQuery.easing.bounceout)return delta-jQuery.easing.bounceout(p,duration-n,0,delta,duration)+firstNum;return firstNum+delta;},bounceboth:function(p,n,firstNum,delta,duration){if(jQuery.easing.bouncein&&jQuery.easing.bounceout)if(n<duration/2)return jQuery.easing.bouncein(p,n*2,0,delta,duration)*.5+firstNum;return jQuery.easing.bounceout(p,n*2-duration,0,delta,duration)*.5+delta*.5+firstNum;return firstNum+delta;},elasticin:function(p,n,firstNum,delta,duration){var a,s;if(n==0)return firstNum;if((n/=duration)==1)return firstNum+delta;a=delta*0.3;p=duration*.3;if(a<Math.abs(delta)){a=delta;s=p/4;}else{s=p/(2*Math.PI) * Math.asin (delta/a);}return-(a*Math.pow(2,10*(n-=1))*Math.sin((n*duration-s)*(2*Math.PI)/p))+firstNum;},elasticout:function(p,n,firstNum,delta,duration){var a,s;if(n==0)return firstNum;if((n/=duration/2)==2)return firstNum+delta;a=delta*0.3;p=duration*.3;if(a<Math.abs(delta)){a=delta;s=p/4;}else{s=p/(2*Math.PI) * Math.asin (delta/a);}return a*Math.pow(2,-10*n)*Math.sin((n*duration-s)*(2*Math.PI)/p)+delta+firstNum;},elasticboth:function(p,n,firstNum,delta,duration){var a,s;if(n==0)return firstNum;if((n/=duration/2)==2)return firstNum+delta;a=delta*0.3;p=duration*.3;if(a<Math.abs(delta)){a=delta;s=p/4;}else{s=p/(2*Math.PI) * Math.asin (delta/a);}if(n<1){return-.5*(a*Math.pow(2,10*(n-=1))*Math.sin((n*duration-s)*(2*Math.PI)/p))+firstNum;}return a*Math.pow(2,-10*(n-=1))*Math.sin((n*duration-s)*(2*Math.PI)/p)*.5+delta+firstNum;}});$.widget("cms.scroller",{options:{onscroll:null},_create:function(){var items=this.element.find("[data-item]");if(!items.length){items=this.element.children();}this.elements={items:items,container:items.eq(0).parent()};if(!this.elements.items.length){return;}this.elements.container.css({display:'block',position:'relative',visibility:'visible',overflow:'hidden'});if(this.elements.container[0]!==this.element[0]){this.element.css({visibility:'visible',overflow:'hidden'});}this._setDefaults();this._initItems();if(window._nocontentflash&&$.cms.zone&&$.cms.zone.editable(this.element)){return;}if(this.elements.items.length>1){this.element.bind('mouseenter mouseleave click',$.proxy(this._handleMouse,this));this._scrolling=0;this.play();}},_setDefaults:function(){if(!this.options.width){this.options.width=this.elements.container.innerWidth();}if(!this.options.height){this.options.height=this.elements.container.innerHeight();}if(!this.options.orientation){this.options.orientation=this.element.attr('_orientation')==='Horizontal'?'left':'top';}if(!this.options.forward){this.options.forward=this.element.attr('_direction')==='Forward'?1:-1;}if(!this.options.speed){this.options.speed=$.toInt(this.element.attr('_speed'))||1000;}if(!this.options.animation){this.options.animation=this.element.attr('_animation')||'swing';}if(!this.options.delay){this.options.delay=$.toInt(this.element.attr('_delay'))||4000;}if(this.options.delay<this.options.speed+250){this.options.delay=this.options.speed+250;}if(!this.options.css){this.options.css={};this.options.css[this.options.orientation]=(this.options.forward>0?'+=':'-=')+(this.options.orientation==='left'?this.options.width:this.options.height)+'px';this.options.rcss={};this.options.rcss[this.options.orientation]=(this.options.forward>0?'-=':'+=')+(this.options.orientation==='left'?this.options.width:this.options.height)+'px';}this.options.position=0;this.options.last={top:this.options.orientation==='left'?0:(this.elements.items.length-1)*this.options.height*this.options.forward*-1,left:this.options.orientation==='left'?(this.elements.items.length-1)*this.options.width*this.options.forward*-1:0};this.options.rlast={top:this.options.orientation==='left'?0:this.options.height*this.options.forward*1,left:this.options.orientation==='left'?this.options.width*this.options.forward*1:0};var onscroll=this.element.attr('_onscroll');if(onscroll){try{this.options.onscroll=eval('('+onscroll+')');}catch(ex){;}}},_initItems:function(){var margin=null;for(var i=0;i<this.elements.items.length;i++){var item=this.elements.items.eq(i);if(!margin){margin={top:$.toInt(item.css('marginTop'))+$.toInt(item.css('borderTopWidth'))+$.toInt(item.css('paddingTop')),right:$.toInt(item.css('marginRight'))+$.toInt(item.css('borderRightWidth'))+$.toInt(item.css('paddingRight')),bottom:$.toInt(item.css('marginBottom'))+$.toInt(item.css('borderBottomWidth'))+$.toInt(item.css('paddingBottom')),left:$.toInt(item.css('marginLeft'))+$.toInt(item.css('borderLeftWidth'))+$.toInt(item.css('paddingLeft'))};}item.stop().css({display:'block',position:'absolute',overflow:'hidden',width:this.options.width-margin.left-margin.right,height:this.options.height-margin.top-margin.bottom,top:this.options.orientation==='left'?0:i*this.options.height*this.options.forward*-1,left:this.options.orientation==='left'?i*this.options.width*this.options.forward*-1:0});}},_handleMouse:function(e){if(e.type==='mouseenter'){this.pause();}else if(e.type==='mouseleave'){this.unpause();}else if(e.type==='click'){var data=$.getLinkAction(e);switch(data.action){case'Next':this._animate(true,false);break;case'Prev':this._animate(true,true);break;}}},play:function(){if(!this._timeout){this._timeout=setTimeout($.proxy(this._animate,this),this.options.delay);}},stop:function(){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}if(this._scrolling>0){this._queue=$.proxy(this._initItems,this);}else{this._initItems();}},pause:function(){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}this._paused=true;},unpause:function(){this._paused=false;this.play();},_animate:function(force,reverse){if(force){if(this._scrolling>0){this._queue=$.proxy(function(){this._animate(force,reverse);},this);return;}}else if(this._paused){return;}if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}var next=this.options.position+(reverse?-1:1);if(next<0){next=this.elements.items.length-1;}else if(next>=this.elements.items.length){next=0;}if($.isFunction(this.options.onscroll)){this.options.onscroll(this.options.position,next,this,reverse);}if(reverse){this.elements.items.eq(next).css(this.options.rlast);}this._scrolling=this.elements.items.length;var scroller=this,moved=false,count=0;this.elements.items.animate(reverse?this.options.rcss:this.options.css,this.options.speed,this.options.animation,function(){if(scroller.options.position===count&&!moved){if(reverse){scroller.options.position--;}else{scroller.elements.items.eq(scroller.options.position).css(scroller.options.last);scroller.options.position++;}if(scroller.options.position<0){scroller.options.position=scroller.elements.items.length-1;}else if(scroller.options.position>=scroller.elements.items.length){scroller.options.position=0;}moved=true;}count++;scroller._scrolling--;var fn;if(scroller._scrolling===0&&$.isFunction(fn=scroller._queue)){scroller._queue=null;fn();}});this.play();},destroy:function(){this.stop();$.Widget.prototype.destroy.apply(this,arguments);}});})(jQuery);
