

// VALIDACION DNI/NIF
function esDNICorrecto(dni) {
    

 if (dni.substring(0, 1) == "X") { // dni extranjero  
	
	dni = dni.toUpperCase();
	var dni_sinletra = dni.substring(1, dni.length - 1);
  	var letras_dni = "TRWAGMYFPDXBNJZSQVHLCKET";
  	var posicion = dni_sinletra % 23;
 	var letra_asignada = letras_dni.substring(posicion, posicion + 1);
  	var dni_definitivo = "X" + dni_sinletra + letra_asignada;

	if (dni_definitivo == dni)  return true;
	return false;

  } else{
	if ( !(/^[0-9]{8}[A-Za-z]?$/.test(dni)) )  return false;
  	
	dni = dni.toUpperCase();
  	var dni_sinletra = dni.substring(0, dni.length - 1);
  	var letras_dni = "TRWAGMYFPDXBNJZSQVHLCKET";
  	var posicion = dni_sinletra % 23;
  	var letra_asignada = letras_dni.substring(posicion, posicion + 1);
  	var dni_definitivo = dni_sinletra + letra_asignada;

  	if (dni_definitivo == dni)  return true;

  	return false;

 }

}


// VALIDACION EDAD

function calcularEdad(fecha) {

    hoy = new Date();

    // calculo la fecha que recibo 
    // la descompongo en un array 
    var array_fecha = fecha.split("/");
    // si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length != 3)  return false;

    // compruebo que los ano, mes, dia son correctos 
    var ano;
    ano = parseInt(array_fecha[2]); 
    if (isNaN(ano))  return false;

    var mes;
    mes = parseInt(array_fecha[1]); 
    if (isNaN(mes))  return false;

    var dia;
    dia = parseInt(array_fecha[0]); 
    if (isNaN(dia))  return false;

    // si el aņo de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano <= 99)  ano += 1900;

    // resto los aņos de las dos fechas 
    edad = hoy.getFullYear() - ano - 1;  // -1 porque no se si ha cumplido aņos ya este aņo 

    // si resto los meses y me da menor que 0 entonces no ha cumplido aņos. Si da mayor si ha cumplido 
    if (hoy.getMonth() + 1 - mes < 0)  return edad;   //+ 1 porque los meses empiezan en 0 

    if (hoy.getMonth() + 1 - mes > 0)  return edad + 1;

    // entonces es que eran iguales. miro los dias
    // si resto los dias y me da menor que 0 entonces no ha cumplido aņos. Si da mayor o igual si ha cumplido 
    if (hoy.getUTCDate() - dia >= 0)  return edad + 1;

    
    return edad;

}

function esTelefono(v){
   var t=/^(6|8|9)\d{8}$/
   return t.test(v);
}

