/**********************************************************************/
/* 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;
	contador2=0;
	valido=true;
	var encontradoguion=false;
	var encontradocoma=false;
	cadena=numero;
	longitud=cadena.length;
	
	for (i=0;i<cadena.length;i++)
	{
		ch=cadena.charAt(i);
		
		if (ch==",")
		{
			++contador;
			encontradocoma=true;
		}
		
		if (ch=="-")
		{
			++contador2;
			encontradoguion=true;
		}

		for (j=0;j<cadena2.length;j++)
		{
			if (ch==cadena2.charAt(j)) break;
		}
		
		if (j == cadena2.length) 
		{ 
			valido = false; 
			break; 
		}
	}

	if (encontradocoma)
	{
		if (contador>=2 || cadena.charAt(longitud-1)=="." || cadena.charAt(0)==".")
		{
			valido=false;
		}
		
		if (encontradoguion)
		{
			if (contador>=2 || cadena.charAt(longitud-1)=="." || cadena.charAt(1)==".")
			{
				valido=false;
			}
		}
	}
	
	if (encontradoguion)
	{
		if (contador2>=2 || cadena.charAt(0)!="-")
		{
			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)
{		
	var ObjExpReg=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
	
	//alert(email);
	
	if (!ObjExpReg.test(email))
	{
		return(false);
	}
	else
	{
		return(true);
	}
}

/**********************************************************************/
/*  Esta función recibe como argumento una cadena de caracteres       */
/*            y devuelve verdadero si la URL es correcta              */
/**********************************************************************/

function isUrl(s)
{
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}

/**********************************************************************/
/*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 = parseInt(arrayDate[1]); 
		
		//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 = parseInt(arrayDate[2]);
		var intMonth = parseInt(arrayDate[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");
	}
}