code: function drop() {
  			if (selectionMarker) {
  				var selectionData = {
  						xAxis: [],
  						yAxis: []
  					},
  					selectionBox = selectionMarker.getBBox(),
  					selectionLeft = selectionBox.x - plotLeft,
  					selectionTop = selectionBox.y - plotTop;
  
  
  				// a selection has been made
  				if (hasDragged) {
  
  					// record each axis' min and max
  					each(axes, function (axis) {
  						var translate = axis.translate,
  							isXAxis = axis.isXAxis,
  							isHorizontal = inverted ? !isXAxis : isXAxis,
  							selectionMin = translate(
  								isHorizontal ?
  									selectionLeft :
  									plotHeight - selectionTop - selectionBox.height,
  								true,
  								0,
  								0,
  								1
  							),
  							selectionMax = translate(
  								isHorizontal ?
  									selectionLeft + selectionBox.width :
  									plotHeight - selectionTop,
  								true,
  								0,
  								0,
  								1
  							);
  
  							selectionData[isXAxis ? 'xAxis' : 'yAxis'].push({
  								axis: axis,
  								min: mathMin(selectionMin, selectionMax), // for reversed axes,
  								max: mathMax(selectionMin, selectionMax)
  							});
  
  					});
  					fireEvent(chart, 'selection', selectionData, zoom);
  
  				}
  				selectionMarker = selectionMarker.destroy();
  			}
  
  			chart.mouseIsDown = mouseIsDown = hasDragged = false;
  			removeEvent(doc, hasTouch ? 'touchend' : 'mouseup', drop);
  
  		}
docs: Mouse up or outside the plot area