dojo.event.disconnect(document, "onmousemove", this, "onMouseMove"); this.currentDropTarget = null; }, 
dojo.event.disconnect(document, "onmousemove", this, "onMouseMove"); this.currentDropTarget = null; }, 
	onMouseUp: function(e, cancel){		// if we aren't dragging then ignore the mouse-up		// (in particular, don't call preventDefault(), because other		// code may need to process this event)		if(this.selectedSources.length==0){			return;		}		this.mouseDownX = null;		this.mouseDownY = null;		this._dragTriggered = false; 		// e.preventDefault();		e.dragSource = this.dragSource;		// let ctrl be used for multiselect or another action		// if I use same key to trigger treeV3 node selection and here,		// I have bugs with drag'n'drop. why ?? no idea..		if((!e.shiftKey)&&(!e.ctrlKey)){ 		//if(!e.shiftKey){			if(this.currentDropTarget) {				this.currentDropTarget.onDropStart();			}			dojo.lang.forEach(this.dragObjects, function(tempDragObj){				var ret = null;				if(!tempDragObj){ return; }				if(this.currentDropTarget) {					e.dragObject = tempDragObj;					// NOTE: we can't get anything but the current drop target					// here since the drag shadow blocks mouse-over events.					// This is probelematic for dropping "in" something					var ce = this.currentDropTarget.domNode.childNodes;					if(ce.length > 0){						e.dropTarget = ce[0];						while(e.dropTarget == tempDragObj.domNode){							e.dropTarget = e.dropTarget.nextSibling;						}					}else{						e.dropTarget = this.currentDropTarget.domNode;					}					if(this.dropAcceptable){						ret = this.currentDropTarget.onDrop(e);					}else{						 this.currentDropTarget.onDragOut(e);					}				}				e.dragStatus = this.dropAcceptable && ret ? "dropSuccess" : "dropFailure";				// decouple the calls for onDragEnd, so they don't block the execution here				// ie. if the onDragEnd would call an alert, the execution here is blocked until the				// user has confirmed the alert box and then the rest of the dnd code is executed				// while the mouse doesnt "hold" the dragged object anymore ... and so on				dojo.lang.delayThese([					function() {						// in FF1.5 this throws an exception, see 						// http://dojotoolkit.org/pipermail/dojo-interest/2006-April/006751.html						try{							tempDragObj.dragSource.onDragEnd(e)						} catch(err) {							// since the problem seems passing e, we just copy all 							// properties and try the copy ...							var ecopy = {};							for (var i in e) {								if (i=="type") { // the type property contains the exception, no idea why...									ecopy.type = "mouseup";									continue;								}								ecopy[i] = e[i];							}							tempDragObj.dragSource.onDragEnd(ecopy);						}					}					, function() {tempDragObj.onDragEnd(e)}]);			}, this);			this.selectedSources = [];			this.dragObjects = [];			this.dragSource = null;			if(this.currentDropTarget) {				this.currentDropTarget.onDropEnd();			}		} else {			//dojo.debug("special click");		}		dojo.event.disconnect(document, "onmousemove", this, "onMouseMove");		this.currentDropTarget = null;	},
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/2f1d2cb699c9d9329e8b782b0463156e211cb0f6/struts_dojo.js.uncompressed.js/buggy/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js