
/************************************************************************************************
	Mouse event capture
************************************************************************************************/
var KILL_EVENT = false;
var PASS_EVENT = true;

Thing.mouseClick = function(p){return PASS_EVENT}
Thing.mouseDown = function(p){return PASS_EVENT}
Thing.mouseMove = function(p){return PASS_EVENT}
Thing.mouseUp = function(p){return PASS_EVENT}


function getMousePosition(e){
	return ( isNS4 || isNS5 ) ? new Point( e.pageX - pageXOffset, e.pageY - pageYOffset ) : new Point( event.clientX, event.clientY );
}
Thing.captureMouseClick = function( ){
	if( isNS4 ) document.captureEvents( Event.MOUSECLICK );
	document.onclick = function(e){
		var position = getMousePosition(e)
		return Thing.mouseClick(position)
	}
}
Thing.captureMouseDown = function( ){
	if( isNS4 ) document.captureEvents( Event.MOUSEDOWN )
	document.onmousedown = function(e){
		var position = getMousePosition(e)
		return Thing.mouseDown(position)
	}
}
Thing.captureMouseUp = function( ){
	if( isNS4 ) document.captureEvents( Event.MOUSEUP )
	document.onmouseup = function(e){
		var position = getMousePosition(e)
		return Thing.mouseUp(position)
	}
}
Thing.captureMouseMove = function( ){	
	if( isNS4 ) document.captureEvents( Event.MOUSEMOVE )
	document.onmousemove = function(e){	
		var position = getMousePosition(e)
		return Thing.mouseMove(position)
	}
}

Point.prototype.isInRect = function(p1, p2){
	return ( (this.x >= p1.x) && (this.x < p2.x) && (this.y >= p1.y) && (this.y <= p2.y) );
}
Thing.prototype.isHit = function(p){
	return p.wrtPage().isInRect( this.position, this.position.add(this.size) )
}