/**
* funcion principal de validación
*/
function validar(){ 
    if (document.form_imei.nombre.value==""){
       alert('Debe introducir el nombre');
       document.form_imei.nombre.value = '';
       document.form_imei.nombre.focus();
       return false;
    }
    if (document.form_imei.apellidos.value==""){
       alert('Debe introducir los apellidos');
       document.form_imei.apellidos.value = '';
       document.form_imei.apellidos.focus();
       return false;
    }
    if (!validar_sexo()) { 
        alert("Debe seleccionar hombre o mujer");
        return false;
    }
    if(!validar_fecha()){
        return false;
    }
    if (document.form_imei.poblacion.value=="") { 
        alert("Debe introducir una población");
        document.form_imei.poblacion.value = '';
        document.form_imei.poblacion.focus(); 
        return false;
    }
    if (document.form_imei.provincia.value=="") { 
        alert("Debe introducir una provincia");
        document.form_imei.provincia.value = '';
        document.form_imei.provincia.focus(); 
        return false;
    }
    if(!/^[0-9]{9}$/.test(document.form_imei.mvl.value)){
      alert("El teléfono no es correcto");
      document.form_imei.mvl.value = '';
      document.form_imei.mvl.focus();
      return false;
    }
    if (document.form_imei.email.value=="" || mail(document.form_imei.email.value)) { 
        alert("Debe introducir un email correcto");
        document.form_imei.email.value = '';
        document.form_imei.email.focus(); 
        return false;
    }
    if (document.form_imei.imei.value==""){
       alert('Debe introducir el IMEI');
       document.form_imei.imei.value = '';
       document.form_imei.imei.focus();
       return false;
    }
	if (document.form_imei.imei.value.length!=15){
       alert('Debe introducir un IMEI correcto');
       document.form_imei.imei.value = '';
       document.form_imei.imei.focus();
       return false;
    }
       
    return true;
}
/**
* funcion para comprobar el formato del email
*/
function mail(texto){

    var mailres = true;            
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
    
    var arroba = texto.indexOf("@",0);
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
    
    var punto = texto.lastIndexOf(".");
                
     for (var contador = 0 ; contador < texto.length ; contador++){
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     }
    }

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1))
     mailres = true;
    else
     alert("Debe introducir un email correcto");
     mailres = false;
                
    return mailres;
} 
/**
* funcion para comprobar el radiobutton de sexo
*/
function validar_sexo() {
  var form = document.form_imei;
  var s = "no";
  for ( var i = 0; i < form.sexo.length; i++ ) {
   if ( form.sexo[i].checked ) {
    s="si";
    return true;
    }
  }
  if ( s == "no" ){
   return false;
  }
}

/**
* funcion para comprobar si una año es bisiesto
*/
function anyoBisiesto(anyo){
var fin = anyo ;
/*
* primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
* es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
*/
if (fin % 4 != 0)
return false;
else
{
if (fin % 100 == 0)
{
//si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
if (fin % 400 == 0)
{
return true;
}
//si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
else
{
return false;
}
}
//si es divisible por 4 y no es divisible por 100 > el año es bisiesto
else
{
return true;
}
}
}

/**
* funcion principal de validacion de la fecha
*/
function validar_fecha(){
//obtenemos la fecha introducida
dia=document.form_imei.dia.value;
mes=document.form_imei.mes.value;
anyo=document.form_imei.anio.value;
if(anyoBisiesto(anyo))
febrero=29;
else
febrero=28;

/**
* si el mes introducido es febrero y el dia es mayor que el correspondiente
* al año introducido > alertamos y detenemos ejecucion
*/
if ((mes==2) && ((dia<1) || (dia>febrero))){
  alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
  return;
}
/**
* si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
*/
if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))){
  alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
  return;
}
/**
* si el mes introducido es de 30 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
*/
if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))){
  alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
  return;
}
return true;
}
