src/Application.js
function Application(ctx, config) {
	// validate params
	if (!ctx && !config) {
		// both empty
		ctx = document;
		config = {};
	}
	else if (Utils.isNode(config)) {
		// reverse order of arguments
		var tmpConfig = config;
		config = ctx;
		ctx = tmpConfig;
	}
	else if (!Utils.isNode(ctx) && !config) {
		// only config is given
		config = ctx;
		ctx = document;
	}
	else if (Utils.isNode(ctx) && !config) {
		// only ctx is given
		config = {};
	}

	var defaults = {
		namespace: Module
	};

	config = Utils.extend(defaults, config);

	/**
	 * The context node.
	 *
	 * @property _ctx
	 * @type Node
	 */
	this._ctx = Utils.getElement(ctx);

	/**
	 * The configuration.
	 *
	 * @property config
	 * @type Object
	 */
	this._config = config;

	/**
	 * The sandbox to get the resources from.
	 * The singleton is shared between all modules.
	 *
	 * @property _sandbox
	 * @type Sandbox
	 */
	this._sandbox = new Sandbox(this);

	/**
	 * Contains references to all modules on the page.
	 *
	 * @property _modules
	 * @type Object
	 */
	this._modules = {};

	/**
	 * The next unique module id to use.
	 *
	 * @property id
	 * @type Number
	 */
	this._id = 1;
}
function Application(ctx, config) {
	// validate params
	if (!ctx && !config) {
		// both empty
		ctx = document;
		config = {};
	}
	else if (Utils.isNode(config)) {
		// reverse order of arguments
		var tmpConfig = config;
		config = ctx;
		ctx = tmpConfig;
	}
	else if (!Utils.isNode(ctx) && !config) {
		// only config is given
		config = ctx;
		ctx = document;
	}
	else if (Utils.isNode(ctx) && !config) {
		// only ctx is given
		config = {};
	}

	var defaults = {
		namespace: Module
	};

	config = Utils.extend(defaults, config);

	/**
	 * The context node.
	 *
	 * @property _ctx
	 * @type Node
	 */
	this._ctx = Utils.getElement(ctx);

	/**
	 * The configuration.
	 *
	 * @property config
	 * @type Object
	 */
	this._config = config;

	/**
	 * The sandbox to get the resources from.
	 * The singleton is shared between all modules.
	 *
	 * @property _sandbox
	 * @type Sandbox
	 */
	this._sandbox = new Sandbox(this);

	/**
	 * Contains references to all modules on the page.
	 *
	 * @property _modules
	 * @type Object
	 */
	this._modules = {};

	/**
	 * The next unique module id to use.
	 *
	 * @property id
	 * @type Number
	 */
	this._id = 1;
}
function Application ( ctx , config ) { // validate params if ( ! ctx && ! config ) { // both empty ctx = document ; config = { } ; } else if ( Utils . isNode ( config ) ) { // reverse order of arguments var tmpConfig = config ; config = ctx ; ctx = tmpConfig ; } else if ( ! Utils . isNode ( ctx ) && ! config ) { // only config is given config = ctx ; ctx = document ; } else if ( Utils . isNode ( ctx ) && ! config ) { // only ctx is given config = { } ; } var defaults = { namespace : Module } ; config = Utils . extend ( defaults , config ) ; /**
	 * The context node.
	 *
	 * @property _ctx
	 * @type Node
	 */ this . _ctx = Utils . getElement ( ctx ) ; /**
	 * The configuration.
	 *
	 * @property config
	 * @type Object
	 */ this . _config = config ; /**
	 * The sandbox to get the resources from.
	 * The singleton is shared between all modules.
	 *
	 * @property _sandbox
	 * @type Sandbox
	 */ this . _sandbox = new Sandbox ( this ) ; /**
	 * Contains references to all modules on the page.
	 *
	 * @property _modules
	 * @type Object
	 */ this . _modules = { } ; /**
	 * The next unique module id to use.
	 *
	 * @property id
	 * @type Number
	 */ this . _id = 1 ; }
Responsible for application-wide issues such as the creation of modules.

@author Remo Brunschwiler
@namespace T
@class Application

@constructor
@param {Node} ctx
The context node
@param {Object} config
The configuration
 /* global Sandbox, Utils, Module
Responsible for application - wide issues such as the creation of modules .