var CustomSlider=new Class({Implements:[Options,Events],options:{minValue:1,maxValue:5,defaultValue:1,step:1,container:"slider",points:[],onUpdate:Class.empty},initialize:function(D,C){this.setOptions(C);this.name=D;var F=Cookie.read(this.name+"-slider");if(F){this.currentValue=F.toInt()}else{this.currentValue=this.options.defaultValue}this.mainContainer=$(this.options.container);if(this.mainContainer){this.decreaseLinkContainer=new Element("div",{"class":"minus"}).inject(this.mainContainer);this.increaseLinkContainer=new Element("div",{"class":"plus"}).inject(this.mainContainer);this.bulletContainer=new Element("div",{"class":"bullet-container"}).inject(this.mainContainer);this.decreaseLink=new Element("a",{href:"#minus","class":"minus",html:"<strong>-</strong><span></span>",events:{click:this.decreaseHandler.bind(this)}}).inject(this.decreaseLinkContainer);this.increaseLink=new Element("a",{href:"#plus","class":"plus",html:"<strong>+</strong><span></span>",events:{click:this.increaseHandler.bind(this)}}).inject(this.increaseLinkContainer);this.bullet=new Element("span",{"class":"bullet mark"}).inject(this.bulletContainer);var A=this.bulletContainer.getCoordinates();var B=this.bullet.getCoordinates();this.rightLimit=A.width-B.width;this.stepWidth=this.rightLimit*this.options.step/(this.options.maxValue-this.options.minValue);this.leftLimit=0;if(this.options.points.length){this.points=this.options.points}else{this.points=[];for(var E=0;E<=this.options.maxValue-this.options.minValue;E++){this.points[E]=Math.round(this.stepWidth*E)}}dragOptions={modifiers:{x:"left",y:null},limit:{x:new Array(this.leftLimit,this.rightLimit)},onDrag:this.dragHandler.bind(this)};this.bullet.makeDraggable(dragOptions);this.update()}},dragHandler:function(){var E=this.bullet.getStyle("left").toInt();var C=0;var B=this.rightLimit;for(var A=0;A<this.points.length;A++){var F=Math.abs(this.points[A]-E);if(F<B){B=F;C=A}}var D=C+1;if(this.currentValue==D){this.updateBullet()}else{this.currentValue=D;this.update()}},increaseHandler:function(A){A.stop();if(this.currentValue+1<=this.points.length){this.currentValue++;this.update()}},decreaseHandler:function(A){A.stop();if(this.currentValue-1>0){this.currentValue--;this.update()}},update:function(){this.updateBullet();this.updateCookie();this.fireEvent("onUpdate")},updateBullet:function(){if(typeof this.points[this.currentValue-1]=="undefined"){var A=this.points.length-1}else{var A=this.currentValue-1}this.bullet.setStyle("left",this.points[A]+"px")},updateCookie:function(){Cookie.write(this.name+"-slider",this.currentValue,{duration:1})}});
