/**********************************************************************/
/* Esta función devuelve verdadero si el valor pasado como argumento  */
/* es una cadena vacia.						      */
/**********************************************************************/


function vacio(valor)
	{
		if (valor=="")
			{
				return(true);
			}
		else
			{
				return(false);
			}
	}


/**********************************************************************/
/*  Esta funcion comprobará si el valor introducido en la variable    */
/*  'valor' tiene el número de caracteres introducidos en la          */
/*   variable 'num'.                                                  */   
/**********************************************************************/


function num_caracteres(valor,num)
	{
		if (valor.length==num) 
			
				return true;
			
		else
			
				return false;
			
		
	}
	


/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por dígitos.                                                  */
/**********************************************************************/

function es_entero(numero)
	{
		cadena2="1234567890";
		valido=true;			
		cadena=numero;			
		for (i=0;i<cadena.length;i++)
			{
				ch=cadena.charAt(i);
				for (j=0;j<cadena2.length;j++)
					{						
						if (ch==cadena2.charAt(j)) break;								
							
					}
					if (j == cadena2.length) 
						{ 
      							valido = false; 
      							break; 
    						}														
			}
			
	
		if (valido==false)
			{	
				return(false);		
			}
		else
			{
				return(true);
			}		

}

/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por dígitos y espacios.                                       */
/**********************************************************************/

function es_telefono(numero)
	{
		cadena2="1234567890 ";
		valido=true;			
		cadena=numero;			
		for (i=0;i<cadena.length;i++)
			{
				ch=cadena.charAt(i);
				for (j=0;j<cadena2.length;j++)
					{						
						if (ch==cadena2.charAt(j)) break;								
							
					}
					if (j == cadena2.length) 
						{ 
      							valido = false; 
      							break; 
    						}														
			}
			
	
		if (valido==false)
			{	
				return(false);		
			}
		else
			{
				return(true);
			}		

}
/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por dígitos y una coma.                                                  */
/**********************************************************************/

function es_real(numero)
	{
		cadena2="1234567890,";
		contador=0;
		valido=true;			
		cadena=numero;			
		longitud=cadena.length;
		for (i=0;i<cadena.length;i++)
			{
				ch=cadena.charAt(i);
				if (ch==",") 
					{
						++contador;
					}
					
				
				for (j=0;j<cadena2.length;j++)
					{						
						if (ch==cadena2.charAt(j)) break;								
							
					}
					if (j == cadena2.length) 
						{ 
      							valido = false; 
      							break; 
    						}														
			}
	
		if (contador>=2 || cadena.charAt(longitud-1)==",")
			{
				 valido=false;
			}
		
		
		if (valido==false)
			{	
				return(false);		
			}
		else
			{
				return(true);
			}		

}

/**********************************************************************/	
/* La siguiente función toma como argumento una cadena de caracteres  */
/* y nos devuelve verdadero si la variable introducida está compuesta */
/* sólo por caracteres válidos para hacer una inserción en una base   */	
/* de datos.                                                          */
/**********************************************************************/

function es_valido(valor)
	{
		cadena2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-";
		valido=true;			
		cadena=valor;			
		for (i=0;i<cadena.length;i++)
			{
				ch=cadena.charAt(i);
				for (j=0;j<cadena2.length;j++)
					{						
						if (ch==cadena2.charAt(j)) break;								
							
					}
					if (j == cadena2.length) 
						{ 
      							valido = false; 
      							break; 
    						}														
			}
			
	
		if (valido==false)
			{	
				return(false);		
			}
		else
			{
				return(true);
			}		

}

/**********************************************************************/
/*  Esta función recibe como argumento una cadena de caracteres       */
/* y devuelve verdadero si la cadena posée los caracteres '@' y '.'   */
/**********************************************************************/

function es_correo(email)
	{		
		if ((email.indexOf("@") == -1) || (email.indexOf(".") == -1))
			{
				return(false);
			}
		else
			{
				return(true);
			}
	}
/**********************************************************************/
/*Esta función valida si una fecha introducida es válida              */
/*    Ej: mm/dd/yyyy o mm-dd-yyyy o mm.dd.yyyy                      */
/*    								      */
/* 								      */
/**********************************************************************/	
function validar_fecha( strValue ) {

  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //Revisa si está en el formato correcto
  if(!objRegExp.test(strValue))
    return false; //no se ajusta al patron, fecha no valida
  else{
    var strSeparator = strValue.substring(2,3) //encuentra separador de fechas
    var arrayDate = strValue.split(strSeparator); //separa la fecha en dia, mes y año
    //crea un vector con los meses no iguales a febrero
    var arrayLookup = { '01' : 31,'03' : 31,'04' : 30,'05' : 31,'06' : 30,'07' : 31,'08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
    var intDay = arrayDate[1]-0; 
    //revisa si el valor del día y del mes son válidos
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //encontrado en el vector, fecha valida
    }
    
    //revisa febrero
    var intYear = arrayDate[2]-0;
    var intMonth = arrayDate[0]-0;
    if( ((intYear % 4 == 0 && intDay <= 29) || (intYear % 4 != 0 && intDay <=28)) && intDay !=0)
      return true; //Feb. tiene un número valido de días
  }
  return false; //cualquier otro valor, fecha no valida
}
	
	
/**********************************************************************/
//Validar fecha
//Este codigo JavaScript Permite validar la fecha en formato 00/00/0000. 
//formato fecha: dd/mm/yyyy
//Valida bisiestos y meses de 30 y 31 dias, 
//asegurandose demás de que la fecha sea mayor de 1900.
/**********************************************************************/

function fecha_correcta(fecha)
{ 
   if(fecha)
   {
      borrar = fecha;
      if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/"))
      {      
         for (i=0; i<10; i++)
	     {	
            if (((fecha.substr(i,1)<"0") || (fecha.substr(i,1)>"9")) && (i != 2) && (i != 5))
			{
               borrar = '';
               break;  
			}  
         }
	     if (borrar)
	     { 
	        a = fecha.substr(6,4);
		    m = fecha.substr(3,2);
		    d = fecha.substr(0,2);
//		    if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
			if((a < 1900) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
			{
		       borrar = '';
			 }
		    else
		    {
		       if((a%4 != 0) && (m == 2) && (d > 28))	 
			   {  
		          borrar = ''; // Año no biciesto y es febrero y el dia es mayor a 28
				}
			   else	
			   {
		          if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
				  {
			         borrar = '';	    
  				  }	 
			   }  // else
		    } // fin else
         } // if (error)
      } // if ((fecha.substr(2,1) == "/") && (fecha.substr(5,1) == "/"))			    			
	  else
	  {
	     borrar = '';
	  }
   } // if (fecha)   
   if (borrar == '')  return false;
   else	return true;
}

/**********************************************************************/
//limitar el número de los textarea
//Este codigo JavaScript Permite limitar el número de caracteres de los. 
//campos textarea
/**********************************************************************/

function cuenta(nombre,numero)
{ 
	var cadena="";
	
	if (eval("document.formulario." + nombre + ".value.length>" + numero))
	{
		for (i=0;i<numero;i++)
		{
			eval("cadena+=document.formulario." + nombre + ".value.charAt(" + i + ")");
		}
		
		eval("document.formulario." + nombre + ".value=cadena");
	}
}