var _mouseX = -1;
var _mouseY = -1;

function Mouse() {}

Mouse.capture = function() {
	if (document.layers) { // Netscape
	    document.captureEvents(Event.MOUSEMOVE);
	    document.onmousemove = _captureMousePosition;
	} else if (document.all) { // Internet Explorer
	    document.onmousemove = _captureMousePosition;
	} else if (document.getElementById) { // Netcsape 6
	    document.onmousemove = _captureMousePosition;
	}
}

Mouse.getPosition = function() {
	return { x: _mouseX, y: _mouseY };
}

Mouse.getX = function() {
	return _mouseX;
}

Mouse.getY = function() {
	return _mouseY;
}

function _captureMousePosition(e) {
    if (document.layers) {
        // When the page scrolls in Netscape, the event's mouse position
        // reflects the absolute position on the screen. innerHight/Width
        // is the position from the top/left of the screen that the user is
        // looking at. pageX/YOffset is the amount that the user has 
        // scrolled into the page. So the values will be in relation to
        // each other as the total offsets into the page, no matter if
        // the user has scrolled or not.
        _mouseX = e.pageX;
        _mouseY = e.pageY;
    } else if (document.all) {
        // When the page scrolls in IE, the event's mouse position 
        // reflects the position from the top/left of the screen the 
        // user is looking at. scrollLeft/Top is the amount the user
        // has scrolled into the page. clientWidth/Height is the height/
        // width of the current page the user is looking at. So, to be
        // consistent with Netscape (above), add the scroll offsets to
        // both so we end up with an absolute value on the page, no 
        // matter if the user has scrolled or not.
        if (! window.event || ! document.body)
        	return;
        	
        _mouseX = window.event.x + document.body.scrollLeft;
        _mouseY = window.event.y + document.body.scrollTop;
    } else if (document.getElementById) {
        // Netscape 6 behaves the same as Netscape 4 in this regard 
        _mouseX = e.pageX;
        _mouseY = e.pageY;
    }
}


Mouse.capture();
