<!--
// FechaValida(oDia,oMes,oAnno,obligatorio); 
// version 3.0
//---------------------------------------------------------------------------------------------------------
// Parámetros de entrada:
//	oDia, oMes, oAnno,: son los campos del formulario donde se introdujeron el dia, mes y año a analizar
//	obligatorio: true si el campo no puede estar vacío
//	
// Mediante el uso de expresiones regulares se analiza si la fecha introducida 
//   contiene un número entero válido.
// Ademas se hace un control del número de día dependiendo del mes introducido
//
// ATENCIÓN EL AÑO INTRODUCIDO DEBE ESTAR COMPRENDIDO ENTRE 2000 Y 2049 POR RAZONES DE ESPECIFICACIÓN EN LA BBDD
// Devuelve true si es correcto; false en otro caso
//---------------------------------------------------------------------------------------------------------


   function FechaValida(oDia, oMes, oAnno, obligatorio)
    {
    	var Dia
	var Mes
	var Anno
	var expreg = /^[0-9]+$/;	// para comprobar si son números naturales

	Dia = oDia.value
     	Mes = oMes.value
     	Anno = oAnno.value
	
	
		
        if (oDia.value=="" && oMes.value=="" && oAnno.value=="") 
  	    { 
	       if (obligatorio)
		   {
		       alert("Es necesario que indique esta fecha.");
		       oDia.focus();
		       return false;
		   }
	    else return true
   	    }

// modificacion expresion regular

	if (Dia.search(expreg)==-1) {
		alert("El día introducido no es correcto, revíselo por favor");
		oDia.focus();
		oDia.select();
		return false;
	}
	
	if (Mes.search(expreg)==-1) {
		alert("El mes introducido no es correcto, revíselo por favor");
		oMes.focus();
		oMes.select();
		return false;
	}
	
	if (Anno.search(expreg)==-1) {
		alert("El año introducido no es correcto, revíselo por favor");
		oAnno.focus();
		oAnno.select();
		return false;
	}



// fin modificacion	
	

	
	 if (Dia<1||Dia>31)
	 				{
				 alert("Introduzca un día entre 1 y 31.")
				 oDia.focus();
				 oDia.select();
				         return false;
				}
	   else
             if (Mes<1 || Mes>12)
		{
		 alert("Introduzca un mes entre 1 y 12.")
		 oMes.focus();
		 oMes.select();
		 return false;
		}

	 else
	 
     if ((Anno<1901) || (Anno>2099))
		{
		  alert("Introduzca un año entre 1901 y 2099.")
		  oAnno.focus();
		  oAnno.select();
          return false;
		}

           else 
              if ((Mes==1)||(Mes==3)||(Mes==5)||(Mes==7)||(Mes==8)||(Mes==10)||(Mes==12))
		  {
  		    if (Dia>31)
			{
			 alert("Introduzca un día entre 1 y 31.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
		  }
	   else

             if ((Mes==4)||(Mes==6)||(Mes==9)||(Mes==11))
		 {
		  if (Dia>30)
			{
			 alert("Introduzca un día entre 1 y 30.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
 		 }
	   else

	     if (Mes==2)
		{ 
		if ((Anno % 4)==0)
		  {
		   if (Dia>29)
			{
			 alert("Introduzca un día entre 1 y 29.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}

		  }
		else
		  {
		   if (Dia>28)
			{
			 alert("Introduzca un día entre 1 y 28.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}
		  }
		}
	   else
			{ // Esta rama nunca debe ejecutarse
			 alert("Introduzca una fecha válida.")
			 oDia.focus();
			 oDia.select();
			 return false;
			}


       return true;
             
    }
 
// FechaNacValida(dia,mes,anyo,obligatorio)
// version 1.0
// --------------------------------------------------------------------------------------------------------
// Parámetros de entrada:
// 	dia,mes,anyo : campos del formulario que contienen la fecha
//	obligatorio: true si el campo no puede estar vacío
// Devuelve 'true' si la fecha proporcionada es una fecha de nacimiento válida (es decir, es anterior a la fecha
// actual). Devuelve 'false' en caso contrario, o si se trata de una fecha incorrecta (haciendo uso de la función anterior)

    function FechaNacValida(dia,mes,anyo,obligatorio){
    
    var fecha;
    var fechaact;
    
    if ((dia.value=="") && (mes.value=="") && (anyo.value=="")){ 
	 if (obligatorio){
		       alert("Es necesario que indique esta fecha.");
		       dia.focus();
		       return false;
		   }
	    else 
	    	return true;
    }
    
    //Comprobar que es una fecha válida
    if(FechaValida(dia,mes,anyo,obligatorio)){
    	fecha = new Date(anyo.value + "/" + mes.value + "/" + dia.value);
    	fechaact = new Date();
    	if ((fechaact - fecha)<0){
    		alert("La fecha de nacimiento indicada no es válida.");
    		dia.focus();
    		return false;
	}
    }
    else
    	return false;
    
    return true;
}  


// FechaFuturaValida(dia,mes,anyo,obligatorio)
// version 1.0
// --------------------------------------------------------------------------------------------------------
// Parámetros de entrada:
// 	dia,mes,anyo : campos del formulario que contienen la fecha
//	obligatorio: true si el campo no puede estar vacío
// Devuelve 'true' si la fecha proporcionada es una fecha 'futura' válida (es decir, es posterior a la fecha
// actual). Devuelve 'false' en caso contrario, o si se trata de una fecha incorrecta (haciendo uso de la función anterior)

    function FechaFuturaValida(dia,mes,anyo,obligatorio){
    
    var fecha;
    var fechaact;
    
    if ((dia.value=="") && (mes.value=="") && (anyo.value=="")){ 
	 if (obligatorio){
		       alert("Es necesario que indique esta fecha.");
		       dia.focus();
		       return false;
		   }
	    else 
	    	return true;
    }
    
    //Comprobar que es una fecha válida
    if(FechaValida(dia,mes,anyo,obligatorio)){
    	fecha = new Date(anyo.value + "/" + mes.value + "/" + dia.value);
    	fechaact = new Date();
    	if ((fecha- fechaact)<0){
    		alert("La fecha indicada es anterior a la actual.");
    		dia.focus();
    		return false;
	}
    }
    else
    	return false;
    
    return true;
} 
