// Creacion del objeto cargaCombos
/*
* Clase que carga combos a traves de Ajax
* @param idOrigen Identificador del combo de origen
* @param idDestino Identificador del combo de destino
* @param url URL donde se formara el XML de respuesta
*/
function cargaCombosAjax(idOrigen, idDestino, url){
	this.origen = idOrigen;
	this.destino = idDestino;
	this.url = url;
	this.params = '';
	// Procesamos el XML y cargamos el segundo combo
	this.cargaCombo = function (respuesta){
		// Obtenemos el xml
		var xml = respuesta.responseXML;
		//alert(respuesta.responseText);
		// referencia al combo que cargamos
		var selectCarga = $(idDestino); // no puedo poner this.destino por que hemos perdido el ambito de la clase al ser invicado desde prototype
		// Borramos las opciones del combo de destino
		var longitudCombo = selectCarga.options.length;
		for (i=0; i<longitudCombo; i++){
			selectCarga.options[0] = null;
		}
		selectCarga.length = 0;
		// Leemos el xml
		var numOptions = xml.getElementsByTagName("option").length;
		selectCarga.options[0] = new Option(" ", "");	
		for (i=0; i<numOptions; i++){
			// Leemos una option del XML
			var idNodo = xml.getElementsByTagName("value")[i];
			var idTextoNodo = idNodo.childNodes[0];
			var id = idTextoNodo.nodeValue;
			var nombreNodo = xml.getElementsByTagName("text")[i];
			var nombreTextoNodo = nombreNodo.childNodes[0];
			var nombre = nombreTextoNodo.nodeValue;
			// Anadimos la opcion al combo
			var longitudCombo = selectCarga.options.length;
			selectCarga.options[longitudCombo] = new Option(nombre, id);
		}
	};
	this.cargarParametros = function(params){
		this.params = params;
	}
	// Nos conectamos por Ajax al servidor
	this.enviarPeticionCargaAjax = function (){
		// Obtenemos el valor de la comunidad
		var origen = $(this.origen).value;
		// Obtenemos los parametros
		if (this.params == '') this.params = 'origen=' + origen; 
		// Nos conectamos con el servidor para obtener la peticion
		var conexionAjax = new Ajax.Request(this.url,
												{method:'get',
												asynchronous: false,
												parameters: this.params});
		this.params = ''; // Limpiamos el valor de la consulta anterior
		this.cargaCombo(conexionAjax.transport);
	}
}