code: function(pageX, pageY) {
              var self = this;
              var offset = self.$map.offset();
              var initFactor = (self.options.map.width) ? (self.mapConf.width / self.options.map.width) : (self.mapConf.width / self.$map.width());
              var zoomFactor = 1 / (1 + (self.zoomData.zoomLevel * self.options.map.zoom.step));
              return {
                  x: (zoomFactor * initFactor * (pageX - offset.left)) + self.zoomData.panX,
                  y: (zoomFactor * initFactor * (pageY - offset.top)) + self.zoomData.panY
              };
          }
docs: /*
  Map a mouse position to a map position
  Transformation principle:
  ** start with (pageX, pageY) absolute mouse coordinate
  - Apply translation: take into accounts the map offset in the page
  ** from this point, we have relative mouse coordinate
  - Apply homothetic transformation: take into accounts initial factor of map sizing (fullWidth / actualWidth)
  - Apply homothetic transformation: take into accounts the zoom factor
  ** from this point, we have relative map coordinate
  - Apply translation: take into accounts the current panning of the map
  ** from this point, we have absolute map coordinate
  @param pageX: mouse client coordinate on X
  @param pageY: mouse client coordinate on Y
  @return map coordinate {x, y}