/*!* jQuery UI Mouse 1.8.4** Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Mouse** Depends:*	jquery.ui.widget.js*/(function( $, undefined ) {
$.widget("ui.mouse", {
options: {
cancel: ':input,option',
distance: 1,
delay: 0},
_mouseInit: function() {
var self = this;
this.element.bind('mousedown.'+this.widgetName, function(event) {
return self._mouseDown(event);}).bind('click.'+this.widgetName, function(event) {
if(self._preventClickEvent) {
self._preventClickEvent = false;
event.stopImmediatePropagation();
return false;}});
this.started = false;},
_mouseDestroy: function() {
this.element.unbind('.'+this.widgetName);},
_mouseDown: function(event) {
event.originalEvent = event.originalEvent || {};
if (event.originalEvent.mouseHandled) { return; }(this._mouseStarted && this._mouseUp(event));
this._mouseDownEvent = event;
var self = this,
btnIsLeft = (event.which == 1),
elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
return true;}
this.mouseDelayMet = !this.options.delay;
if (!this.mouseDelayMet) {
this._mouseDelayTimer = setTimeout(function() {
self.mouseDelayMet = true;}, this.options.delay);}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted = (this._mouseStart(event) !== false);
if (!this._mouseStarted) {
event.preventDefault();
return true;}}
this._mouseMoveDelegate = function(event) {
return self._mouseMove(event);};
this._mouseUpDelegate = function(event) {
return self._mouseUp(event);};
$(document).bind('mousemove.'+this.widgetName, this._mouseMoveDelegate).bind('mouseup.'+this.widgetName, this._mouseUpDelegate);($.browser.safari || event.preventDefault());
event.originalEvent.mouseHandled = true;
return true;},
_mouseMove: function(event) {
if ($.browser.msie && !event.button) {
return this._mouseUp(event);}
if (this._mouseStarted) {
this._mouseDrag(event);
return event.preventDefault();}
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
this._mouseStarted =(this._mouseStart(this._mouseDownEvent, event) !== false);(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));}
return !this._mouseStarted;},
_mouseUp: function(event) {
$(document).unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate).unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
if (this._mouseStarted) {
this._mouseStarted = false;
this._preventClickEvent = (event.target == this._mouseDownEvent.target);
this._mouseStop(event);}
return false;},
_mouseDistanceMet: function(event) {
return (Math.max(
Math.abs(this._mouseDownEvent.pageX-event.pageX),
Math.abs(this._mouseDownEvent.pageY-event.pageY)) >= this.options.distance);},
_mouseDelayMet: function(event) {
return this.mouseDelayMet;},
_mouseStart: function(event) {},
_mouseDrag: function(event) {},
_mouseStop: function(event) {},
_mouseCapture: function(event) { return true; }});})(jQuery);

