//Constructor
//url - Url a la que se va a realizar la petición
//options - Array con las opciones que necesitemos
function Catalogo( url, options, destino, pagina ) {
	
	this.options = options.parameters;
	this.destino = destino;
	this.pagina = pagina;

	//Creamos el objeto encargado de realizar la petición y recoger la respuesta
	//usando la librería net.js
	this.ajaxHelper = new net.ContentLoader( this, url, "POST", options.requestParameters || [] );

}

Catalogo.prototype = {    

	//Método encargado de recoger el valor de la opción seleccionada y enviar la petición
	//al servidor usando el objeto ajaxHelper inicializado en el constructor
	send: function() {
	   //Colocamos una barra de cargando junto al combo hijo
       //Enviamos la petición usando el objeto que encapsula al objeto XMLHttpRequest
	   var query = "";
		
	   query = this.parseParameters();
		
	   this.preloadImage();
	   this.ajaxHelper.sendRequest(query);
	},

	//Método llamado desde la librería net.js tras recoger la respuesta del servidor
	ajaxUpdate: function(request) {    		
		var result = request.responseText;
		var divResult = document.getElementById(this.destino);
		divResult.innerHTML = result;
		//Una vez cargado se puede eliminar la barra
	},

	//Si salta algún error lo podemos gestionar desde este método
	handleError: function(request) {
		alert("error fetching data!"
        +"\n\nreadyState:"+request.readyState
        +"\nstatus: "+request.status
        +"\nheaders: "+request.getAllResponseHeaders());
	},

     parseParameters: function() {
		var parameters = "";
		var parameterName = "";
		var parameterValue = "";
		var obj = null;

		for (var i = 0; i < this.options.length; i++){
			parameterName = this.options[i];
			
			obj = document.getElementById(parameterName);	
			
			if (obj.options != null)
				parameterValue = obj[obj.selectedIndex].value;
			else{
				parameterValue = obj.value;
			}
			parameters += parameterName + "=" + parameterValue + "&";
		}
		
		// Le añado la paginación
		parameters += "pagina=" + this.pagina;

		return parameters;
	 },
	
	 preloadImage: function() {
		var	imageDiv = document.getElementById("listado");
		imageDiv.innerHTML = "<img src='images/loadingAnimation.gif' />";
	}
};