function serializexml(soapResponse)
{
  if(soapResponse.xml)    // IE
    return soapResponse.xml;
  else    // MOZ
    return (new XMLSerializer()).serializeToString(soapResponse);
}

function el(id) {
  return document.getElementById(id);
}

function loadXMLDoc(xml)
{
  var xmlDoc;
  try //Internet Explorer
  {
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async="false";
    xmlDoc.loadXML(xml);
  }
  catch(e)
  {
    try //Firefox, Mozilla, Opera, etc.
    {
      parser=new DOMParser();
      xmlDoc=parser.parseFromString(xml);
    }
    catch(e) {alert("Cannot convert XML response: " + e.message)}
 }
 return(xmlDoc);
}

function serializeElement(elem)
{
    var serialized;
    try {
        // XMLSerializer exists in current Mozilla browsers
        serializer = new XMLSerializer();
        serialized = serializer.serializeToString(elem);
    } catch (e) {
        // Internet Explorer has a different approach to serializing XML
        serialized = elem.xml;
    }
    return serialized;
}

function dynamiccontentNS6(elementid,content){
  if (document.getElementById && !document.all){
    rng = document.createRange();
    elt = el(elementid);
    rng.setStartBefore(elt);
    htmlFrag = rng.createContextualFragment(content);
    while (elt.hasChildNodes())
      elt.removeChild(elt.lastChild);
    elt.appendChild(htmlFrag);
  }
}

// use this if we have trouble with the escaped HTML in the soap packet
function unesc(content) {
  ret = content;
  ret = ret.replace(/&lt;/g,"<");
  ret = ret.replace(/&gt;/g,">");
  ret = ret.replace(/&quot;/g,'"');
  ret = ret.replace(/&amp;/g,'&');
  return ret;
}

function dynamiccontentIE(elementid,content){
  el(elementid).innerHTML = content;
}

function render(soap, ele, tag)
{
  if (document.all)
    dynamiccontentIE(ele,soap.getElementsByTagName(tag)[0].childNodes[0].nodeValue);
  else if (document.getElementById)
    dynamiccontentNS6(ele,soap.getElementsByTagName(tag)[0].textContent);
}