deliaPanSlider=new Class({Implements:Options,options:{panWrapper:"panWrapper",panContainer:"panContainer",pansSelector:".pans",mode:null,scrollby:1,controllers:{left:null,right:null,disabled:"disabled"}},_panPosition:{current:0,start:0,end:0,maxbyscroll:1},_pans:null,initialize:function(options){this.setOptions(options);var tmp_containerWidth=0;this._pans=$$(this.options.pansSelector);this._panPosition.end=(this._pans.length-1);this._pans.each(function(item,ind){tmp_containerWidth+=item.getWidth()+item.getStyle("margin-left").toInt()+item.getStyle("margin-right").toInt();if(ind==0){tmp_itemWidth=item.getWidth()+item.getStyle("margin-left").toInt()+item.getStyle("margin-right").toInt()}});$(this.options.panContainer).setStyle("width",tmp_containerWidth+"px");this._panPosition.maxbyscroll=($(this.options.panWrapper).getWidth()/tmp_itemWidth).round(0);this._scroll=new Fx.Scroll($(this.options.panWrapper));this._setControllersStatus((tmp_containerWidth<$(this.options.panWrapper).getWidth()));if(this.options.controllers.left!=null){$(this.options.controllers.left).addEvent("click",function(e){e.stop();this.toPrevious()}.bind(this))}if(this.options.controllers.right!=null){$(this.options.controllers.right).addEvent("click",function(e){e.stop();this.toNext()}.bind(this))}},toNext:function(){var tmp_nextPan=(this._panPosition.current+this.options.scrollby);if(tmp_nextPan<=this._panPosition.end){this.toPan(this._pans[tmp_nextPan])}else{if((tmp_nextPan>this._panPosition.end)&&(this.options.mode=="loop")){this.toPan(this._pans[this._panPosition.start])}}},toPrevious:function(){var tmp_previousPan=(this._panPosition.current-this.options.scrollby);if(tmp_previousPan>=this._panPosition.start){this.toPan(this._pans[tmp_previousPan])}else{if((tmp_previousPan>this._panPosition.end||tmp_previousPan<0)&&(this.options.mode=="loop")){this.toPan(this._pans[this._panPosition.end])}}},toPan:function(el){switch(el){case"first":var tmp_scrollTarget=this._pans[0];break;case"last":var tmp_scrollTarget=this._pans.getLast();break;case"random":var tmp_scrollTarget=this._pans.getRandom();break;default:var tmp_scrollTarget=$(el);break}this._panPosition.current=this._pans.indexOf(tmp_scrollTarget);this._scroll.toElement(tmp_scrollTarget);this._setControllersStatus()},toCoord:function(x,y){this._scroll.set(x,y)},setStart:function(el){switch(el){case"first":var tmp_scrollTarget=this._pans[0];break;case"last":var tmp_scrollTarget=this._pans.getLast();break;case"random":var tmp_scrollTarget=this._pans.getRandom();break;default:var tmp_scrollTarget=$(el);break}if(tmp_scrollTarget.offsetLeft){this._scroll.set(tmp_scrollTarget.offsetLeft,0)}else{this._scroll.toElement(tmp_scrollTarget)}this._panPosition.current=this._pans.indexOf(tmp_scrollTarget);this._setControllersStatus()},reset:function(){var tmp_containerWidth=0;this._pans=$$(this.options.pansSelector);this._panPosition.end=(this._pans.length-1);this._pans.each(function(item){tmp_containerWidth+=item.getWidth()});$(this.options.panContainer).setStyle("width",tmp_containerWidth+"px");this.toCoord(0,0);this._setControllersStatus()},_setControllersStatus:function(forceDisable){if((this.options.mode!="loop")&&(this.options.controllers.disabled!=null)){$$("."+this.options.controllers.disabled).removeClass(this.options.controllers.disabled);if((this.options.controllers.left!=null)&&((this._panPosition.current==this._panPosition.start)||(this._panPosition.current-this.options.scrollby<this._panPosition.start)||forceDisable===true)){$(this.options.controllers.left).addClass(this.options.controllers.disabled)}if((this.options.controllers.right!=null)&&((this._panPosition.current==this._panPosition.end)||(this._panPosition.current+this.options.scrollby>this._panPosition.end)||forceDisable===true||(this._panPosition.current+this._panPosition.maxbyscroll)>this._pans.length)){$(this.options.controllers.right).addClass(this.options.controllers.disabled)}}}.protect(),_debug:function(){console.clear();console.log("start: "+this._panPosition.start);console.log("current: "+this._panPosition.current);console.log("end: "+this._panPosition.end);console.log("maxbyscroll: "+this._panPosition.maxbyscroll);console.log("end > maxbyscroll: "+(this._panPosition.end>this._panPosition.maxbyscroll));console.log("length: "+this._pans.length);console.log("(current+maxbyscroll) > length: "+((this._panPosition.current+this._panPosition.maxbyscroll)>this._pans.length));console.log()}});
