function xFormGUIDWriterFilter(mode) {
  this.ns = xFormGUIDWriterFilter.getNS();
  this.mode = mode;
  this.enabled = true;
}
/* filter interface */
xFormGUIDWriterFilter.prototype.isEnabled = function() {
  return this.enabled;
}
xFormGUIDWriterFilter.PROCESSMARKED = 0;
xFormGUIDWriterFilter.PROCESSALL = 1;

xFormGUIDWriterFilter.prototype.getName = function() {
  return 'formGUIDWriter';
}
xFormGUIDWriterFilter.getNS = function() {
  return 'guid';
}
xFormGUIDWriterFilter.prototype.process = function(element, logBuffer) {
  for (var iterator = new xFormElementIterator(element, xFormElementIterator.ITERATE_DESCENDANT); 
           iterator.hasMore();
           iterator.nextElement()) {

    var item = iterator.getCurrent();
    if (item.getCustomProperty('apply', this.ns) != 'yes' &&
        xFormGUIDWriterFilter.PROCESSMARKED == this.mode) {
      continue;
    }
//    log(sprintf('&nbsp;&nbsp;adding GUID title to element %s, tagname: %s', item, item.getElement().tagName + ' :' + item.getElement().getAttribute('id')));
    item.getElement().setAttribute('title', item.getGUID());
/*    var nn = document.createElement('span');
    nn.appendChild(document.createTextNode(item.getGUID()));
    item.getElement().parentNode.insertBefore(nn, item.getElement());*/
  }
	return true;
}