1 if(!Control
){var Control
={}}Control
.Slider
=Class
.create({initialize:function(D
,A
,B
){var C
=this;if(Object
.isArray(D
)){this.handles
=D
.collect(function(E
){return $(E
)})}else{this.handles
=[$(D
)]}this.track
=$(A
);this.options
=B
||{};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(E
){return $(E
)}):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(F
,E
){E
=C
.handles
.length
-1-E
;C
.setValue(parseFloat((Object
.isArray(C
.options
.sliderValue
)?C
.options
.sliderValue
[E
]:C
.options
.sliderValue
)||C
.range
.start
),E
);F
.makePositioned().observe("mousedown",C
.eventMouseDown
)});this.track
.observe("mousedown",this.eventMouseDown
);document
.observe("mouseup",this.eventMouseUp
);document
.observe("mousemove",this.eventMouseMove
);this.initialized
=true},dispose:function(){var A
=this;Event
.stopObserving(this.track
,"mousedown",this.eventMouseDown
);Event
.stopObserving(document
,"mouseup",this.eventMouseUp
);Event
.stopObserving(document
,"mousemove",this.eventMouseMove
);this.handles
.each(function(B
){Event
.stopObserving(B
,"mousedown",A
.eventMouseDown
)})},setDisabled:function(){this.disabled
=true},setEnabled:function(){this.disabled
=false},getNearestValue:function(A
){if(this.allowedValues
){if(A
>=this.allowedValues
.max()){return(this.allowedValues
.max())}if(A
<=this.allowedValues
.min()){return(this.allowedValues
.min())}var C
=Math
.abs(this.allowedValues
[0]-A
);var B
=this.allowedValues
[0];this.allowedValues
.each(function(D
){var E
=Math
.abs(D
-A
);if(E
<=C
){B
=D
;C
=E
}});return B
}if(A
>this.range
.end
){return this.range
.end
}if(A
<this.range
.start
){return this.range
.start
}return A
},setValue:function(B
,A
){if(!this.active
){this.activeHandleIdx
=A
||0;this.activeHandle
=this.handles
[this.activeHandleIdx
];this.updateStyles()}A
=A
||this.activeHandleIdx
||0;if(this.initialized
&&this.restricted
){if((A
>0)&&(B
<this.values
[A
-1])){B
=this.values
[A
-1]}if((A
<(this.handles
.length
-1))&&(B
>this.values
[A
+1])){B
=this.values
[A
+1]}}B
=this.getNearestValue(B
);this.values
[A
]=B
;this.value
=this.values
[0];this.handles
[A
].style
[this.isVertical()?"top":"left"]=this.translateToPx(B
);this.drawSpans();if(!this.dragging
||!this.event
){this.updateFinished()}},setValueBy:function(B
,A
){this.setValue(this.values
[A
||this.activeHandleIdx
||0]+B
,A
||this.activeHandleIdx
||0)},translateToPx:function(A
){return Math
.round(((this.trackLength
-this.handleLength
)/(this.range.end-this.range.start))*(A-this.range.start))+"px"},translateToValue:function(A){return((A/(this.trackLength
-this.handleLength
)*(this.range
.end
-this.range
.start
))+this.range
.start
)},getRange:function(B
){var A
=this.values
.sortBy(Prototype
.K
);B
=B
||0;return $R(A
[B
],A
[B
+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 A
=this;if(this.spans
){$R(0,this.spans
.length
-1).each(function(B
){A
.setSpan(A
.spans
[B
],A
.getRange(B
))})}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(B
,A
){if(this.isVertical()){B
.style
.top
=this.translateToPx(A
.start
);B
.style
.height
=this.translateToPx(A
.end
-A
.start
+this.range
.start
)}else{B
.style
.left
=this.translateToPx(A
.start
);B
.style
.width
=this.translateToPx(A
.end
-A
.start
+this.range
.start
)}},updateStyles:function(){this.handles
.each(function(A
){Element
.removeClassName(A
,"selected")});Element
.addClassName(this.activeHandle
,"selected")},startDrag:function(C
){if(Event
.isLeftClick(C
)){if(!this.disabled
){this.active
=true;var D
=Event
.element(C
);var E
=[Event
.pointerX(C
),Event
.pointerY(C
)];var A
=D
;if(A
==this.track
){var B
=this.track
.cumulativeOffset();this.event
=C
;this.setValue(this.translateToValue((this.isVertical()?E
[1]-B
[1]:E
[0]-B
[0])-(this.handleLength
/2)));var B
=this.activeHandle
.cumulativeOffset();this.offsetX
=(E
[0]-B
[0]);this.offsetY
=(E
[1]-B
[1])}else{while((this.handles
.indexOf(D
)==-1)&&D
.parentNode
){D
=D
.parentNode
}if(this.handles
.indexOf(D
)!=-1){this.activeHandle
=D
;this.activeHandleIdx
=this.handles
.indexOf(this.activeHandle
);this.updateStyles();var B
=this.activeHandle
.cumulativeOffset();this.offsetX
=(E
[0]-B
[0]);this.offsetY
=(E
[1]-B
[1])}}}Event
.stop(C
)}},update:function(A
){if(this.active
){if(!this.dragging
){this.dragging
=true}this.draw(A
);if(Prototype
.Browser
.WebKit
){window
.scrollBy(0,0)}Event
.stop(A
)}},draw:function(B
){var C
=[Event
.pointerX(B
),Event
.pointerY(B
)];var A
=this.track
.cumulativeOffset();C
[0]-=this.offsetX
+A
[0];C
[1]-=this.offsetY
+A
[1];this.event
=B
;this.setValue(this.translateToValue(this.isVertical()?C
[1]:C
[0]));if(this.initialized
&&this.options
.onSlide
){this.options
.onSlide(this.values
.length
>1?this.values
:this.value
,this)}},endDrag:function(A
){if(this.active
&&this.dragging
){this.finishDrag(A
,true);Event
.stop(A
)}this.active
=false;this.dragging
=false},finishDrag:function(A
,B
){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}});