
window.namespace = new function () {
	var self = this;
	
	// somewhere to store namespace data
	self.current = null;
	self.spaces = {};
	
	//create a new namespace
	self.create = function (name) {
		// check if namespace already exists
		if (typeof(self.spaces[name]) != 'undefined')
			return false;
		
		self.spaces[name] = {};
		window[name] = self.spaces[name];
		return true;
	};
	
	self.use = function (name) {
		var k;
		// unload current (old) namespace from window
		if (self.current)
			for (k in self.spaces[self.current])
				window[k] = undefined;

		// unset current (old) namespace
		self.current = null;
		
		// check if new namespace exists
		if (!self.exists(name))
			return false;
		
		// set current (new) namespace
		self.current = name;
		
		// load current (new) namespace into window
		for (k in self.spaces[self.current])
			window[k] = self.spaces[self.current][k];
			
		return true;
	};
	
	self.exists = function (name) {
		// check if new namespace exists
		if (typeof(self.spaces[name]) == 'undefined')
			return false;
		return true;
	};

};
