var isIE = document.all ? true : false;

if (!isIE) document.captureEvents(Event.MOUSEMOVE);

document.onmousemove = SetMousePosition;

var mousePosition = [0, 0];

function SetMousePosition(e) {
	if (isIE) {
		mousePosition[0] = event.clientX + document.body.scrollLeft;
		mousePosition[1] = event.clientY + document.body.scrollTop;
	}
	else {
		mousePosition[0] = e.pageX;
		mousePosition[1] = e.pageY;
	}

	if (mousePosition[0] < 0) {
		mousePosition[0] = 0;
	}
	if (mousePosition[1] < 0) {
		mousePosition[1] = 0;
	}
}

function GetMousePosition() {
	return mousePosition;
}

function MouseInRect(mousePos, rect) {
	var start = [rect[0][0], rect[0][1]];
	var end = [rect[0][0] + rect[1][0], rect[0][1] + rect[1][1]];

	return (mousePos[0] > start[0] && mousePos[0] < end[0]) && (mousePos[1] > start[1] && mousePos[1] < end[1]);
}

function MouseNearPoint(mousePos, point, approx) {
	var pointRect = [
		[point[0] - approx, point[1] - approx],
		[approx * 2, approx * 2]
	];

	return MouseInRect(mousePos, pointRect);
}
