
function ObtenerObjeto(nombre)
{
// recupera el objeto de un formulario por su nombre.
var objeto,i;
for (i=0; !objeto && i < document.forms.length; i++) objeto = document.forms[i][nombre]
return objeto;
}

function ValidarCampos()
{
// Valida campos de un formulario
// Utilización:
// return ValidarCampos('name','nombre','tipo','parametros',++);
// Cuatro parametros por campo a evaluar
// name : nombre del campo del formulario.
// nombre : descripción del campo.
// tipo : tipo de validación.
//		R requerido.
//      L Número mínimo de raracteres en parametros
//		E Campo con Email válido
// parametros : parametros de la validación.
	var CamposOK = true, 
		errores= '', numerrores = 0,
		arg = ValidarCampos.arguments, 
		i, objeto,nombre,tipo,parametros,contenido,posarroba;
	// Cada cuatro parametros, 1 comprobación
	for (i=0; i< (arg.length - 3); i+=4){
		objeto = ObtenerObjeto(arg[i]);
		if (objeto){
			nombre = arg[i+1];
			tipo = arg[i+2];
			parametros = arg[i+3];
			
		
		if ((contenido = objeto.value) == ""){
		if (tipo.indexOf('L')!=-1)//Este if es solo para el buscador de regalos
				{
						numerrores++;
						errores += '  ' + numerrores + '.- El campo \''  + nombre + '\' requiere ' + parametros + ' carácteres como mínimo.\n';	
				}
			
				if (tipo.indexOf('R')!=-1){
					numerrores++;
					errores += '  ' + numerrores + '.- El campo \''  + nombre + '\' es obligatorio\n';
				
				}
			}
			else{
				// Número mínimo de caracteres 
				if ((tipo.indexOf('L')!=-1) && (contenido.length < parseFloat(parametros))){
						numerrores++;
						errores += '  ' + numerrores + '.- el campo \''  + nombre + '\' requiere ' + parametros + ' carácteres como mínimo.\n';
							
				}
				//Tiene que ser un e-mail
				if (tipo.indexOf('E')!=-1){
					if (((posarroba=contenido.indexOf('@')) != 1) && (contenido.length >= 5)){
						if (contenido.indexOf('.',posarroba) == -1 ){
							numerrores++;
							errores += '  ' + numerrores + '.- El campo \''  + nombre + '\' no es un e-mail válido.\n';	
						}
					}
					else{
						numerrores++;
						errores += '  ' + numerrores + '.- El campo \''  + nombre + '\' no es un e-mail válido.\n';
					}
				}
			}
		}
		else alert("Error, parámetros incorrectos.");
	}
	
	if (numerrores > 0) {
		alert('Se ha(n) producido ' + numerrores +' error(es):\n\n' + errores);
		CamposOK = false;
		}
	return CamposOK;
}
