Files
SIG/Scripts/AjaxControlToolkit/Release/MultiHandleSlider.js
2024-11-05 10:47:20 -07:00

2 lines
32 KiB
JavaScript

Type.registerNamespace("Sys.Extended.UI"),Sys.Extended.UI._MultiHandleSliderDragDropInternal=function(){Sys.Extended.UI._MultiHandleSliderDragDropInternal.initializeBase(this),this._instance=null},Sys.Extended.UI._MultiHandleSliderDragDropInternal.prototype={_getInstance:function(){return this._instance=new Sys.Extended.UI.GenericDragDropManager,this._instance.initialize(),this._instance.add_dragStart(Function.createDelegate(this,this._raiseDragStart)),this._instance.add_dragStop(Function.createDelegate(this,this._raiseDragStop)),this._instance}},Sys.Extended.UI._MultiHandleSliderDragDropInternal.registerClass("Sys.Extended.UI._MultiHandleSliderDragDropInternal",Sys.Extended.UI._DragDropManager),Sys.Extended.UI.DragDrop=new Sys.Extended.UI._MultiHandleSliderDragDropInternal,Sys.Extended.UI.MultiHandleInnerRailStyle=function(){},Sys.Extended.UI.MultiHandleInnerRailStyle.prototype={AsIs:0,SlidingDoors:1},Sys.Extended.UI.MultiHandleInnerRailStyle.registerEnum("Sys.Extended.UI.MultiHandleInnerRailStyle",!1),Sys.Extended.UI.MultiHandleSliderOrientation=function(){},Sys.Extended.UI.MultiHandleSliderOrientation.prototype={Horizontal:0,Vertical:1},Sys.Extended.UI.MultiHandleSliderOrientation.registerEnum("Sys.Extended.UI.MultiHandleSliderOrientation",!1),Sys.Extended.UI.MultiHandleSliderBehavior=function(e){Sys.Extended.UI.MultiHandleSliderBehavior.initializeBase(this,[e]),this._isServerControl=!1,this._minimum=null,this._maximum=null,this._orientation=Sys.Extended.UI.MultiHandleSliderOrientation.Horizontal,this._cssClass=null,this._multiHandleSliderTargets=null,this._length=150,this._steps=0,this._enableHandleAnimation=!1,this._showInnerRail=!1,this._showHoverStyle=!1,this._showDragStyle=!1,this._raiseChangeOnlyOnMouseUp=!0,this._innerRailStyle=Sys.Extended.UI.MultiHandleInnerRailStyle.AsIs,this._enableInnerRangeDrag=!1,this._enableRailClick=!0,this._isReadOnly=!1,this._increment=1,this._enableKeyboard=!0,this._enableMouseWheel=!0,this._tooltipText="",this._boundControlID=null,this._handleCssClass=null,this._handleImageUrl=null,this._handleImage=null,this._railCssClass=null,this._decimals=0,this._textBox=null,this._wrapper=null,this._outer=null,this._inner=null,this._handleData=null,this._handleAnimationDuration=.02,this._handles=0,this._innerDragFlag=!1,this._isVertical=!1,this._selectStartHandler=null,this._mouseUpHandler=null,this._mouseOutHandler=null,this._keyDownHandler=null,this._mouseWheelHandler=null,this._mouseOverHandler=null,this._animationPending=!1,this._selectStartPending=!1,this._initialized=!1,this._handleUnderDrag=null,this._innerDrag=!1,this._blockInnerClick=!1},Sys.Extended.UI.MultiHandleSliderBehavior.prototype={initialize:function(){if(Sys.Extended.UI.MultiHandleSliderBehavior.callBaseMethod(this,"initialize"),this._boundControlID&&!this._multiHandleSliderTargets&&(this._multiHandleSliderTargets=[{ControlID:this._boundControlID,HandleCssClass:this._handleCssClass,HandleImageUrl:this._handleImageUrl,Decimals:this._decimals}]),this._handles=this._multiHandleSliderTargets?this._multiHandleSliderTargets.length:0,0===this._handles){var e=document.createElement("INPUT");e.id="boundless",e.style.display="none",e.value=this.get_minimum(),document.forms[0].appendChild(e),this._multiHandleSliderTargets=[{ControlID:e.id,HandleCssClass:this._handleCssClass,HandleImageUrl:this._handleImageUrl,Decimals:this._decimals}],this._boundControlID=e.id,this._handles=1}this._isVertical=this._orientation===Sys.Extended.UI.MultiHandleSliderOrientation.Vertical,this._resolveNamingContainer(),this._createWrapper(),this._createOuterRail(),this._createHandles(),this._createInnerRail(),this._setRailStyles(),this._length&&(this._cssClass||this._innerRailStyle===Sys.Extended.UI.MultiHandleInnerRailStyle.SlidingDoors||(this._isVertical?this._outer.style.height=this._length+"px":this._outer.style.width=this._length+"px")),this._build(),this._enforceElementPositioning(),this._initializeSlider()},dispose:function(){this._disposeHandlers(),this._disposeMultiHandleSliderTargets(),this._enableHandleAnimation&&this._handleAnimation&&this._handleAnimation.dispose(),Sys.Extended.UI.MultiHandleSliderBehavior.callBaseMethod(this,"dispose")},get_sliderInitialized:function(){return this._initialized},get_SliderInitialized:function(){return Sys.Extended.Deprecated("get_SliderInitialized()","get_sliderInitialized()"),this.get_sliderInitialized()},getValue:function(e){var t=$get(this._multiHandleSliderTargets[e].ControlID);return t.value},setValue:function(e,t){var i=$get(this._multiHandleSliderTargets[e].ControlID);i&&(this.beginUpdate(),this._setMultiHandleSliderTargetValue(i,this._getNearestStepValue(t)),this.endUpdate())},get_values:function(){for(var e=[this._handles],t=0;t<this._handles;t++){var i=this._multiHandleSliderTargets[t];e[t]=i.value}return e.join(",")},_build:function(){this._textBox=this.get_element(),this._textBox.parentNode.insertBefore(this._wrapper,this._textBox),this._wrapper.appendChild(this._outer),this._inner&&this._showInnerRail&&this._outer.appendChild(this._inner),this._textBox.style.display="none"},_calculateInnerRailOffset:function(e){var t=this._isVertical?this._inner.style.top:this._inner.style.left,i=this._isVertical?e.offsetY:e.offsetX;return i+=parseInt(t,10)},_calculateClick:function(e){var t=this._getOuterBounds(),i=this._handleData[0],n=this._getBoundsInternal(i);i=this._calculateClosestHandle(e);var a=n.width/2,s=t.width-a;e=e<a?a:e>s?s:e;var l=$get(i.multiHandleSliderTargetID);this._calculateMultiHandleSliderTargetValue(l,e,!0),$common.tryFireEvent(this.get_element(),"change")},_calculateClosestHandle:function(e){for(var t=this._handleData[0],i=[this._handles],n=this._getOuterBounds(),a=0;a<this._handles;a++){var s=this._handleData[a],l=this._getBoundsInternal(s),r=this._isVertical?s.offsetTop:l.x-n.x;i[a]=Math.abs(r-e)}var h=i[0];for(a=0;a<this._handles;a++){var d=i[a];d<h&&(s=this._handleData[a],h=d,t=s)}if(this._innerDrag){var o=Array.indexOf(this._handleData,t),_=Sys.UI.DomElement.getLocation(t),u=this._isVertical?_.y:_.x-n.x;if(u>=e+i[o]){var g=this._handleData[o-1];g&&(t=g)}}return t},_calculateMultiHandleSliderTargetValue:function(e,t,i){var n,a,s=this._minimum,l=this._maximum;if(this._handleUnderDrag&&!e&&(h=this._handleUnderDrag,e=$get(this._handleUnderDrag.multiHandleSliderTargetID),this._innerDrag)){var r=Array.indexOf(this._handleData,h);n=this._handleData[r+1],n||(n=this._handleData[r-1]),a=$get(n.multiHandleSliderTargetID)}var h=e.Handle,d=e.value;if(d&&!i){if("number"!=typeof d)try{d=parseFloat(d)}catch(e){d=Number.NaN}isNaN(d)&&(d=this._minimum),val=Math.max(Math.min(d,l),s)}else{var o=this._getBoundsInternal(h),_=this._getOuterBounds(),u=t?t-o.width/2:o.x-_.x,g=_.width-o.width,c=u/g;val=Math.max(Math.min(d,l),s),val=0===u?s:u===_.width-o.width?l:s+c*(l-s)}this._steps>0&&(val=this._getNearestStepValue(val)),val=Math.max(Math.min(val,l),s);for(var m,v=[],D=[],f=0,p=0,H=!0,S=0;S<this._handles;S++){var y=this._multiHandleSliderTargets[S];y.ControlID.match(e.id)?H=!1:H?(v[f]=this._multiHandleSliderTargets[S],f++):(D[p]=this._multiHandleSliderTargets[S],p++)}if(f>0){var I=parseFloat($get(v[f-1].ControlID).value);val=Math.max(val,I),m=val===I}if(p>0){var C=parseFloat($get(D[0].ControlID).value);val=Math.min(val,C),m=val===C}if(n){var M=val-parseFloat(d),x=parseFloat(a.value),w=x+M,U=Array.indexOf(this._handleData,n)+1;if(U<this._multiHandleSliderTargets.length)var b=this._multiHandleSliderTargets[U].ControlID;if(b)var E=$get(b);if(E)var T=E.value;w>(T||l)&&(w=x,val=d,m=!0)}return m||Math.max(val,l)!==l||Math.min(val,s)!==s?(this.beginUpdate(),1===this._handles?this._setMultiHandleSliderTargetValue(e,val):(e.value=val,h.Value=val,this._setHandlePosition(h,!0)),n&&(a.value=w,n.Value=w,this._setHandlePosition(n,!0)),this.endUpdate()):(this.beginUpdate(),val=Math.max(Math.min(val,l),s),this._setMultiHandleSliderTargetValue(e,val),n&&this._setMultiHandleSliderTargetValue(a,w),this.endUpdate()),val},_cancelDrag:function(){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending===this&&(Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=null,this._selectStartPending&&$removeHandler(document,"selectstart",this._selectStartHandler))},_createHandles:function(){for(var e=0;e<this._handles;e++){var t=this.get_id()+"_handle_"+e,i=this._isVertical,n="",a="",s="";if(1===this._handles&&this._handleImageUrl)var l="<img id='"+this.get_id()+"_handleImage' src='"+this._handleImageUrl+"' alt='' />";var r="<a id='"+t+"' ",h=l?l:"",d="><div>"+h+"</div></a>";this._outer.innerHTML+=r+d}for(this._handleData=[this._handles],e=0;e<this._handles;e++){var o=this._cssClass?this._cssClass:"ajax__multi_slider_default",_=this._multiHandleSliderTargets[e].HandleCssClass;if(_||this._cssClass){n=_?_+" ":this._cssClass+" ",a=n,s=n;var u=_,g=_;n=_?n+_:n+this._isVertical?"handle_vertical":"handle_horizontal",a=g?a+g:a+this._isVertical?"handle_vertical_hover":"handle_horizontal_hover",s=u?s+u:s+this._isVertical?"handle_vertical_down":"handle_horizontal_down"}if(this._handleCallbacks={mouseover:Function.createCallback(this._onShowHover,{vertical:i,custom:a}),mouseout:Function.createCallback(this._onHideHover,{vertical:i,custom:n}),mousedown:Function.createCallback(this._onShowDrag,{vertical:i,custom:s}),mouseup:Function.createCallback(this._onHideDrag,{vertical:i,custom:n})},this._handleData[e]=this._outer.childNodes[e],this._handleData[e].style.overflow="hidden",$addHandlers(this._handleData[e],this._handleCallbacks),_=this._multiHandleSliderTargets[e].HandleCssClass,_?(Sys.UI.DomElement.addCssClass(this._handleData[e],o),Sys.UI.DomElement.addCssClass(this._handleData[e],_)):this._handleData[e].className=this._isVertical?"handle_vertical":"handle_horizontal",this._multiHandleSliderTargets){var c=this._multiHandleSliderTargets[e].ControlID;this._handleData[e].multiHandleSliderTargetID=c}if(this._handleData[e].style.left="0px",this._handleData[e].style.top="0px",this._steps<1){if(this._enableHandleAnimation){var m=new Sys.Extended.UI.Animation.LengthAnimation(this._handleData[e],this._handleAnimationDuration,100,"style");m.add_ended(Function.createDelegate(this,this._onAnimationEnded)),m.add_step(Function.createDelegate(this,this._onAnimationStep)),this._handleData[e].Animation=m}}else this._enableHandleAnimation=!1}},_createInnerRail:function(){this._handles>1&&this._showInnerRail&&(this._inner=document.createElement("DIV"),this._inner.id=this.get_id()+"_inner",this._inner.style.outline="none",this._inner.tabIndex=-1)},_createOuterRail:function(){this._outer=document.createElement("DIV"),this._outer.id=this.get_id()+"_outer",this._outer.style.outline="none",this._outer.tabIndex=-1},_createWrapper:function(){this._wrapper=document.createElement("DIV"),this._wrapper.style.position="relative",this._wrapper.style.outline="none"},_disposeHandlers:function(){if(!this._isReadOnly){$removeHandler(document,"mouseup",this._mouseUpHandler),$removeHandler(document,"mouseout",this._mouseOutHandler),this._outer&&(this._outer.addEventListener?this._outer.removeEventListener("DOMMouseScroll",this._mouseWheelHandler,!1):this._outer.detachEvent("onmousewheel",this._mouseWheelHandler),$common.removeHandlers(this._outer,this._outerDelegates));for(var e=0;e<this._handles;e++)this._handleDelegates&&$common.removeHandlers(this._handleData[e],this._handleDelegates),this._handleCallbacks&&$clearHandlers(this._handleData[e]);this._handleDelegates=null,this._handleCallbacks=null,this._inner&&this._showInnerRail&&this._innerDelegates&&$common.removeHandlers(this._inner,this._innerDelegates),this._selectStartHandler=null,this._mouseUpHandler=null,this._mouseOutHandler=null,this._mouseWheelHandler=null,this._mouseOverHandler=null,this._keyDownHandler=null}},_disposeMultiHandleSliderTargets:function(){if(this._multiHandleSliderTargets)for(var e=0;e<this._handles;e++){var t=this._multiHandleSliderTargets[e],i=t&&"INPUT"===t.nodeName;i&&($removeHandler(t,"change",t.ChangeHandler),$removeHandler(t,"keypress",t.KeyPressHandler),t.ChangeHandler=null,t.KeyPressHandler=null)}},_ensureBinding:function(e){if(e){var t=e.value;if(t>=this._minimum||t<=this._maximum){var i=e&&"INPUT"===e.nodeName;i?e.value=t:e&&(e.innerHTML=t)}}},_enforceElementPositioning:function(){var e={position:this.get_element().style.position,top:this.get_element().style.top,right:this.get_element().style.right,bottom:this.get_element().style.bottom,left:this.get_element().style.left};""!==e.position&&(this._wrapper.style.position=e.position),""!==e.top&&(this._wrapper.style.top=e.top),""!==e.right&&(this._wrapper.style.right=e.right),""!==e.bottom&&(this._wrapper.style.bottom=e.bottom),""!==e.left&&(this._wrapper.style.left=e.left)},_getNearestStepValue:function(e){if(0===this._steps)return e;var t=this._maximum-this._minimum;if(0===t)return e;if(this._steps-1===0)return e;var i=t/(this._steps-1);return Math.round(e/i)*i},_getStepValues:function(){var e=[this._steps],t=this._maximum-this._minimum,i=t/(this._steps-1);e[0]=this._minimum;for(var n=1;n<this._steps;n++)e[n]=this._minimum+i*n;return e},_handleSlide:function(e){var t=e?0:this._handles-1,i=e?1:0,n=e?this._handles:this._handles-1,a=this._handleData[t].multiHandleSliderTargetID;if(this._slideMultiHandleSliderTarget(a,e))for(var s=i;s<n;s++)a=this._handleData[s].multiHandleSliderTargetID,this._slideMultiHandleSliderTarget(a,e);this._initializeInnerRail()},_initializeDragHandle:function(e){var t=e.DragHandle=document.createElement("DIV");t.style.position="absolute",t.style.width="1px",t.style.height="1px",t.style.overflow="hidden",t.style.background="none",document.forms[0].appendChild(e.DragHandle)},_initializeHandlers:function(){if(!this._isReadOnly){this._selectStartHandler=Function.createDelegate(this,this._onSelectStart),this._mouseUpHandler=Function.createDelegate(this,this._onMouseUp),this._mouseOutHandler=Function.createDelegate(this,this._onMouseOut),this._mouseWheelHandler=Function.createDelegate(this,this._onMouseWheel),this._mouseOverHandler=Function.createDelegate(this,this._onMouseOver),this._keyDownHandler=Function.createDelegate(this,this._onKeyDown),$addHandler(document,"mouseup",this._mouseUpHandler),$addHandler(document,"mouseout",this._mouseOutHandler),this._handleDelegates={mousedown:Function.createDelegate(this,this._onMouseDown),dragstart:Function.createDelegate(this,this._IEDragDropHandler),drag:Function.createDelegate(this,this._IEDragDropHandler),dragEnd:Function.createDelegate(this,this._IEDragDropHandler)};for(var e=0;e<this._handles;e++)$addHandlers(this._handleData[e],this._handleDelegates);this._outer&&(this._enableMouseWheel&&(this._outer.addEventListener?this._outer.addEventListener("DOMMouseScroll",this._mouseWheelHandler,!1):this._outer.attachEvent("onmousewheel",this._mouseWheelHandler)),this._outerDelegates={click:Function.createDelegate(this,this._onOuterRailClick),mouseover:Function.createDelegate(this,this._mouseOverHandler),keydown:Function.createDelegate(this,this._keyDownHandler)},$addHandlers(this._outer,this._outerDelegates)),this._inner&&this._showInnerRail&&(this._innerDelegates={click:Function.createDelegate(this,this._onInnerRailClick),mousedown:Function.createDelegate(this,this._onMouseDownInner),mouseup:Function.createDelegate(this,this._onMouseUpInner),mouseout:Function.createDelegate(this,this._onMouseOutInner),mousemove:Function.createDelegate(this,this._onMouseMoveInner),dragStart:Function.createDelegate(this,this._IEDragDropHandler),drag:Function.createDelegate(this,this._IEDragDropHandler),dragEnd:Function.createDelegate(this,this._IEDragDropHandler)},$addHandlers(this._inner,this._innerDelegates))}},_initializeHandles:function(){var e=this.get_ClientState();if(e)var t=e.split(",",this._handles);for(var i=0;i<this._handles;i++){var n=this._handleData[i],a=this._multiHandleSliderTargets[i].Decimals;t&&(n.Value=parseFloat(t[i])),this._initializeMultiHandleSliderTarget(n.multiHandleSliderTargetID,a,n),this._initializeHandleValue(n),this._setHandlePosition(n,!0),this._initializeDragHandle(n)}},_initializeHandleValue:function(e){if(!e.Value){try{var t=$get(e.multiHandleSliderTargetID),i=t&&"INPUT"===t.nodeName,n=parseFloat(i?t.value:t.innerHTML)}catch(e){n=Number.NaN}isNaN(n)?(e.Value=this._minimum,i?t.value=e.Value:t.innerHTML=e.Value):e.Value=n}},_initializeInnerRail:function(){if(this._inner&&this._showInnerRail){var e=0,t=this._handles-1,i=this._handleData[e],n=this._handles>1?this._handleData[t]:null;if(n){var a=parseInt(this._getBoundsInternal(i).width,10),s=parseInt(this._isVertical?i.style.top:i.style.left,10),l=parseInt(this._isVertical?n.style.top:n.style.left,10),r=parseInt(this._multiHandleSliderTargets[e].Offset,10),h=parseInt(this._multiHandleSliderTargets[t].Offset,10);s+=r,l+=h,this._isVertical?(this._inner.style.top=s+"px",this._inner.style.height=l+a-s+"px"):(this._inner.style.left=s+"px",this._inner.style.width=l+a-s+"px"),this._innerRailStyle===Sys.Extended.UI.MultiHandleInnerRailStyle.SlidingDoors&&(this._inner.style.backgroundPosition=this._isVertical?"0 -"+s+"px":"-"+s+"px 0")}}},_initializeMultiHandleSliderTarget:function(e,t,i){if(e){var n=$get(e);i.Value&&(n.value=i.Value),n.Handle=i,n.Decimals=t,n.OldValue=n.value,n.onchange="setValue(this, "+n.value+")",n.Decimals||(n.Decimals=0);var a=n&&"INPUT"===n.nodeName;a&&(n.KeyPressHandler=Function.createDelegate(this,this._onMultiHandleSliderTargetKeyPressed),n.ChangeHandler=Function.createDelegate(this,this._onMultiHandleSliderTargetChange),$addHandler(n,"keypress",n.KeyPressHandler),$addHandler(n,"change",n.ChangeHandler))}},_initializeSlider:function(){Sys.Extended.UI.DragDrop.registerDropTarget(this),this._initializeHandles(),this._initializeHandlers(),this._initializeInnerRail(),this._initialized=!0,this._raiseEvent("load")},_resetDragHandle:function(e){var t=$common.getBounds(e);$common.setLocation(e.DragHandle,{x:t.x,y:t.y})},_resolveNamingContainer:function(){if(this._isServerControl&&this._multiHandleSliderTargets&&!this._boundControlID)for(var e=this._clientStateFieldID.lastIndexOf(this._id),t=this._clientStateFieldID.substring(0,e),i=0;i<this._handles;i++)this._multiHandleSliderTargets[i].ControlID=t+this._multiHandleSliderTargets[i].ControlID},_saveState:function(){for(var e=[this._handles],t=0;t<this._handles;t++)e[t]=$get(this._multiHandleSliderTargets[t].ControlID).value;this.set_ClientState(e.join(","))},_setHandlePosition:function(e,t){var i=this._minimum,n=this._maximum,a=e.Value,s=this._enableHandleAnimation&&this._animationPending&&t,l=this._getBoundsInternal(e),r=this._getOuterBounds();if(l.width<=0&&r.width<=0&&(l.width=parseInt($common.getCurrentStyle(e,"width"),10),r.width=parseInt($common.getCurrentStyle(this._outer,"width"),10),l.width<=0||r.width<=0))throw Error.argument("width",Sys.Extended.UI.Resources.MultiHandleSlider_CssHeightWidthRequired);var h=n-i,d=(a-i)/h,o=Math.round(d*(r.width-l.width)),_=a===i?0:a===n?r.width-l.width:o;s?(e.Animation.set_startValue(l.x-r.x),e.Animation.set_endValue(_),e.Animation.set_propertyKey(this._isVertical?"top":"left"),e.Animation.play(),this._animationPending=!1):(o=_+"px",this._isVertical?e.style.top=o:e.style.left=o)},_setRailStyles:function(){if(!this._inner&&this._railCssClass)return void(this._outer.className=this._railCssClass);var e=this._cssClass?this._cssClass:"ajax__multi_slider_default";if(Sys.UI.DomElement.addCssClass(this.get_element(),e),Sys.UI.DomElement.addCssClass(this._outer,e),Sys.UI.DomElement.addCssClass(this._wrapper,e),this._inner){Sys.UI.DomElement.addCssClass(this._inner,e);var t=this._isVertical?"outer_rail_vertical":"outer_rail_horizontal",i=this._isVertical?"inner_rail_vertical":"inner_rail_horizontal";Sys.UI.DomElement.addCssClass(this._outer,t),Sys.UI.DomElement.addCssClass(this._inner,i)}else t=this._isVertical?"inner_rail_vertical":"inner_rail_horizontal",Sys.UI.DomElement.addCssClass(this._outer,t)},_setMultiHandleSliderTargetValue:function(e,t){var i=e.OldValue,n=t;if(i===n&&this._isReadOnly)e.value=i;else{if(this.get_isUpdating()||(n=this._calculateMultiHandleSliderTargetValue(e)),e.value=n.toFixed(e.Decimals),this._ensureBinding(e),!Number.isInstanceOfType(e.value))try{e.value=parseFloat(e.value)}catch(t){e.value=Number.NaN}if(this._tooltipText){var a=e.Handle;a.alt=a.title=String.format(this._tooltipText,e.value)}this._initialized&&(e.Handle.Value=n,this._setHandlePosition(e.Handle,!0),1===this._handles&&(this.get_element().value=n),e.value!==i&&(e.OldValue=e.value,this._initializeInnerRail(),this._innerDrag&&(this._blockInnerClick=!0),this._raiseEvent("valueChanged"),this.get_isUpdating()&&(this._raiseChangeOnlyOnMouseUp||$common.tryFireEvent(this.get_element(),"change"))))}this._saveState()},_setValueFromMultiHandleSliderTarget:function(e){this.beginUpdate(),e&&(this._isReadOnly?this._setMultiHandleSliderTargetValue(e,e.OldValue):(1===this._handles&&this._steps>0&&this._setMultiHandleSliderTargetValue(e,e.value),this._calculateMultiHandleSliderTargetValue(e))),this.endUpdate()},_slideMultiHandleSliderTarget:function(e,t){var i,n,a=$get(e),s=a.value;if(this._steps>0){var l=this._getStepValues(),r=this._getNearestStepValue(s);if(i=r,t){for(n=this._steps-1;n>-1;n--)if(l[n]<r){i=l[n];break}}else for(n=0;n<this._steps;n++)if(l[n]>r){i=l[n];break}}else{var h=parseFloat(a.value);i=t?h-parseFloat(this._increment):h+parseFloat(this._increment)}return a.value=i,this._setValueFromMultiHandleSliderTarget(a),a.value==i},_startDragDrop:function(e){this._resetDragHandle(e),this._handleUnderDrag=e,Sys.Extended.UI.DragDrop.startDragDrop(this,e.DragHandle,null)},_onAnimationEnded:function(){this._initializeInnerRail()},_onAnimationStep:function(){this._initializeInnerRail()},_onHideDrag:function(e,t){this.className=t.custom&&t.custom.length>0?t.custom:t.vertical?"handle_vertical":"handle_horizontal"},_onHideHover:function(e,t){this.className=t.custom&&t.custom.length>0?t.custom:t.vertical?"ajax__multi_slider_default handle_vertical":"ajax__multi_slider_default handle_horizontal"},_onInnerRailClick:function(e){if(this._enableRailClick){var t=e.target;t!==this._inner||this._blockInnerClick?this._blockInnerClick=!1:(this._animationPending=!0,this._onInnerRailClicked(e))}},_onInnerRailClicked:function(e){var t=this._calculateInnerRailOffset(e);this._calculateClick(t)},_onKeyDown:function(e){if(this._enableKeyboard){var t=new Sys.UI.DomEvent(e),i=!1;switch(t.keyCode||t.rawEvent.keyCode){case Sys.UI.Key.up:case Sys.UI.Key.left:return i||(this._handleSlide(!0),t.preventDefault(),i=!0),!1;case Sys.UI.Key.down:case Sys.UI.Key.right:return i||(this._handleSlide(!1),t.preventDefault(),i=!0),!1;default:return!1}}},_onMouseOver:function(e){this._outer.focus()},_onMouseWheel:function(e){var t=0;return e.wheelDelta?(t=e.wheelDelta/120,Sys.Browser.agent===Sys.Browser.Opera&&(t=-t)):e.detail&&(t=-e.detail/3),t&&this._handleSlide(t<=0),e.preventDefault&&e.preventDefault(),!1},_onMouseUp:function(e){window._event=e,e.preventDefault(),this._cancelDrag()},_onMouseOut:function(e){window._event=e,e.preventDefault(),this._outer.blur(),this._handleUnderDrag&&this._cancelDrag()},_onMouseOutInner:function(e){window._event=e,e.preventDefault(),this._inner.blur(),this._innerDrag&&this._cancelDrag()},_onMouseDown:function(e){if(window._event=e,e.preventDefault(),!Sys.Extended.UI.MultiHandleSliderBehavior.DropPending){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=this,$addHandler(document,"selectstart",this._selectStartHandler),this._selectStartPending=!0;var t=e.target;this._startDragDrop(t)}},_onMouseDownInner:function(e){window._event=e,e.preventDefault(),this._enableInnerRangeDrag&&(this._innerDragFlag||(this._innerDragFlag=!0))},_onMouseUpInner:function(e){this._enableInnerRangeDrag&&(this._innerDragFlag=!1)},_onMouseMoveInner:function(e){if(window._event=e,e.preventDefault(),this._enableInnerRangeDrag&&!this._innerDrag&&this._innerDragFlag&&(this._innerDragFlag=!1,!Sys.Extended.UI.MultiHandleSliderBehavior.DropPending)){Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=this,$addHandler(document,"selectstart",this._selectStartHandler),this._selectStartPending=!0,this._innerDrag=!0;var t=this._calculateInnerRailOffset(e),i=this._calculateClosestHandle(t);this._startDragDrop(i)}},_onMultiHandleSliderTargetChange:function(e){this._animationPending=!0;var t=e.target;this._setValueFromMultiHandleSliderTarget(t),this._initializeInnerRail(),e.preventDefault()},_onMultiHandleSliderTargetKeyPressed:function(e){var t=new Sys.UI.DomEvent(e);if(13===t.charCode){this._animationPending=!0;var i=t.target;this._setValueFromMultiHandleSliderTarget(i),this._initializeInnerRail(),t.preventDefault()}},_onOuterRailClick:function(e){if(this._enableRailClick){var t=e.target;t===this._outer&&(this._animationPending=!0,this._onOuterRailClicked(e))}},_onOuterRailClicked:function(e){var t=this._isVertical?e.offsetY:e.offsetX;this._calculateClick(t)},_onShowDrag:function(e,t){this.className=t.custom&&t.custom.length>0?t.custom:t.vertical?"ajax__multi_slider_default handle_vertical_down":"ajax__multi_slider_default handle_horizontal_down"},_onShowHover:function(e,t){this.className=t.custom&&t.custom.length>0?t.custom:t.vertical?"ajax__multi_slider_default handle_vertical_hover":"ajax__multi_slider_default handle_horizontal_hover"},get_dragDataType:function(){return"HTML"},getDragData:function(){return this._handleUnderDrag},get_dragMode:function(){return Sys.Extended.UI.DragMode.Move},onDragStart:function(){this._resetDragHandle(this._handleUnderDrag),this._raiseEvent("dragStart")},onDrag:function(){var e,t=this._getBoundsInternal(this._handleUnderDrag.DragHandle),i=(this._getBoundsInternal(this._handleUnderDrag),this._getOuterBounds());e=this._isVertical?{y:t.x-i.x,x:0}:{x:t.x-i.x,y:0},$common.setLocation(this._handleUnderDrag,e),this._calculateMultiHandleSliderTargetValue(null,null,!0),this._steps>1&&this._setHandlePosition(this._handleUnderDrag,!1),this._raiseEvent("drag")},onDragEnd:function(){this._initializeInnerRail(),this._raiseChangeOnlyOnMouseUp&&$common.tryFireEvent(this.get_element(),"change"),this._innerDrag=!1,this._handleUnderDrag=null,this._raiseEvent("dragEnd")},get_dropTargetElement:function(){return document.forms[0]},canDrop:function(e,t){return"HTML"==t},drop:Function.emptyMethod,onDragEnterTarget:Function.emptyMethod,onDragLeaveTarget:Function.emptyMethod,onDragInTarget:Function.emptyMethod,_IEDragDropHandler:function(e){e.preventDefault()},_onSelectStart:function(e){return e.preventDefault(),!1},_getOuterBounds:function(){return this._getBoundsInternal(this._outer)},_getInnerBounds:function(){return this._getBoundsInternal(this._inner)},_getBoundsInternal:function(e){var t=$common.getBounds(e);return t=this._isVertical?{x:t.y,y:t.x,height:t.width,width:t.height,right:t.right,left:t.left,bottom:t.bottom,location:{x:t.y,y:t.x},size:{width:t.height,height:t.width}}:{x:t.x,y:t.y,height:t.height,width:t.width,right:t.right,left:t.left,bottom:t.bottom,location:{x:t.x,y:t.y},size:{width:t.width,height:t.height}}},_raiseEvent:function(e,t){var i=this.get_events().getHandler(e);i&&(t||(t=Sys.EventArgs.Empty),i(this,t))},get_value:function(){var e=$get(this._boundControlID);return e.value?e.value:0},set_value:function(e){var t=$get(this._multiHandleSliderTargets[0].ControlID);this.beginUpdate(),this._setMultiHandleSliderTargetValue(t,this._getNearestStepValue(e)),this.endUpdate(),$common.tryFireEvent(t,"change")},get_Value:function(){return Sys.Extended.Deprecated("get_Value()","get_value()"),this.get_value()},set_Value:function(e){Sys.Extended.Deprecated("set_Value(value)","set_value(value)"),this.set_value(e)},get_minimum:function(){return this._minimum},set_minimum:function(e){e!==this._minimum&&(this._minimum=e,this.raisePropertyChanged("minimum"))},get_maximum:function(){return this._maximum},set_maximum:function(e){e!==this._maximum&&(this._maximum=e,this.raisePropertyChanged("maximum"))},get_length:function(){return this._length},set_length:function(e){e!==this._length&&(this._length=e,this.raisePropertyChanged("length"))},get_steps:function(){return this._steps},set_steps:function(e){var t=this._steps;this._steps=Math.abs(e),this._steps=1===this._steps?2:this._steps,t!==this._steps&&this.raisePropertyChanged("steps")},get_orientation:function(){return this._isVertical},set_orientation:function(e){e!==this._isVertical&&(this._orientation=e,this.raisePropertyChanged("orientation"))},get_enableHandleAnimation:function(){return this._enableHandleAnimation},set_enableHandleAnimation:function(e){e!==this._enableHandleAnimation&&(this._enableHandleAnimation=e,this.raisePropertyChanged("enableHandleAnimation"))},get_handleAnimationDuration:function(){return this._handleAnimationDuration},set_handleAnimationDuration:function(e){e!==this._handleAnimationDuration&&(this._handleAnimationDuration=e,this.raisePropertyChanged("handleAnimationDuration"))},get_raiseChangeOnlyOnMouseUp:function(){return this._raiseChangeOnlyOnMouseUp},set_raiseChangeOnlyOnMouseUp:function(e){e!==this._raiseChangeOnlyOnMouseUp&&(this._raiseChangeOnlyOnMouseUp=e,this.raisePropertyChanged("raiseChangeOnlyOnMouseUp"))},get_showInnerRail:function(){return this._showInnerRail},set_showInnerRail:function(e){e!==this._showInnerRail&&(this._showInnerRail=e,this.raisePropertyChanged("showInnerRail"))},get_showHandleHoverStyle:function(){return this._showHoverStyle},set_showHandleHoverStyle:function(e){e!==this._showHoverStyle&&(this._showHoverStyle=e,this.raisePropertyChanged("showHandleHoverStyle"))},get_showHandleDragStyle:function(){return this._showDragStyle},set_showHandleDragStyle:function(e){e!==this._showDragStyle&&(this._showDragStyle=e,this.raisePropertyChanged("showHandleDragStyle"))},get_innerRailStyle:function(){return this._innerRailStyle},set_innerRailStyle:function(e){e!==this._innerRailStyle&&(this._innerRailStyle=e,this.raisePropertyChanged("innerRailStyle"))},get_enableInnerRangeDrag:function(){return this._enableInnerRangeDrag},set_enableInnerRangeDrag:function(e){e!==this._enableInnerRangeDrag&&(this._enableInnerRangeDrag=e,this.raisePropertyChanged("enableInnerRangeDrag"))},get_enableRailClick:function(){return this._enableRailClick},set_enableRailClick:function(e){e!==this._enableRailClick&&(this._enableRailClick=e,this.raisePropertyChanged("enableRailClick"))},get_isReadOnly:function(){return this._isReadOnly},set_isReadOnly:function(e){e!==this._isReadOnly&&(this._isReadOnly=e,this.raisePropertyChanged("isReadOnly"))},get_enableKeyboard:function(){return this._enableKeyboard},set_enableKeyboard:function(e){e!==this._enableKeyboard&&(this._enableKeyboard=e,this.raisePropertyChanged("enableKeyboard"))},get_enableMouseWheel:function(){return this._enableMouseWheel},set_enableMouseWheel:function(e){e!==this._enableMouseWheel&&(this._enableMouseWheel=e,this.raisePropertyChanged("enableMouseWheel"))},get_increment:function(){return this._increment},set_increment:function(e){e!==this._increment&&(this._increment=e,this.raisePropertyChanged("increment"))},get_tooltipText:function(){return this._tooltipText},set_tooltipText:function(e){e!==this._tooltipText&&(this._tooltipText=e,this.raisePropertyChanged("tooltipText"))},get_multiHandleSliderTargets:function(){return this._multiHandleSliderTargets},set_multiHandleSliderTargets:function(e){e!==this._multiHandleSliderTargets&&(this._multiHandleSliderTargets=e,this.raisePropertyChanged("multiHandleSliderTargets"))},get_cssClass:function(){return this._cssClass},set_cssClass:function(e){e!==this._cssClass&&(this._cssClass=e,this.raisePropertyChanged("cssClass"))},get_boundControlID:function(){return this._boundControlID},set_boundControlID:function(e){this._boundControlID=e,this._boundControlID?this._boundControl=$get(this._boundControlID):this._boundControl=null},get_handleCssClass:function(){return this._handleCssClass},set_handleCssClass:function(e){this._handleCssClass=e},get_handleImageUrl:function(){return this._handleImageUrl},set_handleImageUrl:function(e){this._handleImageUrl=e},get_railCssClass:function(){
return this._railCssClass},set_railCssClass:function(e){this._railCssClass=e},get_decimals:function(){return this._decimals},set_decimals:function(e){this._decimals=e},add_load:function(e){this.get_events().addHandler("load",e)},remove_load:function(e){this.get_events().removeHandler("load",e)},add_dragStart:function(e){this.get_events().addHandler("dragStart",e)},remove_dragStart:function(e){this.get_events().removeHandler("dragStart",e)},add_drag:function(e){this.get_events().addHandler("drag",e)},remove_drag:function(e){this.get_events().removeHandler("drag",e)},add_dragEnd:function(e){this.get_events().addHandler("dragEnd",e)},remove_dragEnd:function(e){this.get_events().removeHandler("dragEnd",e)},add_valueChanged:function(e){this.get_events().addHandler("valueChanged",e)},remove_valueChanged:function(e){this.get_events().removeHandler("valueChanged",e)}},Sys.Extended.UI.MultiHandleSliderBehavior.DropPending=null,Sys.Extended.UI.MultiHandleSliderBehavior.registerClass("Sys.Extended.UI.MultiHandleSliderBehavior",Sys.Extended.UI.BehaviorBase);