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);$(this.track.parentNode.parentNode).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(this.track.parentNode.parentNode,"mousemove",this.eventMouseMove);this.handles.each(function(a){Event.stopObserving(a,"mousedown",b.eventMouseDown)})},setDisabled:function(){this.disabled=true;this.track.parentNode.className=this.track.parentNode.className+" disabled"},setEnabled:function(){this.disabled=false},getNearestValue:function(e){if(this.allowedValues){if(e>=this.allowedValues.max()){return(this.allowedValues.max())}if(e<=this.allowedValues.min()){return(this.allowedValues.min())}var f=Math.abs(this.allowedValues[0]-e);var d=this.allowedValues[0];this.allowedValues.each(function(b){var a=Math.abs(b-e);if(a<=f){d=b;f=a}});return d}if(e>this.range.end){return this.range.end}if(e<this.range.start){return this.range.start}return e},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(d){var f=[Event.pointerX(d),Event.pointerY(d)];var e=Position.cumulativeOffset(this.track);f[0]-=this.offsetX+e[0];f[1]-=this.offsetY+e[1];this.event=d;this.setValue(this.translateToValue(this.isVertical()?f[1]:f[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}});
