/*
  Mouse.js - Mouse JavaScript API

  Version:	1.0.4
  Requires:	Browser.js
  Author:	David Oliveira <d.oliveira@mm.ciben.pt>
 */

	var
		__mouse_coords = new Array(2),
		__mouse_moveevent_functions = new Array;


	function MouseCoords() {

		return __mouse_coords;

	}

	function MouseWithin (x,y,xx,yy) {
		var Mouse = MouseCoords();
		return ((Mouse[0] >= x) && (Mouse[0] <= xx) && (Mouse[1] >= y) && (Mouse[1] <= yy));
	}

	function MouseMoveEvent(e) {

		// Get values from IE/Netscape

		if ( Browser_is_IE() ) {
			__mouse_coords[0] = event.clientX + document.body.scrollLeft;
			__mouse_coords[1] = event.clientY + document.body.scrollTop;
		}
		else {
			__mouse_coords[0] = e.pageX;
			__mouse_coords[1] = e.pageY;
		}

		// Fix negative values

		for ( var x = 0 ; x < 2 ; x++ )
			if ( __mouse_coords[x] < 0 ) __mouse_coords[x] = 0;

		// Run MoveEvent functions

		MouseRunMoveEvent(e);

		return 1;

	}

	function MouseRunMoveEvent (e) {

		for ( x = 0 ; x < __mouse_moveevent_functions.length ; x++ ) {
			var func = __mouse_moveevent_functions[x];
			func(e);
		}

		return 1;

	}

	function MouseAddMoveEvent (func) {

		__mouse_moveevent_functions[__mouse_moveevent_functions.length] = func;

	}

	if ( !Browser_is_IE() )
		document.captureEvents(Event.MOUSEMOVE);

	document.onmousemove = MouseMoveEvent;
