function emailCheck (emailStr)
{
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

  var matchArray = emailStr.match(emailPat);
	if (matchArray == null )
  {
	 alert("El formato de la dirección de email no es correcto.\nPor favor, introdúzcalo de nuevo (ej. yo@midominio.com)");
	 return false;
	}

  var user = matchArray[1];
	var domain = matchArray[2];

	if (user.match(userPat) == null) {

	  alert("La dirección de email no es válida.\nPor favor, introdúzcala de nuevo");
	  return false;
	}

	var domainArray = domain.match(domainPat)
	if (domainArray == null) {
	  alert("El nombre de dominio parece no válido.");
	  return false;
	}

	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)
  {
	   alert("La dirección de email debe terminar en dominio de dos, tres o cuatro letras.");
	   return false;
	}


	if (len < 2)
  {
	   alert("La dirección de email no contiene un nombre de host");
	   return false;
	}

	return true;
}

function esNoNumero(valor) {
	return isNaN(valor);
}

function fVerificaEnvia(F) {
//	alert("aquí se verifican los datos que querramos");
	var recuReque = ""; var recuNum = ""; enviaSN = true;
	var Spain = true;

	var enOpar = F.envio[1].checked;
		
	// Si no es españa
	if ( F.paises.value!="ESPAÑA" && F.paises.value!="ANDORRA" )
		Spain = false;
				
	if ( F.nombre.value=="") {
		recuReque += "\n- Nombre";enviaSN = false;
	}

	if ( F.apellidos.value=="") {
		recuReque += "\n- Apellidos";enviaSN = false;
	}
	if ( !enOpar && F.direccion.value=="") {
		recuReque += "\n- Dirección";enviaSN = false;
	}
	if ( !enOpar && F.municipio.value=="") {
		recuReque += "\n- Municipio";enviaSN = false;
	}

	if ( !enOpar &&  F.provincias[F.provincias.selectedIndex].value=="") {
		recuReque += "\n- Provincia";enviaSN = false;
	}
	if ( !enOpar && Spain && esNoNumero(F.codigopostal.value)) {
		recuNum += "- \"Código Postal\" debe ser un número\n";enviaSN = false;
	}
	if ( !enOpar && Spain && esNoNumero(F.telefono1.value)) 
	{
		recuNum += "- \"Teléfono 1\" debe ser un número\n";enviaSN = false;
	}
	if ( !enOpar && Spain && esNoNumero(F.telefono2.value)) {
		recuNum += "- \"Teléfono 2\" debe ser un número\n";enviaSN = false;
	}
	if ( !enOpar && Spain && F.codigopostal.value.length!=5) {
		recuNum += "- \"Código Postal\" debe ser de 5 cifras\n";enviaSN = false;
	}
	if (!enOpar && !Spain && F.email.value=="" ) 
	{
		recuReque += "\n- Email ";enviaSN = false;
	}	
	if ( Spain && F.email.value=="" ) 
	{
		recuReque += "\n- Email ";enviaSN = false;
	}
	if ( Spain && F.telefono1.value=="" && F.telefono2.value=="") 
	{
		recuReque += "\n- Algún teléfono";enviaSN = false;
	}	
	
//	alert(recuReque);
	
	//envio o no
//	alert(enviaSN);
	
	if (enviaSN) 
	{
		if (F.email.value!="") { 
			if (emailCheck(F.email.value)) { 
				return true;
			}
		} else return true;
		return false;
	} else 
	{
		var llama = "";
		if (recuReque!="") {
			llama += "Rellene los siguientes campos obligatorios:" + recuReque;
		}
		if (recuNum!="") {
			llama += (recuReque=="")?"":"\n\nAdemás:\n";
			llama += recuNum;
		}
		alert(llama);
		return false;
	}
}
