/******* GLOBALS [BEGIN] *******/

var is_opera = /opera\/9/i.test(navigator.userAgent);
var is_gecko = /gecko/i.test(navigator.userAgent);
var is_ie    = /MSIE/.test(navigator.userAgent);

/******* GLOBALS [END] *******/
function Cursor () {
	
	var xCoordinate;
	var yCoordinate;
	
	var truebody = function (){
		
		if(!window.opera && document.compatMode && document.compatMode!="BackCompat"){
			
			return document.documentElement;
		}
		else{
			
			return document.body;
		}
	}
	
	this.updateCursorPosition = function (DOMEvent) {
		
		if (is_ie) {
			
			xCoordinate = event.clientX + truebody().scrollLeft;
			yCoordinate = event.clientY + truebody().scrollTop;			
		} 
		else {
			
			xCoordinate = DOMEvent.pageX > 0 ? DOMEvent.pageX : 0;
			yCoordinate = DOMEvent.pageY > 0 ? DOMEvent.pageY : 0;
		}
	}
	
	this.getX = function () {
		
	   return xCoordinate;
	}
	
	this.getY = function () {
		
	   return yCoordinate;
	}
}

var cursorObj = new Cursor();
if(!is_ie){
	
	document.captureEvents(Event.MOUSEMOVE);
}

document.onmousemove = cursorObj.updateCursorPosition;

