// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//                    INICIO RUTINA: validar_tipodato
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function V00_validar_tipodato(in_cadena,in_tipo)
{
  var c=0;
  letras="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  numero="0123456789";
  caracter_control="§#!|\"\\·$%&=?¿¡{}+*'[]_;:<>";
  letras_especiales="ñÑàèìòùáéíóúüçÁÉÍÓÚÜÇ ";
  signos_puntuacion=".,;:";
  nombres="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñÑàèìòùáéíóúüçÁÉÍÓÚÜÇ ºª.-";
  w_dni="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñÑàèìòùáéíóúüçÁÉÍÓÚÜÇ ºª.-1234567890";
if (in_tipo == "es_numero")
{
  for (c=0;c<in_cadena.length;c++)
    if (numero.indexOf(in_cadena.charAt(c)) == -1)
      return false;
}
if (in_tipo == "no_numero")
{
  for (c=0;c<in_cadena.length;c++)
    if ((numero.indexOf(in_cadena.charAt(c)) != -1) ||(caracter_control.indexOf(in_cadena.charAt(c)) == 1))
      return false;
}
if (in_tipo == "es_letra")
{
  for (c=0;c<in_cadena.length;c++)
    if (letras.indexOf(in_cadena.charAt(c)) == -1)
      return false;
}

if (in_tipo == "es_nombre")
{
  for (c=0;c<in_cadena.length;c++)
    if (nombres.indexOf(in_cadena.charAt(c)) == -1)
      return false;
}


if (in_tipo == "es_dni")
{
  for (c=0;c<in_cadena.length;c++)
    if (w_dni.indexOf(in_cadena.charAt(c)) == -1)
      return false;
}

if (in_tipo == "solo_numero_letra")
{
  for (c=0;c<in_cadena.length;c++)
    if ((letras.indexOf(in_cadena.charAt(c)) == -1) && (numero.indexOf(in_cadena.charAt(c)) == -1))
      return false;
}
if (in_tipo == "numero_letra")
{
  for (c=0;c<in_cadena.length;c++)
    if ((letras.indexOf(in_cadena.charAt(c)) == -1) && (numero.indexOf(in_cadena.charAt(c)) == -1) && (letras_especiales.indexOf(in_cadena.charAt(c)) != -1))
      return false;
}

if (in_tipo == "caracter_control")
{
  for (c=0;c<in_cadena.length;c++)
    if (caracter_control.indexOf(in_cadena.charAt(c)) != -1)
      return false;
}

if (in_tipo == "no_especial")
{
  for (c=0;c<in_cadena.length;c++)
	{
    if ((numero.indexOf(in_cadena.charAt(c)) == -1) && (letras.indexOf(in_cadena.charAt(c)) == -1) && (signos_puntuacion.indexOf(in_cadena.charAt(c)) == -1) )
      return false;
  }
}

if (in_tipo == "es_decimal")
 {  expreg= /^\d+$/                     // si solo son numeros es correcto
  if (expreg.test(in_cadena))
     return true;
  else
    {
      expreg= /^\d+[,]?\d{0,2}$/
                                        // Notas de la expresion regular
                                        //
                                        //      ^\d+ --> indica que comienza por uno a mas numeros
                                        //      [,]? --> indica que puede haber una o ningun caracter coma
                                        //      \d{0,2} --> indica que continua por cero, uno o dos numeros
                                        //       $   --> indica que aqui debe terminar la cadena
      if (!expreg.test(in_cadena))
        return false;
    }
 }


if (in_tipo == "es_email")
 {
  expreg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
  if (!expreg.test(in_cadena))
     return false;
 }


if (in_tipo == "es_fecha")
 {
  if (!validar_fecha(in_cadena))
     return false;
 }

	return true;
}
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//                    INICIO RUTINA: valida_fecha
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//

function V00_validar_fecha(fechadd_mm_aaaa)

{
  expreg= /(^\d{1,2})([\/-])(\d{1,2})([\/-])(\d{4}$)/

  if (!expreg.test(fechadd_mm_aaaa))
    { return false;
    }

  w_fecha = expreg.exec(fechadd_mm_aaaa)

//alert('w_fecha ' + w_fecha)
//alert(' 1: ' + w_fecha[1])
//alert(' 2: ' + w_fecha[2])
//alert(' 3: ' + w_fecha[3])
//alert(' 4: ' + w_fecha[4])
//alert(' 5: ' + w_fecha[5]);
//alert(' org ' + fechadd_mm_aaaa);

  if ((w_fecha[3] < 1 ) || (w_fecha[3]> 12 ))
    {  alert(' error en el mes de la fecha ');
       return false;
    }


  if ((w_fecha[5] < 1900) || (w_fecha[5]> 2050 ))
    {  alert(' error en el año de la fecha ');
       return false;
    }

// devolvemos OK en los correctos


  if ((w_fecha[1] > 0) && (w_fecha[1] < 29 ))
       return true;

  if ((w_fecha[1] < 31 ) && ((w_fecha[3] == 4) || (w_fecha[3] == 6) || (w_fecha[3] == 9) || (w_fecha[3] == 11) ))
       return true;

  if ((w_fecha[1] < 32 ) && ((w_fecha[3] == 1) || (w_fecha[3] == 3) || (w_fecha[3] == 5) || (w_fecha[3] == 7) || (w_fecha[3] == 8) || (w_fecha[3] == 10) || (w_fecha[3] == 12)))
       return true;

  if (w_fecha[3] != 2)
       return false;

// solo queda febrero

if (w_fecha[1] < 29 )
       return true;

if ((w_fecha[1] == 29) && (w_fecha[5]%4 == 0))
       return true;

// para el resto de casos la fecha es erronea

return false;
}
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//                    INICIO RUTINA: validar_valor
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
function V00_validar_valor(in_cadena)
{

 if (in_cadena=="")
        { return false;
         }
return true;
}
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//                    INICIO RUTINA: xxxx
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//
//                    INICIO RUTINA: xxxx
//
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//

