function validateForm(f)
{
	for (var i=0; i<f.elements.length; i++)
	{
		if (f.elements[i].alt=="blank" && f.elements[i].value=="")
		{
			alert("Please provide "+f.elements[i].name);
			f.elements[i].focus();
			return false;
		}
		if (f.elements[i].alt=="numeric" && (f.elements[i].value=="" || isNaN(f.elements[i].value)))
		{
			alert("Please provide "+f.elements[i].name);
			f.elements[i].focus();
			return false;
		}
		if (f.elements[i].alt!="" && f.elements[i].alt!=null)
		{
			if (f.elements[i].alt.substr(0, 7)=="equalto")
			{
				if ((f.elements[i].value!=f(f.elements[i].alt.substr(8)).value))
				{
					alert("Please provide "+f.elements[i].name);
					f.elements[i].focus();
					return false;
				}
			}
		}
	if (!caracteresRaros(f.elements[i].value,'')) {
		alert("Bad characters at "+f.elements[i].name);
		f.elements[i].focus();
		return false;
	}
	}
}

function caracteresRaros(valor,caract_extra) {
	//caract_extra = caracteres que queramos añadir como válidos
	//var enter= "\n";
	var patronValido = "abcdefghijklmnopqrstuvwxyzñ1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZÑáéíóúÁÉÍÓÚ,.;:-_@"; // + String.fromCharCode(13) + enter + caract_extra;
	for (var i=0; i < valor.length; i++) {
		ubicacion = valor.substring(i, i + 1);
		if (patronValido.indexOf(ubicacion) == -1) 
			return false;
	}
	return true;
}

