var isIE = window.ActiveXObject;
var isNN = document.implementation && document.implementation.createDocument;

if (isIE)
{
   //var objXML = new ActiveXObject("Microsoft.XMLDOM");
}
else if (isNN)
{
   Document.prototype.loadXML = function(strXML) {
      changeReadyState(this, 1);

      var objDOMParser = new DOMParser();
      var objDoc = objDOMParser.parseFromString(strXML, "text/xml");

      //make sure to remove all nodes from the document
      while (this.hasChildNodes())
         this.removeChild(this.lastChild);

      //add the nodes from the new document
      for (var i=0; i < objDoc.childNodes.length; i++) {
         var objImportedNode = this.importNode(objDoc.childNodes[i], true);
         this.appendChild(objImportedNode);
      }

      handleOnLoad(this);
   }

   Node.prototype.__defineGetter__("xml", _Node_getXML);

   Document.prototype.readyState = "0";

   Document.prototype.__load__ = Document.prototype.load;

   Document.prototype.load = _Document_load;

   Document.prototype.onreadystatechange = null;

   Document.prototype.parseError = 0;
}
else {
   alert('Your browser does not support XML');
}

function parseDoc(objDOMDocument) {
   var span = objDOMDocument.getElementsByTagName('span');
   for (j=0; j<span.length; j++)
   {
       //alert(span[j].getAttribute("id"));
       //if (document.getElementById(span[j].getAttribute("id"))) {
       //   document.getElementById(span[j].getAttribute("id")).innerHTML = span[j].firstChild.nodeValue;
       //}
       var obj = document.getElementsByName(span[j].getAttribute("id"));
       for (k=0; k<obj.length; k++)
       {
	   //alert(obj[k].nodeName);	
           if (obj[k].nodeName=='SPAN') {
              obj[k].innerHTML = span[j].firstChild.nodeValue;
           }
       }
   }

   var optlist = objDOMDocument.getElementsByTagName('optionlist');
   for (j=0; j<optlist.length; j++)
   {
      //alert(optlist[j].getAttribute("id"));
      //alert(optlist.length);
      if (document.getElementById(optlist[j].getAttribute("id"))) {
         var sel = document.getElementById(optlist[j].getAttribute("id"));
         var optsel=0;
         for (i=0; i<sel.options.length; i++) {
         	if (sel.options[i].selected) {
         		optsel=i;
         	}
      	}
       	
         var opt = optlist[j].getElementsByTagName('option');
         for (k=0; k<opt.length; k++) {
            var newOpt = new Option(opt[k].firstChild.nodeValue, opt[k].getAttribute("id"));
            sel[k] = newOpt;
	    if (k==optsel) newOpt.selected=true;
         }
      }
   }

   var imglist = objDOMDocument.getElementsByTagName('img');
   for (j=0; j<imglist.length; j++)
   {
       var img = document.getElementsByName(imglist[j].getAttribute("id"));
       for (k=0; k<img.length; k++)
       {
           //if (obj[k].nodeName=='IMG') {
              img[k].alt = imglist[j].firstChild.nodeValue;
	      img[k].title = imglist[j].firstChild.nodeValue;	
           //}
       }

   }
}

function prepareDoc(objDOMDocument) {
	if (document.getElementById('PRE01')) {
		var pre = document.getElementById("PRE01");
		var p = document.createElement("<span id=aaa>");
		p.appendChild(document.createTextNode("aa"));
		document.body.insertBefore(p, pre);
	}
}

function jsXML() { }

jsXML.createDOMDocument = function(strNamespaceURI, strRootTagName) {
   var objDOM = null;

   if (isNN) {
      objDOM = document.implementation.createDocument(strNamespaceURI, strRootTagName, null);    
      objDOM.addEventListener("load", _Document_onload, false);
      objDOM.onreadystatechange = function(  ) {
         if (objDOM.readyState == 4) parseDoc(objDOM);
      }
   } else if (isIE) {
      objDOM = new ActiveXObject("Microsoft.XMLDOM");
      if (strRootTagName) {
          if (strNamespaceURI) {
              objDOM.loadXML("<a0:" + strRootTagName + " xmlns:a0=\"" + strNamespaceURI + "\" />");
          } else {
              objDOM.loadXML("<" + strRootTagName + "/>");        
          }
      }
      objDOM.onreadystatechange = function(  ) {
         if (objDOM.readyState == 4) parseDoc(objDOM);
      }
    }
   return objDOM;
}

jsXML.createDOMDocument2 = function(strNamespaceURI, strRootTagName) {
   var objDOM = null;

   if (isNN) {
      objDOM = document.implementation.createDocument(strNamespaceURI, strRootTagName, null);    
      objDOM.addEventListener("load", _Document_onload, false);
      objDOM.onreadystatechange = function(  ) {
         if (objDOM.readyState == 4) prepareDoc(objDOM);
      }
   } else if (isIE) {
      objDOM = new ActiveXObject("Microsoft.XMLDOM");
      if (strRootTagName) {
          if (strNamespaceURI) {
              objDOM.loadXML("<a0:" + strRootTagName + " xmlns:a0=\"" + strNamespaceURI + "\" />");
          } else {
              objDOM.loadXML("<" + strRootTagName + "/>");        
          }
      }
      objDOM.onreadystatechange = function(  ) {
         if (objDOM.readyState == 4) prepareDoc(objDOM);
      }
    }
   return objDOM;
}

function _Node_getXML() {
   var objXMLSerializer = new XMLSerializer;
   var strXML = objXMLSerializer.serializeToString(this);
   
   return strXML;
}

function _Document_load(strURL) {
   this.parseError = 0;
   
   changeReadyState(this, 1);
  
   try {
      this.__load__(strURL);
   } catch (objException) {
      this.parseError = -9999999;
      changeReadyState(this, 4);
    }
}

function _Document_onload() {
   handleOnLoad(this);
}

function handleOnLoad(objDOMDocument) {
   if (!objDOMDocument.documentElement || objDOMDocument.documentElement.tagName == "parsererror")
      objDOMDocument.parseError = -9999999;
   changeReadyState(objDOMDocument, 4);
}

function changeReadyState(objDOMDocument, iReadyState) {
   objDOMDocument.readyState = iReadyState;
     
   if (objDOMDocument.onreadystatechange != null && typeof objDOMDocument.onreadystatechange == "function")
      objDOMDocument.onreadystatechange();
}

function eb_getmlang(id) {
   var obj = document.getElementById(id);
   if (obj) return obj.innerHTML;
   else return "Id not found!";
}