function getMouseOffset(target, ev){
	ev = ev || window.event;
	var docPos  = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function mouseCoords(ev, target){

	ev = ev || window.event;
	var docPos = getPosition(target);
	
	if (ev.pageX != null || ev.pageY != null || navigator.appName.indexOf('explorer') > -1) {
		var mx = ev.pageX || 0; 
		var my = ev.pageY || 0;
	}
	else {
		//var mx = ev.clientX + document.body.scrollLeft - document.body.clientLeft;
		//var my = ev.clientY + document.body.scrollTop  - document.body.clientTop;
		var mx = ev.clientX + document.documentElement.scrollLeft - document.body.clientTop; 
		var my = ev.clientY + document.documentElement.scrollTop;
	}
	
	return {x: mx, y:my, offsetX: mx- docPos.x, offsetY: my - docPos.y};
}


function getPosition(e) {
	if (e) {
		var left = 0;
		var top  = 0;
		while (e.offsetParent) {
			left += e.offsetLeft;
			top  += e.offsetTop;
			e     = e.offsetParent;
		}
		left += e.offsetLeft;
		top  += e.offsetTop;
		return {x:left, y:top};
	}
	else return {x:0, y:0};
}