docs: function displayOneError(inputName) {
  
              var input,
                  inputId,
                  errorContainer,
                  label,
                  html = '<div class="' + options.submit.settings.errorListClass + '" ' + _data.errorList + '><ul></ul></div>',
                  group,
                  groupInput;
  
              if (!errors.hasOwnProperty(inputName)) {
                  return false;
              }
  
              input = node.find('[name="' + inputName + '"]');
  
              label = null;
  
              if (!input[0]) {
  
                  // {debug}
                  options.debug && window.Debug.log({
                      'node': node,
                      'function': 'displayOneError()',
                      'arguments': '[name="' + inputName + '"]',
                      'message': 'ERROR - Unable to find input by name "' + inputName + '"'
                  });
                  // {/debug}
  
                  return false;
              }
  
              group = input.attr(_data.group);
  
              if (group) {
  
                  groupInput = node.find('[name="' + inputName + '"]');
                  label = node.find('[id="' + group + '"]');
  
                  if (label[0]) {
                      label.addClass(options.submit.settings.errorClass);
                      errorContainer = label;
                  }
  
                  //node.find('[' + _data.group + '="' + group + '"]').addClass(options.submit.settings.errorClass)
  
              } else {
  
                  input.addClass(options.submit.settings.errorClass);
  
                  if (options.submit.settings.inputContainer) {
                      input.parentsUntil(node, options.submit.settings.inputContainer).addClass(options.submit.settings.errorClass);
                  }
  
                  inputId = input.attr('id');
  
                  if (inputId) {
                      label = node.find('label[for="' + inputId + '"]')[0];
                  }
  
                  if (!label) {
                      label = input.parentsUntil(node, 'label')[0];
                  }
  
                  if (label) {
                      label = $(label);
                      label.addClass(options.submit.settings.errorClass);
                  }
              }
  
              if (options.submit.settings.display === 'inline') {
                  if (options.submit.settings.errorListContainer) {
                      errorContainer = input.parentsUntil(node, options.submit.settings.errorListContainer);
                  } else {
                      errorContainer = errorContainer || input.parent();
                  }
              } else if (options.submit.settings.display === 'block') {
                  errorContainer = node;
              }
  
              // Prevent double error list if the previous one has not been cleared.
              if (options.submit.settings.display === 'inline' && errorContainer.find('[' + _data.errorList + ']')[0]) {
                  return false;
              }
  
              if (options.submit.settings.display === "inline" ||
                  (options.submit.settings.display === "block" && !errorContainer.find('[' + _data.errorList + ']')[0])
              ) {
                  if (options.submit.settings.insertion === 'append') {
                      errorContainer.append(html);
                  } else if (options.submit.settings.insertion === 'prepend') {
                      errorContainer.prepend(html);
                  }
              }
  
              for (var i = 0; i < errors[inputName].length; i++) {
                  if (options.submit.settings.errorTemplate) {
                      errorContainer.find('[' + _data.errorList + '] ul')
                          .append('<li>' + options.submit.settings.errorTemplate.replace('{{validation-message}}', errors[inputName][i]) + '</li>');
                  } else {
                      errorContainer.find('[' + _data.errorList + '] ul').append('<li>' + errors[inputName][i] + '</li>');
                  }
              }
  
              if (options.submit.settings.clear || options.dynamic.settings.trigger) {
  
                  if (group && groupInput) {
                      input = groupInput;
                  }
  
                  var event = "coucou" + resetSuffix;
                  if (options.submit.settings.clear) {
                      event += " " + options.submit.settings.clear + resetSuffix;
                      if (~['radio', 'checkbox'].indexOf(input[0].type)) {
                          event += " change" + resetSuffix;
                      }
                  }
                  if (options.dynamic.settings.trigger) {
                      event += " " + options.dynamic.settings.trigger + resetSuffix;
                      if (options.dynamic.settings.trigger !== "focusout" && !~['radio', 'checkbox'].indexOf(input[0].type)) {
                          event += " change" + resetSuffix + " paste" + resetSuffix;
                      }
                  }
  
                  input.unbind(event).on(event, function (a, b, c, d, e) {
  
                      return function () {
                          if (e) {
                              if ($(c).hasClass(options.submit.settings.errorClass)) {
                                  resetOneError(a, b, c, d, e);
                              }
                          } else if ($(b).hasClass(options.submit.settings.errorClass)) {
                              resetOneError(a, b, c, d);
                          }
                      };
  
                  }(inputName, input, label, errorContainer, group));
              }
  
              if (options.submit.settings.scrollToError && !window.Validation.hasScrolled) {
  
                  window.Validation.hasScrolled = true;
  
                  var offset = parseFloat(options.submit.settings.scrollToError.offset) || 0,
                      duration = parseFloat(options.submit.settings.scrollToError.duration) || 500,
                      handle = (options.submit.settings.display === 'block') ? errorContainer : input;
  
                  $('html, body').animate({
                      scrollTop: handle.offset().top + offset
                  }, duration);
  
              }
  
          }