function xFormCheckerFilter(mode) {
  this.ns = xFormCheckerFilter.getNS();
  this.mode = mode;
  this.enabled = true;
}
/* filter interface */
xFormCheckerFilter.prototype.isEnabled = function() {
  return this.enabled;
};
xFormCheckerFilter.PROCESSMARKED = 0;
xFormCheckerFilter.PROCESSALL = 1;

xFormCheckerFilter.prototype.getName = function() {
  return 'formChecker';
};
xFormCheckerFilter.getNS = function() {
  return '';
};
xFormCheckerFilter.prototype.interactiveValidator = function() {
  var validator = new xFormValidatorFilter();
  if (!validator.process(this.element, logBuffer)) {
    logBuffer.log(this.element.getName() + " is invalid!", logBuffer.MSG_WARNING);
  }
};
xFormCheckerFilter.prototype.process = function(element, logBuffer) {
  for (var iterator = new xFormElementIterator(element, xFormElementIterator.ITERATE_DESCENDANT);
           iterator.hasMore();
           iterator.nextElement()) {

    var item = iterator.getCurrent();
    if (item.isValidateable() &&
        'yes' == item.getCustomProperty('interactive', 'restriction')) {
      item.element.element = item;
      item.element.onblur = this.interactiveValidator;
    }
  }
  return true;
};