

 
 function submit_page(formulario)
 {
  hayError = false;

	// Hallamos primero el número de checkbox con el nombre 'listas' !!!!!!!!!!!!!!!!!!!!!!!!!!
	var numlistas=0;
	 if (document.datos_generales.listas)
	 {
	    numlistas=document.datos_generales.listas.length;
	 }
  
  // Comprueba que ha marcado alguna lista o categoría genérica
  if (!CatGenMarked())
  {
   for (var k=0;k<numlistas;k++)
   {
    if(trabajo_j=="alta")
	{
		if (document.datos_generales.listas[k].checked) break;
		if (k==document.datos_generales.listas.length-1)
		{

			alert("Debe marcar alguna lista de interés.");
	        hayError=true;
		}
    }
    
   }
  }

<!--CHEQUEO DEL MOVIL-->
  //CHEQUEA QUE EL CAMPO MOVIL SEA NUMERICO
  if(hayError == false && esMovilValido(formulario.movil) == false) {
   alert("El campo móvil no es valido.");
   hayError = true;
  }

  //CHEQUEA LOS CAMPOS NULOS
   if(hayError == false && esBlanco(formulario.nombre))
   {
    alert("El campo nombre no puede quedar en blanco.");
    hayError = true;
   }
  
  if(hayError == false && esBlanco(formulario.apellidos))
  {
    alert("El campo apellidos no puede quedar en blanco.");
    hayError = true;
  }
  if(hayError == false && esBlanco(formulario.email))
  {

    alert("El campo dirección de e-mail no puede quedar en blanco.");
    hayError = true;
  }

  if (hayError==false && formulario.sexo[0].checked == false && formulario.sexo[1].checked == false)
  {
     alert("Debe indicar cuál es su sexo.");
     hayError = true;
  }

  if (hayError==false && formulario.pais.value=='')
  {
     alert("Debe indicar cuál es su país.");
     hayError = true;
  }

  if (hayError==false && CompruebaPrv()==false)
  {
     alert("Debe indicar cuál es su provincia.");
     hayError = true;
  }

  if (hayError==false && CompruebaOcu()==false)
  {
     alert("Debe indicar cuál es su Ocupación.");
     hayError = true;
  }

  if (hayError==false && CompruebaSec()==false)
  {
     alert("Debe indicar cuál es su Sector.");
     hayError = true;
  }
  
  //CHEQUEA LA VALIDEZ DE LOS CAMPOS
  var validaEmail= esEmailValido(formulario.email.value);
  if(hayError == false && validaEmail!=0 )
  {
    if (validaEmail==1)

     alert("No es una dirección de email valida.");

    else if (validaEmail==2)

     alert("Email incorrecto. El campo email no puede contener espacios.");
     
    else if (validaEmail==3)     
     alert("Debe confirmar su dirección de E-mail");

    hayError = true;
  }

  if(hayError == false && esMenorLongitud(formulario.nombre, 45) == false)
  {
    alert("El nombre es demasiado largo.");
    hayError = true;
  }

  if(hayError == false && esMenorLongitud(formulario.apellidos, 60) == false)
  {
   alert("Los apellidos son demasiado largo.");
   hayError = true;
  }	

  if(hayError == false && esMenorLongitud(formulario.email, 60) == false)
  {

   alert("La dirección de e-mail es demasiado largo.");

   hayError = true;
  }

  if(hayError == false && CompFchNto() == false) {   
    hayError = true;
  }
  if(hayError == false) {
    if (checkFields()) formulario.submit();
  }
 }

// CHEQUEO DE BLANCOS
 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;
    }
    if(trabajo_j=="alta")
	  {
      if (document.datos_generales.email.value!=document.datos_generales.confirmaremail.value)
        return 3;
    }    
    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
   }

  //SUBMIT UNA SOLA VEZ
   var submitcount=0;
   function checkFields()
   {
     if (submitcount == 0)
     {
       submitcount++;
       return true;
     }
     else
     {

       alert("La orden de envio ya ha sido dada.");

       return false;
     }
   }

 
 function CompruebaOcu()
 {
   var ocu = document.datos_generales.ocupacion.value;
    if(ocu==99)
    {
      return false;
    }else  	{
      return true;
    }
 }     
 function CompruebaSec()
 {
   var sec = document.datos_generales.sector.value;
    if(sec==99)
    {
      return false;
    }else  	{
      return true;
    }
 }     

 function CompruebaPrv()
 {
    pais = document.datos_generales.pais.value;
    prov = document.datos_generales.provincia.value;
    if (prov=='') return false;
    if (pais=='MEX' || pais=='ESP' || pais=='ARG' || pais=='POR')
      if (prov=='MEX' || prov=='ESP' || prov=='ARG' || prov=='POR')
        return false;
    return true;
 }

 function EsFecha(dia,mes,ano)
 {
    if ( mes == 2 )
    {
       if ( dia > 29 ) return false;
       if ((dia ==29 ) && !((ano % 400 == 0 ) || ((ano % 4 == 0) && !(ano % 100 ==0)))) return false;
    }
    else if (( dia == 31 ) && (( mes == 4 ) || ( mes == 6 ) || ( mes == 9 ) || ( mes == 11 )))
    {
       return false;
    }
    else if (mes>12) {
       return false;
    }
    else if (dia>31) {
       return false;
    }
    return true;
 }


 //CHEQUEO DE MOVIL
function esMovilValido(campo)
 {
  validos = "0123456789.-()+"
  valor = campo.value;
  longitud = valor.length;

  for(var i=0; i<longitud; i++)
  {
    valido = false;
    for(var u=0; u<validos.length; u++)
    {
      if (validos.charAt(u)==valor.charAt(i))
      {
        valido = true;
        break;
      }
    }
    if (!valido)
     return false;
   }
   return true;
 }

