//FUNCIONES PARA VERIFICACIÓN DE DATOS EN FORMULARIOS
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;
}	

//  ----------------------------------------------------------------------------------

//   function muestraCalendario(raiz,formulario_destino,campo_destino,mes_destino,ano_destino)

//  	abre una ventana con un calendario,Se deben indicar los campos donde va la fecha

//  ----------------------------------------------------------------------------------
var ventanaCalendario=false

function muestraCalendario(raiz,formulario_destino,campo_destino,mes_destino,ano_destino){
	//funcion para abrir una ventana con un calendario.
	//Se deben indicar los datos del formulario y campos que se desean editar con el calendario, es decir, los campos donde va la fecha.
	if (typeof ventanaCalendario.document == "object") {
		ventanaCalendario.close()
	}
	ventanaCalendario = window.open("index.php?formulario=" + formulario_destino + "&nomcampo=" + campo_destino,"calendario","width=300,height=300,left=100,top=100,scrollbars=no,menubars=no,statusbar=NO,status=NO,resizable=YES,location=NO")
}
