//************************************************************
// Funcion que permite saber si una variable existe dentro de la forma
//************************************************************

function js_ExisteElemento(forma,elemento)
{ for (var i = 0; i < forma.length; i++) {
       if (forma.elements[i].name == elemento) {
          return 1; }
 } return 0;
}
//

//************************************************************
// Verifica si es una cadena está vacía.
//************************************************************

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}


//************************************************************
// Verifica si es una cadena contiene sólo espacios en blanco,
// tabuladores, o retornos de linea)
//************************************************************
function isWhitespace (s)

{   var i;
     var whitespace = " \t\n\r";
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        // si el caracter en que estoy no aparece en whitespace,
        // entonces retornar falso
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

//************************************************************
// Quita todos los caracteres que que estan en "bag" de la cadena
//  "s".
//************************************************************
function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";

    // Buscar por el string, si el caracter no esta en "bag",
    // agregarlo a returnString

    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

//************************************************************
// Quita espacios en blanco
//************************************************************

function trim(cadena)
{ 
  cadenaE="";
  for (i=0;i<cadena.length;i++)
  {     letra=cadena.substring(i,i+1);
    if (letra!=' ') { cadenaE=cadenaE + letra; }
  }
  return(cadenaE);
}

//************************************************************
// Verifica si es un caracter es una letra.
//************************************************************
function isLetter (c)
{

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü.,"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

//************************************************************
// Verifica si un caracter es un número
//************************************************************
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

//************************************************************
// Verifica si una cadena contiene sólo letras o números
//************************************************************
function isAlphanumeric (s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

//************************************************************
// Verifica si una cadena contiene  solo números
//************************************************************
function EsNumero(s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isDigit(c) ) )
        return false;
    }

    return true;
}

function isNumber(inputVal)
{
    for (var i = 0; i < inputVal.length; i++)
    {
	var oneChar = inputVal.charAt(i)
	if (oneChar < "0" || oneChar > "9")
	return false;
    }
    return true;
}


//************************************************************
// Verifica si una cadena es un número real
//************************************************************

function EsReal(numero)
 {
   Decimal=false
   numerostr="" + numero
   for (var i=0; i < numerostr.length; i++) {
   var caracter=numerostr.charAt(i)
   if (caracter== "." && !Decimal) {
      Decimal=true
      continue
   }

   if (caracter==",")
   {
	continue
   }

   if (caracter < "0" || caracter > "9") {
       return false
   }
 }

 if (numero>9999999999999.99)
 {
 	return false
 }
 return true

}

//************************************************************
// Verifica si una cadena contiene sólo letras.
//************************************************************

function isAlphabetic (s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
             return false;
    }
    return true;
}

//************************************************************
// Verifica si es una cadena es un nombre válido: tiene sólo letras,
// números o espacios en blanco.
//************************************************************
function EsNombre (s)
{

     var whitespace = " \t\n\r";
     variable=stripCharsInBag( s, whitespace )

     return( isAlphabetic(variable) );
}


//************************************************************
// Verifica si es una cadena es una dirección de correo válida
//************************************************************
function EsEmail (s)
{
    if (isWhitespace(s)) return false;

    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

   if ((i >= sLength) || (s.charAt(i) != "@"))  return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

//************************************************************
// Verifica si una cadena es una dirección (ubicación) válida
//************************************************************
function EsDireccion (s)
{   var i;

     var whitespace = " \t\n\r";
     s=stripCharsInBag( s, whitespace )

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) || (c==".") ) )
        return false;
    }

    return true;
}


 function fnumero(numero)
     { for (var i = 0; i < numero.length; i++)
         { var carac = numero.substring(i,i+1)
         if (carac < "0" || carac > "9")
          {
             return false;
          }
         }
     return true;
     }
//************************************************************
// Verifica si una cadena es un número de teléfono válido
//************************************************************
function EsTelefono (s)
{
     var modString;
    var phoneChars = "()-+ ";

    modString = stripCharsInBag( s, phoneChars );

      if (modString.length < 6 )
    { return false;    }
    variable =  fnumero(modString)

    return variable;
}

//************************************************************
// Verifica si una cadena es una fecha válida.
//************************************************************
function valida_fecha(dia,mes,ano)
{

	dia=trim(dia)
	mes=trim(mes)
	ano=trim(ano)

	if (! EsNumero(dia)) 	return false;
	if (! EsNumero(mes)) 	return false;
	if (! EsNumero(ano)) 	return false;


	if(dia.substring(0,1)=='0')
	{
		dia=dia.substring(1,2)
	}

	if(mes.substring(0,1)=='0')
	{
		mes=mes.substring(1,2)
	}


	if (mes < 1 || mes > 12)
	   return false;
	if (dia < 1 || dia > 31)
	   return false;
	if (ano < 1754 || ano > 9999)
	   return false;


	if(mes==2 && dia>29)   	//valida Febrero
	   return false;

	if ((ano%4)!=0 && dia ==29 && (mes==2)) // año bisiesto
	{
		return false;
	}

	if ((mes==4||mes==6||mes==9||mes==11)& dia>30) //Meses de 30 dias.
		return false;
	return true;
 }


//************************************************************
// Verifica si una cadena es válida como login o password
//************************************************************

function isLoginPass(inputVal)
{

    if (fnumero(inputVal))
    {
    	alert("Ingrese una cadena que contenga caracteres y numeros");
    	return false;
    }

    return isAlphanumeric(inputVal);

}


//************************************************************
// Verifica si una cadena contiene sólo letras o números
//************************************************************

function isLoginPassword (s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        // if ( (c >= "a" && c <= "z") || (c >= "A" && c <= "Z") )
        // {	}

        if ( c == "á" || c == "é" || c == "í" || c == "ó" || c == "ú" )
        {	return false;	}
    }

    return true;
}

//************************************************************
// Verifica si una palabra se encuentra en una cadena
//************************************************************

function Pal_in_Cad (cadena, palabra)
{   var i, longpalabra, longcadena, fin;

	longcadena  = cadena.length;
	longpalabra = palabra.length;


    fin=0;
    i=0;
    if (longcadena >= longpalabra)
    {
		while ( !fin && i<longcadena)
		{
			if (palabra == cadena.substring(i,i+longpalabra))
			{	fin=1;
				return false;
			}
			i=i+1;
		}
	}

    return true;
}


