PageSourceSearch

https://www.antiqueromanpalace.com/ScriptResource.axd?d=6r0NxgVfy2…ybskMj5zKXY9Xpvq8zwHSYk1&t=ffffffffcda035a6

js antiqueromanpalace.com collected 2026-10-09 01:51:26 UTC 29,012 bytes, 793 lines download raw bytes

1// Name:        Compat.DragDrop.DragDropScripts.debug.js
2// Assembly:    AjaxControlToolkit
3// Version:     3.5.7.1213
4// FileVersion: 3.5.7.1213
5// (c) 2010 CodePlex Foundation
6
7
8
9/// <reference name="MicrosoftAjax.debug.js" />
10/// <reference path="../../Common/Common.js" />
11/// <reference path="../Timer/Timer.js" />
12
13(function() {
14var scriptName = "ExtendedDragDrop";
15
16function execute() {
17
18///////////////////////////////////////////////////////////////////////////////
19
20Type.registerNamespace('Sys.Extended.UI');
21
22Sys.Extended.UI.IDragSource = function() {
23}
24Sys.Extended.UI.IDragSource.prototype = {
25    get_dragDataType: function() { throw Error.notImplemented(); },
26    getDragData: function() { throw Error.notImplemented(); },
27    get_dragMode: function() { throw Error.notImplemented(); },
28    onDragStart: function() { throw Error.notImplemented(); },
29    onDrag: function() { throw Error.notImplemented(); },
30    onDragEnd: function() { throw Error.notImplemented(); }
31}
32Sys.Extended.UI.IDragSource.registerInterface('Sys.Extended.UI.IDragSource');
33
34///////////////////////////////////////////////////////////////////////////////
35Sys.Extended.UI.IDropTarget = function() {
36}
37Sys.Extended.UI.IDropTarget.prototype = {
38    get_dropTargetElement: function() { throw Error.notImplemented(); },
39    canDrop: function() { throw Error.notImplemented(); },
40    drop: function() { throw Error.notImplemented(); },
41    onDragEnterTarget: function() { throw Error.notImplemented(); },
42    onDragLeaveTarget: function() { throw Error.notImplemented(); },
43    onDragInTarget: function() { throw Error.notImplemented(); }
44}
45Sys.Extended.UI.IDropTarget.registerInterface('Sys.Extended.UI.IDropTarget');
46
47///////////////////////////////////////////////
48
49Sys.Extended.UI.DragMode = function() {
50    throw Error.invalidOperation();
51}
52Sys.Extended.UI.DragMode.prototype = {
53    Copy: 0,
54    Move: 1
55}
56Sys.Extended.UI.DragMode.registerEnum('Sys.Extended.UI.DragMode');
57
58////////////////////////////////////////////////////////////////////
59
60Sys.Extended.UI.DragDropEventArgs = function(dragMode, dragDataType, dragData) {
61    this._dragMode = dragMode;
62    this._dataType = dragDataType;
63    this._data = dragData;
64}
65Sys.Extended.UI.DragDropEventArgs.prototype = {
66    get_dragMode: function() {
67        return this._dragMode || null;
68    },
69    get_dragDataType: function() {
70        return this._dataType || null;
71    },
72    get_dragData: function() {
73        return this._data || null;
74    }
75}
76Sys.Extended.UI.DragDropEventArgs.registerClass('Sys.Extended.UI.DragDropEventArgs');
77
78
79Sys.Extended.UI._DragDropManager = function() {
80    this._instance = null;
81    this._events =  null;
82}
83Sys.Extended.UI._DragDropManager.prototype = {
84
85    add_dragStart: function(handler) {
86        this.get_events().addHandler('dragStart', handler);
87    },
88    remove_dragStart: function(handler) {
89        this.get_events().removeHandler('dragStart', handler);
90    },
91
92    get_events: function() {
93        if (!this._events) {
94            this._events = new Sys.EventHandlerList();
95        }
96        return this._events;
97    },
98
99    add_dragStop: function(handler) {
100        this.get_events().addHandler('dragStop', handler);
101    },
102    remove_dragStop: function(handler) {
103        this.get_events().removeHandler('dragStop', handler);
104    },
105
106    _getInstance: function() {
107        if (!this._instance) {
108            if (Sys.Browser.agent === Sys.Browser.InternetExplorer) {
109                this._instance = new Sys.Extended.UI.IEDragDropManager();
110            }
111            else {
112                this._instance = new Sys.Extended.UI.GenericDragDropManager();
113            }
114            this._instance.initialize();
115            this._instance.add_dragStart(Function.createDelegate(this, this._raiseDragStart));
116            this._instance.add_dragStop(Function.createDelegate(this, this._raiseDragStop));
117        }
118        return this._instance;
119    },
120
121    startDragDrop: function(dragSource, dragVisual, context, useBuiltInDragAndDropFunctions) {
122        this._getInstance().startDragDrop(dragSource, dragVisual, context, useBuiltInDragAndDropFunctions);
123    },
124
125    registerDropTarget: function(target) {
126        this._getInstance().registerDropTarget(target);
127    },
128
129    unregisterDropTarget: function(target) {
130        this._getInstance().unregisterDropTarget(target);
131    },
132
133    dispose: function() {
134        delete this._events;
135        Sys.Application.unregisterDisposableObject(this);
136        Sys.Application.removeComponent(this);
137    },
138
139    _raiseDragStart: function(sender, eventArgs) {
140        var handler = this.get_events().getHandler('dragStart');
141        if (handler) {
142            handler(this, eventArgs);
143        }
144    },
145
146    _raiseDragStop: function(sender, eventArgs) {
147        var handler = this.get_events().getHandler('dragStop');
148        if (handler) {
149            handler(this, eventArgs);
150        }
151    }
152}
153Sys.Extended.UI._DragDropManager.registerClass('Sys.Extended.UI._DragDropManager');
154Sys.Extended.UI.DragDropManager = new Sys.Extended.UI._DragDropManager();
155
156
157Sys.Extended.UI.IEDragDropManager = function() {
158    Sys.Extended.UI.IEDragDropManager.initializeBase(this);
159    
160    this._dropTargets = null;
161    this._radius = 10;
162    this._useBuiltInDragAndDropFunctions = true;
163    this._activeDragVisual = null;
164    this._activeContext = null;
165    this._activeDragSource = null;
166    this._underlyingTarget = null;
167    this._oldOffset = null;
168    this._potentialTarget = null;
169    this._isDragging = false;
170    this._mouseUpHandler = null;
171    this._documentMouseMoveHandler = null;
172    this._documentDragOverHandler = null;
173    this._dragStartHandler = null;
174    this._mouseMoveHandler = null;
175    this._dragEnterHandler = null;
176    this._dragLeaveHandler = null;
177    this._dragOverHandler = null;
178    this._dropHandler = null;
179}
180Sys.Extended.UI.IEDragDropManager.prototype = {
181
182    add_dragStart: function(handler) {
183        this.get_events().addHandler("dragStart", handler);
184    },
185
186    remove_dragStart: function(handler) {
187        this.get_events().removeHandler("dragStart", handler);
188    },
189
190    add_dragStop: function(handler) {
191        this.get_events().addHandler("dragStop", handler);
192    },
193
194    remove_dragStop: function(handler) {
195        this.get_events().removeHandler("dragStop", handler);
196    },
197
198    initialize: function() {
199        Sys.Extended.UI.IEDragDropManager.callBaseMethod(this, 'initialize');
200        this._mouseUpHandler = Function.createDelegate(this, this._onMouseUp);
201        this._documentMouseMoveHandler = Function.createDelegate(this, this._onDocumentMouseMove);
202        this._documentDragOverHandler = Function.createDelegate(this, this._onDocumentDragOver);
203        this._dragStartHandler = Function.createDelegate(this, this._onDragStart);
204        this._mouseMoveHandler = Function.createDelegate(this, this._onMouseMove);
205        this._dragEnterHandler = Function.createDelegate(this, this._onDragEnter);
206        this._dragLeaveHandler = Function.createDelegate(this, this._onDragLeave);
207        this._dragOverHandler = Function.createDelegate(this, this._onDragOver);
208        this._dropHandler = Function.createDelegate(this, this._onDrop);
209    },
210
211
212    dispose: function() {
213        if (this._dropTargets) {
214            for (var i = 0; i < this._dropTargets; i++) {
215                this.unregisterDropTarget(this._dropTargets[i]);
216            }
217            this._dropTargets = null;
218        }
219
220        Sys.Extended.UI.IEDragDropManager.callBaseMethod(this, 'dispose');
221    },
222
223
224    startDragDrop: function(dragSource, dragVisual, context, useBuiltInDragAndDropFunctions) {
225        var ev = window._event;
226
227        if (this._isDragging) {
228            return;
229        }
230
231        this._underlyingTarget = null;
232        this._activeDragSource = dragSource;
233        this._activeDragVisual = dragVisual;
234        this._activeContext = context;
235        this._useBuiltInDragAndDropFunctions = typeof (useBuiltInDragAndDropFunctions) != 'undefined' ? useBuiltInDragAndDropFunctions : true;
236
237        var mousePosition = { x: ev.clientX, y: ev.clientY };
238
239        dragVisual.originalPosition = dragVisual.style.position;
240        dragVisual.style.position = "absolute";
241
242        document._lastPosition = mousePosition;
243        dragVisual.startingPoint = mousePosition;
244        var scrollOffset = this.getScrollOffset(dragVisual, /* recursive */true);
245
246        dragVisual.startingPoint = this.addPoints(dragVisual.startingPoint, scrollOffset);
247
248        var left = parseInt(dragVisual.style.left);
249        var top = parseInt(dragVisual.style.top);
250        if (isNaN(left)) left = "0";
251        if (isNaN(top)) top = "0";
252
253        dragVisual.startingPoint = this.subtractPoints(dragVisual.startingPoint, { x: left, y: top });
254
255        this._prepareForDomChanges();
256        dragSource.onDragStart();
257        var eventArgs = new Sys.Extended.UI.DragDropEventArgs(
258            dragSource.get_dragMode(),
259            dragSource.get_dragDataType(),
260            dragSource.getDragData(context));
261        var handler = this.get_events().getHandler('dragStart');
262        if (handler) handler(this, eventArgs);
263        this._recoverFromDomChanges();
264
265        this._wireEvents();
266
267        this._drag(/* isInitialDrag */true);
268    },
269
270
271    _stopDragDrop: function(cancelled) {
272        var ev = window._event;
273        if (this._activeDragSource != null) {
274            this._unwireEvents();
275
276            if (!cancelled) {
277                cancelled = (this._underlyingTarget == null);
278            }
279
280            if (!cancelled && this._underlyingTarget != null) {
281                this._underlyingTarget.drop(this._activeDragSource.get_dragMode(), this._activeDragSource.get_dragDataType(),
282                    this._activeDragSource.getDragData(this._activeContext));
283            }
284
285            this._activeDragSource.onDragEnd(cancelled);
286            var handler = this.get_events().getHandler('dragStop');
287            if (handler) handler(this, Sys.EventArgs.Empty);
288
289            this._activeDragVisual.style.position = this._activeDragVisual.originalPosition;
290
291            this._activeDragSource = null;
292            this._activeContext = null;
293            this._activeDragVisual = null;
294            this._isDragging = false;
295            this._potentialTarget = null;
296            ev.preventDefault();
297        }
298    },
299
300    _drag: function(isInitialDrag) {
301        var ev = window._event;
302        var mousePosition = { x: ev.clientX, y: ev.clientY };
303
304        document._lastPosition = mousePosition;
305
306        var scrollOffset = this.getScrollOffset(this._activeDragVisual, /* recursive */true);
307        var position = this.addPoints(this.subtractPoints(mousePosition, this._activeDragVisual.startingPoint), scrollOffset);
308
309        if (!isInitialDrag && parseInt(this._activeDragVisual.style.left) == position.x && parseInt(this._activeDragVisual.style.top) == position.y) {
310            return;
311        }
312
313        $common.setLocation(this._activeDragVisual, position);
314
315        this._prepareForDomChanges();
316        this._activeDragSource.onDrag();
317        this._recoverFromDomChanges();
318
319        this._potentialTarget = this._findPotentialTarget(this._activeDragSource, this._activeDragVisual);
320
321        var movedToOtherTarget = (this._potentialTarget != this._underlyingTarget || this._potentialTarget == null);
322        if (movedToOtherTarget && this._underlyingTarget != null) {
323            this._leaveTarget(this._activeDragSource, this._underlyingTarget);
324        }
325
326        if (this._potentialTarget != null) {
327            if (movedToOtherTarget) {
328                this._underlyingTarget = this._potentialTarget;
329
330                this._enterTarget(this._activeDragSource, this._underlyingTarget);
331            }
332            else {
333                this._moveInTarget(this._activeDragSource, this._underlyingTarget);
334            }
335        }
336        else {
337            this._underlyingTarget = null;
338        }
339    },
340
341
342    _wireEvents: function() {
343        if (this._useBuiltInDragAndDropFunctions) {
344            $addHandler(document, "mouseup", this._mouseUpHandler);
345            $addHandler(document, "mousemove", this._documentMouseMoveHandler);
346            $addHandler(document.body, "dragover", this._documentDragOverHandler);
347
348            $addHandler(this._activeDragVisual, "dragstart", this._dragStartHandler);
349            $addHandler(this._activeDragVisual, "dragend", this._mouseUpHandler);
350            $addHandler(this._activeDragVisual, "drag", this._mouseMoveHandler);
351        } else {
352            $addHandler(document, "mouseup", this._mouseUpHandler);
353            $addHandler(document, "mousemove", this._mouseMoveHandler);
354        }
355    },
356
357
358    _unwireEvents: function() {
359        if (this._useBuiltInDragAndDropFunctions) {
360            $removeHandler(this._activeDragVisual, "drag", this._mouseMoveHandler);
361            $removeHandler(this._activeDragVisual, "dragend", this._mouseUpHandler);
362            $removeHandler(this._activeDragVisual, "dragstart", this._dragStartHandler);
363
364            $removeHandler(document.body, "dragover", this._documentDragOverHandler);
365            $removeHandler(document, "mousemove", this._documentMouseMoveHandler);
366            $removeHandler(document, "mouseup", this._mouseUpHandler);
367        } else {
368            $removeHandler(document, "mousemove", this._mouseMoveHandler);
369            $removeHandler(document, "mouseup", this._mouseUpHandler);
370        }
371    },
372
373
374    registerDropTarget: function(dropTarget) {
375        if (this._dropTargets == null) {
376            this._dropTargets = [];
377        }
378        Array.add(this._dropTargets, dropTarget);
379
380        this._wireDropTargetEvents(dropTarget);
381    },
382
383
384    unregisterDropTarget: function(dropTarget) {
385        this._unwireDropTargetEvents(dropTarget);
386        if (this._dropTargets) {
387            Array.remove(this._dropTargets, dropTarget);
388        }
389    },
390
391
392    _wireDropTargetEvents: function(dropTarget) {
393        var associatedElement = dropTarget.get_dropTargetElement();
394        associatedElement._dropTarget = dropTarget;
395        $addHandler(associatedElement, "dragenter", this._dragEnterHandler);
396        $addHandler(associatedElement, "dragleave", this._dragLeaveHandler);
397        $addHandler(associatedElement, "dragover", this._dragOverHandler);
398        $addHandler(associatedElement, "drop", this._dropHandler);
399    },
400
401
402    _unwireDropTargetEvents: function(dropTarget) {
403        var associatedElement = dropTarget.get_dropTargetElement();
404        if (associatedElement._dropTarget) {
405            associatedElement._dropTarget = null;
406            $removeHandler(associatedElement, "dragenter", this._dragEnterHandler);
407            $removeHandler(associatedElement, "dragleave", this._dragLeaveHandler);
408            $removeHandler(associatedElement, "dragover", this._dragOverHandler);
409            $removeHandler(associatedElement, "drop", this._dropHandler);
410        }
411    },
412
413
414    _onDragStart: function(ev) {
415        window._event = ev;
416        document.selection.empty();
417
418        var dt = ev.dataTransfer;
419        if (!dt && ev.rawEvent) dt = ev.rawEvent.dataTransfer;
420
421        var dataType = this._activeDragSource.get_dragDataType().toLowerCase();
422        var data = this._activeDragSource.getDragData(this._activeContext);
423
424        if (data) {
425            if (dataType != "text" && dataType != "url") {
426                dataType = "text";
427
428                if (data.innerHTML != null) {
429                    data = data.innerHTML;
430                }
431            }
432
433            dt.effectAllowed = "move";
434            dt.setData(dataType, data.toString());
435        }
436    },
437
438    _onMouseUp: function(ev) {
439        window._event = ev;
440        this._stopDragDrop(false);
441    },
442
443    _onDocumentMouseMove: function(ev) {
444        window._event = ev;
445        this._dragDrop();
446    },
447
448    _onDocumentDragOver: function(ev) {
449        window._event = ev;
450        if (this._potentialTarget) ev.preventDefault();
451    },
452
453    _onMouseMove: function(ev) {
454        window._event = ev;
455        this._drag();
456    },
457
458    _onDragEnter: function(ev) {
459        window._event = ev;
460        if (this._isDragging) {
461            ev.preventDefault();
462        }
463        else {
464            var dataObjects = Sys.Extended.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
465            for (var i = 0; i < dataObjects.length; i++) {
466                this._dropTarget.onDragEnterTarget(Sys.Extended.UI.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
467            }
468        }
469    },
470
471    _onDragLeave: function(ev) {
472        window._event = ev;
473        if (this._isDragging) {
474            ev.preventDefault();
475        }
476        else {
477            var dataObjects = Sys.Extended.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
478            for (var i = 0; i < dataObjects.length; i++) {
479                this._dropTarget.onDragLeaveTarget(Sys.Extended.UI.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
480            }
481        }
482    },
483
484    _onDragOver: function(ev) {
485        window._event = ev;
486        if (this._isDragging) {
487            ev.preventDefault();
488        }
489        else {
490            var dataObjects = Sys.Extended.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
491            for (var i = 0; i < dataObjects.length; i++) {
492                this._dropTarget.onDragInTarget(Sys.Extended.UI.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
493            }
494        }
495    },
496
497    _onDrop: function(ev) {
498        window._event = ev;
499        if (!this._isDragging) {
500            var dataObjects = Sys.Extended.UI.IEDragDropManager._getDataObjectsForDropTarget(this._getDropTarget(ev.target));
501            for (var i = 0; i < dataObjects.length; i++) {
502                this._dropTarget.drop(Sys.Extended.UI.DragMode.Copy, dataObjects[i].type, dataObjects[i].value);
503            }
504        }
505        ev.preventDefault();
506    },
507
508    _getDropTarget: function(element) {
509        while (element) {
510            if (element._dropTarget != null) {
511                return element._dropTarget;
512            }
513            element = element.parentNode;
514        }
515        return null;
516    },
517
518    _dragDrop: function() {
519        if (this._isDragging) {
520            return;
521        }
522
523        this._isDragging = true;
524        this._activeDragVisual.dragDrop();
525        document.selection.empty();
526    },
527
528    _moveInTarget: function(dragSource, dropTarget) {
529        this._prepareForDomChanges();
530        dropTarget.onDragInTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
531        this._recoverFromDomChanges();
532    },
533
534    _enterTarget: function(dragSource, dropTarget) {
535        this._prepareForDomChanges();
536        dropTarget.onDragEnterTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
537        this._recoverFromDomChanges();
538    },
539
540    _leaveTarget: function(dragSource, dropTarget) {
541        this._prepareForDomChanges();
542        dropTarget.onDragLeaveTarget(dragSource.get_dragMode(), dragSource.get_dragDataType(), dragSource.getDragData(this._activeContext));
543        this._recoverFromDomChanges();
544    },
545
546    _findPotentialTarget: function(dragSource, dragVisual) {
547        var ev = window._event;
548
549        if (this._dropTargets == null) {
550            return null;
551        }
552
553        var type = dragSource.get_dragDataType();
554        var mode = dragSource.get_dragMode();
555        var data = dragSource.getDragData(this._activeContext);
556
557        var scrollOffset = this.getScrollOffset(document.body, /* recursive */true);
558        var x = ev.clientX + scrollOffset.x;
559        var y = ev.clientY + scrollOffset.y;
560        var cursorRect = { x: x - this._radius, y: y - this._radius, width: this._radius * 2, height: this._radius * 2 };
561
562        var targetRect;
563        for (var i = 0; i < this._dropTargets.length; i++) {
564            targetRect = $common.getBounds(this._dropTargets[i].get_dropTargetElement());
565            if ($common.overlaps(cursorRect, targetRect) && this._dropTargets[i].canDrop(mode, type, data)) {
566                return this._dropTargets[i];
567            }
568        }
569
570        return null;
571    },
572
573    _prepareForDomChanges: function() {
574        this._oldOffset = $common.getLocation(this._activeDragVisual);
575    },
576
577    _recoverFromDomChanges: function() {
578        var newOffset = $common.getLocation(this._activeDragVisual);
579        if (this._oldOffset.x != newOffset.x || this._oldOffset.y != newOffset.y) {
580            this._activeDragVisual.startingPoint = this.subtractPoints(this._activeDragVisual.startingPoint, this.subtractPoints(this._oldOffset, newOffset));
581            scrollOffset = this.getScrollOffset(this._activeDragVisual, /* recursive */true);
582            var position = this.addPoints(this.subtractPoints(document._lastPosition, this._activeDragVisual.startingPoint), scrollOffset);
583            $common.setLocation(this._activeDragVisual, position);
584        }
585    },
586
587    addPoints: function(p1, p2) {
588        return { x: p1.x + p2.x, y: p1.y + p2.y };
589    },
590
591    subtractPoints: function(p1, p2) {
592        return { x: p1.x - p2.x, y: p1.y - p2.y };
593    },
594
595    getScrollOffset: function(element, recursive) {
596        var left = element.scrollLeft;
597        var top = element.scrollTop;
598        if (recursive) {
599            var parent = element.parentNode;
600            while (parent != null && parent.scrollLeft != null) {
601                left += parent.scrollLeft;
602                top += parent.scrollTop;
603                if (parent == document.body && (left != 0 && top != 0))
604                    break;
605                parent = parent.parentNode;
606            }
607        }
608        return { x: left, y: top };
609    },
610
611    getBrowserRectangle: function() {
612        var width = window.innerWidth;
613        var height = window.innerHeight;
614        if (width == null) {
615            width = document.documentElement.clientWidth;
616        }
617        if (height == null) {
618            height = document.documentElement.clientHeight;
619        }
620
621        return { x: 0, y: 0, width: width, height: height };
622    },
623
624    getNextSibling: function(item) {
625        for (item = item.nextSibling; item != null; item = item.nextSibling) {
626            if (item.innerHTML != null) {
627                return item;
628            }
629        }
630        return null;
631    },
632
633    hasParent: function(element) {
634        return (element.parentNode != null && element.parentNode.tagName != null);
635    }
636}
637Sys.Extended.UI.IEDragDropManager.registerClass('Sys.Extended.UI.IEDragDropManager', Sys.Component);
638
639Sys.Extended.UI.IEDragDropManager._getDataObjectsForDropTarget = function(dropTarget) {
640    if (dropTarget == null) {
641        return [];
642    }
643    var ev = window._event;
644    var dataObjects = [];
645    var dataTypes = [ "URL", "Text" ];
646    var data;
647    for (var i = 0; i < dataTypes.length; i++) {
648        var dt = ev.dataTransfer;
649        if(!dt && ev.rawEvent) dt = ev.rawEvent.dataTransfer;
650        data = dt.getData(dataTypes[i]);
651        if (dropTarget.canDrop(Sys.Extended.UI.DragMode.Copy, dataTypes[i], data)) {
652            if (data) {
653                Array.add(dataObjects, { type : dataTypes[i], value : data });
654            }
655        }
656    }
657
658    return dataObjects;
659}
660
661
662Sys.Extended.UI.GenericDragDropManager = function() {
663    Sys.Extended.UI.GenericDragDropManager.initializeBase(this);
664    
665    this._dropTargets = null;
666    this._scrollEdgeConst = 40;
667    this._scrollByConst = 10;
668    this._scroller = null;
669    this._scrollDeltaX = 0;
670    this._scrollDeltaY = 0;
671    this._activeDragVisual = null;
672    this._activeContext = null;
673    this._activeDragSource = null;
674    this._oldOffset = null;
675    this._potentialTarget = null;
676    this._mouseUpHandler = null;
677    this._mouseMoveHandler = null;
678    this._keyPressHandler = null;
679    this._scrollerTickHandler = null;
680}
681Sys.Extended.UI.GenericDragDropManager.prototype = {
682   
683    initialize : function() {
684        Sys.Extended.UI.GenericDragDropManager.callBaseMethod(this, "initialize");
685        this._mouseUpHandler = Function.createDelegate(this, this._onMouseUp);
686        this._mouseMoveHandler = Function.createDelegate(this, this._onMouseMove);
687        this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);
688        this._scrollerTickHandler = Function.createDelegate(this, this._onScrollerTick);
689        this._scroller = new Sys.Timer();
690        this._scroller.set_interval(10);
691        this._scroller.add_tick(this._scrollerTickHandler);
692    },
693
694    startDragDrop : function(dragSource, dragVisual, context) {
695        this._activeDragSource = dragSource;
696        this._activeDragVisual = dragVisual;
697        this._activeContext = context;
698        
699        Sys.Extended.UI.GenericDragDropManager.callBaseMethod(this, "startDragDrop", [dragSource, dragVisual, context]);
700    },
701    
702    _stopDragDrop : function(cancelled) {
703        this._scroller.set_enabled(false);
704        
705        Sys.Extended.UI.GenericDragDropManager.callBaseMethod(this, "_stopDragDrop", [cancelled]);
706    },
707    
708    _drag : function(isInitialDrag) {
709        Sys.Extended.UI.GenericDragDropManager.callBaseMethod(this, "_drag", [isInitialDrag]);
710        
711        this._autoScroll();
712    },
713    
714    _wireEvents : function() {
715        $addHandler(document, "mouseup", this._mouseUpHandler);
716        $addHandler(document, "mousemove", this._mouseMoveHandler);
717        $addHandler(document, "keypress", this._keyPressHandler);
718    },
719    
720    _unwireEvents : function() {
721        $removeHandler(document, "keypress", this._keyPressHandler);
722        $removeHandler(document, "mousemove", this._mouseMoveHandler);
723        $removeHandler(document, "mouseup", this._mouseUpHandler);
724    },
725    
726    _wireDropTargetEvents : function(dropTarget) {
727    },
728    
729    _unwireDropTargetEvents : function(dropTarget) {
730    },
731    
732    _onMouseUp : function(e) {
733        window._event = e;
734        this._stopDragDrop(false);
735    },
736    
737    _onMouseMove : function(e) {
738        window._event = e;
739        this._drag();
740    },
741    
742    _onKeyPress : function(e) {
743        window._event = e;
744        var k = e.keyCode ? e.keyCode : e.rawEvent.keyCode;
745        if (k == 27) {
746            this._stopDragDrop(/* cancel */ true);
747        }
748    },
749    
750    _autoScroll : function() {
751        var ev = window._event;
752        var browserRect = this.getBrowserRectangle();
753        if (browserRect.width > 0) {
754            this._scrollDeltaX = this._scrollDeltaY = 0;
755            if (ev.clientX < browserRect.x + this._scrollEdgeConst) this._scrollDeltaX = -this._scrollByConst;
756            else if (ev.clientX > browserRect.width - this._scrollEdgeConst) this._scrollDeltaX = this._scrollByConst;
757            if (ev.clientY < browserRect.y + this._scrollEdgeConst) this._scrollDeltaY = -this._scrollByConst;
758            else if (ev.clientY > browserRect.height - this._scrollEdgeConst) this._scrollDeltaY = this._scrollByConst;
759            if (this._scrollDeltaX != 0 || this._scrollDeltaY != 0) {
760                this._scroller.set_enabled(true);
761            }
762            else {
763                this._scroller.set_enabled(false);
764            }
765        }
766    },
767    
768    _onScrollerTick : function() {
769        var oldLeft = document.body.scrollLeft;
770        var oldTop = document.body.scrollTop;
771        window.scrollBy(this._scrollDeltaX, this._scrollDeltaY);
772        var newLeft = document.body.scrollLeft;
773        var newTop = document.body.scrollTop;
774        
775        var dragVisual = this._activeDragVisual;
776        var position = { x: parseInt(dragVisual.style.left) + (newLeft - oldLeft), y: parseInt(dragVisual.style.top) + (newTop - oldTop) };
777        $common.setLocation(dragVisual, position);
778    }
779}
780Sys.Extended.UI.GenericDragDropManager.registerClass('Sys.Extended.UI.GenericDragDropManager', Sys.Extended.UI.IEDragDropManager);
781
782} // execute
783
784if (window.Sys && Sys.loader) {
785    Sys.loader.registerScript(scriptName, ["ExtendedTimer", "ExtendedCommon"], execute);
786}
787else {
788    execute();
789}
790
791})();
792
793if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.