Simian = {
	version: '2.0',
	/**
	 * Creates namespaces to be used for scoping variables and classes so that they are not global.  Usage:
	 * <pre><code>
		Simian.namespace('Company', 'Company.data');
	   </code></pre>
	 * @param {String} namespace1
	 * @param {String} namespace2
	 * @param {String} etc
	 * @method namespace
	 */
	namespace : function() {
	    var a=arguments, o=null, i, j, d, rt;
	    for (i=0; i<a.length; ++i) {
	        d=a[i].split(".");
	        rt = d[0];
	        eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
	        for (j=1; j<d.length; ++j) {
	            o[d[j]]=o[d[j]] || {};
	            o=o[d[j]];
	        }
	    }
	},
	/**
	 * Returns true if the passed value is null, undefined or an empty string (optional).
	 * @param {Mixed} value The value to test
	 * @param {Boolean} allowBlank (optional) Pass true if an empty string is not considered empty
	 * @return {Boolean}
	 */
	isEmpty : function(v, allowBlank){
	    return v === null || v === undefined || (!allowBlank ? v === '' : false);
	}
}

Simian.namespace('Simian', 'Simian.form', 'Simian.data', 'Simian.app', 'Simian.menu', 'Simian.controllers', 'Simian.views', 'Simian.widgets');

