code: function( name, obj ) {
              var parts = name.split('.'),
                  parent = this,
                  length;
  
              length = parts.length - 1;
  
              for (var i = 0, m = length; i < m; i += 1) {
                  parent[ parts[i] ] = parent[ parts[i] ] || {};
                  parent = parent[ parts[i] ];
              }
  
              if ( obj ) {
                  if ( !isType( parent[ parts[length] ], typeNameUndefined ) ) {
                      throw new Error("Can't overwrite '" + name + "' of defined!");
                  }
  
                  parent[ parts[length] ] = obj;
              }
              else if ( isType( parent[parts[length]], typeNameUndefined ) ) {
                  parent[ parts[length] ] = {};
              }
  
              return parent[parts[length]];
          }
docs: @module BaseJS
   
  managed Crisp Namespace
  
  @param       {external:String} name    Dot seperatet Namespace-Path
  @param       {AnyItem}         [obj]   Any type of Objects
  
  @this        module:BaseJS
  @return      {AnyItem} node of Namespace
  
  @memberOf    module:BaseJS
  
  @tutorial {@link http://opencrisp.wca.at/tutorials/BaseJS_test.html#ns|use ns}
  
  @example
  // GET
  Crisp.ns('a'); // return reference of a = {}
  
  // SET and GET
  Crisp.ns('b', { a: 'A' }); // return reference of b = { a: 'A' }