/**
 * common-mouse-coordinates.js
 *  Handles coordinates and events for mouse
 *
 * When an event is needed add or remove it using addMouseEvent and delMouseEvent,
 * possibly passing no parameters but if doing that, only static ones
 * (the methods are called from a setTimeout function as strings).
 *
 * The coordinates for the mouse are:
 * clientMouseX, clientMouseY: client position of the mouse (rendering area)
 */

var clientMouseX, clientMouseY;
var mouseEventList = new Array();

function addMouseEvent(s)
{
	var found = false;
	for(var i = 0; i < mouseEventList.length && !found; i++)
		if(mouseEventList[i] == s)
			found = true;
			
	if(!found)
		mouseEventList[mouseEventList.length] = s;
		
	return true;
}

function delMouseEvent(s)
{
	var found = false;
	for(var i = 0; i < mouseEventList.length && !found; i++)
		if(mouseEventList[i] == s)
			mouseEventList.splice(i, 1);
			
	return true;
}

// TODO: Implement also other browser (Konqueror in primis)
function eventMouseMove(e)
{
	if(isBrowserNetscape())
	{
		clientMouseX = e.pageX;
		clientMouseY = e.pageY;
	}
	else 
		if(isBrowserExplorer())
		{
			clientMouseX = event.x;
			clientMouseY = event.y;
		}
		
	for(var i = 0; i < mouseEventList.length ; i++)
		setTimeout(mouseEventList[i], 0);
		
	return true;
}

document.onmousemove=eventMouseMove
