// This is meant to be Cross Browser.

function SelectNodes(xmlDoc, elementPath) {
	var nodesarr = new Array();
	if(window.ActiveXObject) {
		return xmlDoc.selectNodes(elementPath);
	} else {
		var i = 0;
		var xpe = new XPathEvaluator();
		var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
		var results = xpe.evaluate(elementPath,xmlDoc,nsResolver,XPathResult.ORDERED_NODE_ITERATOR_TYPE  , null);
		// iterate, as in https://developer.mozilla.org/en/Introduction_to_using_XPath_in_JavaScript#Iterators
		try {
			var thisNode = results.iterateNext();
			while (thisNode) {	
				if (thisNode){
					nodesarr[i]=thisNode;
					i++;
				}
				thisNode = results.iterateNext();
			}
		} catch (e) {
			alert( 'Error: Document tree modified during iteration ' + e );
		}
	}
	return nodesarr;
}
	
function loadXMLDoc(name) {
	try { //Internet Explorer
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}catch(e) {
		try { //Firefox, Mozilla, Opera, etc.
			xmlDoc=document.implementation.createDocument("","",null);
		}catch(e) {alert(e.message)}
	}
	
	try{
		xmlDoc.async=false;
		var result = xmlDoc.load(name);
		if (!result)  {
			alert('Error Loading the XML');
		}
		} catch (e) {alert("alertloadXMLDOC "+e);}
	return(xmlDoc);
}
