code: function normalizeMouseEvent(e) {
  			var ePos,
  				pageZoomFix = isWebKit &&
  					doc.width / doc.body.scrollWidth -
  					1, // #224, #348
  				chartPosLeft,
  				chartPosTop,
  				chartX,
  				chartY;
  
  			// common IE normalizing
  			e = e || win.event;
  			if (!e.target) {
  				e.target = e.srcElement;
  			}
  
  			// iOS
  			ePos = e.touches ? e.touches.item(0) : e;
  
  			// in certain cases, get mouse position
  			if (e.type !== 'mousemove' || win.opera || pageZoomFix) { // only Opera needs position on mouse move, see below
  				chartPosition = getPosition(container);
  				chartPosLeft = chartPosition.left;
  				chartPosTop = chartPosition.top;
  			}
  
  			// chartX and chartY
  			if (isIE) { // IE including IE9 that has chartX but in a different meaning
  				chartX = e.x;
  				chartY = e.y;
  			} else {
  				if (ePos.layerX === UNDEFINED) { // Opera and iOS
  					chartX = ePos.pageX - chartPosLeft;
  					chartY = ePos.pageY - chartPosTop;
  				} else {
  					chartX = e.layerX;
  					chartY = e.layerY;
  				}
  			}
  
  			// correct for page zoom bug in WebKit
  			if (pageZoomFix) {
  				chartX += mathRound((pageZoomFix + 1) * chartPosLeft - chartPosLeft);
  				chartY += mathRound((pageZoomFix + 1) * chartPosTop - chartPosTop);
  			}
  
  			return extend(e, {
  				chartX: chartX,
  				chartY: chartY
  			});
  		}
docs: Add crossbrowser support for chartX and chartY
  @param {Object} e The event object in standard browsers