/**
 * Función para la validación de los formularios
 * @param form Formulario a validar
 * @param campos Mapa de campos a validar.
 * 		Las claves son el name del campo.
 * 		Los valores mapas con las siguientes claves:
 * 			etiqueta : Etiqueta del campo
 * 			validaciones : array de cadenas que indican las validaciones.  Opciones: "email", "vacio", "true"
 */
function checkFields(form, campos) {
	var error = "";

	function esVacio(e) {
		if ($F(form[e.key]).strip() == "") {
			error += 'El campo "' + e.value.etiqueta + '" es obligatorio.\n';
		}
	}

	function esMail(e) {
		var pattern = /^(\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)?$/;
		if (!pattern.test($F(form[e.key]))) {
			error += 'El campo "' + e.value.etiqueta + '" no es un email válido.\n';
		}
	}

	function esTrue(e) {

		if (!form[e.key].checked) {
			error += 'Debe aceptar las condiciones de envío.\n';
		}
	}

	function valida(e) {

		if (e.value.validaciones.indexOf("vacio") != -1) {
			esVacio(e);
		}

		if (e.value.validaciones.indexOf("email") != -1) {
			esMail(e);
		}

		if (e.value.validaciones.indexOf("true") != -1) {
			esTrue(e);
		}
	}

	$H(campos).each(valida);


	if (error.length > 0) {
		alert(error);
	}

	return (error.length == 0)
}

/**
* Función para mostrar/ocultar el formulario de afirma
**/
function mostrarOcultarForm(idMostrar, idOcultar, idForm, idTxtMostrar, idTxtOcultar){


	if($(idForm) != null && $(idForm).getStyle('display') != 'none'){
		new 	Effect.Fade(idForm);
	}else if ($(idForm) != null && $(idForm).getStyle('display') != 'block'){
		new 	Effect.Appear(idForm);
	}
	if($(idOcultar) != null){
		$(idOcultar).setStyle({   display: 'none'});
	}
	if($(idMostrar) != null){
		$(idMostrar).setStyle({   display: 'block'});
	}

	if($(idTxtOcultar) != null){
		$(idTxtOcultar).setStyle({   display: 'none'});
	}
	if($(idTxtMostrar) != null){
		$(idTxtMostrar).setStyle({   display: 'block'});
	}
}


