Enable "strict" mode -- and fix one missing "var" declaration.
[dygraphs.git] / dygraph-interaction-model.js
index 645c258..4018769 100644 (file)
@@ -1,12 +1,17 @@
-// Copyright 2011 Robert Konigsberg (konigsberg@google.com)
-// All Rights Reserved.
+/**
+ * @license
+ * Copyright 2011 Robert Konigsberg (konigsberg@google.com)
+ * MIT-licensed (http://opensource.org/licenses/MIT)
+ */
 
-/** 
+/**
  * @fileoverview The default interaction model for Dygraphs. This is kept out
  * of dygraph.js for better navigability.
  * @author Robert Konigsberg (konigsberg@google.com)
  */
 
+"use strict";
+
 
 /**
  * A collection of functions to facilitate build custom interaction models.
@@ -126,7 +131,7 @@ Dygraph.Interaction.movePan = function(event, g, context) {
 
       var pixelsDragged = context.dragEndY - context.dragStartY;
       var unitsDragged = pixelsDragged * axis.unitsPerPixel;
+
       var boundedValue = context.boundedValues ? context.boundedValues[i] : null;
 
       // In log scale, maxValue and minValue are the logs of those values.
@@ -263,7 +268,8 @@ Dygraph.Interaction.treatMouseOpAsClick = function(g, event, context) {
       var p = g.selPoints_[i];
       var distance = Math.pow(p.canvasx - context.dragEndX, 2) +
                      Math.pow(p.canvasy - context.dragEndY, 2);
-      if (closestIdx == -1 || distance < closestDistance) {
+      if (!isNaN(distance) &&
+          (closestIdx == -1 || distance < closestDistance)) {
         closestDistance = distance;
         closestIdx = i;
       }
@@ -319,7 +325,7 @@ Dygraph.Interaction.endZoom = function(event, g, context) {
     g.doZoomY_(Math.min(context.dragStartY, context.dragEndY),
                Math.max(context.dragStartY, context.dragEndY));
   } else {
-    g.canvas_ctx_.clearRect(0, 0, g.canvas_.width, g.canvas_.height);
+    g.clearZoomRect_();
   }
   context.dragStartX = null;
   context.dragStartY = null;
@@ -393,7 +399,7 @@ Dygraph.endPan = Dygraph.Interaction.endPan;
 Dygraph.movePan = Dygraph.Interaction.movePan;
 Dygraph.startPan = Dygraph.Interaction.startPan;
 
-Dygraph.Interaction.nonInteractiveModel = {
+Dygraph.Interaction.nonInteractiveModel_ = {
   mousedown: function(event, g, context) {
     context.initializeMouseDown(event, g, context);
   },