function SelectSingleNode(xmlDoc, elementPath)
{
	if(window.ActiveXObject)
	{
		return xmlDoc.selectSingleNode(elementPath);
	}
	else
	{
		var xpe = new XPathEvaluator();
		var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
		var results = xpe.evaluate(elementPath,xmlDoc,nsResolver,XPathResult.FIRST_ORDERED_NODE_TYPE, null);
		return results.singleNodeValue; 
	}
}

function SelectNodes(xmlDoc, elementPath)
{
	if(window.ActiveXObject)
	{
		return xmlDoc.selectNodes(elementPath);
	}
	else
	{
		var xpe = new XPathEvaluator();
		var nsResolver = xpe.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
		var result = xpe.evaluate(elementPath, xmlDoc, nsResolver, 0, null);
		var found = [];
		var res;
		while  (res = result.iterateNext())
			found.push(res);
		return found;
	}
} 
