function validarFormulario(form) {
	if (! ValidaCampos(form.nombre, 3, 7, 0)) {
		alert("Es obligatorio el nombre");
		form.nombre.focus();
		return false;
	}

	if (! ValidaCampos(form.apellidos, 3, 7, 0)) {
		alert("Son obligatorios los apellidos");
		form.apellidos.focus();
		return false;
	}

	if (! ValidaCampos(form.email, 6, 5, 0)) {
		alert("Es obligatorio el e-mail");
		form.email.focus();
		return false;
	}

	var i = 999;

	for (i = 0 ; i < form.tipoOrganizacion.length ; i++) {
		if (form.tipoOrganizacion[i].checked) break;
        }

	if (i >= form.tipoOrganizacion.length) {
		alert("Error en codificación de tipo de organización");
		form.tipoOrganizacion.focus();
		return false;
	}

	if (! ValidaCampos(form.organizacion, 3, 7, 0)) {
		alert("Es obligatorio el nombre de organización");
		form.organizacion.focus();
		return false;
	}

	if (! ValidaCampos(form.direccion, 3, 7, 0)) {
		alert("Es obligatoria la dirección de contacto");
		form.direccion.focus();
		return false;
	}

	if (! ValidaCampos(form.poblacion, 3, 7, 0)) {
		alert("Es obligatoria la población");
		form.poblacion.focus();
		return false;
	}

	if (form.provincia.selectedIndex < 0) {
		alert("Es obligatoria la provincia");
		form.provincia.focus();
		return false;
	}

	if (! ValidaCampos(form.codigoPostal, 5, 3, 5)) {
		alert("Es obligatorio el código postal");
		form.codigoPostal.focus();
		return false;
	}

	if (! ValidaCampos(form.telefono, 8, 3, 0)) {
		alert("Es obligatorio el teléfono (sin espacios)");
		form.telefono.focus();
		return false;
	}

	if (! ValidaCampos(form.fax, 0, 3, 0)) {
		alert("Error en codificación de FAX");
		form.fax.focus();
		return false;
	}

	for (i = 0 ; i < form.instalacion.length ; i++) {
		if (form.instalacion[i].checked) break;
	}

	if (i >= form.instalacion.length) {
		alert("Error en codificación de instalación a visitar");
		form.instalacion.focus();
		return false;
	}

	if (! ValidaCampoFecha(form.fecha) || form.fecha.value.length == 0) {
		alert("Es obligatoria la fecha de visita");
		form.fecha.focus();
		return false;
	}

	if (form.hora.selectedIndex < 0) {
		alert("Es obligatoria la hora de visita");
		form.hora.focus();
		return false;
	}

	if (! ValidaCampos(form.visitantes, 1, 7, 0)) {
		alert("Es obligatorio el número de visitantes");
		form.visitantes.focus();
		return false;
	}

	if (! ValidaCampos(form.edades, 1, 7, 0)) {
		alert("Es obligatoria el rango de edades de los visitantes");
		form.edades.focus();
		return false;
	}

	form.tema.value = "Solicitud de visita a RCIR";

	form.texto.value = "Características de la solicitud\n\n";
	form.texto.value += "Instalación a visitar: ";

	for (i = 0 ; i < form.instalacion.length ; i++) {
		if (form.instalacion[i].checked) form.texto.value += form.instalacion[i].value;
	}

	form.texto.value += "\n";
	form.texto.value += "Fecha de visita: " + form.fecha.value + "\n";
	form.texto.value += "Hora de inicio de la visita: " + form.hora.value + "\n";
	form.texto.value += "Número de visitantes: " + form.visitantes.value + "\n";
	form.texto.value += "Edades de los visitantes: " + form.edades.value + "\n";

	form.submit();
}
