﻿Type.registerNamespace("AjaxControlToolkit");AjaxControlToolkit.IDragSource=function(){};AjaxControlToolkit.IDragSource.prototype={get_dragDataType:function(){throw Error.notImplemented()},getDragData:function(){throw Error.notImplemented()},get_dragMode:function(){throw Error.notImplemented()},onDragStart:function(){throw Error.notImplemented()},onDrag:function(){throw Error.notImplemented()},onDragEnd:function(){throw Error.notImplemented()}};AjaxControlToolkit.IDragSource.registerInterface("AjaxControlToolkit.IDragSource");AjaxControlToolkit.IDropTarget=function(){};AjaxControlToolkit.IDropTarget.prototype={get_dropTargetElement:function(){throw Error.notImplemented()},canDrop:function(){throw Error.notImplemented()},drop:function(){throw Error.notImplemented()},onDragEnterTarget:function(){throw Error.notImplemented()},onDragLeaveTarget:function(){throw Error.notImplemented()},onDragInTarget:function(){throw Error.notImplemented()}};AjaxControlToolkit.IDropTarget.registerInterface("AjaxControlToolkit.IDropTarget");AjaxControlToolkit.DragMode=function(){throw Error.invalidOperation()};AjaxControlToolkit.DragMode.prototype={Copy:0,Move:1};AjaxControlToolkit.DragMode.registerEnum("AjaxControlToolkit.DragMode");AjaxControlToolkit.DragDropEventArgs=function(C,A,B){this._dragMode=C;this._dataType=A;this._data=B};AjaxControlToolkit.DragDropEventArgs.prototype={get_dragMode:function(){return this._dragMode||null},get_dragDataType:function(){return this._dataType||null},get_dragData:function(){return this._data||null}};AjaxControlToolkit.DragDropEventArgs.registerClass("AjaxControlToolkit.DragDropEventArgs");AjaxControlToolkit._DragDropManager=function(){this._instance=null;this._events=null};AjaxControlToolkit._DragDropManager.prototype={add_dragStart:function(A){this.get_events().addHandler("dragStart",A)},remove_dragStart:function(A){this.get_events().removeHandler("dragStart",A)},get_events:function(){if(!this._events){this._events=new Sys.EventHandlerList()}return this._events},add_dragStop:function(A){this.get_events().addHandler("dragStop",A)},remove_dragStop:function(A){this.get_events().removeHandler("dragStop",A)},_getInstance:function(){if(!this._instance){if(Sys.Browser.agent===Sys.Browser.InternetExplorer){this._instance=new AjaxControlToolkit.IEDragDropManager()}else{this._instance=new AjaxControlToolkit.GenericDragDropManager()}this._instance.initialize();this._instance.add_dragStart(Function.createDelegate(this,this._raiseDragStart));this._instance.add_dragStop(Function.createDelegate(this,this._raiseDragStop))}return this._instance},startDragDrop:function(A,C,B){this._getInstance().startDragDrop(A,C,B)},registerDropTarget:function(A){this._getInstance().registerDropTarget(A)},unregisterDropTarget:function(A){this._getInstance().unregisterDropTarget(A)},dispose:function(){delete this._events;Sys.Application.unregisterDisposableObject(this);Sys.Application.removeComponent(this)},_raiseDragStart:function(B,A){var C=this.get_events().getHandler("dragStart");if(C){C(this,A)}},_raiseDragStop:function(B,A){var C=this.get_events().getHandler("dragStop");if(C){C(this,A)}}};AjaxControlToolkit._DragDropManager.registerClass("AjaxControlToolkit._DragDropManager");AjaxControlToolkit.DragDropManager=new AjaxControlToolkit._DragDropManager();AjaxControlToolkit.IEDragDropManager=function(){AjaxControlToolkit.IEDragDropManager.initializeBase(this);this._dropTargets=null;this._radius=10;this._activeDragVisual=null;this._activeContext=null;this._activeDragSource=null;this._underlyingTarget=null;this._oldOffset=null;this._potentialTarget=null;this._isDragging=false;this._mouseUpHandler=null;this._documentMouseMoveHandler=null;this._documentDragOverHandler=null;this._dragStartHandler=null;this._mouseMoveHandler=null;this._dragEnterHandler=null;this._dragLeaveHandler=null;this._dragOverHandler=null;this._dropHandler=null};AjaxControlToolkit.IEDragDropManager.prototype={add_dragStart:function(A){this.get_events().addHandler("dragStart",A)},remove_dragStart:function(A){this.get_events().removeHandler("dragStart",A)},add_dragStop:function(A){this.get_events().addHandler("dragStop",A)},remove_dragStop:function(A){this.get_events().removeHandler("dragStop",A)},initialize:function(){AjaxControlToolkit.IEDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this._onMouseUp);this._documentMouseMoveHandler=Function.createDelegate(this,this._onDocumentMouseMove);this._documentDragOverHandler=Function.createDelegate(this,this._onDocumentDragOver);this._dragStartHandler=Function.createDelegate(this,this._onDragStart);this._mouseMoveHandler=Function.createDelegate(this,this._onMouseMove);this._dragEnterHandler=Function.createDelegate(this,this._onDragEnter);this._dragLeaveHandler=Function.createDelegate(this,this._onDragLeave);this._dragOverHandler=Function.createDelegate(this,this._onDragOver);this._dropHandler=Function.createDelegate(this,this._onDrop)},dispose:function(){if(this._dropTargets){for(var A=0;A<this._dropTargets;A++){this.unregisterDropTarget(this._dropTargets[A])}this._dropTargets=null}AjaxControlToolkit.IEDragDropManager.callBaseMethod(this,"dispose")},startDragDrop:function(D,B,C){var H=window._event;if(this._isDragging){return }this._underlyingTarget=null;this._activeDragSource=D;this._activeDragVisual=B;this._activeContext=C;var J={x:H.clientX,y:H.clientY};B.originalPosition=B.style.position;B.style.position="absolute";document._lastPosition=J;B.startingPoint=J;var F=this.getScrollOffset(B,true);B.startingPoint=this.addPoints(B.startingPoint,F);if(B.style.position=="absolute"){B.startingPoint=this.subtractPoints(B.startingPoint,$common.getLocation(B))}else{var E=parseInt(B.style.left);var G=parseInt(B.style.top);if(isNaN(E)){E="0"}if(isNaN(G)){G="0"}B.startingPoint=this.subtractPoints(B.startingPoint,{x:E,y:G})}this._prepareForDomChanges();D.onDragStart();var A=new AjaxControlToolkit.DragDropEventArgs(D.get_dragMode(),D.get_dragDataType(),D.getDragData(C));var I=this.get_events().getHandler("dragStart");if(I){I(this,A)}this._recoverFromDomChanges();this._wireEvents();this._drag(true)},_stopDragDrop:function(C){var B=window._event;if(this._activeDragSource!=null){this._unwireEvents();if(!C){C=(this._underlyingTarget==null)}if(!C&&this._underlyingTarget!=null){this._underlyingTarget.drop(this._activeDragSource.get_dragMode(),this._activeDragSource.get_dragDataType(),this._activeDragSource.getDragData(this._activeContext))}this._activeDragSource.onDragEnd(C);var A=this.get_events().getHandler("dragStop");if(A){A(this,Sys.EventArgs.Empty)}this._activeDragVisual.style.position=this._activeDragVisual.originalPosition;this._activeDragSource=null;this._activeContext=null;this._activeDragVisual=null;this._isDragging=false;this._potentialTarget=null;B.preventDefault()}},_drag:function(D){var E=window._event;var F={x:E.clientX,y:E.clientY};document._lastPosition=F;var C=this.getScrollOffset(this._activeDragVisual,true);var A=this.addPoints(this.subtractPoints(F,this._activeDragVisual.startingPoint),C);if(!D&&parseInt(this._activeDragVisual.style.left)==A.x&&parseInt(this._activeDragVisual.style.top)==A.y){return }$common.setLocation(this._activeDragVisual,A);this._prepareForDomChanges();this._activeDragSource.onDrag();this._recoverFromDomChanges();this._potentialTarget=this._findPotentialTarget(this._activeDragSource,this._activeDragVisual);var B=(this._potentialTarget!=this._underlyingTarget||this._potentialTarget==null);if(B&&this._underlyingTarget!=null){this._leaveTarget(this._activeDragSource,this._underlyingTarget)}if(this._potentialTarget!=null){if(B){this._underlyingTarget=this._potentialTarget;this._enterTarget(this._activeDragSource,this._underlyingTarget)}else{this._moveInTarget(this._activeDragSource,this._underlyingTarget)}}else{this._underlyingTarget=null}},_wireEvents:function(){$addHandler(document,"mouseup",this._mouseUpHandler);$addHandler(document,"mousemove",this._documentMouseMoveHandler);$addHandler(document.body,"dragover",this._documentDragOverHandler);$addHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);$addHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);$addHandler(this._activeDragVisual,"drag",this._mouseMoveHandler)},_unwireEvents:function(){$removeHandler(this._activeDragVisual,"drag",this._mouseMoveHandler);$removeHandler(this._activeDragVisual,"dragend",this._mouseUpHandler);$removeHandler(this._activeDragVisual,"dragstart",this._dragStartHandler);$removeHandler(document.body,"dragover",this._documentDragOverHandler);$removeHandler(document,"mousemove",this._documentMouseMoveHandler);$removeHandler(document,"mouseup",this._mouseUpHandler)},registerDropTarget:function(A){if(this._dropTargets==null){this._dropTargets=[]}Array.add(this._dropTargets,A);this._wireDropTargetEvents(A)},unregisterDropTarget:function(A){this._unwireDropTargetEvents(A);if(this._dropTargets){Array.remove(this._dropTargets,A)}},_wireDropTargetEvents:function(B){var A=B.get_dropTargetElement();A._dropTarget=B;$addHandler(A,"dragenter",this._dragEnterHandler);$addHandler(A,"dragleave",this._dragLeaveHandler);$addHandler(A,"dragover",this._dragOverHandler);$addHandler(A,"drop",this._dropHandler)},_unwireDropTargetEvents:function(B){var A=B.get_dropTargetElement();if(A._dropTarget){A._dropTarget=null;$removeHandler(A,"dragenter",this._dragEnterHandler);$removeHandler(A,"dragleave",this._dragLeaveHandler);$removeHandler(A,"dragover",this._dragOverHandler);$removeHandler(A,"drop",this._dropHandler)}},_onDragStart:function(C){window._event=C;document.selection.empty();var B=C.dataTransfer;if(!B&&C.rawEvent){B=C.rawEvent.dataTransfer}var A=this._activeDragSource.get_dragDataType().toLowerCase();var D=this._activeDragSource.getDragData(this._activeContext);if(D){if(A!="text"&&A!="url"){A="text";if(D.innerHTML!=null){D=D.innerHTML}}B.effectAllowed="move";B.setData(A,D.toString())}},_onMouseUp:function(A){window._event=A;this._stopDragDrop(false)},_onDocumentMouseMove:function(A){window._event=A;this._dragDrop()},_onDocumentDragOver:function(A){window._event=A;if(this._potentialTarget){A.preventDefault()}},_onMouseMove:function(A){window._event=A;this._drag()},_onDragEnter:function(C){window._event=C;if(this._isDragging){C.preventDefault()}else{var A=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(C.target));for(var B=0;B<A.length;B++){this._dropTarget.onDragEnterTarget(AjaxControlToolkit.DragMode.Copy,A[B].type,A[B].value)}}},_onDragLeave:function(C){window._event=C;if(this._isDragging){C.preventDefault()}else{var A=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(C.target));for(var B=0;B<A.length;B++){this._dropTarget.onDragLeaveTarget(AjaxControlToolkit.DragMode.Copy,A[B].type,A[B].value)}}},_onDragOver:function(C){window._event=C;if(this._isDragging){C.preventDefault()}else{var A=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(C.target));for(var B=0;B<A.length;B++){this._dropTarget.onDragInTarget(AjaxControlToolkit.DragMode.Copy,A[B].type,A[B].value)}}},_onDrop:function(C){window._event=C;if(!this._isDragging){var A=AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(C.target));for(var B=0;B<A.length;B++){this._dropTarget.drop(AjaxControlToolkit.DragMode.Copy,A[B].type,A[B].value)}}C.preventDefault()},_getDropTarget:function(A){while(A){if(A._dropTarget!=null){return A._dropTarget}A=A.parentNode}return null},_dragDrop:function(){if(this._isDragging){return }this._isDragging=true;this._activeDragVisual.dragDrop();document.selection.empty()},_moveInTarget:function(A,B){this._prepareForDomChanges();B.onDragInTarget(A.get_dragMode(),A.get_dragDataType(),A.getDragData(this._activeContext));this._recoverFromDomChanges()},_enterTarget:function(A,B){this._prepareForDomChanges();B.onDragEnterTarget(A.get_dragMode(),A.get_dragDataType(),A.getDragData(this._activeContext));this._recoverFromDomChanges()},_leaveTarget:function(A,B){this._prepareForDomChanges();B.onDragLeaveTarget(A.get_dragMode(),A.get_dragDataType(),A.getDragData(this._activeContext));this._recoverFromDomChanges()},_findPotentialTarget:function(C,B){var K=window._event;if(this._dropTargets==null){return null}var I=C.get_dragDataType();var G=C.get_dragMode();var E=C.getDragData(this._activeContext);var F=this.getScrollOffset(document.body,true);var L=K.clientX+F.x;var J=K.clientY+F.y;var H={x:L-this._radius,y:J-this._radius,width:this._radius*2,height:this._radius*2};var A;for(var D=0;D<this._dropTargets.length;D++){A=$common.getBounds(this._dropTargets[D].get_dropTargetElement());if($common.overlaps(H,A)&&this._dropTargets[D].canDrop(G,I,E)){return this._dropTargets[D]}}return null},_prepareForDomChanges:function(){this._oldOffset=$common.getLocation(this._activeDragVisual)},_recoverFromDomChanges:function(){var B=$common.getLocation(this._activeDragVisual);if(this._oldOffset.x!=B.x||this._oldOffset.y!=B.y){this._activeDragVisual.startingPoint=this.subtractPoints(this._activeDragVisual.startingPoint,this.subtractPoints(this._oldOffset,B));scrollOffset=this.getScrollOffset(this._activeDragVisual,true);var A=this.addPoints(this.subtractPoints(document._lastPosition,this._activeDragVisual.startingPoint),scrollOffset);$common.setLocation(this._activeDragVisual,A)}},addPoints:function(B,A){return{x:B.x+A.x,y:B.y+A.y}},subtractPoints:function(B,A){return{x:B.x-A.x,y:B.y-A.y}},getScrollOffset:function(B,A){var E=B.scrollLeft;var D=B.scrollTop;if(A){var C=B.parentNode;while(C!=null&&C.scrollLeft!=null){E+=C.scrollLeft;D+=C.scrollTop;if(C==document.body&&(E!=0&&D!=0)){break}C=C.parentNode}}return{x:E,y:D}},getBrowserRectangle:function(){var B=window.innerWidth;var A=window.innerHeight;if(B==null){B=document.body.clientWidth}if(A==null){A=document.body.clientHeight}return{x:0,y:0,width:B,height:A}},getNextSibling:function(A){for(A=A.nextSibling;A!=null;A=A.nextSibling){if(A.innerHTML!=null){return A}}return null},hasParent:function(A){return(A.parentNode!=null&&A.parentNode.tagName!=null)}};AjaxControlToolkit.IEDragDropManager.registerClass("AjaxControlToolkit.IEDragDropManager",Sys.Component);AjaxControlToolkit.IEDragDropManager._getDataObjectsForDropTarget=function(G){if(G==null){return[]}var E=window._event;var A=[];var C=["URL","Text"];var F;for(var B=0;B<C.length;B++){var D=E.dataTransfer;if(!D&&E.rawEvent){D=E.rawEvent.dataTransfer}F=D.getData(C[B]);if(G.canDrop(AjaxControlToolkit.DragMode.Copy,C[B],F)){if(F){Array.add(A,{type:C[B],value:F})}}}return A};AjaxControlToolkit.GenericDragDropManager=function(){AjaxControlToolkit.GenericDragDropManager.initializeBase(this);this._dropTargets=null;this._scrollEdgeConst=40;this._scrollByConst=10;this._scroller=null;this._scrollDeltaX=0;this._scrollDeltaY=0;this._activeDragVisual=null;this._activeContext=null;this._activeDragSource=null;this._oldOffset=null;this._potentialTarget=null;this._mouseUpHandler=null;this._mouseMoveHandler=null;this._keyPressHandler=null;this._scrollerTickHandler=null};AjaxControlToolkit.GenericDragDropManager.prototype={initialize:function(){AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"initialize");this._mouseUpHandler=Function.createDelegate(this,this._onMouseUp);this._mouseMoveHandler=Function.createDelegate(this,this._onMouseMove);this._keyPressHandler=Function.createDelegate(this,this._onKeyPress);this._scrollerTickHandler=Function.createDelegate(this,this._onScrollerTick);if(Sys.Browser.agent===Sys.Browser.Safari){AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer(this)}this._scroller=new Sys.Timer();this._scroller.set_interval(10);this._scroller.add_tick(this._scrollerTickHandler)},startDragDrop:function(A,C,B){this._activeDragSource=A;this._activeDragVisual=C;this._activeContext=B;AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"startDragDrop",[A,C,B])},_stopDragDrop:function(A){this._scroller.set_enabled(false);AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"_stopDragDrop",[A])},_drag:function(A){AjaxControlToolkit.GenericDragDropManager.callBaseMethod(this,"_drag",[A]);this._autoScroll()},_wireEvents:function(){$addHandler(document,"mouseup",this._mouseUpHandler);$addHandler(document,"mousemove",this._mouseMoveHandler);$addHandler(document,"keypress",this._keyPressHandler)},_unwireEvents:function(){$removeHandler(document,"keypress",this._keyPressHandler);$removeHandler(document,"mousemove",this._mouseMoveHandler);$removeHandler(document,"mouseup",this._mouseUpHandler)},_wireDropTargetEvents:function(A){},_unwireDropTargetEvents:function(A){},_onMouseUp:function(A){window._event=A;this._stopDragDrop(false)},_onMouseMove:function(A){window._event=A;this._drag()},_onKeyPress:function(B){window._event=B;var A=B.keyCode?B.keyCode:B.rawEvent.keyCode;if(A==27){this._stopDragDrop(true)}},_autoScroll:function(){var B=window._event;var A=this.getBrowserRectangle();if(A.width>0){this._scrollDeltaX=this._scrollDeltaY=0;if(B.clientX<A.x+this._scrollEdgeConst){this._scrollDeltaX=-this._scrollByConst}else{if(B.clientX>A.width-this._scrollEdgeConst){this._scrollDeltaX=this._scrollByConst}}if(B.clientY<A.y+this._scrollEdgeConst){this._scrollDeltaY=-this._scrollByConst}else{if(B.clientY>A.height-this._scrollEdgeConst){this._scrollDeltaY=this._scrollByConst}}if(this._scrollDeltaX!=0||this._scrollDeltaY!=0){this._scroller.set_enabled(true)}else{this._scroller.set_enabled(false)}}},_onScrollerTick:function(){var F=document.body.scrollLeft;var B=document.body.scrollTop;window.scrollBy(this._scrollDeltaX,this._scrollDeltaY);var D=document.body.scrollLeft;var C=document.body.scrollTop;var E=this._activeDragVisual;var A={x:parseInt(E.style.left)+(D-F),y:parseInt(E.style.top)+(C-B)};$common.setLocation(E,A)}};AjaxControlToolkit.GenericDragDropManager.registerClass("AjaxControlToolkit.GenericDragDropManager",AjaxControlToolkit.IEDragDropManager);if(Sys.Browser.agent===Sys.Browser.Safari){AjaxControlToolkit.GenericDragDropManager.__loadSafariCompatLayer=function(A){A._getScrollOffset=A.getScrollOffset;A.getScrollOffset=function(C,B){return{x:0,y:0}};A._getBrowserRectangle=A.getBrowserRectangle;A.getBrowserRectangle=function(){var B=A._getBrowserRectangle();var C=A._getScrollOffset(document.body,true);return{x:B.x+C.x,y:B.y+C.y,width:B.width+C.x,height:B.height+C.y}}}};
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();