sync
[roojs1] / docs2 / src / Roo_dd_DragDropMgr.js.html
diff --git a/docs2/src/Roo_dd_DragDropMgr.js.html b/docs2/src/Roo_dd_DragDropMgr.js.html
deleted file mode 100644 (file)
index 9292062..0000000
+++ /dev/null
@@ -1,1308 +0,0 @@
-<html><head><title>/home/alan/gitlive/roojs1/Roo/dd/DragDropMgr.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
- * Based on:
- * Ext JS Library 1.1.1
- * Copyright(c) 2006-2007, Ext JS, LLC.
- *
- * Originally Released Under LGPL - original licence link has changed is not relivant.
- *
- * Fork - LGPL
- * &lt;script type=&quot;text/javascript&quot;&gt;
- */
-
-
-/**
- * The drag and drop utility provides a framework for building drag and drop
- * applications.  In addition to enabling drag and drop for specific elements,
- * the drag and drop elements are tracked by the manager class, and the
- * interactions between the various elements are tracked during the drag and
- * the implementing code is notified about these important moments.
- */
-
-// Only load the library once.  Rewriting the manager class would orphan
-// existing drag and drop instances.
-</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.dd.DragDropMgr</span><span class="jsdoc-syntax">) {
-
-</span><span class="jsdoc-comment">/**
- * @class Roo.dd.DragDropMgr
- * DragDropMgr is a singleton that tracks the element interaction for
- * all DragDrop items in the window.  Generally, you will not call
- * this class directly, but it does have helper methods that could
- * be useful in your DragDrop implementations.
- * @singleton
- */
-</span><span class="jsdoc-var">Roo.dd.DragDropMgr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
-    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Event </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.EventManager</span><span class="jsdoc-syntax">;
-
-    </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
-
-        </span><span class="jsdoc-comment">/**
-         * Two dimensional Array of registered DragDrop objects.  The first
-         * dimension is the DragDrop item group, the second the DragDrop
-         * object.
-         * @property ids
-         * @type {string: string}
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">ids</span><span class="jsdoc-syntax">: {},
-
-        </span><span class="jsdoc-comment">/**
-         * Array of element ids defined as drag handles.  Used to determine
-         * if the element that generated the mousedown event is actually the
-         * handle and not the html element itself.
-         * @property handleIds
-         * @type {string: string}
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">handleIds</span><span class="jsdoc-syntax">: {},
-
-        </span><span class="jsdoc-comment">/**
-         * the DragDrop object that is currently being dragged
-         * @property dragCurrent
-         * @type DragDrop
-         * @private
-         * @static
-         **/
-        </span><span class="jsdoc-var">dragCurrent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * the DragDrop object(s) that are being hovered over
-         * @property dragOvers
-         * @type Array
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">dragOvers</span><span class="jsdoc-syntax">: {},
-
-        </span><span class="jsdoc-comment">/**
-         * the X distance between the cursor and the object being dragged
-         * @property deltaX
-         * @type int
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">deltaX</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * the Y distance between the cursor and the object being dragged
-         * @property deltaY
-         * @type int
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">deltaY</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * Flag to determine if we should prevent the default behavior of the
-         * events we define. By default this is true, but this can be set to
-         * false if you need the default behavior (not recommended)
-         * @property preventDefault
-         * @type boolean
-         * @static
-         */
-        </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * Flag to determine if we should stop the propagation of the events
-         * we generate. This is true by default but you may want to set it to
-         * false if the html element contains other features that require the
-         * mouse click.
-         * @property stopPropagation
-         * @type boolean
-         * @static
-         */
-        </span><span class="jsdoc-var">stopPropagation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * Internal flag that is set to true when drag and drop has been
-         * intialized
-         * @property initialized
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">initalized</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * All drag and drop can be disabled.
-         * @property locked
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">locked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * Called the first time an element is registered.
-         * @method init
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">init</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-            </span><span class="jsdoc-var">this.initialized </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * In point mode, drag and drop interaction is defined by the
-         * location of the cursor during the drag/drop
-         * @property POINT
-         * @type int
-         * @static
-         */
-        </span><span class="jsdoc-var">POINT</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * In intersect mode, drag and drop interactio nis defined by the
-         * overlap of two or more drag and drop objects.
-         * @property INTERSECT
-         * @type int
-         * @static
-         */
-        </span><span class="jsdoc-var">INTERSECT</span><span class="jsdoc-syntax">: 1,
-
-        </span><span class="jsdoc-comment">/**
-         * The current drag and drop mode.  Default: POINT
-         * @property mode
-         * @type int
-         * @static
-         */
-        </span><span class="jsdoc-var">mode</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * Runs method on all drag and drop objects
-         * @method _execOnAll
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_execOnAll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sMethod</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">j </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">];
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">)) {
-                        </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                    }
-                    </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sMethod</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">);
-                }
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Drag and drop initialization.  Sets up the global event handlers
-         * @method _onLoad
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_onLoad</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
-            </span><span class="jsdoc-var">this.init</span><span class="jsdoc-syntax">();
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;mouseup&quot;</span><span class="jsdoc-syntax">,   </span><span class="jsdoc-var">this.handleMouseUp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;mousemove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseMove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            }
-            </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;touchend&quot;</span><span class="jsdoc-syntax">,   </span><span class="jsdoc-var">this.handleMouseUp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">&quot;touchmove&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.handleMouseMove</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">,   </span><span class="jsdoc-string">&quot;unload&quot;</span><span class="jsdoc-syntax">,    </span><span class="jsdoc-var">this._onUnload</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-var">Event.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">window</span><span class="jsdoc-syntax">,   </span><span class="jsdoc-string">&quot;resize&quot;</span><span class="jsdoc-syntax">,    </span><span class="jsdoc-var">this._onResize</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-comment">// Event.on(window,   &quot;mouseout&quot;,    this._test);
-
-        </span><span class="jsdoc-syntax">},
-
-        </span><span class="jsdoc-comment">/**
-         * Reset constraints on all drag and drop objs
-         * @method _onResize
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_onResize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-var">this._execOnAll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;resetConstraints&quot;</span><span class="jsdoc-syntax">, []);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Lock all drag and drop functionality
-         * @method lock
-         * @static
-         */
-        </span><span class="jsdoc-var">lock</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">; },
-
-        </span><span class="jsdoc-comment">/**
-         * Unlock all drag and drop functionality
-         * @method unlock
-         * @static
-         */
-        </span><span class="jsdoc-var">unlock</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-var">this.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">; },
-
-        </span><span class="jsdoc-comment">/**
-         * Is drag and drop locked?
-         * @method isLocked
-         * @return {boolean} True if drag and drop is locked, false otherwise.
-         * @static
-         */
-        </span><span class="jsdoc-var">isLocked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.locked</span><span class="jsdoc-syntax">; },
-
-        </span><span class="jsdoc-comment">/**
-         * Location cache that is set for all drag drop objects when a drag is
-         * initiated, cleared when the drag is finished.
-         * @property locationCache
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">locationCache</span><span class="jsdoc-syntax">: {},
-
-        </span><span class="jsdoc-comment">/**
-         * Set useCache to false if you want to force object the lookup of each
-         * drag and drop linked element constantly during a drag.
-         * @property useCache
-         * @type boolean
-         * @static
-         */
-        </span><span class="jsdoc-var">useCache</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * The number of pixels that the mouse needs to move after the
-         * mousedown before the drag is initiated.  Default=3;
-         * @property clickPixelThresh
-         * @type int
-         * @static
-         */
-        </span><span class="jsdoc-var">clickPixelThresh</span><span class="jsdoc-syntax">: 3,
-
-        </span><span class="jsdoc-comment">/**
-         * The number of milliseconds after the mousedown event to initiate the
-         * drag if we don't get a mouseup event. Default=1000
-         * @property clickTimeThresh
-         * @type int
-         * @static
-         */
-        </span><span class="jsdoc-var">clickTimeThresh</span><span class="jsdoc-syntax">: 350,
-
-        </span><span class="jsdoc-comment">/**
-         * Flag that indicates that either the drag pixel threshold or the
-         * mousdown time threshold has been met
-         * @property dragThreshMet
-         * @type boolean
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">dragThreshMet</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * Timeout used for the click time threshold
-         * @property clickTimeout
-         * @type Object
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">clickTimeout</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
-
-        </span><span class="jsdoc-comment">/**
-         * The X position of the mousedown event stored for later use when a
-         * drag threshold is met.
-         * @property startX
-         * @type int
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">startX</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * The Y position of the mousedown event stored for later use when a
-         * drag threshold is met.
-         * @property startY
-         * @type int
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">startY</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * Each DragDrop instance must be registered with the DragDropMgr.
-         * This is executed in DragDrop.init()
-         * @method regDragDrop
-         * @param {DragDrop} oDD the DragDrop object to register
-         * @param {String} sGroup the name of the group this element belongs to
-         * @static
-         */
-        </span><span class="jsdoc-var">regDragDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.initialized</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-var">this.init</span><span class="jsdoc-syntax">(); }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">]) {
-                </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">] = {};
-            }
-            </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Removes the supplied dd instance from the supplied group. Executed
-         * by DragDrop.removeFromGroup, so don't call this function directly.
-         * @method removeDDFromGroup
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">removeDDFromGroup</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">]) {
-                </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">] = {};
-            }
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">];
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">obj </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">]) {
-                </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">];
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Unregisters a drag and drop item.  This is executed in
-         * DragDrop.unreg, use that method instead of calling this directly.
-         * @method _remove
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_remove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">g </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">oDD.groups</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">g </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">g</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">];
-                }
-            }
-            </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">];
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Each DragDrop handle element must be registered.  This is done
-         * automatically when executing DragDrop.setHandleElId()
-         * @method regHandle
-         * @param {String} sDDId the DragDrop id this element is a handle for
-         * @param {String} sHandleId the id of the element that is the drag
-         * handle
-         * @static
-         */
-        </span><span class="jsdoc-var">regHandle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sHandleId</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">]) {
-                </span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">] = {};
-            }
-            </span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">sHandleId</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">sHandleId</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Utility function to determine if a given element has been
-         * registered as a drag drop item.
-         * @method isDragDrop
-         * @param {String} id the element id to check
-         * @return {boolean} true if this element is a DragDrop item,
-         * false otherwise
-         * @static
-         */
-        </span><span class="jsdoc-var">isDragDrop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.getDDById</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) ) ? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the drag and drop instances that are in all groups the
-         * passed in instance belongs to.
-         * @method getRelated
-         * @param {DragDrop} p_oDD the obj to get related data for
-         * @param {boolean} bTargetsOnly if true, only return targetable objs
-         * @return {DragDrop[]} the related instances
-         * @static
-         */
-        </span><span class="jsdoc-var">getRelated</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p_oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bTargetsOnly</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oDDs </span><span class="jsdoc-syntax">= [];
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">p_oDD.groups</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">j </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">];
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">)) {
-                        </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                    }
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">bTargetsOnly </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">dd.isTarget</span><span class="jsdoc-syntax">) {
-                        </span><span class="jsdoc-var">oDDs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDDs.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">;
-                    }
-                }
-            }
-
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">oDDs</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns true if the specified dd target is a legal target for
-         * the specifice drag obj
-         * @method isLegalTarget
-         * @param {DragDrop} the drag obj
-         * @param {DragDrop} the target
-         * @return {boolean} true if the target is a legal target for the
-         * dd obj
-         * @static
-         */
-        </span><span class="jsdoc-var">isLegalTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oTargetDD</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">targets </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getRelated</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">targets.length</span><span class="jsdoc-syntax">;</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">;++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">targets</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">oTargetDD.id</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-                }
-            }
-
-            </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * My goal is to be able to transparently determine if an object is
-         * typeof DragDrop, and the exact subclass of DragDrop.  typeof
-         * returns &quot;object&quot;, oDD.constructor.toString() always returns
-         * &quot;DragDrop&quot; and not the name of the subclass.  So for now it just
-         * evaluates a well-known variable in DragDrop.
-         * @method isTypeOfDD
-         * @param {Object} the object to evaluate
-         * @return {boolean} true if typeof oDD = DragDrop
-         * @static
-         */
-        </span><span class="jsdoc-var">isTypeOfDD</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">oDD.__ygDragDrop</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Utility function to determine if a given element has been
-         * registered as a drag drop handle for the given Drag Drop object.
-         * @method isHandle
-         * @param {String} id the element id to check
-         * @return {boolean} true if this element is a DragDrop handle, false
-         * otherwise
-         * @static
-         */
-        </span><span class="jsdoc-var">isHandle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">sHandleId</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">] &amp;&amp;
-                            </span><span class="jsdoc-var">this.handleIds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sDDId</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">sHandleId</span><span class="jsdoc-syntax">] );
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the DragDrop instance for a given id
-         * @method getDDById
-         * @param {String} id the id of the DragDrop object
-         * @return {DragDrop} the drag drop object, null if it is not found
-         * @static
-         */
-        </span><span class="jsdoc-var">getDDById</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
-                }
-            }
-            </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Fired after a registered DragDrop object gets the mousedown event.
-         * Sets up the events required to track the object being dragged
-         * @method handleMouseDown
-         * @param {Event} e the event
-         * @param oDD the DragDrop object being dragged
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">handleMouseDown</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.QuickTips</span><span class="jsdoc-syntax">){
-                </span><span class="jsdoc-var">Roo.QuickTips.disable</span><span class="jsdoc-syntax">();
-            }
-            </span><span class="jsdoc-var">this.currentTarget </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">();
-
-            </span><span class="jsdoc-var">this.dragCurrent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">oDD.getEl</span><span class="jsdoc-syntax">();
-
-            </span><span class="jsdoc-comment">// track start position
-            </span><span class="jsdoc-var">this.startX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getPageX</span><span class="jsdoc-syntax">();
-            </span><span class="jsdoc-var">this.startY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getPageY</span><span class="jsdoc-syntax">();
-
-            </span><span class="jsdoc-var">this.deltaX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startX </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">el.offsetLeft</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-var">this.deltaY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.startY </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">el.offsetTop</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-var">this.dragThreshMet </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-var">this.clickTimeout </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(
-                    </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-                        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">DDM </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.dd.DDM</span><span class="jsdoc-syntax">;
-                        </span><span class="jsdoc-var">DDM.startDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">DDM.startX</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">DDM.startY</span><span class="jsdoc-syntax">);
-                    },
-                    </span><span class="jsdoc-var">this.clickTimeThresh </span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Fired when either the drag pixel threshol or the mousedown hold
-         * time threshold has been met.
-         * @method startDrag
-         * @param x {int} the X position of the original mousedown
-         * @param y {int} the Y position of the original mousedown
-         * @static
-         */
-        </span><span class="jsdoc-var">startDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-var">clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.clickTimeout</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">this.dragCurrent.b4StartDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-var">this.dragCurrent.startDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y</span><span class="jsdoc-syntax">);
-            }
-            </span><span class="jsdoc-var">this.dragThreshMet </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Internal function to handle the mouseup event.  Will be invoked
-         * from the context of the document.
-         * @method handleMouseUp
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">handleMouseUp</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
-
-            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.QuickTips</span><span class="jsdoc-syntax">){
-                </span><span class="jsdoc-var">Roo.QuickTips.enable</span><span class="jsdoc-syntax">();
-            }
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">clearTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.clickTimeout</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragThreshMet</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">this.fireEvents</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-            }
-
-            </span><span class="jsdoc-var">this.stopDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-var">this.stopEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Utility to stop event propagation and event default, if these
-         * features are turned on.
-         * @method stopEvent
-         * @param {Event} e the event as returned by this.getEvent()
-         * @static
-         */
-        </span><span class="jsdoc-var">stopEvent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.stopPropagation</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">e.stopPropagation</span><span class="jsdoc-syntax">();
-            }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.preventDefault</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Internal function to clean up event handlers after the drag
-         * operation is complete
-         * @method stopDrag
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">stopDrag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-comment">// Fire the drag end event for the item that was dragged
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragThreshMet</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">this.dragCurrent.b4EndDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">this.dragCurrent.endDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-var">this.dragCurrent.onMouseUp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-            }
-
-            </span><span class="jsdoc-var">this.dragCurrent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-var">this.dragOvers </span><span class="jsdoc-syntax">= {};
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Internal function to handle the mousemove event.  Will be invoked
-         * from the context of the html element.
-         *
-         * @TODO figure out what we can do about mouse events lost when the
-         * user drags objects beyond the window boundary.  Currently we can
-         * detect this in internet explorer by verifying that the mouse is
-         * down during the mousemove event.  Firefox doesn't give us the
-         * button state on the mousemove event.
-         * @method handleMouseMove
-         * @param {Event} e the event
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">handleMouseMove</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-comment">// var button = e.which || e.button;
-
-            // check for IE mouseup outside of page boundary
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">e.button </span><span class="jsdoc-syntax">!== 0 &amp;&amp; </span><span class="jsdoc-var">e.button </span><span class="jsdoc-syntax">!== 1 &amp;&amp; </span><span class="jsdoc-var">e.button </span><span class="jsdoc-syntax">!== 2)) {
-                </span><span class="jsdoc-var">this.stopEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.handleMouseUp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-            }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.dragThreshMet</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">diffX </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startX </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">e.getPageX</span><span class="jsdoc-syntax">());
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">diffY </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Math.abs</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startY </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">e.getPageY</span><span class="jsdoc-syntax">());
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">diffX </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">this.clickPixelThresh </span><span class="jsdoc-syntax">||
-                            </span><span class="jsdoc-var">diffY </span><span class="jsdoc-syntax">&gt; </span><span class="jsdoc-var">this.clickPixelThresh</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">this.startDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.startX</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.startY</span><span class="jsdoc-syntax">);
-                }
-            }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragThreshMet</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">this.dragCurrent.b4Drag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-var">this.dragCurrent.onDrag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.dragCurrent.moveOnly</span><span class="jsdoc-syntax">){
-                    </span><span class="jsdoc-var">this.fireEvents</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
-                }
-            }
-
-            </span><span class="jsdoc-var">this.stopEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Iterates over all of the DragDrop elements to find ones we are
-         * hovering over or dropping on
-         * @method fireEvents
-         * @param {Event} e the event
-         * @param {boolean} isDrop is this a drop op or a mouseover op?
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">fireEvents</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">isDrop</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-comment">// If the user did the mouse up outside of the window, we could
-            // get here even though we have ended the drag.
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dc </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">dc.isLocked</span><span class="jsdoc-syntax">()) {
-                </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getPoint</span><span class="jsdoc-syntax">();
-
-            </span><span class="jsdoc-comment">// cache the previous dragOver array
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oldOvers </span><span class="jsdoc-syntax">= [];
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">outEvts   </span><span class="jsdoc-syntax">= [];
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">overEvts  </span><span class="jsdoc-syntax">= [];
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dropEvts  </span><span class="jsdoc-syntax">= [];
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">enterEvts </span><span class="jsdoc-syntax">= [];
-
-            </span><span class="jsdoc-comment">// Check to see if the object(s) we were hovering over is no longer
-            // being hovered over so we can fire the onDragOut event
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.dragOvers</span><span class="jsdoc-syntax">) {
-
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ddo </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dragOvers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ddo</span><span class="jsdoc-syntax">)) {
-                    </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                }
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isOverTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ddo</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mode</span><span class="jsdoc-syntax">)) {
-                    </span><span class="jsdoc-var">outEvts.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">ddo </span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-var">oldOvers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.dragOvers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-            }
-
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sGroup </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">dc.groups</span><span class="jsdoc-syntax">) {
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;string&quot; </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                }
-
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">)) {
-                        </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                    }
-
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD.isTarget </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">oDD.isLocked</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-var">dc</span><span class="jsdoc-syntax">) {
-                        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isOverTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.mode</span><span class="jsdoc-syntax">)) {
-                            </span><span class="jsdoc-comment">// look for drop interactions
-                            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isDrop</span><span class="jsdoc-syntax">) {
-                                </span><span class="jsdoc-var">dropEvts.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">);
-                            </span><span class="jsdoc-comment">// look for drag enter and drag over interactions
-                            </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-
-                                </span><span class="jsdoc-comment">// initial drag over: dragEnter fires
-                                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">oldOvers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">]) {
-                                    </span><span class="jsdoc-var">enterEvts.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">);
-                                </span><span class="jsdoc-comment">// subsequent drag overs: dragOver fires
-                                </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                                    </span><span class="jsdoc-var">overEvts.push</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">);
-                                }
-
-                                </span><span class="jsdoc-var">this.dragOvers</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">;
-                            }
-                        }
-                    }
-                }
-            }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.mode</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">outEvts.length</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">outEvts</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">outEvts</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">enterEvts.length</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.onDragEnter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">enterEvts</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">overEvts.length</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">overEvts</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">overEvts</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dropEvts.length</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dropEvts</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dropEvts</span><span class="jsdoc-syntax">);
-                }
-
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-comment">// fire dragout events
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= 0;
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">outEvts.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">outEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragOut</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">outEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-comment">// fire enter events
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0,</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">enterEvts.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-comment">// dc.b4DragEnter(e, oDD.id);
-                    </span><span class="jsdoc-var">dc.onDragEnter</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">enterEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-comment">// fire over events
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0,</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">overEvts.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">overEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragOver</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">overEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                }
-
-                </span><span class="jsdoc-comment">// fire drop events
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0, </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">dropEvts.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">dc.b4DragDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dropEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">dc.onDragDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dropEvts</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">);
-                }
-
-            }
-
-            </span><span class="jsdoc-comment">// notify about a drop that did not find a target
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">isDrop </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">dropEvts.length</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">dc.onInvalidDrop</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
-            }
-
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Helper function for getting the best match from the list of drag
-         * and drop objects returned by the drag and drop events when we are
-         * in INTERSECT mode.  It returns either the first object that the
-         * cursor is over, or the object that has the greatest overlap with
-         * the dragged element.
-         * @method getBestMatch
-         * @param  {DragDrop[]} dds The array of drag and drop objects
-         * targeted
-         * @return {DragDrop}       The best single match
-         * @static
-         */
-        </span><span class="jsdoc-var">getBestMatch</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">winner </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-comment">// Return null if the input is not what we expect
-            //if (!dds || !dds.length || dds.length == 0) {
-               // winner = null;
-            // If there is only one item, it wins
-            //} else if (dds.length == 1) {
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dds.length</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">== 1) {
-                </span><span class="jsdoc-var">winner </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[0];
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-comment">// Loop through the targeted items
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">=0; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">&lt;</span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; ++</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dd </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dds</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-                    </span><span class="jsdoc-comment">// If the cursor is over the object, it wins.  If the
-                    // cursor is over multiple matches, the first one we come
-                    // to wins.
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dd.cursorIsOver</span><span class="jsdoc-syntax">) {
-                        </span><span class="jsdoc-var">winner </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">;
-                        </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
-                    </span><span class="jsdoc-comment">// Otherwise the object with the most overlap wins
-                    </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">winner </span><span class="jsdoc-syntax">||
-                            </span><span class="jsdoc-var">winner.overlap.getArea</span><span class="jsdoc-syntax">() &lt; </span><span class="jsdoc-var">dd.overlap.getArea</span><span class="jsdoc-syntax">()) {
-                            </span><span class="jsdoc-var">winner </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dd</span><span class="jsdoc-syntax">;
-                        }
-                    }
-                }
-            }
-
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">winner</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Refreshes the cache of the top-left and bottom-right points of the
-         * drag and drop objects in the specified group(s).  This is in the
-         * format that is stored in the drag and drop instance, so typical
-         * usage is:
-         * &lt;code&gt;
-         * Roo.dd.DragDropMgr.refreshCache(ddinstance.groups);
-         * &lt;/code&gt;
-         * Alternatively:
-         * &lt;code&gt;
-         * Roo.dd.DragDropMgr.refreshCache({group1:true, group2:true});
-         * &lt;/code&gt;
-         * @TODO this really should be an indexed array.  Alternatively this
-         * method could accept both.
-         * @method refreshCache
-         * @param {Object} groups an associative array of groups to refresh
-         * @static
-         */
-        </span><span class="jsdoc-var">refreshCache</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sGroup </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">groups</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;string&quot; </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
-                }
-                </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">]) {
-                    </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oDD </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.ids</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">sGroup</span><span class="jsdoc-syntax">][</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">)) {
-                    </span><span class="jsdoc-comment">// if (this.isTypeOfDD(oDD) &amp;&amp; oDD.isTarget) {
-                        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">loc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLocation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">);
-                        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">loc</span><span class="jsdoc-syntax">) {
-                            </span><span class="jsdoc-var">this.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">loc</span><span class="jsdoc-syntax">;
-                        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                            </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oDD.id</span><span class="jsdoc-syntax">];
-                            </span><span class="jsdoc-comment">// this will unregister the drag and drop object if
-                            // the element is not in a usable state
-                            // oDD.unreg();
-                        </span><span class="jsdoc-syntax">}
-                    }
-                }
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * This checks to make sure an element exists and is in the DOM.  The
-         * main purpose is to handle cases where innerHTML is used to remove
-         * drag and drop objects from the DOM.  IE provides an 'unspecified
-         * error' when trying to access the offsetParent of such an element
-         * @method verifyEl
-         * @param {HTMLElement} el the element to check
-         * @return {boolean} true if the element looks usable
-         * @static
-         */
-        </span><span class="jsdoc-var">verifyEl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isIE</span><span class="jsdoc-syntax">){
-                    </span><span class="jsdoc-keyword">try</span><span class="jsdoc-syntax">{
-                        </span><span class="jsdoc-var">parent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.offsetParent</span><span class="jsdoc-syntax">;
-                    }</span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">){}
-                }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
-                    </span><span class="jsdoc-var">parent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.offsetParent</span><span class="jsdoc-syntax">;
-                }
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-                }
-            }
-
-            </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns a Region object containing the drag and drop element's position
-         * and size, including the padding configured for it
-         * @method getLocation
-         * @param {DragDrop} oDD the drag and drop object to get the
-         *                       location for
-         * @return {Roo.lib.Region} a Region object representing the total area
-         *                             the element occupies, including any padding
-         *                             the instance is configured for.
-         * @static
-         */
-        </span><span class="jsdoc-var">getLocation</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(! </span><span class="jsdoc-var">this.isTypeOfDD</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oDD</span><span class="jsdoc-syntax">)) {
-                </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">oDD.getEl</span><span class="jsdoc-syntax">(), </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">x1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">x2</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">y2</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Dom.getXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
-            } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) { }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">return null</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">x1 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">[0];
-            </span><span class="jsdoc-var">x2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x1 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetWidth</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-var">y1 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">[1];
-            </span><span class="jsdoc-var">y2 </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y1 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetHeight</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y1 </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">oDD.padding</span><span class="jsdoc-syntax">[0];
-            </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x2 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">oDD.padding</span><span class="jsdoc-syntax">[1];
-            </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">y2 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">oDD.padding</span><span class="jsdoc-syntax">[2];
-            </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">x1 </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">oDD.padding</span><span class="jsdoc-syntax">[3];
-
-            </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.lib.Region</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Checks the cursor location to see if it over the target
-         * @method isOverTarget
-         * @param {Roo.lib.Point} pt The point to evaluate
-         * @param {DragDrop} oTarget the DragDrop object we are inspecting
-         * @return {boolean} true if the mouse is over the target
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">isOverTarget</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oTarget</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">intersect</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-comment">// use cache if available
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">loc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oTarget.id</span><span class="jsdoc-syntax">];
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">loc </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.useCache</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">loc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.getLocation</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oTarget</span><span class="jsdoc-syntax">);
-                </span><span class="jsdoc-var">this.locationCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oTarget.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">loc</span><span class="jsdoc-syntax">;
-
-            }
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">loc</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">oTarget.cursorIsOver </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">loc.contains</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">pt </span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-comment">// DragDrop is using this as a sanity check for the initial mousedown
-            // in this case we are done.  In POINT mode, if the drag obj has no
-            // contraints, we are also done. Otherwise we need to evaluate the
-            // location of the target as related to the actual location of the
-            // dragged element.
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">dc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">dc </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">dc.getTargetCoord </span><span class="jsdoc-syntax">||
-                    (!</span><span class="jsdoc-var">intersect </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">dc.constrainX </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">dc.constrainY</span><span class="jsdoc-syntax">)) {
-                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">oTarget.cursorIsOver</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">oTarget.overlap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-
-            </span><span class="jsdoc-comment">// Get the current location of the drag element, this is the
-            // location of the mouse event less the delta that represents
-            // where the original mousedown happened on the element.  We
-            // need to consider constraints and ticks as well.
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dc.getTargetCoord</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pt.x</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pt.y</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dc.getDragEl</span><span class="jsdoc-syntax">();
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">curRegion </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.lib.Region</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">pos.y</span><span class="jsdoc-syntax">,
-                                                   </span><span class="jsdoc-var">pos.x </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetWidth</span><span class="jsdoc-syntax">,
-                                                   </span><span class="jsdoc-var">pos.y </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">el.offsetHeight</span><span class="jsdoc-syntax">,
-                                                   </span><span class="jsdoc-var">pos.x </span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">overlap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">curRegion.intersect</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">loc</span><span class="jsdoc-syntax">);
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">overlap</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">oTarget.overlap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">overlap</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">intersect</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">oTarget.cursorIsOver</span><span class="jsdoc-syntax">;
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * unload event handler
-         * @method _onUnload
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_onUnload</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">me</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-var">Roo.dd.DragDropMgr.unregAll</span><span class="jsdoc-syntax">();
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Cleans up the drag and drop events and objects.
-         * @method unregAll
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">unregAll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dragCurrent</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">this.stopDrag</span><span class="jsdoc-syntax">();
-                </span><span class="jsdoc-var">this.dragCurrent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-            }
-
-            </span><span class="jsdoc-var">this._execOnAll</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;unreg&quot;</span><span class="jsdoc-syntax">, []);
-
-            </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">this.elementCache</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.elementCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
-            }
-
-            </span><span class="jsdoc-var">this.elementCache </span><span class="jsdoc-syntax">= {};
-            </span><span class="jsdoc-var">this.ids </span><span class="jsdoc-syntax">= {};
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * A cache of DOM elements
-         * @property elementCache
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">elementCache</span><span class="jsdoc-syntax">: {},
-
-        </span><span class="jsdoc-comment">/**
-         * Get the wrapper for the DOM element specified
-         * @method getElWrapper
-         * @param {String} id the id of the element to get
-         * @return {Roo.dd.DDM.ElementWrapper} the wrapped element
-         * @private
-         * @deprecated This wrapper isn't that useful
-         * @static
-         */
-        </span><span class="jsdoc-var">getElWrapper</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oWrapper </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.elementCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">oWrapper </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">oWrapper.el</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">oWrapper </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.elementCache</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">] =
-                    </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">this.ElementWrapper</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">));
-            }
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">oWrapper</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the actual DOM element
-         * @method getElement
-         * @param {String} id the id of the elment to get
-         * @return {Object} The element
-         * @deprecated use Roo.getDom instead
-         * @static
-         */
-        </span><span class="jsdoc-var">getElement</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the style property for the DOM element (i.e.,
-         * document.getElById(id).style)
-         * @method getCss
-         * @param {String} id the id of the elment to get
-         * @return {Object} The style property of the element
-         * @deprecated use Roo.getDom instead
-         * @static
-         */
-        </span><span class="jsdoc-var">getCss</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-var">el.style </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Inner class for cached elements
-         * @class DragDropMgr.ElementWrapper
-         * @for DragDropMgr
-         * @private
-         * @deprecated
-         */
-        </span><span class="jsdoc-var">ElementWrapper</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-comment">/**
-                 * The element
-                 * @property el
-                 */
-                </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-comment">/**
-                 * The element id
-                 * @property id
-                 */
-                </span><span class="jsdoc-var">this.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el.id</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-comment">/**
-                 * A reference to the style property
-                 * @property css
-                 */
-                </span><span class="jsdoc-var">this.css </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">el.style</span><span class="jsdoc-syntax">;
-            },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the X position of an html element
-         * @method getPosX
-         * @param el the element for which to get the position
-         * @return {int} the X coordinate
-         * @for DragDropMgr
-         * @deprecated use Roo.lib.Dom.getX instead
-         * @static
-         */
-        </span><span class="jsdoc-var">getPosX</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.lib.Dom.getX</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the Y position of an html element
-         * @method getPosY
-         * @param el the element for which to get the position
-         * @return {int} the Y coordinate
-         * @deprecated use Roo.lib.Dom.getY instead
-         * @static
-         */
-        </span><span class="jsdoc-var">getPosY</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.lib.Dom.getY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Swap two nodes.  In IE, we use the native method, for others we
-         * emulate the IE behavior
-         * @method swapNode
-         * @param n1 the first node to swap
-         * @param n2 the other node to swap
-         * @static
-         */
-        </span><span class="jsdoc-var">swapNode</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n2</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n1.swapNode</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">n1.swapNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n2</span><span class="jsdoc-syntax">);
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n2.parentNode</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n2.nextSibling</span><span class="jsdoc-syntax">;
-
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">p.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n2</span><span class="jsdoc-syntax">);
-                } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n2 </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">n1.nextSibling</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-var">p.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n2</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">);
-                } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                    </span><span class="jsdoc-var">n1.parentNode.replaceChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n2</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">);
-                    </span><span class="jsdoc-var">p.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n1</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">);
-                }
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the current scroll position
-         * @method getScroll
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">getScroll</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dde</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">document.documentElement</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">db</span><span class="jsdoc-syntax">=</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dde </span><span class="jsdoc-syntax">&amp;&amp; (</span><span class="jsdoc-var">dde.scrollTop </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">dde.scrollLeft</span><span class="jsdoc-syntax">)) {
-                </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dde.scrollTop</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dde.scrollLeft</span><span class="jsdoc-syntax">;
-            } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">db</span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">db.scrollTop</span><span class="jsdoc-syntax">;
-                </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">db.scrollLeft</span><span class="jsdoc-syntax">;
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-
-            }
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{ </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">left</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">};
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Returns the specified element style property
-         * @method getStyle
-         * @param {HTMLElement} el          the element
-         * @param {string}      styleProp   the style property
-         * @return {string} The value of the style property
-         * @deprecated use Roo.lib.Dom.getStyle
-         * @static
-         */
-        </span><span class="jsdoc-var">getStyle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">styleProp</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.fly</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">styleProp</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Gets the scrollTop
-         * @method getScrollTop
-         * @return {int} the document's scrollTop
-         * @static
-         */
-        </span><span class="jsdoc-var">getScrollTop</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getScroll</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.top</span><span class="jsdoc-syntax">; },
-
-        </span><span class="jsdoc-comment">/**
-         * Gets the scrollLeft
-         * @method getScrollLeft
-         * @return {int} the document's scrollTop
-         * @static
-         */
-        </span><span class="jsdoc-var">getScrollLeft</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.getScroll</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.left</span><span class="jsdoc-syntax">; },
-
-        </span><span class="jsdoc-comment">/**
-         * Sets the x/y position of an element to the location of the
-         * target element.
-         * @method moveToEl
-         * @param {HTMLElement} moveEl      The element to move
-         * @param {HTMLElement} targetEl    The position reference element
-         * @static
-         */
-        </span><span class="jsdoc-var">moveToEl</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">moveEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">targetEl</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">aCoord </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.lib.Dom.getXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">targetEl</span><span class="jsdoc-syntax">);
-            </span><span class="jsdoc-var">Roo.lib.Dom.setXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">moveEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">aCoord</span><span class="jsdoc-syntax">);
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Numeric array sort function
-         * @method numericSort
-         * @static
-         */
-        </span><span class="jsdoc-var">numericSort</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">- </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">); },
-
-        </span><span class="jsdoc-comment">/**
-         * Internal counter
-         * @property _timeoutCount
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_timeoutCount</span><span class="jsdoc-syntax">: 0,
-
-        </span><span class="jsdoc-comment">/**
-         * Trying to make the load order less important.  Without this we get
-         * an error if this file is loaded before the Event Utility.
-         * @method _addListeners
-         * @private
-         * @static
-         */
-        </span><span class="jsdoc-var">_addListeners</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">DDM </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.dd.DDM</span><span class="jsdoc-syntax">;
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">Roo.lib.Event </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">document </span><span class="jsdoc-syntax">) {
-                </span><span class="jsdoc-var">DDM._onLoad</span><span class="jsdoc-syntax">();
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">DDM._timeoutCount </span><span class="jsdoc-syntax">&gt; 2000) {
-                } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                    </span><span class="jsdoc-var">setTimeout</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">DDM._addListeners</span><span class="jsdoc-syntax">, 10);
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">) {
-                        </span><span class="jsdoc-var">DDM._timeoutCount </span><span class="jsdoc-syntax">+= 1;
-                    }
-                }
-            }
-        },
-
-        </span><span class="jsdoc-comment">/**
-         * Recursively searches the immediate parent and all child nodes for
-         * the handle element in order to determine wheter or not it was
-         * clicked.
-         * @method handleWasClicked
-         * @param node the html element to inspect
-         * @static
-         */
-        </span><span class="jsdoc-var">handleWasClicked</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">) {
-            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isHandle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node.id</span><span class="jsdoc-syntax">)) {
-                </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-            } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                </span><span class="jsdoc-comment">// check to see if this is a text node child of the one we want
-                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.parentNode</span><span class="jsdoc-syntax">;
-
-                </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">) {
-                    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isHandle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p.id</span><span class="jsdoc-syntax">)) {
-                        </span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
-                    } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-                        </span><span class="jsdoc-var">p </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p.parentNode</span><span class="jsdoc-syntax">;
-                    }
-                }
-            }
-
-            </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
-        }
-
-    };
-
-}();
-
-</span><span class="jsdoc-comment">// shorter alias, save a few bytes
-</span><span class="jsdoc-var">Roo.dd.DDM </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.dd.DragDropMgr</span><span class="jsdoc-syntax">;
-</span><span class="jsdoc-var">Roo.dd.DDM._addListeners</span><span class="jsdoc-syntax">();
-
-}</span></code></body></html>
\ No newline at end of file