if (FJ === undefined) alert('fj.js must be included first');
else {
	FJ.Brain = Class.create({
	
		CLASSNAME: 'Brain',
	
		initialize: function() {
			
			// initialize the extensions via BaseModule mixin
			this.initialize_extensions();
			
			this.LISTENERS.BODY.push(function(event) { FJ.display(); });
		}
	});
	
	// mixin modules
	FJ.Brain.addMethods(FJ.Modules.BaseModule);
	FJ.Brain.addMethods(FJ.Modules.BrowserListeners);
	FJ.Brain.addMethods(FJ.Modules.InstanceRegistration);
	
	// place an instance method on the FJ superobject
	FJ.brain = function () {
		var instance = FJ.get_singleton("Brain");
		if (instance == null) instance = FJ.set_singleton("Brain", new FJ.Brain());
		return instance;
	}
	
	// instantiate the brain
	FJ.brain();
}