// <!--
// ************************************************
// number.js
// Descripción : Funciones para el manejo de números
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/06/1998 Felipe Cruz      Creación

// *********************************************
// isNatural
// Descripción : Verifica que un String contenga sólo números
// 
// Sintaxis :
// bool = isNatural(str s)
//
// Parametros Descripción
// s          String de entrada
// 
// Retorno : Verdadero si el string es Natural
// 
// Comentarios :
// Ejemplo1 isNatural(" 346") = verdadero
// Ejemplo2 isNatural("a346") = falso
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/06/1998 Felipe Cruz      Creación

function isNatural(str){
  var i;
  var c,tmp;
  if ( str == null || str.length == null)
     return false;
  tmp = Trim(str);
  if (tmp.length == 0)
     return false;
  for ( i=0;i<tmp.length;i++) {
    c = tmp.charAt(i);
    if ( c < '0' || '9' < c )
        return false;
  }
    return true;
}

// *********************************************
// isNumber
// Descripción : Verifica que un String sea númerico
// 
// Sintaxis :
// bool = isNumber(str s)
//
// Parametros Descripción
// s          String de entrada
// 
// Retorno : Verdadero si el string es Número
// 
// Comentarios :
// Ejemplo1 isNumber(" -346") = verdadero
// Ejemplo2 isNumber("a346") = falso
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/06/1998 Felipe Cruz      Creación

function isNumber(str){
  var c;
  var tmp;
  if ( str == null || str.length == null)
     return false;
  tmp = Trim(str);
  if ( tmp.length == 0 )
    return false;
  c = tmp.charAt(0);
  if ( c == '-' || c == '+')
    tmp = tmp.substring(1,tmp.length);
  return isNatural(tmp);
}

// *********************************************
// isReal
// Descripción : Verifica que un String sea númerico
// 
// Sintaxis :
// bool = isReal(str s)
//
// Parametros Descripción
// s          String de entrada
// 
// Retorno : Verdadero si el string es Número
// 
// Comentarios :
// Ejemplo1 isReal(" -346,6") = verdadero
// Ejemplo2 isReal("a346,6") = falso
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/06/1998 Felipe Cruz      Creación

function isReal(str){
  var c;
  var tmp;
  var p;
  if ( str == null || str.length == null)
     return false;
  tmp = Trim(str);
  if ( tmp.length == 0 )
    return false;
  c = tmp.charAt(0);
  if ( c == '-' || c == '+')
    tmp = tmp.substring(1,tmp.length);
  p = tmp.indexOf(',');
  if ( p == -1 )
     return isNatural(tmp);
  return isNatural(tmp.substring(0,p))
      && isNatural(tmp.substring(p+1,tmp.length));
}

// *********************************************
// NumberBetween
// Descripción : Verifica que un String número entre a y b
// 
// Sintaxis :
// bool = NumberBetween(str s,int a, int b)
//
// Parametros Descripción
// s          String de entrada
// a          limite inferior
// b          limite superior
// 
// Retorno : Verdadero si el string es Número entre a y b
// 
// Comentarios :
// Ejemplo1 isNumber("6",0,12) = verdadero
// Ejemplo2 isNumber("a346",0,1200) = falso
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/06/1998 Felipe Cruz      Creación

function NumberBetween(str,a,b){
  var tmp;
  var num;
  if ( str == null )
     return false;
  if ( str.length == null)
     return false;
  tmp = Trim(str);
  if ( !isNumber(tmp) )
      return false;
  num=parseInt(tmp,10);
  if ( a > num || num > b)
      return false;
  return true;
}

// *********************************************
// BlankoNatural
// Descripción : Verifica que se ingreso un número
// 
// Sintaxis :
// bool = BlankoNatural(obj o,str nombre)
//
// Parametros Descripción
// obj        Objeto con el número
// msg        nombre del número
// 
// Retorno : Verdadero si el string es Número entre a y b
// 
// Comentarios :
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/10/1998 Loreto Núñez     Creación

function BlankoNatural(obj,msg) {
  if (obj == null) {
     alert("Error campo " + msg + " no existe");
     return false;
  }
  obj.value = Trim(obj.value);
  if (obj.value == "")
     return true;
  
  if (isNatural(obj.value)) 
	 return true;
  else {
	 alert("El campo "+msg+" debe ser numérico sin decimales");
	 obj.focus();
	 obj.select();
	 return false;
  }
}

// *********************************************
// BlankoReal
// Descripción : Verifica que se ingreso un número real
// 
// Sintaxis :
// bool = BlankoNatural(obj o,str nombre)
//
// Parametros Descripción
// obj        Objeto con el número
// msg        nombre del número
// 
// Retorno : Verdadero si el string es Real
// 
// Comentarios :
// 
// Bitacora de Mantención
// Fecha      Desarrollador    Descripción
// 05/10/1998 Loreto Núñez     Creación

function BlankoReal(obj,msg) {
  var tmp,p;
  if (obj == null) {
     alert("Error campo " + msg + " no existe");
     return false;
  }
  obj.value = Trim(obj.value);
  tmp = obj.value;
  if ( tmp == "")
     return true;
  
  p = tmp.indexOf(',');
  if ( p != -1 ) {
     tmp = tmp.substring(0,p) + "." + tmp.substring(p+1,tmp.length);
	  obj.value = tmp;
  }

  if (isReal(tmp)) 
	 return true;
  else {
	 alert("El campo "+msg+" debe ser numérico");
	 obj.focus();
	 obj.select();
	 return false;
  }
}


// -->
