var leftMouseIsDown = false;
var rightMouseIsDown = false;
var middleMouseIsDown = false;


function mouseDown(e) {
	if (navigator.appName == 'Netscape') {
		//if(e.pageX < 0 || e.pageX >= 800 || e.pageY < 0 || e.pageY >= 600) return;
		if(e.target.name != "flashGame") return;
		
		if(e.which == 3) {
			document.flashGame.onRightMouseDown();
			e.stopPropagation();
			return false;
		} else if(e.which == 2) {
			document.flashGame.onMiddleMouseDown();
			e.stopPropagation();
			return false;
		}
	} else if (navigator.appName == 'Microsoft Internet Explorer') {
		//if(event.clientX < 0 || event.clientX >= 800 || event.clientY < 0 || event.clientY >=600) return;
		if(event.srcElement.id != "flashGame") return;
		
		if(event.button & 1 && !leftMouseIsDown) {
			leftMouseIsDown = true;
		}
		
		if(event.button & 4 && !middleMouseIsDown) {
			middleMouseIsDown = true;
			window.flashGame.onMiddleMouseDown();
		}
		
		if(event.button & 2 && !rightMouseIsDown) {
			rightMouseIsDown = true;
			window.flashGame.onRightMouseDown();
			event.cancelBubble = true;//this actually does nothing to stop the context menu in Flash from appearing
			event.stopPropagation();//this actually generates an error, thus stopping the context menu in Flash from appearing!
			return false;
		}
	}
	return true;
}

function mouseUp(e) {
	if (navigator.appName == 'Netscape') {
		//if(e.pageX < 0 || e.pageX >= 800 || e.pageY < 0 || e.pageY >= 600) return;
		if(e.target.name != "flashGame") return;
		
		if(e.which == 3) {
			document.flashGame.onRightMouseUp();
			e.stopPropagation();
			return false;
		} else if(e.which == 2) {
			document.flashGame.onMiddleMouseUp();
			e.stopPropagation();
			return false;
		}
	} else if (navigator.appName == 'Microsoft Internet Explorer') {
		//if(event.clientX < 0 || event.clientX >= 800 || event.clientY < 0 || event.clientY >=600) return;
		if(event.srcElement.id != "flashGame") return;
		
		if(event.button & 1 && leftMouseIsDown) {
			leftMouseIsDown = false;
		}
		
		if(event.button & 4 && middleMouseIsDown) {
			middleMouseIsDown = false;
			window.flashGame.onMiddleMouseUp();
		}
		
		if(event.button & 2 && rightMouseIsDown) {
			rightMouseIsDown = false;
			window.flashGame.onRightMouseUp();
			event.cancelBubble = true;//this actually does nothing to stop the context menu in Flash from appearing
			event.stopPropagation();//this actually generates an error, thus stopping the context menu in Flash from appearing!
			return false;
		}
	}
	return true;
}

document.onmousedown = mouseDown;
document.onmouseup = mouseUp;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
if (document.layers) window.captureEvents(Event.MOUSEUP);
window.onmousedown = mouseDown;
window.onmouseup = mouseUp;
document.captureEvents(Event.MOUSEDOWN);
document.getElementById("flashGame").addEventListener("mousedown", mouseDown, true);
