CC.Sliders={};CC.Slider=new Class({pixels:[],values:[],minPixel:0,maxPixel:0,snapMin:0,snapMax:0,mainElement:null,slidingBox:null,minKnob:null,maxKnob:null,sliderObj:null,minInput:null,maxInput:null,initialize:function(B,A){if($(B).hasClass("cc_slider")){if($defined(A)){if($defined(A.pixels)&&A.pixels.length>0){this.pixels=A.pixels;this.minPixel=A.pixels[0];this.maxPixel=A.pixels[A.pixels.length-1]}if($defined(A.values)&&A.values.length>0){this.values=A.values}if($defined(A.startMin)){this.snapMin=A.startMin}else{this.snapMin=this.minPixel}if($defined(A.startMax)){this.snapMax=A.startMax}else{this.snapMax=this.maxPixel}}this.mainElement=$E(".ruler",B);this.slidingBox=$E(".sliding_box",B);this.minKnob=$E(".min_knob",B);this.maxKnob=$E(".max_knob",B);this.minInput=$E(".min_input",B);this.maxInput=$E(".max_input",B);this.selectAll=$E(".select_all",B);this.createSliderObj();this.makeSlidingBoxDraggable();this.selectAll.ccSlider=this;this.selectAll.addEvent("click",function(){var C=this.ccSlider;C.snapMin=C.minPixel;C.snapMax=C.maxPixel;C.sliderObj.setMin(C.minPixel);C.sliderObj.setMax(C.maxPixel);C.adjustKnobs()});CC.Sliders[$(B).id]=this}},createSliderObj:function(){var B={ccSlider:this,start:this.minPixel,end:this.maxPixel,offset:0,knobheight:20,onChange:function(E){var D=this.options.ccSlider;D.snapMin=parseInt(E.minpos).limit(D.minPixel,D.maxPixel);D.snapMax=parseInt(E.maxpos).limit(D.minPixel,D.maxPixel);D.limitMinimumSize(2);D.sliderObj.setSnap(D.snapMin,D.snapMax);D.updateSlidingBox();D.calculateSnap()},onComplete:function(E){var D=this.options.ccSlider;D.snapMin=parseInt(E.minpos).limit(D.minPixel,D.maxPixel);D.snapMax=parseInt(E.maxpos).limit(D.minPixel,D.maxPixel);D.calculateSnap();D.sliderObj.setSnap(D.snapMin,D.snapMax);D.adjustKnobs();D.updateSlidingBox()}};this.slidingBox.setStyle("opacity",0.5);this.sliderObj=new Slider(this.mainElement,this.minKnob,B,this.maxKnob);this.calculateSnap();var C=this.snapMin;var A=this.snapMax;this.sliderObj.setMin(C);this.sliderObj.setMax(A);this.adjustKnobs()},makeSlidingBoxDraggable:function(){this.slidingBox.makeDraggable({ccSlider:this,container:this.mainElement,limit:{y:[0,0]},onDrag:function(E){var D=this.options.ccSlider;var B=parseInt(E.getStyle("left"));var C=parseInt(E.getStyle("width"));var A=B+C;D.snapMin=B;D.snapMax=A;D.sliderObj.setSnap(D.snapMin,D.snapMax);D.adjustKnobs()},onComplete:function(E){var D=this.options.ccSlider;var B=parseInt(E.getStyle("left"));var C=parseInt(E.getStyle("width"));var A=B+C;D.snapMin=B;D.snapMax=A;D.calculateSnap();D.sliderObj.setSnap(D.snapMin,D.snapMax);D.adjustKnobs();D.updateSlidingBox()}})},calculateSnap:function(){var B=this.pixels;for(var A=1;A<B.length;A++){if((B[A-1]<=this.snapMin)&&(this.snapMin<=B[A])){if((this.snapMin-B[A-1])>=(B[A]-this.snapMin)){this.snapMin=B[A];this.minInput.value=A}else{this.snapMin=B[A-1];this.minInput.value=A-1}break}}for(var A=1;A<B.length;A++){if((B[A-1]<=this.snapMax)&&(this.snapMax<=B[A])){if((this.snapMax-B[A-1])>=(B[A]-this.snapMax)){this.snapMax=B[A];this.maxInput.value=A}else{this.snapMax=B[A-1];this.maxInput.value=A-1}break}}this.limitMinimumSize(2)},limitMinimumSize:function(A){if(!$defined(A)){A=2}var B=this.pixels;if(this.maxInput.value-this.minInput.value<A){if(this.minInput.value>0){this.minInput.value=parseInt(this.maxInput.value)-A;this.snapMin=B[parseInt(this.minInput.value)]}if(this.maxInput.value<B.length-1){this.maxInput.value=parseInt(this.minInput.value)+A;this.snapMax=B[parseInt(this.maxInput.value)]}}},adjustKnobs:function(){this.minKnob.setStyle("left",this.snapMin-8);this.maxKnob.setStyle("left",this.snapMax-8)},updateSlidingBox:function(){this.slidingBox.setStyle("left",this.snapMin);this.slidingBox.setStyle("width",this.snapMax-this.snapMin)},setMinValue:function(B){B=parseInt(B);if(B<this.values[0]){return }for(var A=0;A<this.values.length;A++){if(B==this.values[A]){this.snapMin=this.pixels[A];break}else{if(B<this.values[A]&&A>0){this.snapMin=this.pixels[A-1];break}}}this.calculateSnap();this.sliderObj.setSnap(this.snapMin,this.snapMax);this.adjustKnobs();this.updateSlidingBox()},setMaxValue:function(B){B=parseInt(B);if(B>this.values[this.values.length-1]){return }CC.log(B);for(var A=this.values.length-1;A>=0;A--){CC.log(A+", "+this.values[A]);if(B==this.values[A]){this.snapMax=this.pixels[A+1];break}else{if(B>this.values[A]&&A<this.values.length-1){this.snapMax=this.pixels[A+2];break}}}this.calculateSnap();this.sliderObj.setSnap(this.snapMin,this.snapMax);this.adjustKnobs();this.updateSlidingBox()},setSnapMin:function(A){if(A<0||A>this.pixels.length){return }this.snapMin=this.pixels[A];this.calculateSnap();this.sliderObj.setSnap(this.snapMin,this.snapMax);this.adjustKnobs();this.updateSlidingBox()},setSnapMax:function(A){if(A<0||A>this.pixels.length){return }this.snapMax=this.pixels[A];this.calculateSnap();this.sliderObj.setSnap(this.snapMin,this.snapMax);this.adjustKnobs();this.updateSlidingBox()}});