integration/lib/jquery-ui/ui/jquery.ui.droppable.js
author veltr
Thu, 16 May 2013 15:01:43 +0200
changeset 10 34df8e58b6fc
parent 2 78f71aa0a477
permissions -rw-r--r--
Added some code to bootstrap Metadataplayer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     1
/*!
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     2
 * jQuery UI Droppable 1.10.3
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     3
 * http://jqueryui.com
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     4
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     5
 * Copyright 2013 jQuery Foundation and other contributors
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     6
 * Released under the MIT license.
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     7
 * http://jquery.org/license
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     8
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     9
 * http://api.jqueryui.com/droppable/
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    10
 *
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    11
 * Depends:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    12
 *	jquery.ui.core.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    13
 *	jquery.ui.widget.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    14
 *	jquery.ui.mouse.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    15
 *	jquery.ui.draggable.js
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    16
 */
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    17
(function( $, undefined ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    18
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    19
function isOverAxis( x, reference, size ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    20
	return ( x > reference ) && ( x < ( reference + size ) );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    21
}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    22
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    23
$.widget("ui.droppable", {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    24
	version: "1.10.3",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    25
	widgetEventPrefix: "drop",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    26
	options: {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    27
		accept: "*",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    28
		activeClass: false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    29
		addClasses: true,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    30
		greedy: false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    31
		hoverClass: false,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    32
		scope: "default",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    33
		tolerance: "intersect",
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    34
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    35
		// callbacks
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    36
		activate: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    37
		deactivate: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    38
		drop: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    39
		out: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    40
		over: null
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    41
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    42
	_create: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    43
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    44
		var o = this.options,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    45
			accept = o.accept;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    46
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    47
		this.isover = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    48
		this.isout = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    49
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    50
		this.accept = $.isFunction(accept) ? accept : function(d) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    51
			return d.is(accept);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    52
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    53
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    54
		//Store the droppable's proportions
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    55
		this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    56
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    57
		// Add the reference and positions to the manager
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    58
		$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    59
		$.ui.ddmanager.droppables[o.scope].push(this);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    60
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    61
		(o.addClasses && this.element.addClass("ui-droppable"));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    62
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    63
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    64
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    65
	_destroy: function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    66
		var i = 0,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    67
			drop = $.ui.ddmanager.droppables[this.options.scope];
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    68
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    69
		for ( ; i < drop.length; i++ ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    70
			if ( drop[i] === this ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    71
				drop.splice(i, 1);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    72
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    73
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    74
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    75
		this.element.removeClass("ui-droppable ui-droppable-disabled");
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    76
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    77
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    78
	_setOption: function(key, value) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    79
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    80
		if(key === "accept") {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    81
			this.accept = $.isFunction(value) ? value : function(d) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    82
				return d.is(value);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    83
			};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    84
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    85
		$.Widget.prototype._setOption.apply(this, arguments);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    86
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    87
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    88
	_activate: function(event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    89
		var draggable = $.ui.ddmanager.current;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    90
		if(this.options.activeClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    91
			this.element.addClass(this.options.activeClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    92
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    93
		if(draggable){
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    94
			this._trigger("activate", event, this.ui(draggable));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    95
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    96
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    97
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    98
	_deactivate: function(event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    99
		var draggable = $.ui.ddmanager.current;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   100
		if(this.options.activeClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   101
			this.element.removeClass(this.options.activeClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   102
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   103
		if(draggable){
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   104
			this._trigger("deactivate", event, this.ui(draggable));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   105
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   106
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   107
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   108
	_over: function(event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   109
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   110
		var draggable = $.ui.ddmanager.current;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   111
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   112
		// Bail if draggable and droppable are same element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   113
		if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   114
			return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   115
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   116
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   117
		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   118
			if(this.options.hoverClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   119
				this.element.addClass(this.options.hoverClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   120
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   121
			this._trigger("over", event, this.ui(draggable));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   122
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   123
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   124
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   125
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   126
	_out: function(event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   127
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   128
		var draggable = $.ui.ddmanager.current;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   129
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   130
		// Bail if draggable and droppable are same element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   131
		if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   132
			return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   133
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   134
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   135
		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   136
			if(this.options.hoverClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   137
				this.element.removeClass(this.options.hoverClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   138
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   139
			this._trigger("out", event, this.ui(draggable));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   140
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   141
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   142
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   143
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   144
	_drop: function(event,custom) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   145
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   146
		var draggable = custom || $.ui.ddmanager.current,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   147
			childrenIntersection = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   148
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   149
		// Bail if draggable and droppable are same element
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   150
		if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   151
			return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   152
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   153
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   154
		this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   155
			var inst = $.data(this, "ui-droppable");
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   156
			if(
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   157
				inst.options.greedy &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   158
				!inst.options.disabled &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   159
				inst.options.scope === draggable.options.scope &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   160
				inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) &&
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   161
				$.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   162
			) { childrenIntersection = true; return false; }
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   163
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   164
		if(childrenIntersection) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   165
			return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   166
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   167
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   168
		if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   169
			if(this.options.activeClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   170
				this.element.removeClass(this.options.activeClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   171
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   172
			if(this.options.hoverClass) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   173
				this.element.removeClass(this.options.hoverClass);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   174
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   175
			this._trigger("drop", event, this.ui(draggable));
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   176
			return this.element;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   177
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   178
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   179
		return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   180
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   181
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   182
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   183
	ui: function(c) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   184
		return {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   185
			draggable: (c.currentItem || c.element),
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   186
			helper: c.helper,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   187
			position: c.position,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   188
			offset: c.positionAbs
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   189
		};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   190
	}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   191
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   192
});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   193
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   194
$.ui.intersect = function(draggable, droppable, toleranceMode) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   195
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   196
	if (!droppable.offset) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   197
		return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   198
	}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   199
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   200
	var draggableLeft, draggableTop,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   201
		x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   202
		y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   203
		l = droppable.offset.left, r = l + droppable.proportions.width,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   204
		t = droppable.offset.top, b = t + droppable.proportions.height;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   205
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   206
	switch (toleranceMode) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   207
		case "fit":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   208
			return (l <= x1 && x2 <= r && t <= y1 && y2 <= b);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   209
		case "intersect":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   210
			return (l < x1 + (draggable.helperProportions.width / 2) && // Right Half
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   211
				x2 - (draggable.helperProportions.width / 2) < r && // Left Half
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   212
				t < y1 + (draggable.helperProportions.height / 2) && // Bottom Half
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   213
				y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   214
		case "pointer":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   215
			draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   216
			draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   217
			return isOverAxis( draggableTop, t, droppable.proportions.height ) && isOverAxis( draggableLeft, l, droppable.proportions.width );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   218
		case "touch":
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   219
			return (
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   220
				(y1 >= t && y1 <= b) ||	// Top edge touching
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   221
				(y2 >= t && y2 <= b) ||	// Bottom edge touching
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   222
				(y1 < t && y2 > b)		// Surrounded vertically
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   223
			) && (
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   224
				(x1 >= l && x1 <= r) ||	// Left edge touching
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   225
				(x2 >= l && x2 <= r) ||	// Right edge touching
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   226
				(x1 < l && x2 > r)		// Surrounded horizontally
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   227
			);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   228
		default:
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   229
			return false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   230
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   231
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   232
};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   233
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   234
/*
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   235
	This manager tracks offsets of draggables and droppables
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   236
*/
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   237
$.ui.ddmanager = {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   238
	current: null,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   239
	droppables: { "default": [] },
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   240
	prepareOffsets: function(t, event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   241
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   242
		var i, j,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   243
			m = $.ui.ddmanager.droppables[t.options.scope] || [],
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   244
			type = event ? event.type : null, // workaround for #2317
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   245
			list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   246
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   247
		droppablesLoop: for (i = 0; i < m.length; i++) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   248
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   249
			//No disabled and non-accepted
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   250
			if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   251
				continue;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   252
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   253
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   254
			// Filter out elements in the current dragged item
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   255
			for (j=0; j < list.length; j++) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   256
				if(list[j] === m[i].element[0]) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   257
					m[i].proportions.height = 0;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   258
					continue droppablesLoop;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   259
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   260
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   261
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   262
			m[i].visible = m[i].element.css("display") !== "none";
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   263
			if(!m[i].visible) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   264
				continue;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   265
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   266
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   267
			//Activate the droppable if used directly from draggables
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   268
			if(type === "mousedown") {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   269
				m[i]._activate.call(m[i], event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   270
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   271
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   272
			m[i].offset = m[i].element.offset();
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   273
			m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   274
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   275
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   276
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   277
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   278
	drop: function(draggable, event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   279
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   280
		var dropped = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   281
		// Create a copy of the droppables in case the list changes during the drop (#9116)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   282
		$.each(($.ui.ddmanager.droppables[draggable.options.scope] || []).slice(), function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   283
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   284
			if(!this.options) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   285
				return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   286
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   287
			if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   288
				dropped = this._drop.call(this, event) || dropped;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   289
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   290
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   291
			if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   292
				this.isout = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   293
				this.isover = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   294
				this._deactivate.call(this, event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   295
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   296
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   297
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   298
		return dropped;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   299
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   300
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   301
	dragStart: function( draggable, event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   302
		//Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   303
		draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   304
			if( !draggable.options.refreshPositions ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   305
				$.ui.ddmanager.prepareOffsets( draggable, event );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   306
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   307
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   308
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   309
	drag: function(draggable, event) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   310
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   311
		//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   312
		if(draggable.options.refreshPositions) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   313
			$.ui.ddmanager.prepareOffsets(draggable, event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   314
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   315
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   316
		//Run through all droppables and check their positions based on specific tolerance options
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   317
		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   318
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   319
			if(this.options.disabled || this.greedyChild || !this.visible) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   320
				return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   321
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   322
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   323
			var parentInstance, scope, parent,
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   324
				intersects = $.ui.intersect(draggable, this, this.options.tolerance),
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   325
				c = !intersects && this.isover ? "isout" : (intersects && !this.isover ? "isover" : null);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   326
			if(!c) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   327
				return;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   328
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   329
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   330
			if (this.options.greedy) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   331
				// find droppable parents with same scope
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   332
				scope = this.options.scope;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   333
				parent = this.element.parents(":data(ui-droppable)").filter(function () {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   334
					return $.data(this, "ui-droppable").options.scope === scope;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   335
				});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   336
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   337
				if (parent.length) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   338
					parentInstance = $.data(parent[0], "ui-droppable");
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   339
					parentInstance.greedyChild = (c === "isover");
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   340
				}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   341
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   342
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   343
			// we just moved into a greedy child
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   344
			if (parentInstance && c === "isover") {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   345
				parentInstance.isover = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   346
				parentInstance.isout = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   347
				parentInstance._out.call(parentInstance, event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   348
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   349
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   350
			this[c] = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   351
			this[c === "isout" ? "isover" : "isout"] = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   352
			this[c === "isover" ? "_over" : "_out"].call(this, event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   353
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   354
			// we just moved out of a greedy child
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   355
			if (parentInstance && c === "isout") {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   356
				parentInstance.isout = false;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   357
				parentInstance.isover = true;
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   358
				parentInstance._over.call(parentInstance, event);
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   359
			}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   360
		});
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   361
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   362
	},
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   363
	dragStop: function( draggable, event ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   364
		draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   365
		//Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   366
		if( !draggable.options.refreshPositions ) {
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   367
			$.ui.ddmanager.prepareOffsets( draggable, event );
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   368
		}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   369
	}
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   370
};
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   371
b95aebb070b5 first commit back office front metadatacomposer
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   372
})(jQuery);