// Copyright 2007 Google, Inc.
// This sample code is under the Apache2 license, see
// http://www.apache.org/licenses/LICENSE-2.0 for license details.

/**
 * @fileoverview Wrapper for Mouseover Tracking
 */

/**
 * @class Mouseover Tracker.
 *     This class provides basic logic to track the first mouseover on
 *     a given object. It is motivated by the fact that many mouseovers
 *     may occur on an object, and the first provides the most useful data
 *     whereas others may simply incur wasteful additional calls.
 *
 * @param {Object} tracker The GA tracker to use for mouseover tracking.
 * @param {String} opt_obj_name Optional object name for the event tracker,
 *     overriding the default which is "MouseoverTracker".
 * @constructor
 */
var MouseoverTracker = function(tracker, opt_obj_name) {
  if (typeof tracker == "undefined") {
    throw new Error("Mouseover tracker constructor requires GA tracker object.");
  }
  this.tracker_ = tracker;
  this.tracked_ = false;
  if (opt_obj_name != undefined) {
    this.obj_name_ = opt_obj_name;
  } else {
    this.obj_name_ = 'MouseoverTracker';
  }
};

/**
 * Tracks the mouseover if it has not been tracked before.
 */
MouseoverTracker.prototype._trackMouseover = function() {
  if (!this.tracked_) {
    eventTracker = this.tracker_._createEventTracker(this.obj_name_);
    eventTracker._trackEvent('Mouseover');
    this.tracked_ = true;
  }
};
