docs: function(className) {
          var cls = _classes[className];
          if (!cls) {
              var k, name,
              def = window["TFW::" + className];
              if (!def) {
                  throw new Error(
                      "[TFW3] This class has not been defined: \"" + className + "\"!\n"
                          + "Did you forget to include it?"
                  );
              }
              // Création de la classe à partir de sa définition.
              cls = function () {};
              var superclass = TFW3Object;
              if (def.superclass) {
                  superclass = loadClass(def.superclass);
              }
              // Héritage
              cls.prototype = new superclass();
              // Eviter que le constructeur de cette classe soit celui de la super classe.
              cls.prototype.constructor = cls;
              // Définition de l'attribut $parent pour accéder aux méthodes parentes.
              cls.prototype.$parent = superclass.prototype;
              // Multilangues.
              if (typeof def.lang === "object") {
                  cls.prototype.$lang = def.lang;
                  for (k in def.lang) {
                      cls.prototype.$defLang = k;
                      break;
                  }
              } else {
                  cls.prototype.$lang = superclass.prototype.$lang || {};
                  cls.prototype.$defLang = superclass.prototype.$defLang || "en";
              }
              // Conserver le nom de la super classe.
              cls.prototype.$superclass = superclass.prototype.$classname;
              // Conserver le nom de la classe.
              cls.prototype.$classname = className;
              // Les noms des signals.
              cls.prototype.$signals = def.signals;
              // Est-ce un singleton ?
              cls.prototype.$singleton = def.singleton;
              // Espace réservé aux membres statiques de la classe.
              var staticVars = {className: className};
              _statics[className] = staticVars;
              cls.prototype.$static = staticVars;
              // Valeurs par défaut des attributs.
              if (def.attributes) {
                  for (k in def.attributes) {
                      cls.prototype["_" + k] = def.attributes[k];
                  }
              }
              // Déclaration du constructeur.
              cls.prototype.$init = def.init;
              // Définition des méthodes liées aux signaux.
              if (def.signals) {
                  for (i in def.signals) {
                      declareSignal(
                          cls,
                          def.signals[i]
                      );
                  }
              }
              // Assigner toutes les méthodes.
              for (name in def.functions) {
                  if (def.superclass && cls.prototype[name]) {
                      // This is an ovveride.
                      cls.prototype[def.superclass + "$" + name] = cls.prototype[name];
                  }
                  cls.prototype[name] = def.functions[name];
              }
  
              // Mise en cache de la classe.
              _classes[className] = cls;
              // Appel d'un éventuel constructeur de classe.
              if (typeof def.classInit === "function") {
                  def.classInit(staticVars);
              }
          }
          return cls;
      }