// JavaScript Document

function esBlanco(campo) {
	if(campo.value == "")
		return true;
	else
		for (var i=0;i<campo.value.length;i++)
			if (campo.value.charAt(i)!=" ") return false;
	return true;
}

function CharInCorrectos(cadena){
 validos="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.";

 // Comprobamos que cadena no tenga algún carácter no contemplado
 // en el string validos y que no existan dos puntos contiguos
 for (i=0;i<cadena.length;i++)
 {
   if (validos.indexOf(cadena.charAt(i))==-1) return true;
   if (cadena.charAt(i)==".")
	 if ((i!=cadena.length-1) && (cadena.charAt(i+1)=="."))
	   return true;
 }
 return false; // No se ha encontrado ninguna irregularidad
}

// Devuelve los valores:0(correcto),1(incorrecto),2(con espacios)
function esEmailValido(email) {
	if (email.indexOf(" ")!=-1) // Comprobamos que email no contenga espacios,tampoco en los laterales
	   return 2;
	if (email.indexOf("@")==-1) // Comprobamos que exista al menos un carácter @
	{
	   return 1;
	}
	else
	{
	  var posarroba=email.indexOf("@");
	  var nombre=email.substring(0, posarroba);
	  var dominio=email.substring(posarroba+1);

	  // Comprobamos que nombre  tenga al menos un carácter
	  if (nombre.length==0)
		 return 1;

	  // Comprobamos que nombre no sea un solo punto
	  if (nombre==".")
		 return 1;

	  // Comprobamos que dominio tenga al menos un carácter
	  if (dominio.length==0)
		 return 1

	  // Comprobamos que dominio tenga al menos existe un punto
	  if (dominio.indexOf(".")==-1)
		 return 1;

	  // Comprobamos que la ni la primera ni la última posición del dominio sea el punto
	  len_dom=dominio.length - 1;
	  if ((dominio.charAt(0)==".")||(dominio.charAt(len_dom)=="."))
		 return 1;

	  // Comprobamos que tanto nombre como dominio sólo cotengan carácteres válidos
	  if (CharInCorrectos(nombre)) return 1;
	  if (CharInCorrectos(dominio)) return 1;
	}
	return 0;
}


function validar(){
	formulario = document.form;
	email_spe = formulario.email;
	nombre_spe = formulario.nombre;
	asunto_spe = formulario.asunto;
	mensaje_spe = formulario.mensaje;

	hayError = false;

	//spe
	if(hayError == false && esBlanco(nombre_spe)) {
	alert("El campo nombre y apellido no puede quedar en blanco.");
	nombre_spe.focus();
	hayError = true;
	}
	
	if(hayError == false && esBlanco(email_spe)) {
	alert("El campo dirección de e-mail no puede quedar en blanco.");
	email_spe.focus();
	hayError = true;
	}
	
	var validaEmail= esEmailValido(email_spe.value);
	if(hayError == false && validaEmail!=0 ) {
	if (validaEmail==1) {
		alert("No es una dirección de email valida.");
		email_spe.focus();
		hayError = true;
	} 
	if (validaEmail==2) {
		 alert("Email incorrecto. El campo email no puede contener espacios.");
		 email_spe.focus();    
		 hayError = true;
	  }   
	}
	
	if(hayError == false && esBlanco(asunto_spe)) {
	alert("Por favor, introduzca un asunto.");
	mensaje_spe.focus();
	hayError = true;
	}
	return !hayError;


	if(hayError == false && esBlanco(mensaje_spe)) {
	alert("El campo mensaje no puede quedar en blanco.");
	mensaje_spe.focus();
	hayError = true;
	}
	return !hayError;
}
