'Constructor
@param error_message: alternative error message
@param allow_empty: allow the selector to be left empty
@param first_name_only: put all name elements into first_name field
None => activate if RTL otherwise don\'t
@note: This validator can *not* be used together with IS_EMPTY_OR,
because when a new person gets entered, the submitted value
for person_id would be None and hence satisfy IS_EMPTY_OR,
and then this validator would never be reached and no new
person record would be created => instead of IS_EMPTY_OR,
use IS_ADD_PERSON_WIDGET2(allow_empty=True).'

def __init__(self, error_message=None, allow_empty=False, first_name_only=None, separate_name_fields=None):

    self.error_message = error_message
    self.allow_empty = allow_empty
    self.first_name_only = first_name_only
    self.separate_name_fields = separate_name_fields
    self.mark_required = (not allow_empty)
