code: function on(eventName, callback) {
    	if (objectType(eventName) !== "string") {
    		throw new TypeError("eventName must be a string when registering a listener");
    	} else if (!inArray(eventName, SUPPORTED_EVENTS)) {
    		var events = SUPPORTED_EVENTS.join(", ");
    		throw new Error("\"" + eventName + "\" is not a valid event; must be one of: " + events + ".");
    	} else if (objectType(callback) !== "function") {
    		throw new TypeError("callback must be a function when registering a listener");
    	}
  
    	if (!LISTENERS[eventName]) {
    		LISTENERS[eventName] = [];
    	}
  
    	// Don't register the same callback more than once
    	if (!inArray(callback, LISTENERS[eventName])) {
    		LISTENERS[eventName].push(callback);
    	}
    }
docs: Registers a callback as a listener to the specified event.
  
  @public
  @method on
  @param {String} eventName
  @param {Function} callback
  @return {Void}