docs: function CustomInput() {
  
          /**
           * ### CustomInput.input
           *
           * The HTML input element
           */
          this.input = null;
  
          /**
           * ### CustomInput.placeholder
           *
           * The placeholder text for the input form
           *
           * Some types preset it automatically
           */
          this.placeholder = null;
  
          /**
           * ### CustomInput.inputWidth
           *
           * The width of the input form as string (css attribute)
           *
           * Some types preset it automatically
           */
          this.inputWidth = null;
  
          /**
           * ### CustomInput.type
           *
           * The type of input
           */
          this.type = null;
  
          /**
           * ### CustomInput.preprocess
           *
           * The function that preprocess the input before validation
           *
           * The function receives the input form and must modify it directly
           */
          this.preprocess = null;
  
          /**
           * ### CustomInput.validation
           *
           * The validation function for the input
           *
           * The function returns an object like:
           *
           * ```javascript
           *  {
           *    value: 'validvalue',
           *    err:   'This error occurred' // If invalid.
           *  }
           * ```
           */
          this.validation = null;
  
          /**
           * ### CustomInput.validationSpeed
           *
           * How often (in milliseconds) the validation function is called
           *
           * Default: 500
           */
          this.validationSpeed = 500;
  
          /**
           * ### CustomInput.postprocess
           *
           * The function that postprocess the input after validation
           *
           * The function returns the postprocessed valued
           */
          this.postprocess = null;
  
          /**
           * ### CustomInput.params
           *
           * Object containing extra validation params
           *
           * This object is populated by the init function
           */
          this.params = {};
  
          /**
           * ### CustomInput.errorBox
           *
           * An HTML element displayed when a validation error occurs
           */
          this.errorBox = null;
  
          /**
           * ### CustomInput.mainText
           *
           * A text preceeding the custom input
           */
          this.mainText = null;
  
          /**
           * ### CustomInput.hint
           *
           * An additional text with information about the input
           *
           * If not specified, it may be auto-filled, e.g. '*'.
           *
           * @see CustomInput.texts.autoHint
           */
          this.hint = null;
  
          /**
           * ### CustomInput.requiredChoice
           *
           * If TRUE, the input form cannot be left empty
           *
           * Default: TRUE
           */
          this.requiredChoice = null;
  
          /**
           * ### CustomInput.timeBegin
           *
           * When the first character was inserted
           */
          this.timeBegin = null;
  
          /**
           * ### CustomInput.timeEnd
           *
           * When the last character was inserted
           */
          this.timeEnd = null;
  
          /**
           * ### CustomInput.checkbox
           *
           * A checkbox element for an additional action
           */
          this.checkbox = null;
  
          /**
           * ### CustomInput.checkboxText
           *
           * The text next to the checkbox
           */
          this.checkboxText = null;
  
          /**
           * ### CustomInput.checkboxCb
           *
           * The callback executed when the checkbox is clicked
           */
          this.checkboxCb = null;
      }