code: function (allowMove, delay) {
              var pointer = this,
                chart = pointer.chart,
                hoverSeries = chart.hoverSeries,
                hoverPoint = chart.hoverPoint,
                tooltip = chart.tooltip,
                tooltipPoints = tooltip && tooltip.shared ? chart.hoverPoints : hoverPoint;
  
              // Narrow in allowMove
              allowMove = allowMove && tooltip && tooltipPoints;
  
              // Check if the points have moved outside the plot area, #1003
              if (allowMove && splat(tooltipPoints)[0].plotX === UNDEFINED) {
                  allowMove = false;
              }
  
              // Just move the tooltip, #349
              if (allowMove) {
                  tooltip.refresh(tooltipPoints);
                  if (hoverPoint) { // #2500
                      hoverPoint.setState(hoverPoint.state, true);
                  }
  
                  // Full reset
              } else {
  
                  if (hoverPoint) {
                      hoverPoint.onMouseOut();
                  }
  
                  if (hoverSeries) {
                      hoverSeries.onMouseOut();
                  }
  
                  if (tooltip) {
                      tooltip.hide(delay);
                  }
  
                  if (pointer._onDocumentMouseMove) {
                      removeEvent(doc, 'mousemove', pointer._onDocumentMouseMove);
                      pointer._onDocumentMouseMove = null;
                  }
  
                  // Remove crosshairs
                  each(chart.axes, function (axis) {
                      axis.hideCrosshair();
                  });
  
                  pointer.hoverX = null;
  
              }
          }
docs: Reset the tracking by hiding the tooltip, the hover series state and the hover point
  
  @param allowMove {Boolean} Instead of destroying the tooltip altogether, allow moving it if possible