if(!Control){var Control={};}Control.Slider=Class.create({initialize:function(g,f,e){var h=this;if(Object.isArray(g)){this.handles=g.collect(function(a){return $(a);});}else{this.handles=[$(g)];}this.track=$(f);this.options=e||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0;});this.spans=this.options.spans?this.options.spans.map(function(a){return $(a);}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled();}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max();}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(a,b){b=h.handles.length-1-b;h.setValue(parseFloat((Object.isArray(h.options.sliderValue)?h.options.sliderValue[b]:h.options.sliderValue)||h.range.start),b);a.makePositioned().observe("mousedown",h.eventMouseDown);});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true;},dispose:function(){var b=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(a){Event.stopObserving(a,"mousedown",b.eventMouseDown);});},setDisabled:function(){this.disabled=true;},setEnabled:function(){this.disabled=false;},getNearestValue:function(d){if(this.allowedValues){if(d>=this.allowedValues.max()){return(this.allowedValues.max());}if(d<=this.allowedValues.min()){return(this.allowedValues.min());}var e=Math.abs(this.allowedValues[0]-d);var f=this.allowedValues[0];this.allowedValues.each(function(b){var a=Math.abs(b-d);if(a<=e){f=b;e=a;}});return f;}if(d>this.range.end){return this.range.end;}if(d<this.range.start){return this.range.start;}return d;},setValue:function(c,d){if(!this.active){this.activeHandleIdx=d||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}d=d||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((d>0)&&(c<this.values[d-1])){c=this.values[d-1];}if((d<(this.handles.length-1))&&(c>this.values[d+1])){c=this.values[d+1];}}c=this.getNearestValue(c);this.values[d]=c;this.value=this.values[0];this.handles[d].style[this.isVertical()?"top":"left"]=this.translateToPx(c);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished();}},setValueBy:function(c,d){this.setValue(this.values[d||this.activeHandleIdx||0]+c,d||this.activeHandleIdx||0);},translateToPx:function(b){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(b-this.range.start))+"px";},translateToValue:function(b){return((b/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);},getRange:function(c){var d=this.values.sortBy(Prototype.K);c=c||0;return $R(d[c],d[c+1]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX);},isVertical:function(){return(this.axis=="vertical");},drawSpans:function(){var b=this;if(this.spans){$R(0,this.spans.length-1).each(function(a){b.setSpan(b.spans[a],b.getRange(a));});}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum));}},setSpan:function(c,d){if(this.isVertical()){c.style.top=this.translateToPx(d.start);c.style.height=this.translateToPx(d.end-d.start+this.range.start);}else{c.style.left=this.translateToPx(d.start);c.style.width=this.translateToPx(d.end-d.start+this.range.start);}},updateStyles:function(){this.handles.each(function(b){Element.removeClassName(b,"selected");});Element.addClassName(this.activeHandle,"selected");},startDrag:function(j){if(Event.isLeftClick(j)){if(!this.disabled){this.active=true;var i=Event.element(j);var h=[Event.pointerX(j),Event.pointerY(j)];var g=i;if(g==this.track){var f=Position.cumulativeOffset(this.track);this.event=j;this.setValue(this.translateToValue((this.isVertical()?h[1]-f[1]:h[0]-f[0])-(this.handleLength/2)));var f=Position.cumulativeOffset(this.activeHandle);this.offsetX=(h[0]-f[0]);this.offsetY=(h[1]-f[1]);}else{while((this.handles.indexOf(i)==-1)&&i.parentNode){i=i.parentNode;}if(this.handles.indexOf(i)!=-1){this.activeHandle=i;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var f=Position.cumulativeOffset(this.activeHandle);this.offsetX=(h[0]-f[0]);this.offsetY=(h[1]-f[1]);}}}Event.stop(j);}},update:function(b){if(this.active){if(!this.dragging){this.dragging=true;}this.draw(b);if(Prototype.Browser.WebKit){window.scrollBy(0,0);}Event.stop(b);}},draw:function(f){var e=[Event.pointerX(f),Event.pointerY(f)];var d=Position.cumulativeOffset(this.track);e[0]-=this.offsetX+d[0];e[1]-=this.offsetY+d[1];this.event=f;this.setValue(this.translateToValue(this.isVertical()?e[1]:e[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this);}},endDrag:function(b){if(this.active&&this.dragging){this.finishDrag(b,true);Event.stop(b);}this.active=false;this.dragging=false;},finishDrag:function(d,c){this.active=false;this.dragging=false;this.updateFinished();},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this);}this.event=null;}});
