docs: function (elem)
      {
          var i, el;
          if (elem.nodeType == Strophe.ElementType.NORMAL) {
              el = Strophe.xmlElement(elem.tagName);
  
              for (i = 0; i < elem.attributes.length; i++) {
                  el.setAttribute(elem.attributes[i].nodeName,
                                  elem.attributes[i].value);
              }
  
              for (i = 0; i < elem.childNodes.length; i++) {
                  el.appendChild(Strophe.copyElement(elem.childNodes[i]));
              }
          } else if (elem.nodeType == Strophe.ElementType.TEXT) {
              el = Strophe.xmlGenerator().createTextNode(elem.nodeValue);
          }
  
          return el;
      }