// ************************************************************************* //
// ************************* FUNCIONES DE NUMERO ************************** //
// ************************************************************************* //
  
   // ======================================================================================

   function esNumerico(Dato)
   {
	return verificar_dominio (Dato, "0123456789");
	   }

// ************************************************************************* //
// ************************* FUNCIONES DE CADENAS ************************** //
// ************************************************************************* //

   // ======================================================================================

   function buscar_ultima_ocurrencia (elString, ocurrencia)
   {
		aux = -1;
		for(var i=0;i < elString.length ; i++)
		{
			if (elString.substring(i,i+1) == ocurrencia)
				{
				aux = i
				}
		}		
		return aux;
   }
   
   // ======================================================================================

   function esVacio(dato)
   {
      if (dato == "")
			return true
      else
            return false;
   }


   // ======================================================================================

   function verificar_cadenas_varias (campo, cadena_original, cadenas_a_buscar)
   {
	var dato;
	dato = cadenas_a_buscar;
	
	var posicion_coma;
	posicion_coma = dato.indexOf(',');
	
	var segmento;
	var palabra;
	while ( posicion_coma != -1 )
		{
		segmento = dato.substring(0, posicion_coma);
		dato = dato.substring(posicion_coma + 1, dato.length - posicion_coma + 2);
		posicion_coma = dato.indexOf(',');
		
		if (cadena_original.indexOf(segmento) != -1)
			{
			alert ('El campo ' + campo + ' contiene la siguiente palabra invalida: ' + segmento);
			return false;
			break;
			}
		}
	
	return true;
	}

   // ======================================================================================

   function verificar_cadena (dato, cadena_buscar)
   {
		if (dato.indexOf(cadena_buscar) == -1)
			{
			return false
			}
		else
			{
			return true;
			}
   }
   
   // ======================================================================================
   
   function verificar_dominio (Dato, Dominio)
   {
	var cadenaNumeros = Dominio
	var esteCaracter;
	var contador = 0;
	for(var i=0;i < Dato.length ; i++)
	{
		esteCaracter = Dato.substring(i,i+1);
		if(cadenaNumeros.indexOf(esteCaracter) != -1)
			contador ++;
	}
	if(contador == Dato.length)
           return true;
	else
           return false;
   }
   
   // ======================================================================================

   function esAlfa(Dato)
   {
	return verificar_dominio (Dato,"abcdefghijklmn&ntilde;opqrstuvwxyzABCDEFGHIJKLMN&Ntilde;OPQRSTUVWXYZÁÉÍÓÚ&aacute;&eacute;&iacute;&oacute;&uacute; ");
   }

   // ======================================================================================

   function sacarEspacios(cadena)
   {
      cadena = cadena.replace(/ /g, "");
      return cadena;
   }

   // ======================================================================================

   function stringToCharArray(elString)
   {
		var elArray = new Array(elString.length);
	
		for(var i=0;i < elString.length ; i++)
		{
			elArray[i] = elString.substring(i,i+1);
			
		}
		return elArray;
   }

