docs: function($super, properties) {
              $super(properties);
              var self = this;
              $.extend(true, this.hcConfig, {
                  chart: {
                      events: {
                          load: function() {
                              var chart = this,
                                  tooltipSelector = ".highcharts-tooltip *",
                                  hoveredPoint = null,
                                  tooltipHide = chart.tooltip.hide,
                                  // re-usable function to extract the corresponding point from an event
                                  extractPoint = function(event) {
                                      var $target = $(event.target);
                                      if(!$target.is(self.pointCssSelector)) {
                                          return false;
                                      }
                                      return (chart.series[$target.attr('data-series')].data[$target.attr('data-point')]);
                                  };
  
                              // with the VML renderer, have to explicitly destroy the tracker so it doesn't block mouse events
                              if(!self.hasSVG && chart.tracker) {
                                  chart.tracker.destroy();
                              }
                              // create a closure around the tooltip hide method so that we can make sure we always hide the selected series when it is called
                              // this is a work-around for the situation when the mouse moves out of the chart container element without triggering a mouse event
                              chart.tooltip.hide = function(silent) {
                                  tooltipHide();
                                  if(!silent && hoveredPoint) {
                                      hoveredPoint.firePointEvent('mouseOut');
                                      hoveredPoint = null;
                                  }
                              };
  
                              // decorate each point element with the info we need to map it to its corresponding data object
                              $(chart.series).each(function(i, series) {
                                  $(series.data).each(function(j, point) {
                                      if(point.graphic && point.graphic.element) {
                                          $(point.graphic.element).attr('data-series', i);
                                          $(point.graphic.element).attr('data-point', j);
                                      }
                                  });
                              });
                              // we are not using mouse trackers, so attach event handlers to the chart's container element
                              $(chart.container).bind('click.splunk_jscharting', function(event) {
                                  var point = extractPoint(event);
                                  if(point) {
                                      point.firePointEvent('click', event);
                                  }
                              });
                              // handle all mouseover events in the container here
                              // if they are over the tooltip, ignore them (this avoids the dreaded tooltip flicker)
                              // otherwise hide any point that is currently in a 'hover' state and 'hover' the target point as needed
                              $(chart.container).bind('mouseover.splunk_jscharting', function(event) {
                                  if($(event.target).is(tooltipSelector)) {
                                      return;
                                  }
                                  var point = extractPoint(event);
                                  if(hoveredPoint && !(point && hoveredPoint === point)) {
                                      hoveredPoint.firePointEvent('mouseOut');
                                      chart.tooltip.hide(true);
                                      hoveredPoint = null;
                                  }
                                  if(point) {
                                      point.firePointEvent('mouseOver');
                                      chart.tooltip.refresh(point);
                                      hoveredPoint = point;
                                  }
                              });
                          }
                      }
                  }
              });
          }