File:GoogleAnalyticsPlugin.js

/**
 * @module Google Analytics
 * @namespace springroll
 * @requires Core
 */
(function(undefined)
{
	// Include classes
	var ApplicationPlugin = include('springroll.ApplicationPlugin');

	/**
	 * @class Application
	 */
	var plugin = new ApplicationPlugin(10);

	plugin.setup = function()
	{
		/**
		 * Track a Google Analytics event
		 * @method analyticEvent
		 * @param {String} action The action label
		 * @param {String} [label] The optional label for the event
		 * @param {Number} [value] The optional value for the event
		 */
		this.analyticEvent = function(action, label, value)
		{
			var data = {
				category: this.name,
				action: action,
				label: label,
				value: value
			};

			if (this.container)
			{
				this.container.send('analyticEvent', data);
			}

			/**
			 * An event was sent for Google Analtyics
			 * @event analyticEvent
			 * @param {Object} data
			 * @param {String} data.category The event category
			 * @param {String} data.action The event action
			 * @param {String} [data.label] Optional label
			 * @param {Number} [data.value] Optional value
			 */
			this.trigger('analyticEvent', data);
		};
	};

	plugin.teardown = function()
	{
		this.analyticEvent = null;
	};

}());