/**
 * EventTracker Class
 * 
 * Provides functionality common to EventTrackers
 */
var EventTracker = new Class
({
  
  /**
   * Initialize the tracker and add it to the controller
   */
  initialize: function()
  {
    window.addEvent('taipanEventTracker', function()
    {
      // only continue if the _gaq object has been set, usually defined by Google Analytics
      if(typeof(_gaq) == "undefined")
        return;

      eventTrackingController.addTracker(this);
    }.pbind(this));
  },
  
  
   /**
   * Pushes the event onto the Google Analytics trackEvent queue with the relevant event data
   * 
   * @param object eventData
   */
  fireEventTracker: function(eventData)
  {
    // google analytics api for pushing an event to the event queue
    _gaq.push(['_trackEvent', eventData.category, eventData.action, eventData.opt_label, eventData.opt_value, eventData.opt_noninteraction]);
  },
  
  
  /**
   * TrackEvents, defines the functionality as to how to track the event
   * this function will be overriden by subclassed trackers
   * and will attach the fireEventTracker to its own event
   */
  trackEvents: undefined
});

