 function submit_page(formulario)
 {
  hayError = false;
	var numlistas=0;
  if (formulario.listas) {
	    numlistas=formulario.listas.length;
	 }
  for (var k=0;k<numlistas;k++)  {
  		if (formulario.listas[k].checked) break;
  		if (k==formulario.listas.length-1){
		  alert("Debe marcar alguna lista de interés.");
    	          hayError=true;
	    }
  }
  if(hayError == false && esBlanco(formulario.email)) {
    alert("El campo dirección de e-mail no puede quedar en blanco.");
    formulario.email.focus();
    hayError = true;
  }
  if (hayError==false && (formulario.pais.value=='')) { 
    alert("Debe seleccionar un pais");
    formulario.pais.focus();
    hayError = true;
  }
  if (hayError==false)
   {
     if (CompruebaCp(formulario)== true)
      {
        formulario.cp.focus();
        hayError=true;
      }
     else
        hayError=false;
   }
  var validaEmail= esEmailValido(formulario.email.value);
  if(hayError == false && validaEmail!=0 ) {
    if (validaEmail==1) {
        alert("No es una dirección de email valida.");
        formulario.email.focus();
        hayError = true;
    } 
    if (validaEmail==2) {
         alert("Email incorrecto. El campo email no puede contener espacios.");
         formulario.email.focus();    
         hayError = true;
      }   
  }
  if(hayError == false && esMenorLongitud(formulario.email, 60) == false) {
      alert("La dirección de e-mail es demasiado largo.");
      formulario.email.focus();
      hayError = true;
  }
  if (hayError==false && (formulario.sexo.value == '' ))  {
     	alert ("selecciona tu sexo ");
        hayError=true ;
     }
   if ( hayError == false && formulario.fec_ncto.value == ''  ) {
        alert ("Tienes que seleccionar tu edad");
        formulario.fec_ncto.focus();
        hayError = true;
    }
  if ( hayError == false && formulario.ocupacion.value == ''  ) {
        alert ("Tienes que seleccionar tu ocupacion");
        formulario.ocupacion.focus();
        hayError = true;
    }
  if ( hayError == false && formulario.sector.value == ''  ) {
        alert ("Tienes que seleccionar tu Sector");
        formulario.sector.focus();
        hayError = true;
    }
  if(hayError == false) {
    formulario.submit();
   }
 }
 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;
 }

//CHEQUEO DE LONGITUD
 function esMenorLongitud(campo, longitud) {
  valor = campo.value;

  if(valor.length > longitud) {
   return false;
  }
  return true;
 }
  //CHEQUEO DE EMAIL
  function esEmailValido(email) // Devuelve los valores:0(correcto),1(incorrecto),2(con espacios)
  {
    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 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
   }
  function CompruebaCp(formulario)
  {
        var pais     = formulario.pais.value;
        var cp       = formulario.cp.value;
        var longitud = formulario.cp.value.length;
        if (cp=='' && pais=='ESP') 
          {
            alert("Debes introducir el código postal");
            hayError="true";
            return true;
          }
        if (longitud != 5 && pais=='ESP')
          {
             alert("El código postal no es correcto");
             hayError="true";
             return true;
          }
        if (longitud==5 && pais=='ESP')
          {
           var pos0=parseInt(cp.charAt(0));
           var pos1=parseInt(cp.charAt(1));
           if (  (( pos0==5)&& (pos1 > 2)) || ( pos0 > 5 )    )
            {
               alert("El código postal no es correcto");
               hayError="true";
               return true;
            }
           validos="0123456789";   
           for (contador=0;contador<longitud;contador++)
            {
       		if (validos.indexOf(cp.charAt(contador))==-1) 
       		  {
               		alert("El código postal no puede contener letras ");
               		hayError="true";
               		return true;       		     
       		  }    		
            } 
 	     }
       hayError="false";
 	     return false;

   }   