function validator(theForm) {

	mensaje = "";
	expreg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

	if (theForm.medio.value == "") mensaje += "\n  - El nombre del medio está vacío.";
	if (theForm.nombre.value == "") mensaje += "\n  - El nombre está vacío.";
	if (theForm.apellidos.value == "") mensaje += "\n  - Los apellidos están vacíos.";
	if (theForm.direccion.value == "") mensaje += "\n  - La dirección está vacía.";
	if (theForm.poblacion.value == "") mensaje += "\n  - La población está vacía.";
	
	if (theForm.cp.value == "") mensaje += "\n - El C.P. está vacio.";
	else {
		if (!solonum(theForm.cp) || (theForm.cp.value.length < 5 )) mensaje += "\n - El C.P. no es correcto.";
		mensaje += vallong(theForm.cp, 5, "C.P.");
	    }
	
	if (theForm.provincia.value == "") mensaje += "\n  - La provincia está vacía.";
	
	if (theForm.telefono.value!=""){
		if (! solonum(theForm.telefono)) mensaje += "\n  - El número de teléfono no es correcto.";}
	else mensaje += "\n  - El número de teléfono está vacío.";
	
	if (theForm.dni.value == "") mensaje += "\n - El D.N.I. está vacio.";
	else {
		if (theForm.dni.value.length < 9 ) mensaje += "\n - El D.N.I. no es correcto.";
		mensaje += vallong(theForm.dni, 9, "D.N.I.");
	    }
		
	if (theForm.email.value!=""){
		if (! expreg.test(theForm.email.value)) mensaje += "\n  - El e-mail no es correcto.";}
	else mensaje += "\n  - El e-mail está vacío.";
	
	if ((!theForm.radio.checked) && (!theForm.medio_on_line.checked) && (!theForm.prensa_escrita.checked) && (!theForm.foto_tv.checked))mensaje += "\n\n - Debe seleccionar a que medio pertenece: radio, medio on line, prensa escrita, foto - tv.";
	
	if ((!theForm.circuitos.checked) && (!theForm.asfalto.checked) && (!theForm.tierra.checked) && (!theForm.tt.checked) && (!theForm.montana.checked) && (!theForm.autocross.checked) && (!theForm.historicos.checked) && (!theForm.karting.checked))mensaje += "\n\n - Debe seleccionar qué especialidad cubrirá: Circuitos, Asfalto, Tierra, TT, Montaña, Autocross, Históricos, Karting.";
	
	if ((!theForm.solicitud.checked) || (!theForm.dossier.checked))mensaje += "\n\n - Debe marcar que se manda adjunta la carta de solicitud firmada por el director del medio y el dossier de todo lo publicado la temporada pasada.";

	if (mensaje != "") {
		alert(mensaje);
		return false;
	}

	// theForm.submit;
	return true;
}

function vallong(campo, max, nombrecampo) {
	if (campo.value != "") {
		str = campo.value;
		if (str.length > max) return("\n - El nº máximo de caracteres permitidos en el campo '" + nombrecampo + "' es " + max + ". Y ahora mismo tiene puesto " + str.length + " caracteres.");
		else return ("");
	} else {
		return ("");
	}
}

function solonum(supuesto) {
	var str = supuesto.value;
// Devuelve false si los caracters no están entre a-z, A-Z, o espacio.
	for (var i = 0; i < str.length; i++) {
		var ch = str.substring(i, i + 1);
		if (ch < "0" || ch > "9") {
			return false;
		}
	}
	return true;
}
