function MouseMonitor()
{
	var x=0;
	var y=0;
	var selfObj=this;
	var widgets=new Array();
	
	this.getX=function()
	{
		return x;
	}
	
	this.getY=function()
	{
		return y;
	}
	
	this.setPositions=function(e)
	{

		/*
	

		if(Config.browserName=="msie" && event && document.body)
		{

			x=event.clientX + document.body.scrollLeft;
			y=event.clientY + document.body.scrollTop;
		}
		else
		{	
			x=e.pageX;
			y=e.pageY;
		}
		*/
		if(typeof e === 'undefined' || !e) var e = window.event;
		
		if (document.documentElement && document.documentElement.scrollTop)
			x = document.documentElement.scrollTop;
		else if (document.body)
			x = document.body.scrollTop;
			
		if (document.documentElement && document.documentElement.scrolLeft)
			y = document.documentElement.scrollLeft;
		else if (document.body)
			y = document.body.scrollLeft;			
			
		x = e.clientX + x;			
		y = e.clientY + y;			
			
		for(var i=0;i<widgets.length;i++)
		{
			if(widgets[i])
			{			
				try
				{	
					widgets[i].onMouseMove();
				}catch(err){}
			}
		}
	}	
	/**
	*@param object 
	*@return number 	the index inside the "widgets" collection
	*@desc 	Register a widget with this controller
	*/
	this.register=function(widget)
	{
		if(typeof widget != "object")
		{
			return -1;
		}
		
		for(var i=0;i<widgets.length;i++)
		{
			if(!widgets[i])
			{
				widgets[i]=widget;
				return i;
				alert(widgets.length);
			}
		}
		widgets.push(widget);			
		return widgets.length-1;		
	}
	
	this.remove=function(wdIndex)
	{
		//widgets[wdIndex]=null;
		delete widgets[wdIndex];		
	}
}

MouseMonitor.__instance__=null;
MouseMonitor.getInstance = function()
{
	if(MouseMonitor.__instance__==null)
	{
		MouseMonitor.__instance__=new MouseMonitor();
	}
	return MouseMonitor.__instance__;
}
MouseMonitor.moveEventHandler=function(e)
{	
	if(typeof e === 'undefined' || !e) var e = window.event;
	MouseMonitor.getInstance().setPositions(e);
}
if(Config.browserName=="msie")
{
	document.attachEvent("onmousemove",MouseMonitor.moveEventHandler);
}
else
{
	document.addEventListener("mousemove",MouseMonitor.moveEventHandler,false);
}


