var Mouse = {
  toString: function() {
    return '[Mouse]';
  },
  getButton: function( e ) {
    var rv = { right: false, left: false, middle: false };
    if ( !e ) var e = window.event;
    if ( e.which )
      rv = { right: e.which == 3, left: e.which == 1, middle: e.which == 2 };
  	else if ( e.button )
  	  rv = { right: e.button == 2, left: e.button == 1, middle: e.button == 4 };
    return rv;
  },
  getXY: function( e ) {
    var rv = null;
    if ( !e )
      var e = window.event;
    var body = ( document.documentElement )
      ? document.documentElement : document.body;
    if ( e.pageX || e.pageY ) {
      rv = { x: e.pageX, y: e.pageY };
    } else if ( e.clientX || e.clientY ) {
      rv = { x: e.clientX + body.scrollLeft, y: e.clientY + body.scrollTop };
    } else if ( e.screenX || e.screenY ) {
      rv = { x: e.screenX + body.scrollLeft, y: e.screenY + body.scrollTop };
    } else if ( e.x || e.y ) {
      rv = { x: e.x, y: e.y };
    }
    return rv;
  }
}