﻿/*
* XMLDoc.js
* Written by Angelo Munoz (angelo250@gmail.com)
* Sept 2008
* Edited July 2009
* This javascript library will serve as a cross browser XMLDocument client side library.
* Example:

var markup = "<Server><item>node1</item><item>node2</item><item>node3</item></Server>";
var xml = new XMLDoc();
var doc = xml.loadXML(markup); //BrowserType= 1(IE) | 2(FF)
var ilist = doc.getElementsByTagName("item");
for (i=0;i<ilist.length;i++)
{
    alert(i + ":" + ilist[i].childNodes[0].nodeValue);
}
*/


function XMLDoc()
{
    this.loadXML = function(markup) 
    {
        if (!markup || markup.length==0) return null; //validation		
		  var BR_IE=1, BR_FF=2;
		  var doc;
		  var bType = navigator.appName.toLowerCase().indexOf("microsoft")>-1 ? BR_IE : BR_FF; 
		  if (bType==BR_IE) //IE
		  {
		    try  { doc = new ActiveXObject("Microsoft.XMLDOM"); }
		    catch(e) { doc = null; }
		  }
		  else
		  {   //FF, Safari, Opera
			  try { doc = new DOMParser(); }
			  catch(e) { doc = null; }
		  }
		  if (doc==null) return null;                
  		
		  //parse markup		
		  if (bType==BR_IE) //IE
		  {
        doc.async = this.async;
        doc.validateOnParse = this.validateOnParse;
        doc.loadXML(markup);                
      }
		  else //FF, Safari, Opera
			  doc = doc.parseFromString(markup,"text/xml");
		  try { doc.setProperty('SelectionLanguage','XPath'); } catch(e){}
		  return doc;
    } 
    this.async = false;
    this.validateOnParse = true;   	
}