/*Funcion que valida la direccion de email*/
////////////////////////////////////////////////////////////////////////////////
function emailCorrecto(emailStr) {
////////////////////////////////////////////////////////////////////////////////

// Comprueba si el e-mail se adecua al formato usuario@dominio.
//  Tambien se usa para separar usuario de dominio.
var emailPat=/^(.+)@(.+)$/

// Cadena que representa los patrones que son caracteres especiales.
//   Son  ( ) < > @ , ; : \ " . [ ]
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]áéíóúÁÉÍÓÚâêîôû^ÂÊÎÔÛàèìòùÀÈÌÒÙÄËÏÖÜëïü¨"

// Rango de caracteres permitido en usuario o dominio.
//   Realmente afirma aquellos que no son permitido.
var validChars="\[^\\s" + specialChars + "\]"

// El siguiente patron se aplica si el "usuario" es una cadena con
// comillas (en ese caso no hay reglas sobre que caracteres se
// permiten y cuales no, todo vale). Por ejemplo, "evelio ojito"@talytal.com
// seria un e-mail legal.
var quotedUser="(\"[^\"]*\")"

// El siguiente patron aplica para dominios que son direcciones IP en
// vez de nombre simbolicos. P.ej. pepe@[123.124.233.4] es un e-mail legal
// NOTA: Se necesitan los corchetes.
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/

// La siguiente cadena representa un atomo (basicamente como una serie de
// caracteres no especiales.
var atom=validChars + '+'

// La siguiente cadena represente una palabra en el nombre de usuario
// tipico. P.ej. pepe.rodriguez@algunsitio.com, pepe y rodriguez son palabras.
// Basicamente, una palabra es un atomo o una cadena entrecomillada.
var word="(" + atom + "|" + quotedUser + ")"

// Estructura del usuario
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")

// Estructura de un dominio simbolico normal, en contraposicion a un
// patron de dominio IP, como mas arriba
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


// Finalmente averiguamos si la direccion es valida

// Empezamos con el patron burdo para romper usuario@dominio en distintas
// parte que son facilmente analizables

var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  // Demasiados o pocas @; basicamente, esta direccion no cuadra con el
  // molde general de una direccion de email valida
        return false
}
var user=matchArray[1]
var domain=matchArray[2]

// Mirar si "usuario" es valido
if (user.match(userPat)==null) {
    // usuario no es valido
    return false
}

// si el e-mail es una direccion IP (en vez de host simbolico)
// asegurarse que la IP es valida
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                return false
            }
    }
    return true
}

// Dominio es un nombre simbólico
var domainArray=domain.match(domainPat)
if (domainArray==null) {
    return false
}

// Nombre de dominio parece valido, pero asegurarse que termina en una palabra
// de 3 letras o 4 letras (como com, edu, gov, info) o una palabra de 2 letras representando un
// pais (es, uk nl) y que hay un nombre de host precediendo al dominio o pais


// Necesitamos romper el dominio para contar cuantos atomos tiene

var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>4) { 
// la dirección debe terminar en una palabra de 2 o 3 o 4 letras.
   return false;
}

// Asegurarse que hay un nombre de host precediendo al dominio
if (len<2) {
   return false
}

// Si hemos llegado hasta aqui, todo es válido
return true;
}
//funcion que valida el formulario
function validardatos(form){
		var errorS="";
      if (form.nombre.value==""){
		errorS="Debe introducir el nombre y apellidos";
		form.nombre.focus();
	}else if (form.email.value==""){
		errorS="Debe introducir el correo electrónico";
		form.email.focus();
	}else if (!emailCorrecto(form.email.value)){
		errorS="El correo electrónico no es correcto";
		form.email.focus();
	}else if (form.comentarios.value==""){
		errorS="Debe introducir su comentario";
		form.comentarios.focus();
	}
      if (errorS=="") {
		form.submit();
	}else alert(errorS);
}


