
var makePoint = makeMagnet;

function getMouseLocation(event, canvas) {
	var e = event;
	if (!e) {
		e = window.event;
	}
	var posx = 0;
	var posy = 0; 
	if (e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	} else {
		return;
	}
	posx -= canvas.offsetLeft;
	posy -= canvas.offsetTop;
	owner = canvas.offsetParent;
	while (owner) {
		posx -= owner.offsetLeft;
		posy -= owner.offsetTop;
		owner = owner.offsetParent;
	}
	return makePoint(posx-1,posy-1);
}

function shiftKeyDown(event) {
	var e = event;
	if (!e) {
		e = window.event;
	}
	return e.shiftKey;
}

function onMouseDown(event) {
	var canvas = document.getElementById("canvas");
	var point = getMouseLocation(event, canvas);
	var shift = shiftKeyDown(event);
	if (point) {
		mouseDown(point, shift);
	}
}

function onMouseMove(event) {
	if (typeof(getMouseLocation)=="undefined") {
		return;
	}
	var canvas = document.getElementById("canvas");
	var point = getMouseLocation(event, canvas);
	var shift = shiftKeyDown(event);
	mouseMove(point, shift);
}

function onMouseUp(event) {
	var canvas = document.getElementById("canvas");
	var point = getMouseLocation(event, canvas);
	var shift = shiftKeyDown(event);
	mouseUp(point, shift);
}

