docs: function (point, mouseEvent) {
              var tooltip = this,
                chart = tooltip.chart,
                label = tooltip.label,
                options = tooltip.options,
                x,
                y,
                anchor,
                textConfig = {},
                text,
                pointConfig = [],
                formatter = options.formatter || tooltip.defaultFormatter,
                hoverPoints = chart.hoverPoints,
                borderColor,
                shared = tooltip.shared,
                currentSeries;
  
              clearTimeout(this.hideTimer);
  
              // get the reference point coordinates (pie charts use tooltipPos)
              tooltip.followPointer = splat(point)[0].series.tooltipOptions.followPointer;
              anchor = tooltip.getAnchor(point, mouseEvent);
              x = anchor[0];
              y = anchor[1];
  
              // shared tooltip, array is sent over
              if (shared && !(point.series && point.series.noSharedTooltip)) {
  
                  // hide previous hoverPoints and set new
  
                  chart.hoverPoints = point;
                  if (hoverPoints) {
                      each(hoverPoints, function (point) {
                          point.setState();
                      });
                  }
  
                  each(point, function (item) {
                      item.setState(HOVER_STATE);
  
                      pointConfig.push(item.getLabelConfig());
                  });
  
                  textConfig = {
                      x: point[0].category,
                      y: point[0].y
                  };
                  textConfig.points = pointConfig;
                  this.len = pointConfig.length;
                  point = point[0];
  
                  // single point tooltip
              } else {
                  textConfig = point.getLabelConfig();
              }
              text = formatter.call(textConfig, tooltip);
  
              // register the current series
              currentSeries = point.series;
              this.distance = pick(currentSeries.tooltipOptions.distance, 16);
  
              // update the inner HTML
              if (text === false) {
                  this.hide();
              } else {
  
                  // show it
                  if (tooltip.isHidden) {
                      stop(label);
                      label.attr('opacity', 1).show();
                  }
  
                  // update text
                  label.attr({
                      text: text
                  });
  
                  // set the stroke color of the box
                  borderColor = options.borderColor || point.color || currentSeries.color || '#606060';
                  label.attr({
                      stroke: borderColor
                  });
  
                  tooltip.updatePosition({ plotX: x, plotY: y, negative: point.negative, ttBelow: point.ttBelow });
  
                  this.isHidden = false;
              }
              fireEvent(chart, 'tooltipRefresh', {
                  text: text,
                  x: x + chart.plotLeft,
                  y: y + chart.plotTop,
                  borderColor: borderColor
              });
          }