/*Author Unknown*/ var Slider2=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(A){this.moveKnob.setStyle(this.p,A)},start:0,end:100,offset:0,knobheight:20,mode:"horizontal"},initialize:function(D,A,B,G){this.element=$(D);this.knob=$(A);this.setOptions(B);this.previousChange=-1;this.previousEnd=-1;this.step=-1;this.options.steps=this.options.end-this.options.start;if(G!=null){this.maxknob=$(G)}else{this.element.addEvent("mousedown",this.clickedElement.bindWithEvent(this))}var C,F;switch(this.options.mode){case"horizontal":this.z="x";this.p="left";C={x:"left",y:false};F="offsetWidth";break;case"vertical":this.z="y";this.p="top";C={x:false,y:"top"};F="offsetHeight"}this.max=this.element[F]-this.knob[F]+(this.options.offset*2);this.half=this.knob[F]/2;this.getPos=this.element["get"+this.p.capitalize()].bind(this.element);this.knob.setStyle("position","relative").setStyle(this.p,-this.options.offset);if(G!=null){this.maxPreviousChange=-1;this.maxPreviousEnd=-1;this.maxstep=this.options.end;this.maxknob.setStyle("position","relative").setStyle(this.p,+this.max-this.options.offset).setStyle("bottom",this.options.knobheight)}var E={};E[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:E,modifiers:C,snap:0,onStart:function(){this.draggedKnob()}.bind(this),onDrag:function(){this.draggedKnob()}.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(G!=null){this.maxdrag=new Drag.Base(this.maxknob,{limit:E,modifiers:C,snap:0,onStart:function(){this.draggedKnob(1)}.bind(this),onDrag:function(){this.draggedKnob(1)}.bind(this),onComplete:function(){this.draggedKnob(1);this.end()}.bind(this)})}if(this.options.initialize){this.options.initialize.call(this)}},setMin:function(A){this.step=A.limit(this.options.start,this.options.end);this.checkStep();this.end();this.moveKnob=this.knob;this.fireEvent("onTick",this.toPosition(this.step));return this},setMax:function(A){this.maxstep=A.limit(this.options.start,this.options.end);this.checkStep(1);this.end();this.moveKnob=this.maxknob;this.fireEvent("onTick",this.toPosition(this.maxstep));return this},clickedElement:function(B){var A=B.page[this.z]-this.getPos()-this.half;A=A.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(A);this.checkStep();this.end();this.fireEvent("onTick",A)},draggedKnob:function(A){if(A==null){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep()}else{this.maxstep=this.toStep(this.maxdrag.value.now[this.z]);this.checkStep(1)}},checkStep:function(A){if(A==null){if(this.previousChange!=this.step){this.previousChange=this.step}}else{if(this.maxPreviousChange!=this.maxstep){this.maxPreviousChange=this.maxstep}}if(this.maxknob!=null){if(this.step<this.maxstep){this.fireEvent("onChange",{minpos:this.step,maxpos:this.maxstep})}else{this.fireEvent("onChange",{minpos:this.maxstep,maxpos:this.step})}}else{this.fireEvent("onChange",this.step)}},end:function(){if(this.previousEnd!==this.step||(this.maxknob!=null&&this.maxPreviousEnd!=this.maxstep)){this.previousEnd=this.step;if(this.maxknob!=null){this.maxPreviousEnd=this.maxstep;if(this.step<this.maxstep){this.fireEvent("onComplete",{minpos:this.step+"",maxpos:this.maxstep+""})}else{this.fireEvent("onComplete",{minpos:this.maxstep+"",maxpos:this.step+""})}}else{this.fireEvent("onComplete",this.step+"")}}},toStep:function(A){return Math.round((A+this.options.offset)/this.max*this.options.steps)+this.options.start},toPosition:function(A){return(this.max*A/this.options.steps)-(this.max*this.options.start/this.options.steps)-this.options.offset}});Slider2.implement(new Events);Slider2.implement(new Options);

