/**
 *
 * @access public
 * @return void
 **/
function EncuestaVoxPopuli(idContenedorCuerpo){
	//Registra variables miembro
	this.formDatosComunes;
	this.formPreguntas;
	this.attributeIDsForms = new Array();

	//Registra Funciones
	this.inicializarVars = inicializarVarsVoxPopuli;
	this.procesarPreguntas = procesarPreguntasVoxPopuli;
	this.idContenedor = idContenedorCuerpo;
}

/**
 *
 * @access public
 * @return void
 **/
function inicializarVarsVoxPopuli(){
	var contenedor = document.getElementById(this.idContenedor);
	var formularios = contenedor.getElementsByTagName("form");
	this.formPreguntas = new Array();
	//alert('formularios: ' + typeof formularios + '; longitud: ' + formularios.length);
	//Incializa variables miembro
	for(var i = 0; i < formularios.length - 1; i++){
		this.formPreguntas[i] = formularios[i];
	}
	this.formDatosComunes = formularios[formularios.length - 1];
	//alert('Form comun: ' + typeof this.formDatosComunes);
	//alert('Forms preguntas: ' + typeof this.formPreguntas);
}
/**
 *
 * @access public
 * @return void
 **/
function generaQueryStringFormulario(form){
	var queryString = '';
	for(var i = 0; i < form.elements.length; i++){
		if (form.elements[i].type != "radio" || form.elements[i].checked) {
			queryString += form.elements[i].name + '=' + escape(encodeURI(form.elements[i].value)) + '&';
		}
	}
	return queryString;
}

function generaQueryStringDatosComunes(form, attributeIDs){
	var queryString = '';
	for(var i = 0; i < form.elements.length; i++){
		var name = new String(form.elements[i].name);
		var arrayElements = name.match(/^(\D+)(\d+)(\D*)$/);
		var newName = name;
		if (arrayElements) {
			newName = arrayElements[1] + attributeIDs[i] + arrayElements[3];
		}
		queryString += newName + '=' + escape(encodeURI(form.elements[i].value)) + '&';
	}
	return queryString;
}

/**
 *
 * @access public
 * @return void
 **/
function procesarPreguntasVoxPopuli(){
	for (var i = 0; i < this.formPreguntas.length; i++){
		var qStringDatosComunes = generaQueryStringDatosComunes(this.formDatosComunes, this.attributeIDsForms[i]);
		var queryStringForm = generaQueryStringFormulario(this.formPreguntas[i]) +
							  qStringDatosComunes;
		//Con proposito de depuracion
		//alert(queryStringForm);

		//Solo mostrar resultados para la ultima pregunta
		if (i < this.formPreguntas.length - 1) {
			cargarPagina('', this.formPreguntas[i].action, '', undefined, 'post', queryStringForm)
		}
		else{
			//cargarPagina(this.idContenedor, this.formPreguntas[i].action, '', undefined, 'post', queryStringForm)
			this.formPreguntas[i].submit();
		}
	}
}