src/js/stores/ErrorStore.js
function registeredCallback(payload) {
	var action = payload.action;
	var chartProps;
	var error_messages;
	var input_errors;

	switch(action.eventName) {
		/* *
		* Data input updated or reparse called
		* */
		case "update-data-input":
		case "update-and-reparse":

			Dispatcher.waitFor([ChartPropertiesStore.dispatchToken]);
			chartProps = ChartPropertiesStore.getAll();

			error_messages = [];
			input_errors = validateDataInput(chartProps);
			error_messages = error_messages.concat(input_errors);

			_errors.messages = error_messages.map(function(err_name) {
				return errorNames[err_name];
			});

			var isInvalid = some(_errors.messages, { type: "error" } );
			_errors.valid = !isInvalid;

			ErrorStore.emitChange();
			break;

		default:
			// do nothing
	}

	return true;

}
function registeredCallback(payload) {
	var action = payload.action;
	var chartProps;
	var error_messages;
	var input_errors;

	switch(action.eventName) {
		/* *
		* Data input updated or reparse called
		* */
		case "update-data-input":
		case "update-and-reparse":

			Dispatcher.waitFor([ChartPropertiesStore.dispatchToken]);
			chartProps = ChartPropertiesStore.getAll();

			error_messages = [];
			input_errors = validateDataInput(chartProps);
			error_messages = error_messages.concat(input_errors);

			_errors.messages = error_messages.map(function(err_name) {
				return errorNames[err_name];
			});

			var isInvalid = some(_errors.messages, { type: "error" } );
			_errors.valid = !isInvalid;

			ErrorStore.emitChange();
			break;

		default:
			// do nothing
	}

	return true;

}
/* Respond to actions coming from the dispatcher