function clearSelect(select) {
    while (select.length > 0) {
        select.remove(0);
    }
}

function appendToSelect(select, value, content) {
    var opt;
    opt = document.createElement("option");
    opt.value = value;
    opt.appendChild(content);
    select.appendChild(opt);
}

// retrieve text of an XML document element, including
// elements using namespaces
function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    if (prefix && isIE) {
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        // the namespace versions of this method
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
            return result.firstChild.nodeValue;
        }
    } else {
        return "n/a";
    }
}

function getMunicipios(evt, cod_prv, path) {
	// equalize W3C/IE event models to get event object
	evt = (evt) ? evt : ((window.event) ? window.event : null);
	if (evt) {
		// equalize W3C/IE models to get event target reference
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		if (elem) {
				try {
					loadXMLDoc(path + '/xml-rpc/xml-srvs.php?params=' + cod_prv);
				}
				catch(e) {
					alert("No se ha podido obtener la lista de municipios.\n"
						+ "Por favor, revise la configuración de su navegador.");
					return false;
				}
		}
	} else {
		alert("No se ha podido obtener la lista de municipios.\n"
			+ "Por favor, revise la configuración de su navegador.");
		return false;
	}
}

function processError(){
	// en caso de error..
	return;
}

function processResult(req){
	var response  = req.responseXML.documentElement;
	var select_munis = document.getElementById('mun_codi');
	clearSelect(select_munis);
	var items = req.responseXML.getElementsByTagName("item");
	for (var i = 0; i < items.length; i++) {
		appendToSelect(select_munis, getElementTextNS("", "cod", items[i], 0),
	    document.createTextNode(getElementTextNS("", "nomb", items[i], 0)));
	}
}

