|
( function (e,t){ var n=5;e.widget( "ui.slider" ,e.ui.mouse,{version: "1.9.1" ,widgetEventPrefix: "slide" ,options:{animate:!1,distance:0,max:100,min:0,orientation: "horizontal" ,range:!1,step:1,value:0,values: null },_create: function (){ var t,r,i= this .options,s= this .element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ),o= "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>" ,u=[]; this ._keySliding=!1, this ._mouseSliding=!1, this ._animateOff=!0, this ._handleIndex= null , this ._detectOrientation(), this ._mouseInit(), this .element.addClass( "ui-slider ui-slider-" + this .orientation+ " ui-widget" + " ui-widget-content" + " ui-corner-all" +(i.disabled? " ui-slider-disabled ui-disabled" : "" )), this .range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[ this ._valueMin(), this ._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])), this .range=e( "<div></div>" ).appendTo( this .element).addClass( "ui-slider-range ui-widget-header" +(i.range=== "min" ||i.range=== "max" ? " ui-slider-range-" +i.range: "" ))),r=i.values&&i.values.length||1; for (t=s.length;t<r;t++)u.push(o); this .handles=s.add(e(u.join( "" )).appendTo( this .element)), this .handle= this .handles.eq(0), this .handles.add( this .range).filter( "a" ).click( function (e){e.preventDefault()}).mouseenter( function (){i.disabled||e( this ).addClass( "ui-state-hover" )}).mouseleave( function (){e( this ).removeClass( "ui-state-hover" )}).focus( function (){i.disabled?e( this ).blur():(e( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ),e( this ).addClass( "ui-state-focus" ))}).blur( function (){e( this ).removeClass( "ui-state-focus" )}), this .handles.each( function (t){e( this ).data( "ui-slider-handle-index" ,t)}), this ._on( this .handles,{keydown: function (t){ var r,i,s,o,u=e(t.target).data( "ui-slider-handle-index" ); switch (t.keyCode){ case e.ui.keyCode.HOME: case e.ui.keyCode.END: case e.ui.keyCode.PAGE_UP: case e.ui.keyCode.PAGE_DOWN: case e.ui.keyCode.UP: case e.ui.keyCode.RIGHT: case e.ui.keyCode.DOWN: case e.ui.keyCode.LEFT:t.preventDefault(); if (! this ._keySliding){ this ._keySliding=!0,e(t.target).addClass( "ui-state-active" ),r= this ._start(t,u); if (r===!1) return }}o= this .options.step, this .options.values&& this .options.values.length?i=s= this .values(u):i=s= this .value(); switch (t.keyCode){ case e.ui.keyCode.HOME:s= this ._valueMin(); break ; case e.ui.keyCode.END:s= this ._valueMax(); break ; case e.ui.keyCode.PAGE_UP:s= this ._trimAlignValue(i+( this ._valueMax()- this ._valueMin())/n); break ; case e.ui.keyCode.PAGE_DOWN:s= this ._trimAlignValue(i-( this ._valueMax()- this ._valueMin())/n); break ; case e.ui.keyCode.UP: case e.ui.keyCode.RIGHT: if (i=== this ._valueMax()) return ;s= this ._trimAlignValue(i+o); break ; case e.ui.keyCode.DOWN: case e.ui.keyCode.LEFT: if (i=== this ._valueMin()) return ;s= this ._trimAlignValue(i-o)} this ._slide(t,u,s)},keyup: function (t){ var n=e(t.target).data( "ui-slider-handle-index" ); this ._keySliding&&( this ._keySliding=!1, this ._stop(t,n), this ._change(t,n),e(t.target).removeClass( "ui-state-active" ))}}), this ._refreshValue(), this ._animateOff=!1},_destroy: function (){ this .handles.remove(), this .range.remove(), this .element.removeClass( "ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all" ), this ._mouseDestroy()},_mouseCapture: function (t){ var n,r,i,s,o,u,a,f,l= this ,c= this .options; return c.disabled?!1:( this .elementSize={width: this .element.outerWidth(),height: this .element.outerHeight()}, this .elementOffset= this .element.offset(),n={x:t.pageX,y:t.pageY},r= this ._normValueFromMouse(n),i= this ._valueMax()- this ._valueMin()+1, this .handles.each( function (t){ var n=Math.abs(r-l.values(t));i>n&&(i=n,s=e( this ),o=t)}),c.range===!0&& this .values(1)===c.min&&(o+=1,s=e( this .handles[o])),u= this ._start(t,o),u===!1?!1:( this ._mouseSliding=!0, this ._handleIndex=o,s.addClass( "ui-state-active" ).focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is( ".ui-slider-handle" ), this ._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css( "borderTopWidth" ),10)||0)-(parseInt(s.css( "borderBottomWidth" ),10)||0)+(parseInt(s.css( "marginTop" ),10)||0)}, this .handles.hasClass( "ui-state-hover" )|| this ._slide(t,o,r), this ._animateOff=!0,!0))},_mouseStart: function (){ return !0},_mouseDrag: function (e){ var t={x:e.pageX,y:e.pageY},n= this ._normValueFromMouse(t); return this ._slide(e, this ._handleIndex,n),!1},_mouseStop: function (e){ return this .handles.removeClass( "ui-state-active" ), this ._mouseSliding=!1, this ._stop(e, this ._handleIndex), this ._change(e, this ._handleIndex), this ._handleIndex= null , this ._clickOffset= null , this ._animateOff=!1,!1},_detectOrientation: function (){ this .orientation= this .options.orientation=== "vertical" ? "vertical" : "horizontal" },_normValueFromMouse: function (e){ var t,n,r,i,s; return this .orientation=== "horizontal" ?(t= this .elementSize.width,n=e.x- this .elementOffset.left-( this ._clickOffset? this ._clickOffset.left:0)):(t= this .elementSize.height,n=e.y- this .elementOffset.top-( this ._clickOffset? this ._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0), this .orientation=== "vertical" &&(r=1-r),i= this ._valueMax()- this ._valueMin(),s= this ._valueMin()+r*i, this ._trimAlignValue(s)},_start: function (e,t){ var n={handle: this .handles[t],value: this .value()}; return this .options.values&& this .options.values.length&&(n.value= this .values(t),n.values= this .values()), this ._trigger( "start" ,e,n)},_slide: function (e,t,n){ var r,i,s; this .options.values&& this .options.values.length?(r= this .values(t?0:1), this .options.values.length===2&& this .options.range===!0&&(t===0&&n>r||t===1&&n<r)&&(n=r),n!== this .values(t)&&(i= this .values(),i[t]=n,s= this ._trigger( "slide" ,e,{handle: this .handles[t],value:n,values:i}),r= this .values(t?0:1),s!==!1&& this .values(t,n,!0))):n!== this .value()&&(s= this ._trigger( "slide" ,e,{handle: this .handles[t],value:n}),s!==!1&& this .value(n))},_stop: function (e,t){ var n={handle: this .handles[t],value: this .value()}; this .options.values&& this .options.values.length&&(n.value= this .values(t),n.values= this .values()), this ._trigger( "stop" ,e,n)},_change: function (e,t){ if (! this ._keySliding&&! this ._mouseSliding){ var n={handle: this .handles[t],value: this .value()}; this .options.values&& this .options.values.length&&(n.value= this .values(t),n.values= this .values()), this ._trigger( "change" ,e,n)}},value: function (e){ if (arguments.length){ this .options.value= this ._trimAlignValue(e), this ._refreshValue(), this ._change( null ,0); return } return this ._value()},values: function (t,n){ var r,i,s; if (arguments.length>1){ this .options.values[t]= this ._trimAlignValue(n), this ._refreshValue(), this ._change( null ,t); return } if (!arguments.length) return this ._values(); if (!e.isArray(arguments[0])) return this .options.values&& this .options.values.length? this ._values(t): this .value();r= this .options.values,i=arguments[0]; for (s=0;s<r.length;s+=1)r[s]= this ._trimAlignValue(i[s]), this ._change( null ,s); this ._refreshValue()},_setOption: function (t,n){ var r,i=0;e.isArray( this .options.values)&&(i= this .options.values.length),e.Widget.prototype._setOption.apply( this ,arguments); switch (t){ case "disabled" :n?( this .handles.filter( ".ui-state-focus" ).blur(), this .handles.removeClass( "ui-state-hover" ), this .handles.prop( "disabled" ,!0), this .element.addClass( "ui-disabled" )):( this .handles.prop( "disabled" ,!1), this .element.removeClass( "ui-disabled" )); break ; case "orientation" : this ._detectOrientation(), this .element.removeClass( "ui-slider-horizontal ui-slider-vertical" ).addClass( "ui-slider-" + this .orientation), this ._refreshValue(); break ; case "value" : this ._animateOff=!0, this ._refreshValue(), this ._change( null ,0), this ._animateOff=!1; break ; case "values" : this ._animateOff=!0, this ._refreshValue(); for (r=0;r<i;r+=1) this ._change( null ,r); this ._animateOff=!1; break ; case "min" : case "max" : this ._animateOff=!0, this ._refreshValue(), this ._animateOff=!1}},_value: function (){ var e= this .options.value; return e= this ._trimAlignValue(e),e},_values: function (e){ var t,n,r; if (arguments.length) return t= this .options.values[e],t= this ._trimAlignValue(t),t;n= this .options.values.slice(); for (r=0;r<n.length;r+=1)n[r]= this ._trimAlignValue(n[r]); return n},_trimAlignValue: function (e){ if (e<= this ._valueMin()) return this ._valueMin(); if (e>= this ._valueMax()) return this ._valueMax(); var t= this .options.step>0? this .options.step:1,n=(e- this ._valueMin())%t,r=e-n; return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin: function (){ return this .options.min},_valueMax: function (){ return this .options.max},_refreshValue: function (){ var t,n,r,i,s,o= this .options.range,u= this .options,a= this ,f= this ._animateOff?!1:u.animate,l={}; this .options.values&& this .options.values.length? this .handles.each( function (r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation=== "horizontal" ? "left" : "bottom" ]=n+ "%" ,e( this ).stop(1,1)[f? "animate" : "css" ](l,u.animate),a.options.range===!0&&(a.orientation=== "horizontal" ?(r===0&&a.range.stop(1,1)[f? "animate" : "css" ]({left:n+ "%" },u.animate),r===1&&a.range[f? "animate" : "css" ]({width:n-t+ "%" },{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f? "animate" : "css" ]({bottom:n+ "%" },u.animate),r===1&&a.range[f? "animate" : "css" ]({height:n-t+ "%" },{queue:!1,duration:u.animate}))),t=n}):(r= this .value(),i= this ._valueMin(),s= this ._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[ this .orientation=== "horizontal" ? "left" : "bottom" ]=n+ "%" , this .handle.stop(1,1)[f? "animate" : "css" ](l,u.animate),o=== "min" && this .orientation=== "horizontal" && this .range.stop(1,1)[f? "animate" : "css" ]({width:n+ "%" },u.animate),o=== "max" && this .orientation=== "horizontal" && this .range[f? "animate" : "css" ]({width:100-n+ "%" },{queue:!1,duration:u.animate}),o=== "min" && this .orientation=== "vertical" && this .range.stop(1,1)[f? "animate" : "css" ]({height:n+ "%" },u.animate),o=== "max" && this .orientation=== "vertical" && this .range[f? "animate" : "css" ]({height:100-n+ "%" },{queue:!1,duration:u.animate}))}})})(jQuery);
|