docs: function () {
  		var series = this,
  			options = series.options,
  			trackerPath = [].concat(series.graphPath),
  			trackerPathLength = trackerPath.length,
  			chart = series.chart,
  			snap = chart.options.tooltip.snap,
  			tracker = series.tracker,
  			cursor = options.cursor,
  			css = cursor && { cursor: cursor },
  			singlePoints = series.singlePoints,
  			singlePoint,
  			i;
  
  		// Extend end points. A better way would be to use round linecaps,
  		// but those are not clickable in VML.
  		if (trackerPathLength) {
  			i = trackerPathLength + 1;
  			while (i--) {
  				if (trackerPath[i] === M) { // extend left side
  					trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], L);
  				}
  				if ((i && trackerPath[i] === M) || i === trackerPathLength) { // extend right side
  					trackerPath.splice(i, 0, L, trackerPath[i - 2] + snap, trackerPath[i - 1]);
  				}
  			}
  		}
  
  		// handle single points
  		for (i = 0; i < singlePoints.length; i++) {
  			singlePoint = singlePoints[i];
  			trackerPath.push(M, singlePoint.plotX - snap, singlePoint.plotY,
  				L, singlePoint.plotX + snap, singlePoint.plotY);
  		}
  
  		// draw the tracker
  		if (tracker) {
  			tracker.attr({ d: trackerPath });
  
  		} else { // create
  			series.tracker = chart.renderer.path(trackerPath)
  				.attr({
  					isTracker: true,
  					stroke: TRACKER_FILL,
  					fill: NONE,
  					'stroke-width' : options.lineWidth + 2 * snap,
  					visibility: series.visible ? VISIBLE : HIDDEN,
  					zIndex: options.zIndex || 1
  				})
  				.on(hasTouch ? 'touchstart' : 'mouseover', function () {
  					if (chart.hoverSeries !== series) {
  						series.onMouseOver();
  					}
  				})
  				.on('mouseout', function () {
  					if (!options.stickyTracking) {
  						series.onMouseOut();
  					}
  				})
  				.css(css)
  				.add(chart.trackerGroup);
  		}
  
  	}