function Mouse () {
  this.handledObject = null;
  this.handlerVector = {top:0,left:0};
}

Mouse.prototype.setHandledObject = function (obj,event) {
  this.handledObject = obj;
  this.handlerVector.left = event.pageX-obj.getPosition().left;
  this.handlerVector.top = event.pageY-obj.getPosition().top;
}

Mouse.prototype.getHandledObject = function () {
  return this.handledObject;
}

Mouse.prototype.hasHandledObject = function () {
  return (this.handledObject!==null);
}

Mouse.prototype.clearHandledObject = function () {
  this.handledObject=null;
  this.handlerVector = {top:0,left:0};
}

Mouse.prototype.onMouseMove = function (e) {
  var mouse = desktop.getMouse();
  if (!mouse.hasHandledObject())
    return false;

  var obj = mouse.getHandledObject();
  obj.onMouseMove(e, mouse);
  e.preventDefault();
  return false;
}

Mouse.prototype.onMouseUp = function () {
  var active = desktop.getMouse().getHandledObject();
  if (!active)
    return true;
  active.onMouseUp();
  desktop.getMouse().clearHandledObject();
}

