docs: function(formId, customRule) {
          var $form = null, _id = formId;
  
  
          if ( !instance['$forms'] ) {
              throw new Error('`$forms` collection not found')
          }
  
  
          if ( typeof(_id) == 'undefined') {
              if ( typeof(this.id) != 'undefined' && this.id != '' && this.id != null ) {
                  _id = this.id
              } else {
                  throw new Error('[ FormValidator::validateFormById(formId, customRule) ] `formId` is missing')
              }
          }
  
          if ( typeof(_id) == 'string') {
              _id = _id.replace(/\#/, '')
          } else if ( typeof(_id) == 'object' && !Array.isArray(_id) ) { // weird exception
  
              var $target = _id.form;
              _id = $target.getAttribute('id') || 'form.'+uuid.v1();
  
              $target.setAttribute('id', _id);// just in case
  
          } else {
              throw new Error('[ FormValidator::validateFormById(formId[, customRule]) ] `formId` should be a `string`');
          }
  
          if ( typeof(instance['$forms'][_id]) != 'undefined' ) {
              $form   = this.$forms[_id] = instance['$forms'][_id];
          } else { // binding a form out of context (outside of the main instance)
              var $target             = document.getElementById(_id);
              $validator.id           = _id;
              $validator.target       = $target;
  
              $form = this.$forms[_id] = instance.$forms[_id] = merge({}, $validator);
  
              var rule    = null;
              if ( typeof(customRule) == 'undefined') {
                  rule = _id.replace(/\-/g, '.');
  
                  if ( typeof(instance.rules[rule]) != 'undefined' ) {
                      $form['rule'] = customRule = instance.rules[rule];
                  } else if ( $form.target.getAttribute('data-gina-form-rule') ) {
                      rule = $form.target.getAttribute('data-gina-form-rule').replace(/\-/g, '.');
  
                      if ( typeof(instance.rules[rule]) != 'undefined' ) {
                          $form['rule'] = instance.rules[rule]
                      } else {
                          throw new Error('[ FormValidator::validateFormById(formId) ] using `data-gina-form-rule` on form `'+$form.target+'`: no matching rule found')
                      }
                  } // no else to allow form without any rule
              } else {
                  rule = customRule.replace(/\-/g, '.');
  
                  if ( typeof(instance.rules[rule]) != 'undefined' ) {
                      $form['rule'] = instance.rules[rule]
                  } else {
                      throw new Error('[ FormValidator::validateFormById(formId, customRule) ] `'+customRule+'` is not a valid rule')
                  }
              }
  
              if ($target && !$form.binded)
                  bindForm($target, rule);
          }
  
          if (!$form) throw new Error('[ FormValidator::validateFormById(formId, customRule) ] `'+_id+'` not found');
  
          return $form || null;
  
      }