function parseXML(xml /* req.responseXML */) {
		var obj = { _text : "" };
		var child = xml.firstChild;
		while (child) {
			if (child.nodeName == "#text") {
				obj._text += child.nodeValue;
			} else if (child.nodeType == 1) {
				if (typeof obj[child.nodeName] == "undefined") {
					obj[child.nodeName] = [];
				}
				obj[child.nodeName][obj[child.nodeName].length] = parseXML(child);
			}
			child = child.nextSibling;
		}
		var att = xml.attributes;
		var i = 0;
		if (att) { // there are attributes
			for (var i = 0; i < att.length; i++) {
				obj[att[i].name] = att[i].value;
			}
		}
		if (obj._text.match(/^\s*$/)) {
			delete obj._text;
		}
		return obj;
	}
	
	function loadXML(url)
	{
		try //Internet Explorer
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  
			xmlDoc.async=false;
			xmlDoc.load(url);
		}
		catch(e)
		{
			try
			{
    			xmlDoc=document.implementation.createDocument("","",null);
				xmlDoc.async = false;
				xmlDoc.load(url);
			}
			catch(e)
			{
				try 
				{
					var xmlhttp = new window.XMLHttpRequest();
					xmlhttp.open("GET", url, false);
					xmlhttp.send(null);
					
					var xmlDoc = xmlhttp.responseXML.documentElement;
				}
				catch(e)
				{
					//alert(e.message);
					return;
				}
			}
		}
		
		return xmlDoc;
	}