//validacion para los comentarios
function validar(formulario)
{
		 if (formulario.email.value == "")
		 {
			alert("Es necesario rellenar el campo email antes de enviar.");
			formulario.email.focus();
			return false;
		 }

		 if (formulario.nombre.value == "")
		 {
			alert("Es necesario rellenar el campo nombre antes de enviar.");
			formulario.nombre.focus();
			return false;
		 }

		 if (formulario.texto.value == "")
		 {
			alert("Es necesario rellenar el campo comentario antes de enviar.");
			formulario.texto.focus();
			return false;
		 }



		 /* comienzo a validar el email si lo hay*/
		 if(formulario.email.value!="")
		 {
			var checkTLD=1;
			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
			var emailPat=/^(.+)@(.+)$/;
			var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
			var validChars="\[^\\s" + specialChars + "\]";
			var quotedUser="(\"[^\"]*\")";
			var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
			var atom=validChars + '+';
			var word="(" + atom + "|" + quotedUser + ")";
			var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
			var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
			var matchArray=formulario.email.value.match(emailPat);

			if (matchArray==null) {
			alert("La dirección de email parece incorrecta (comprueba @ y .)");
			formulario.email.focus();
			return false;
			}
			var user=matchArray[1];
			var domain=matchArray[2];
			for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
			alert("El nombre de usuario contiene caracteres incorrectos en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
			alert("El dominio contiene caracteres incorrectos en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			if (user.match(userPat)==null) {
			alert("El nombre de usuario no es válido en la dirección de correo.");
			formulario.email.focus();
			return false;
			}
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			alert("La IP de destino no es válida en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			return true;
			}
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
			alert("El nombre del dominio no es válido en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			if (checkTLD && domArr[domArr.length-1].length!=2 && 
			domArr[domArr.length-1].search(knownDomsPat)==-1) {
			alert("La dirección de correo debe terminar en un dominio conocido o de un país.");
			formulario.email.focus();
			return false;
			}
			if (len<2) {
			alert("Falta el dominio en la dirección de correo.");
			formulario.email.focus();
			return false;
			}
			/* termino de validar el email y si todo ok, devuelve true*/
			return (true);
	 }
}

<!--
function validar1(formulario)
{ 
		 if (formulario.email.value == "")
		 {
			alert("Es necesario rellenar el campo email antes de enviar.");
			formulario.email.focus();
			return false;
		 }
		 
		 if (formulario.tuemail.value == "")
		 {
			alert("Es necesario rellenar el campo email antes de enviar.");
			formulario.tuemail.focus();
			return false;
		 }

		 /* comienzo a validar el email si lo hay*/
		 if(formulario.email.value!="")
		 {
			var checkTLD=1;
			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
			var emailPat=/^(.+)@(.+)$/;
			var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
			var validChars="\[^\\s" + specialChars + "\]";
			var quotedUser="(\"[^\"]*\")";
			var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
			var atom=validChars + '+';
			var word="(" + atom + "|" + quotedUser + ")";
			var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
			var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
			var matchArray=formulario.email.value.match(emailPat);

			if (matchArray==null) {
			alert("La dirección de email parece incorrecta (comprueba @ y .)");
			formulario.email.focus();
			return false;
			}
			var user=matchArray[1];
			var domain=matchArray[2];
			for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
			alert("El nombre de usuario contiene caracteres incorrectos en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
			alert("El dominio contiene caracteres incorrectos en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			if (user.match(userPat)==null) {
			alert("El nombre de usuario no es válido en la dirección de correo.");
			formulario.email.focus();
			return false;
			}
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			alert("La IP de destino no es válida en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			return true;
			}
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
			alert("El nombre del dominio no es válido en la dirección de correo.");
			formulario.email.focus();
			return false;
				 }
			}
			if (checkTLD && domArr[domArr.length-1].length!=2 && 
			domArr[domArr.length-1].search(knownDomsPat)==-1) {
			alert("La dirección de correo debe terminar en un dominio conocido o de un país.");
			formulario.email.focus();
			return false;
			}
			if (len<2) {
			alert("Falta el dominio en la dirección de correo.");
			formulario.email.focus();
			return false;
			}
			/* termino de validar el email y si todo ok, devuelve true*/
			return (true);
	 }
}
