whole_func_string: function checkKeyNamespace(key) {
  
          var regDot = /\./;
          if (regDot.test(key)) {
              var fullname = '';
              var names = key.split(/\./);
              for (var i=0,j=names.length;i<j;i++) {
                  var name = names[i];
  
                  if (i > 0) {
                      fullname += '.';
                  }
  
                  fullname += name;
                  if (eval('typeof ' + fullname + ' == "undefined"')) {
                      eval(fullname + '={};');
                  }
              }
          }
      }
func_code_string: function checkKeyNamespace(key) {
  
          var regDot = /\./;
          if (regDot.test(key)) {
              var fullname = '';
              var names = key.split(/\./);
              for (var i=0,j=names.length;i<j;i++) {
                  var name = names[i];
  
                  if (i > 0) {
                      fullname += '.';
                  }
  
                  fullname += name;
                  if (eval('typeof ' + fullname + ' == "undefined"')) {
                      eval(fullname + '={};');
                  }
              }
          }
      }
func_documentation_string: Make sure namespace exists (for keys with dots in name) TODO key parts that start with numbers quietly fail. i.e. month.short.1=Jan