    var http_request = false;

	function inserir(r, v)
	{
		var marcado = false;
		var re = '<option( selected)? value="([^"]*)">([^<]*)<\/option>';
		var itens = v.match(new RegExp(re, 'g'));
		r.options.length = 0;
		for (var i = 0; i < itens.length; i++) {
			var x = itens[i].match(new RegExp(re));
			r.options[i] = new Option(x[3], x[2]);
			if (x[1]) {
				marcado = true;
				r.options.selectedIndex = i;
			}
		}
		if(!marcado){
			r.options.selectedIndex = -1;
		}
	}

	function loadXMLDoc(url) {

        http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        http_request.onreadystatechange = alertContents;
        http_request.open('GET', url, true);
        http_request.send(null);

    }

    function alertContents() {

        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
				var xmldoc = http_request.responseXML;
//				alert(http_request.responseText);
//				var root_node = xmldoc.getElementsByTagName('root').item(0);
//				alert(root_node.firstChild.data);
				var lista = xmldoc.getElementsByTagName('*');
//				var lista = xmldoc.documentElement.childNodes;

//				if(lista.length == 0)
//					lista = xmldoc.getElementsById('*');

				for(i = 0; i < lista.length ; i++){
//						alert(document.getElementById(lista[i].tagName).innerHTML + ' = ' + xmldoc.getElementsByTagName(lista[i].tagName)[0].firstChild.nodeValue);
					try{
						if(lista[i].getAttribute("type") == "select"){
							inserir(document.getElementById(lista[i].getAttribute("target")), lista[i].firstChild.nodeValue)
						}else if(lista[i].getAttribute("type") == "text"){
							document.getElementById(lista[i].getAttribute("target")).value = lista[i].firstChild.nodeValue;
						}else{
							document.getElementById(lista[i].tagName).innerHTML = '';
							document.getElementById(lista[i].tagName).innerHTML = lista[i].firstChild.nodeValue;
						}
					}catch(e){}
				}

            } else {
                alert('Houve um problema com a requisição. Favor tentar novamente.');
            }
        }

    }

