function validaDNI(cadena) {
	salida = "";
	cadena = cadena.toUpperCase();
	var longitud = cadena.length;
	if (longitud < 5) {
		salida += "- El N.I.F. debe tener al menos 5 caracteres.\n";
	} else {
		letra = cadena.charAt(longitud-1);
		numeros = cadena.substring(0,longitud-1);
		var secuencia ="TRWAGMYFPDXBNJZSQVHLCKE";
		resultado = secuencia.substring(numeros %  23, numeros % 23+1);
		if (resultado != letra) {
			salida += "- El N.I.F. introducido es incorrecto (Sólo se admiten números y letra, sin guiones).\n";
		}
	}
	return salida;
}

function validaEmail(cadena) {
	salida = "";
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(cadena)) {
		salida = "";
	} else {
		salida += "- Correo Electrónico incorrecto\n";
	}
	return salida;
}

function validaCifra(cadena, campo) {
	salida = "";
	validos = "0123456789,.- ()+";
	var numlong = 0;
	var longitudCifra = cadena.length;
	if(campo=="Teléfono Fijo" || campo=="Teléfono Movil") {var numlong = 9;}
	else if(campo=="Codigo Postal") {var numlong = 5;}
	// Buscamos carateres no válidos
	if (longitudCifra < numlong) {
		salida += "- campo " + campo + " no es correcto, debe de tener un minimo de " + numlong + ".\n";
	} else {
		for (i=0; i<cadena.length; i++) {
			toca = cadena.charAt(i);
			if (validos.indexOf(toca) == -1) {
				salida += "- Ha usado caracteres no permitidos en el campo " + campo + ".\n";
				break;
			}
		}
	}
	return salida;
}
function validar() {
	correcto = true;
	texto = "";
	f = document.formulario;
	if (f.nombre.value == "")   		{ texto += "- Nombre\n"; }
	if (f.apellido1.value == "")   	{ texto += "- Primer Apellido\n"; }
	if (f.apellido2.value == "")   	{ texto += "- Segundo Apellido\n"; }
	if (f.nacionalidad.value == "") { texto += "- Nacionalidad\n"; }
	if (f.domicilio.value == "")   	{ texto += "- Domicilio\n"; }
	if (f.localidad.value == "")   	{ texto += "- Localidad\n"; }
	if (f.provincia.value == "")   	{ texto += "- Provincia\n"; }
	if (f.pais.value == "")   			{ texto += "- Pais\n"; }
//	if (f.dia.value == "")   			{ texto += "- Dia\n"; }
//	if (f.mes.value == "")   			{ texto += "- Mes\n"; }
//	if (f.anyo.value == "")   			{ texto += "- Año\n"; }
	cp = true;
	if (f.cp.value == "")   { cp = false; } else { texto += validaCifra(f.cp.value, "Codigo Postal"); }
	fijo = true;
	if (f.telefono.value == "")   { fijo = false; } else { texto += validaCifra(f.telefono.value, "Teléfono Fijo"); }
	movil = true;
	if (f.movil.value == "")   { movil = false; } else { texto += validaCifra(f.movil.value, "Teléfono Movil"); }
	if (!fijo && !movil) { texto += "- Teléfono fijo o Teléfono Móvil.\n"; }
	if (!cp) 						 { texto += "- Codigo Postal.\n"; }
	// Validación del DNI
	if (f.email.value != "") { texto += validaEmail(f.email.value); }
	if (f.nif.value == "") { texto += "- N.I.F.\n"; } else { texto += validaDNI(f.nif.value); }
	if (texto == "") {
		f.submit();
	} else {
		alert("Debe indicarnos los siguientes datos antes de continuar:\n" + texto);
	}
}