var SmoothSlider=Class.create();SmoothSlider.prototype=Control.Slider.prototype;SmoothSlider.prototype.setValue=function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}
handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
sliderValue=this.values[handleIdx+1];}
sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];if(this.slideFxBusy==true){if(this.slideFx){this.slideFx.cancel();this.slideFxBusy=false;this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);}}else{this.slideFxBusy=true;var translated_value=this.translateToPx(sliderValue);if(translated_value!="NaNpx"){var move_x=this.isVertical()?0:parseInt(translated_value);var move_y=this.isVertical()?parseInt(translated_value):0;this.slideFx=new Effect.Move(this.handles[handleIdx],{x:move_x,y:move_y,mode:'absolute',duration:0.5,afterFinish:function(){this.slideFxBusy=false;}.bindAsEventListener(this)});}}
this.isMoving=false;this.drawSpans();if(!this.dragging||!this.event)this.updateFinished();};;var RedemptionSlider=Class.create({initialize:function(sliderHandleId,sliderRailId,sliderCaptionId,sliderValueboxId){this.sliderHandleId=sliderHandleId;this.sliderRailId=sliderRailId;this.sliderCaptionId=sliderCaptionId;this.sliderValuebox=$(sliderValueboxId);this.sliderData={minimum:1,maximum:1,sliderValue:1,step:1,range:$R(0,100),values:$R(0,100),onSlide:this.slideListener.bind(this),onChange:this.changeListener.bind(this)};this.regenerateSlider(1,1,1,1);this.sliderCaption=$(sliderCaptionId);this.points_per_use=1;this.points_currency=-1;this.oldRuleId=-1;this.oldProductPrice=-1;},changeListener:function(val){this.setExternalValue(val);feignPriceChange();},slideListener:function(val){this.changeListener(val);},getValue:function(){return this.slider.value;},getUses:function(){return this.getValue();},getRealMaxUses:function(max_uses,points_per_use,cp,pp,pp_disp){var lowest_max_uses=max_uses;var max_pp_uses=pp/pp_disp;max_pp_uses=parseInt(max_pp_uses)+((max_pp_uses-parseInt(max_pp_uses)>0)?1:0);if(max_pp_uses<lowest_max_uses){lowest_max_uses=max_pp_uses;}
var max_cp_uses=parseInt(cp/points_per_use);if(max_cp_uses<lowest_max_uses){lowest_max_uses=max_cp_uses;}
return lowest_max_uses;},regenerateSlider:function(min,max,step,initial_value){if(this.slider!=null){this.slider.dispose();}
this.sliderData.minimum=min;this.sliderData.maximum=max;this.sliderData.step=step;this.sliderData.range=$R(min,max);if(step==1){this.sliderData.values=$R(min,max);}else{var vals=new Array();vals.push(min);$R(min,max-1).each(function(v){if(v%step==0){vals.push(v+step);}});this.sliderData.values=vals;}
this.sliderData.sliderValue=initial_value;this.slider=new SmoothSlider(this.sliderHandleId,this.sliderRailId,this.sliderData);},setExternalValue:function(val){this.sliderCaption.innerHTML=getPointsString(val*this.points_per_use,this.points_currency);this.sliderValuebox.value=this.getUses();},incr:function(){this.slider.setValue(this.slider.value+this.sliderData.step);},decr:function(){this.slider.setValue(this.slider.value-this.sliderData.step);},maximize:function(){this.slider.setValue(this.sliderData.maximum);},isMaxed:function(){return(this.getValue()==this.sliderData.maximum);}});