if(typeof(He) == 'undefined') // First bootstrap is manual // Next ones will be made thru He.boostrap { He = {}; } He.IsObject = function(a) { return a !== null && typeof(a) == 'object'; }; He.IsFunction = function(a) { return typeof(a) == "function"; }; He.IsString = function(a) { return typeof(a) == "string"; }; He.IsNumber = function(a) { return typeof(a) == "number"; }; He.IsBoolean = function(a) { return typeof(a) == "boolean"; }; He.IsUndefined = function(a) { return typeof(a) == "undefined"; }; He.IsArray = function(a) { return He.IsObject(a) && a instanceof Array; }; He.IsEmpty = function(a) { return He.IsString(a) && (a === "" || a === "0") || He.IsNumber(a) && a === 0 || He.IsBoolean(a) && a === false || He.IsArray(a) && a.length == 0 || He.IsObject(a) && a === null || He.IsUndefined(a); }; He.Bootstrap = function(_place) // _place : [in:string] a dot separated list of nodes "He.Components.Etc." // returns : the (valid) last object of the list // Usage : He.Bootstrap("He.Components").NewComponent = { /* Define New Component Here */ }; { if(!He.IsString(_place)) { return null; } // He.Log('Bootstrapping : ',_place); if(_place.substr(0,3) != 'He.') { _place = 'He.' + _place; // Allways Start @ He } var ret = window; _place = _place.split('.'); for(var i = 0; i < _place.length; ++i) { var o = _place[i]; if(!He.IsObject(ret[o])) { ret[o] = new Object; } ret = ret[o]; } return ret; };