// ************************************************************************* //
// ************************* FUNCIONES DE FECHAS *************************** //
// ************************************************************************* //

   // ======================================================================================
   
   function esFecha2(dia, mes, anio)
   {
	   var sFecha;
	   sFecha = dia + "/" + mes + "/" + anio;

		if ((dia == 0) && (mes == 0) && (anio == 0))
	   		return true
	   else
		    return esFecha (sFecha);
   }
   
   // ======================================================================================
   
   function esFecha(fecha)
   {
      var Meses = new Array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
      var diasDelMes = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
      var Dias = new Array ('Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab');

      fecha = fecha.replace(/ /g, "");
      fecha = fecha.split("/");
      
      fechaOk = true;
      // Valido que sean tres datos (dia, mes y anio)
      fechaOk = ((fecha.length != 3) ? false : true) && fechaOk
      // Valido el dia
      fechaOk = ((fecha[0] < 32 && fecha[0] > 0) ? true : false) && fechaOk;
      // Valido el mes
      fechaOk = ((fecha[1] < 13 && fecha[1] > 0) ? true : false) && fechaOk;
      // Valido el anio
      fechaOk = ((fecha[2] < 2031 && fecha[2] > 1900) ? true : false) && fechaOk;
      
      if (fechaOk)
      {
         if (validarBisiesto(fecha[2]) && (fecha[1] == "2" || fecha[1] == "02"))
         {
           if (fecha[0] > 29)
               fechaOk = false;
         }      
         else
         {
            if (fecha[0] > diasDelMes[parseInt(fecha[1]) - 1])
               fechaOk = false;
         }      
      }   
      
      if (!fechaOk)
         return false;
      else
         return true;
   }

   // ======================================================================================
   
   function validarFecha2(fecha)
   {
      var Meses = new Array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
      var diasDelMes = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
      var Dias = new Array ('Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab');

      fecha = fecha.replace(/ /g, "");
      fecha = fecha.split("/");
      
      fechaOk = true;
      // Valido que sean tres datos (dia, mes y anio)
      fechaOk = ((fecha.length != 3) ? false : true) && fechaOk
      // Valido el dia
      fechaOk = ((fecha[0] < 32 && fecha[0] > 0) ? true : false) && fechaOk;
      // Valido el mes
      fechaOk = ((fecha[1] < 13 && fecha[1] > 0) ? true : false) && fechaOk;
      
      if (fechaOk)
      {
         if (validarBisiesto(fecha[2]) && (fecha[1] == "2" || fecha[1] == "02"))
         {
           if (fecha[0] > 29)
               fechaOk = false;
         }      
         else
         {
            if (fecha[0] > diasDelMes[parseInt(fecha[1]) - 1])
               fechaOk = false;
         }      
      }   
      
      if (!fechaOk)
         return false;
      else
         return true;
   }

   // ======================================================================================

   function convertirFecha(fecha)
   {
      fecha = fecha.replace(/ /g, "");
      fecha = fecha.split("/");
      
      var nuevaFecha = fecha[1] + "/" + fecha[0] + "/" + fecha[2]; 
      return nuevaFecha;
   }   

// ======================================================================================

function fechaHoy(){

	var fecha;
	fecha = new Date();
	var dia;
	var mes;
	var anio;

	dia = fecha.getDate();
	mes = fecha.getMonth();
	anio = fecha.getYear();

	var nuevaFecha;
	nuevaFecha = new Date(anio, mes, dia);
	return nuevaFecha;

}

   // ======================================================================================
   
   function validarBisiesto(anio)
   {
      var bisiesto = false;
      if (((Math.round(anio / 4)) * 4) == anio)
         bisiesto = true;
      
      return bisiesto;   
   }

// ************************************************************************* //
// ************************* FUNCIONES DE COMBOS ************************** //
// ************************************************************************* //

// ======================================================================================

function obtenerSeleccionCombo (object)
{
	var i = 0;
	var res = '';

	for (i=0;i<object.length;i++)
		{ 
		if (object[i].checked) 
			{
			res = object[i].value;
			break; 
			}
		} 

	return res;
}

// ======================================================================================

function realizarSeleccion (object, valor)
{ 
	var i;
	for (i=0;i<object.length;i++)
		{ 
		if (object[i].value == valor)
			{
			object[i].checked = true;
			break;
			}
		}
} 

// ************************************************************************* //
// ********************** VALIDACIONES ESPECIALES ************************** //
// ************************************************************************* //

   // ======================================================================================

   function esTelefono(dato)
   {
   if (dato != '')
   		if (! verificar_dominio(dato,'0123456789 '))
			{
			return false;
			}
		else
			return true;
   else
   		return true;
   }
   
   // ======================================================================================

   function esEmail(dato)
   {
	if(dato != '')
		{
	      	if(dato.indexOf('@') != -1)
			{
		    	if (dato.indexOf('@') > buscar_ultima_ocurrencia (dato, '.'))
				return false
			else
				return true;
			}	
		else
        		{
			return false;
			}
		}
	else
		return true;
   }

   // ======================================================================================

   function ismaxlength(obj)
	{
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
	}
