var MouseListenerOnload = window.onload;
window.onload = MouseListenerInit;
function MouseListener() {
	this.name = "MouseListener"+(MouseListener.count++);
	this.obj = this.name + "Object";
	eval(this.obj + "=this");
	
	this.move = function() {return true;}
	this.up = function() {return true;}
	this.down = function() {return true;}
}
function MouseListenerInit() {
	if(MouseListenerOnload) MouseListenerOnload();
	document.onmousedown = mouseDown;
	document.onmousemove = mouseMove;
	document.onmouseup = mouseUp;
	if (is.ns) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
}
function mouseDown(e) {
	if ((is.ns && e.which!=1) || (is.ie && event.button!=1)) return true;
	MouseListener.prototype.x = (is.ns)? e.pageX : event.x+document.body.scrollLeft;
	MouseListener.prototype.y = (is.ns)? e.pageY : event.y+document.body.scrollTop;
	if (is.ns && e.target!=document) routeEvent(e);
	else return MouseListenerDown();
}
function mouseMove(e) {
	MouseListener.prototype.x = (is.ns)? e.pageX : event.x+document.body.scrollLeft;
	MouseListener.prototype.y = (is.ns)? e.pageY : event.y+document.body.scrollTop;
	if (is.ns && e.target!=document) routeEvent(e);
	else return MouseListenerMove();
}
function mouseUp(e) {
	MouseListener.prototype.x = (is.ns)? e.pageX : event.x+document.body.scrollLeft;
	MouseListener.prototype.y = (is.ns)? e.pageY : event.y+document.body.scrollTop;
	if (is.ns && e.target!=document) routeEvent(e);
	else return MouseListenerUp();
}
function MouseListenerDown() {
	for(var i=0; i<MouseListener.count; i++) {
		eval("MouseListener" + i + "Object.down()");
	}
}
function MouseListenerMove() {
	for(var i=0; i<MouseListener.count; i++) {
		eval("MouseListener" + i + "Object.move()");
	}
}
function MouseListenerUp() {
	for(var i=0; i<MouseListener.count; i++) {
		eval("MouseListener" + i + "Object.up()");
	}
}
MouseListener.prototype.x = 0;
MouseListener.prototype.y = 0;
MouseListener.count = 0;