
//FUNCIONES PARA VERIFICACIÓN DE DATOS EN FORMULARIOS

//  ----------------------------------------------------------------------------------
//  function iluminar(src,color_entrada)
//      devuelve la cadena que se le pasa como parámetro coloreada con el color pasado
//  function apagar  (src,color_default)
//  	devuelve la cadena que se le pasa como parámetro coloreada con el color de fondo
//  ----------------------------------------------------------------------------------
function iluminar(src,color_entrada) {
	if (!src.contains(event.fromElement)) {
		 src.bgColor = color_entrada;
		 src.FontColor="ff0000";
		}
}
function apagar(src,color_default) {
	if (!src.contains(event.toElement)) {
	 src.bgColor = color_default;
	}
}	

//  ----------------------------------------------------------------------------------
//  function esMail(str)
//  	devuelve TRUE si la la cadena que se le pasa como parámetro es una dirección de mail
//  ----------------------------------------------------------------------------------
function esMail(str) {
  	return ((str.indexOf(".") > 2) && (str.indexOf("@") > 0));
 }

//  ----------------------------------------------------------------------------------
//  function esWeb(str)
//  	devuelve TRUE si la la cadena que se le pasa como parámetro es una dirección de internet
//  ----------------------------------------------------------------------------------
function esWeb(str) {
  	return ((str.indexOf(".") > 2));
 }

//  ----------------------------------------------------------------------------------
//   function esNumero(cad)
//  	devuelve TRUE si la cadena que se le pasa como parámetro es un número
//  ----------------------------------------------------------------------------------	
function esNumero(cad) {
	var ok=true;
	if (cad.length>0) {
		for (i=1;i<=cad.length;i++)
			if (((cad.substring(i-1,i)>"9") || (cad.substring(i-1,i)<"0")) && (cad.substring(i-1,i)!=".")) {
				ok=false;
				break;
		}
	} else ok=false;
	if (ok) return true;
		else return false;
}	
	
//  ----------------------------------------------------------------------------------
//   function esTelefono(cad)
//  	devuelve TRUE si la cadena que se le pasa como parámetro es un número de teléfono
//  ----------------------------------------------------------------------------------		
	function esTelefono(cad)
	{
	   var ValidChars = " 0123456789.-";
	   var esTelefono=true;
	   var Char;
	
	   for (i = 0; i < cad.length && esTelefono == true; i++) 
	      { 
	      Char = cad.charAt(i); 
	      if (ValidChars.indexOf(Char) == -1) 
	         {
	         	esTelefono = false;
	         }
	      }
	   return esTelefono;
	   
	   }

//  ----------------------------------------------------------------------------------
//  function DifFecha (fechIni,fechfin)
//  	devuelve TRUE si la diferencia entre dos fechas es mayor de 1 dia
//  ----------------------------------------------------------------------------------
function difFecha (fechIni,fechFin) {
   //Obtiene los datos del formulario
   CadenaFecha1 = fechIni;
   CadenaFecha2 = fechFin;
   
   //Obtiene dia, mes y año
   var fecha1 = new fecha( CadenaFecha1 );
   var fecha2 = new fecha( CadenaFecha2 );
      
   //Obtiene objetos Date
   var miFecha1 = new Date( fecha1.anio, fecha1.mes, fecha1.dia );
   var miFecha2 = new Date( fecha2.anio, fecha2.mes, fecha2.dia );
   
   //Resta fechas y redondea
   var diferencia = miFecha1.getTime() - miFecha2.getTime();
   if (diferencia>0) //Fecha Ini > Fecha Fin
	return true;
   else 	
	   return false;
}

//  ----------------------------------------------------------------------------------
//  function fecha( cadena )
//  	devuelve dia, mes y año por separado de la cadena que se le pasa como parametro
//  ----------------------------------------------------------------------------------
function fecha( cadena ) {
   //Separador para la introduccion de las fechas
   var separador = "/";

   //Separa por dia, mes y año
   if ( cadena.indexOf( separador ) != -1 ) {
        var posi1 = 0;
        var posi2 = cadena.indexOf( separador, posi1 + 1 );
        var posi3 = cadena.indexOf( separador, posi2 + 1 );
        this.dia  = cadena.substring( posi1, posi2 );
        this.mes  = cadena.substring( posi2 + 1, posi3 );
        this.anio = cadena.substring( posi3 + 1, cadena.length );
   } else {
        this.dia  = 0;
        this.mes  = 0;
        this.anio = 0;   
   }
}

//  ----------------------------------------------------------------------------------
//   function esFecha(fech)
//  	devuelve TRUE si la fecha que se le pasa es válida o FALSE en caso contrario
//  ----------------------------------------------------------------------------------
function esFecha (fech) {
	i=0;
	z=0;
	dia="";

	separador1=fech.indexOf('/');
	resto=fech.substring(separador1+1,fech.length);		
	separador2=resto.indexOf('/');		
		
	if ((separador1<=0) || (separador2<=0)){
		return false;
	}
	
	while (fech.charAt(i) != '/') {
		dia=dia+fech.charAt(i);
		i=i+1;
	}
	mes="";
	i=i+1;
	while (fech.charAt(i) != '/') { 
		mes=mes+fech.charAt(i);
		i=i+1;
	}					
	anio="";
	i=i+1;
	while (fech.charAt(i) != ''){
		anio=anio+fech.charAt(i);
		i=i+1;
	} 
	var ok=true;
	var bisiesto=false;
	if (esNumero(dia) && esNumero(mes) && esNumero(anio)) {
		if(anio%4==0) bisiesto=true;
		if (mes>0 && mes<13) {
			if (dia>0 && dia<32) {
				if ((mes==4 || mes==6 || mes==9 || mes==11) && dia==31) ok=false
				if (mes==2) {
					if (bisiesto && dia>29) ok=false;
					if (!bisiesto && dia>28) ok=false;
				}
			} else ok=false;
		} else ok=false;
	} else ok=false;
	if (ok) {
		return true;
	}else return false;
}	

