Type.registerNamespace("Telerik.Web.UI.Helpers"); Type.registerNamespace("Telerik.Web.UI.Widgets"); (function(b,a){var d=function(l){(function(){var n={}; a.extend(l,{trigger:function(q){var r=n[q]; if(!r){return; }for(var s=0; s-1){s=s.splice(u,1); }n[q]=s; }})(); }; var h=".Telerik.Web.UI.Draggable",e="mousedown"+h,g="mouseup"+h,f="mousemove"+h,k=$telerik.getMobileEventCounterpart("mousedown")+h,i=$telerik.getMobileEventCounterpart("mouseup")+h,j=$telerik.getMobileEventCounterpart("mousemove")+h,c="dragstart"+h; b.Widgets.Draggable=function(l,m){this._element=l; this._options=a.extend({useTransformations:false,shouldPreventDefault:true,enableFrameOverlay:false,enableDelay:false,validateNestedElementsAsTriggers:false,mouseButtonTrigger:b.Widgets.MouseButton.Left,touchHoldDelay:m&&m.touchHoldDelay?Math.min(1000,m.touchHoldDelay):1000,touchHoldDelta:m&&m.touchHoldDelta?Math.min(20,m.touchHoldDelta):20,customScrollingEvaluator:null,useExternalHandle:m&&m.handle,cursorType:"move",handle:l,ownerDocument:document,constraints:{minX:null,minY:null,maxX:null,maxY:null}},m||{}); this._ieTouchActionManager=new b.Helpers.IETouchActionManager(this._options.handle); this._isScrolling=false; d(this); this.initialize(); }; b.Widgets.Draggable.prototype={initialize:function(l,m){this._initStyleVars(true); this._checkTransformationAvailability(); this._ieTouchActionManager.allowUserTouch(); this._toggleHandleCursor(); this._attachHandlers(true); this._enabled=true; },dispose:function(){this._ieTouchActionManager.dispose(); this._attachHandlers(false); this._initStyleVars(false); this._disposeEvents(); this._toggleHandleCursor(); this._options=null; this._element=null; },get_handle:function(){return this._options.handle; },set_handle:function(l){this._options.handle=l; },get_useExternalHandle:function(){return this._options.useExternalHandle; },get_position:function(){var l=a(this._element).offset(); return{x:l.left,y:l.top}; },get_handlePosition:function(){var l=a(this._options.handle); return{x:l.offset().left,y:l.offset().top}; },get_useTransform:function(){return this._options.useTransformations; },set_useTransform:function(l){if(l){this._checkTransformationAvailability(); if(l&&!this._options.useTransformations){alert("The browser does not support CSS3 transformations"); }}else{this._options.useTransformations=false; }},get_constraints:function(){return this._options.constraints; },set_constraints:function(l){if(l){if((l.minX&&l.maxX&&l.minX>l.maxX)||(l.minY&&l.maxY&&l.minY>l.maxY)){throw Error("Invalid Parameters"); }}a.extend(this._options.constraints,l||{maxX:null,minX:null,maxY:null,minY:null}); },get_minX:function(){this._options.constraints.minX; },set_minX:function(m){var l=this._options.constraints; if((isNaN(m)&&m!==null&&m!=="")||(l.maxX&&m!==null&&l.maxXm)){throw Error("Invalid Parameters"); }l.maxX=m; },get_minY:function(){this._options.constraints.minY; },set_minY:function(m){var l=this._options.constraints; if((isNaN(m)&&m!==null&&m!=="")||(l.maxY&&m!==null&&l.maxYm)){throw Error("Invalid Parameters"); }l.maxY=m; },get_enabled:function(){return this._enabled; },set_enabled:function(l){this._enabled=l; },moveTo:function(l){this._moveWithDelta(l); },add_dragStarting:function(l){this._bind({dragStarting:l}); },remove_dragStarting:function(l){this._unbind({dragStarting:l}); },add_dragStart:function(l){this._bind({dragStart:l}); },remove_dragStart:function(l){this._unbind({dragStart:l}); },add_dragging:function(l){this._bind({dragging:l}); },remove_dragging:function(l){this._unbind({dragging:l}); },add_dragEnd:function(l){this._bind({dragEnd:l}); },remove_dragEnd:function(l){this._unbind({dragEnd:l}); },_initStyleVars:function(l){this._elStyle=l?this._element.style:null; this._transfPropName=l?this._getBrowserPrefix(true)+"Transform":null; this._transfStyleProp=l?this._getBrowserPrefix(false)+"transform":null; },_checkTransformationAvailability:function(){var l=this._options.ownerDocument.body.style; this._options.useTransformations=(l.transform!==undefined||l[this._transfPropName]!==undefined); },_getBrowserPrefix:function(m){var l=""; if($telerik.isOpera){l="O"; }else{if($telerik.isSafari){l="webkit"; }else{if($telerik.isIE){l="ms"; }else{if($telerik.isFirefox){l="Moz"; }}}}if(!m){l="-"+l.toLowerCase()+"-"; }return l; },_getBounds:function(){return $telerik.getBounds(this._element); },_attachHandlers:function(m){var l=a(this._options.handle); if(m){this._mouseDownHandlerProxy=a.proxy(this._mouseDownHandler,this); l.on(e,this._mouseDownHandlerProxy); l.on(k,this._mouseDownHandlerProxy); l.on(c,this._dragStartHandle); }else{l.off(e,this._mouseDownHandlerProxy); l.off(k,this._mouseDownHandlerProxy); l.off(c,this._dragStartHandle); a(this._options.ownerDocument).off(f,this._mouseMoveHandlerProxy); a(this._options.ownerDocument).off(i,this._mouseUpHandler); a(this._options.ownerDocument).off(g,this._mouseUpHandler); a(this._options.ownerDocument).off(j,this._touchMoveHandlerProxy); }},_dragStartHandle:function(l){$telerik.cancelRawEvent(l.originalEvent); },_mouseDownHandler:function(m){if(!this._enabled){return; }if(this._options.shouldPreventDefault){m.preventDefault(); }if(this._isTouchEvent(m)){a(this._options.handle).off(e,this._mouseDownHandlerProxy); }if((!this._isTouchEvent(m)&&!this._validateButtonTrigger(m))||(this._options.validateNestedElementsAsTriggers&&!this._validateTargetElemCursor(m))){return; }var n=this._getEventLocation(m); this.startCoords=this.deltaHelper={x:n.x,y:n.y}; this.startPosition=this.initialPosition=this.get_position(); var l=new b.Widgets.DraggableEventArgs(this.initialPosition,null,m); this.trigger("dragStarting",l); if(!l._cancel){this._mouseMoveHandlerProxy=a.proxy(this._mouseMoveHandler,this); a(this._options.ownerDocument).on(f,this._mouseMoveHandlerProxy); a(this._options.ownerDocument).one(this._isTouchEvent(m)?i:g,a.proxy(this._mouseUpHandler,this)); if(this._isTouchEvent(m)&&this._options.enableDelay){this._touchHoldSimulator(m); }else{this._triggerDragStart(m,this); }if(this._options.enableFrameOverlay){this._showOverlay(); }}this._cancelDragSelection(m); },_validateTargetElemCursor:function(l){return $telerik.getComputedStyle(l.target||l.srcElement,"cursor")==this._options.cursorType; },_validateButtonTrigger:function(l){return((this._options.mouseButtonTrigger&this._eventButtonToMouseButton(l.button))!=0); },_cancelDragSelection:function(l){if(!this._isTouchEvent(l)){$telerik.cancelRawEvent(l); }},_touchHoldSimulator:function(l){this._touchMoveHandlerProxy=a.proxy(this._touchMoveHandler,this); a(this._options.ownerDocument).on(j,this._touchMoveHandlerProxy); var m=this; this.touchHoldTimeout=window.setTimeout(function(){if(!m._isScrolling){m._triggerDragStart(l); }},this._options.touchHoldDelay); },_touchMoveHandler:function(m){var n=this._getEventLocation(m); var l={x:this.startCoords.x-n.x,y:this.startCoords.y-n.y}; if(this._options.customScrollingEvaluator){this._isScrolling=this._options.customScrollingEvaluator(this,m); }else{this._isScrolling=Math.abs(l.x)>this._options.touchHoldDelta||Math.abs(l.y)>this._options.touchHoldDelta; }},_triggerDragStart:function(m){this._clearTouchHoldTimeout(); var l=new b.Widgets.DraggableEventArgs(this.initialPosition,null,m.originalEvent); this.trigger("dragStart",l); if(!l._cancel){if(this._isTouchEvent(m)){a(this._options.ownerDocument).off(j,this._touchMoveHandlerProxy); }this._mouseMoveHandlerProxy=a.proxy(this._mouseMoveHandler,this); a(this._options.ownerDocument).on(this._isTouchEvent(m)?j:f,this._mouseMoveHandlerProxy); }},_clearTouchHoldTimeout:function(){window.clearTimeout(this.touchHoldTimeout); },_mouseUpHandler:function(m){this._isScrolling=false; this._clearTouchHoldTimeout(); if(this._options.useTransformations){this._applyTransformation(); }a(this._options.ownerDocument).off(f,this._mouseMoveHandlerProxy); a(this._options.ownerDocument).off(j,this._mouseMoveHandlerProxy); a(this._options.ownerDocument).off(this._isTouchEvent(m)?j:f,this._touchMoveHandler); if(this._isTouchEvent(m)){this.eventTimer=window.setTimeout(a.proxy(this._reatachMouseDownHandlers,this),500); }if(this._options.enableFrameOverlay){this._hideOverlay(); }var l=new b.Widgets.DraggableEventArgs(this.startPosition,{x:this.get_position().x-this.startPosition.x,y:this.get_position().y-this.startPosition.y},m.originalEvent); this.trigger("dragEnd",l); },_reatachMouseDownHandlers:function(){var l=a(this._options.handle); l.off(e,this._mouseDownHandlerProxy); l.on(e,this._mouseDownHandlerProxy); },_mouseMoveHandler:function(l){this._drag(l); this._cancelDragSelection(l); },_drag:function(o){var p=this._getEventLocation(o),m=this._options.constraints,n=this._calcConstraints({x:p.x-this.startCoords.x,y:p.y-this.startCoords.y},this.startPosition,m),l=new b.Widgets.DraggableEventArgs(this.startPosition,n,o.originalEvent); if(!this._options.useTransformations){this.initialPosition=this.get_position(); this.deltaHelper={x:p.x-this.deltaHelper.x,y:p.y-this.deltaHelper.y}; this.deltaHelper=this._calcConstraintsClassic(this.deltaHelper,this.initialPosition,p,this._options.constraints); }else{this.deltaHelper=n; }this.trigger("dragging",l); if(l._cancel==true){return; }if(this._options.useTransformations){this._dragTransform(this.deltaHelper); }else{this._dragClassic(this.deltaHelper); }this.deltaHelper={x:p.x,y:p.y}; if(this._options.enableFrameOverlay){this._resizeOverlay(); }},_dragTransform:function(l){if(a(this._element).hasClass("rdwDoNotTransfrom")){return; }this._clearDragTranslation(); this._elStyle[this._transfPropName]+=" translate("+l.x+"px, "+l.y+"px)"; a(this._element).addClass("rdwTransformed"); },_dragClassic:function(l){if(a(this._element).hasClass("rdwDoNotTransfrom")){return; }this._moveWithDelta(l); },_applyTransformation:function(){var p=this._elStyle[this._transfPropName]; var r="translate("; var o=r.length; var n=p.substr(p.lastIndexOf(r)); var q=n.substr(o,n.indexOf(")")-o); var m=q.split(","); var l={x:parseFloat(m[0]),y:parseFloat(m[1])}; this._clearDragTranslation(); this._moveWithDelta(l); },_clearDragTranslation:function(){if(!a(this._element).hasClass("rdwTransformed")){return; }var l=this._elStyle[this._transfPropName]; this._elStyle[this._transfPropName]=l.substr(0,l.lastIndexOf("translate(")); a(this._element).removeClass("rdwTransformed"); },_getEventLocation:function(l){if(this._isTouchEvent(l)){return this._getTouchEventLocation(l); }else{return{x:l.clientX,y:l.clientY}; }},_moveWithDelta:function(l){a(this._element).css({top:parseFloat(a(this._element).css("top"))+parseFloat(l.y)+"px",left:parseFloat(a(this._element).css("left"))+parseFloat(l.x)+"px"}); },_calcConstraints:function(m,n,l){var o=m; if((l.maxX!=null&&n.x+a(this._element).width()>l.maxX)||(l.minX!=null&&n.xl.maxY)||(l.minY!=null&&n.yl.maxX)||(l.minX&&o.xl.maxY)||(l.minY&&o.yl.maxX?0:m.x; }else{p.x=l.maxX&&o.x+a(this._element).width()+m.x>=l.maxX?l.maxX-o.x-a(this._element).width():l.minX&&n.xl.maxY?0:m.y; }else{p.y=l.maxY&&o.y+a(this._element).height()+m.y>=l.maxY?l.maxY-o.y-a(this._element).height():l.minY&&n.y