(function(A){A.widget("ui.slider",A.extend({},A.ui.mouse,{_init:function(){var C=this;this._keySliding=false;this._handleIndex=null;this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this._orientation()+" ui-widget ui-widget-content ui-corner-all");this.range=A([]);if(this.options.range){if(this.options.range===true){this.range=A("<div></div>");if(!this.options.values){this.options.values=[this._valueMin(),this._valueMin()]}if(this.options.values.length&&this.options.values.length!=2){this.options.values=[this.options.values[0],this.options.values[0]]}}else{this.range=A("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range ui-widget-header");var D=this.options.range,B=this._orientation();(D=="min")&&(B=="horizontal")&&this.range.css({left:0});(D=="max")&&(B=="horizontal")&&this.range.css({right:0});(D=="min")&&(B=="vertical")&&this.range.css({bottom:0});(D=="max")&&(B=="vertical")&&this.range.css({top:0})}if(A(".ui-slider-handle",this.element).length==0){A('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(this.options.values&&this.options.values.length){while(A(".ui-slider-handle",this.element).length<this.options.values.length){A('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=A(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(E){E.preventDefault()}).hover(function(){A(this).addClass("ui-state-hover")},function(){A(this).removeClass("ui-state-hover")}).focus(function(){C.handles.removeClass("ui-state-focus");A(this).addClass("ui-state-focus")}).blur(function(){A(this).removeClass("ui-state-focus")});this.handles.each(function(E){A(this).data("index.ui-slider-handle",E)});this.handles.keydown(function(I){var F=A(this).data("index.ui-slider-handle");if(C.options.disabled){return }switch(I.keyCode){case A.ui.keyCode.HOME:case A.ui.keyCode.END:case A.ui.keyCode.UP:case A.ui.keyCode.RIGHT:case A.ui.keyCode.DOWN:case A.ui.keyCode.LEFT:if(!C._keySliding){C._keySliding=true;A(this).addClass("ui-state-active");C._start(I)}break}var G,E,H=C._step();if(C.options.values&&C.options.values.length){G=E=C.values(F)}else{G=E=C.value()}switch(I.keyCode){case A.ui.keyCode.HOME:E=C._valueMin();break;case A.ui.keyCode.END:E=C._valueMax();break;case A.ui.keyCode.UP:case A.ui.keyCode.RIGHT:E=G+H;break;case A.ui.keyCode.DOWN:case A.ui.keyCode.LEFT:E=G-H;break}C._slide(I,F,E)}).keyup(function(E){if(C._keySliding){C._stop(E);C._change(E);C._keySliding=false;A(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(G){var H=this.options;if(H.disabled){return false}this._start(G);this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var B={x:G.pageX,y:G.pageY};var E=this._normValueFromMouse(B);var I=this._valueMax(),C;var D=this,F;this.handles.each(function(J){var K=Math.abs(E-D.values(J));if(I>K){I=K;C=A(this);F=J}});D._handleIndex=F;C.addClass("ui-state-active").focus();this._slide(G,F,E);return true},_mouseStart:function(B){return true},_mouseDrag:function(D){var B={x:D.pageX,y:D.pageY};var C=this._normValueFromMouse(B);this._slide(D,this._handleIndex,C);return false},_mouseStop:function(B){this.handles.removeClass("ui-state-active");this._stop(B);this._change(B);this._handleIndex=null;return false},_normValueFromMouse:function(D){var C,H;if("horizontal"==this._orientation()){C=this.elementSize.width;H=D.x-this.elementOffset.left}else{C=this.elementSize.height;H=D.y-this.elementOffset.top}var F=(H/C);if(F>1){F=1}if(F<0){F=0}if("vertical"==this._orientation()){F=1-F}var E=this._valueMax()-this._valueMin();var I=F*E;var B=I%this.options.step;var G=this._valueMin()+I-B;if(B>(this.options.step/2)){G+=this.options.step}return G},_start:function(B){this._trigger("start",B,{value:this.value()})},_slide:function(F,E,D){if(this.options.values&&this.options.values.length){var G=this.handles[E];var B=this.values(E?0:1);if((E==0&&D>=B)||(E==1&&D<=B)){D=B}if(D!=this.values(E)){var C=this.values();C[E]=D;var H=this._trigger("slide",F,{handle:G,value:D,values:C});var B=this.values(E?0:1);if(H!==false){this.values(E,D)}}}else{if(D!=this.value()){var H=this._trigger("slide",F,{value:D});if(H!==false){this._setData("value",D)}}}},_stop:function(B){this._trigger("stop",B,{value:this.value()})},_change:function(B){this._trigger("change",B,{value:this.value()})},value:function(B){if(arguments.length){this._setData("value",B);this._change()}return this._value()},values:function(B,C){if(arguments.length>1){this.options.values[B]=C;this._refreshValue();this._change()}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(B)}else{return this.value()}}else{return this._values()}},_setData:function(B,C){A.widget.prototype._setData.apply(this,arguments);switch(B){case"orientation":this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this._orientation());this._refreshValue();break;case"value":this._refreshValue();break}},_orientation:function(){var B=this.options.orientation;if(B!="horizontal"&&B!="vertical"){B="horizontal"}return B},_step:function(){var B=this.options.step;return B},_value:function(){var B=this.options.value;if(B<this._valueMin()){B=this._valueMin()}if(B>this._valueMax()){B=this._valueMax()}return B},_values:function(B){if(arguments.length){var C=this.options.values[B];if(C<this._valueMin()){C=this._valueMin()}if(C>this._valueMax()){C=this._valueMax()}return C}else{return this.options.values}},_valueMin:function(){var B=this.options.min;return B},_valueMax:function(){var B=this.options.max;return B},_refreshValue:function(){var F=this.options.range,C=this._orientation();if(this.options.values&&this.options.values.length){var D=this,B,G;this.handles.each(function(J,H){var I=(D.values(J)-D._valueMin())/(D._valueMax()-D._valueMin())*100;A(this).css(C=="horizontal"?"left":"bottom",I+"%");if(D.options.range===true){if(C=="horizontal"){(J==0)&&D.range.css("left",I+"%");(J==1)&&D.range.css("width",(I-lastValPercent)+"%")}else{(J==0)&&D.range.css("bottom",(I)+"%");(J==1)&&D.range.css("height",(I-lastValPercent)+"%")}}lastValPercent=I})}else{var E=(this.value()-this._valueMin())/(this._valueMax()-this._valueMin())*100;this.handle.css(C=="horizontal"?"left":"bottom",E+"%");(F=="min")&&(C=="horizontal")&&this.range.css({left:0,width:E+"%"});(F=="max")&&(C=="horizontal")&&this.range.css({left:E+"%",width:(100-E)+"%"});(F=="min")&&(C=="vertical")&&this.range.css({top:(100-E)+"%",height:E+"%"});(F=="max")&&(C=="vertical")&&this.range.css({bottom:E+"%",height:(100-E)+"%"})}}}));A.extend(A.ui.slider,{getter:"value values",version:"1.6rc4",eventPrefix:"slide",defaults:{delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);
