
function CadenaVacia(sCadena)
{
  var sEspacios = " \t\n\r";
  var i;
  
  if ((sCadena == null) || (sCadena.length == 0)) 
    return true;

  for (i = 0; i < sCadena.length; i++)
  {   
    var c = sCadena.charAt(i);
    if (sEspacios.indexOf(c) == -1) 
      return false;
  }
  return true;
}

function EsDigito(cCar)
{
  return ((EsDigito.arguments.length == 1) && !CadenaVacia(cCar) && (cCar >= "0") && (cCar <= "9"));
}

function EsNatural(nNumero)
{
  var sNumero = "";
  sNumero = "" + nNumero;
  
  if ((EsNatural.arguments.length != 1) || CadenaVacia(sNumero))
    return(false);

  for (var i = 0; i < sNumero.length; i++)
  {   
    var cCar = sNumero.charAt(i);
    if (!EsDigito(cCar))
      return false;
  }
  return true;
}

function EsEntero(nNumero)
{
  var sNumero = "";
  sNumero = "" + nNumero;
  
  if ((EsEntero.arguments.length != 1) || CadenaVacia(sNumero))
    return(false);
  else 
  {
    var nPosInicial = 0;
    // salta el carácter inicial '-' o '+' si existen
    if ( (sNumero.charAt(0) == "-") || (sNumero.charAt(0) == "+") )
      nPosInicial = 1;    
    return (EsNatural(sNumero.substring(nPosInicial, sNumero.length)));
  }
}

function EsAlfanumerico(sCadena)
{
	var c, bSeguir;
	sCadena = ("" + sCadena).toUpperCase();
	if (sCadena == "")
		return(false);
	for (var i = 0, bSeguir=true; bSeguir && (i<sCadena.length); i++)
	{   
	  var c = sCadena.charAt(i);
	  bSeguir = ( ((c>='A') && (c<='Z')) || ((c>='0') && (c<='9')) || (c=='_') );
	}
	return(bSeguir);
}

function EsNIFValido(sNIF)
{

	var c, i, sNumero = "", cLetra;
	var aLetras = new Array('T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E');
	if (CadenaVacia(sNIF))
		return(false);
	if (sNIF.length > 9)
		return(false);
	for (i = 0; i < sNIF.length-1; i++)
	{
		c = sNIF.charAt(i);
		if (!EsDigito(c))
			return(false);
		sNumero += c;
	}
	cLetra = sNIF.charAt(i).toUpperCase();
	return (cLetra == aLetras[(sNumero % 23)]);
}		

function EsFecha(sFECHA)
{
<!--      alert(sFECHA + " - " + sFECHA.substring(2,3) + " - ") -->
	if (CadenaVacia(sFECHA))
		return(false);
	if (!(sFECHA.length == 10))
		return(false);
	if ((!(sFECHA.substring(2,3) == '/')) || (!(sFECHA.substring(5,6) == '/')))
        if ((!(sFECHA.substring(2,3) == '-')) || (!(sFECHA.substring(5,6) == '-')))
		return(false);
      dia = sFECHA.substring(0,2)
      mes = sFECHA.substring(3,5)
      anno = sFECHA.substring(6,10)
<!--      alert(dia + " - " + mes + " - " + anno + " - " + anno / 4 + " - " + anno % 4) -->
      if ((!(EsNatural(dia))) || (!(EsNatural(mes))) ||(!(EsNatural(anno))))
		return(false);
      if ((anno < 1901) || (anno > 2005))
		return(false);
      if ((mes < 1) || (mes > 12))
		return(false);
      diatope = 31
      if ((mes == 4) || (mes == 6)  || (mes == 9) || (mes == 11))
		diatope = 30;
      if (mes == 2)
		diatope = 28;
      if ((mes == 2) && ((anno % 4) == 0))
		diatope = 29;
      if ((dia == 0) || (dia > diatope))
		return(false);
	return (true);
}		

function EsDecimal(nNumero, nLongitud)
{
  var sNumero = "";
  var sNumeroFmt = "";
  sNumero = "" + nNumero;
  
  if ((FormateaDecimal.arguments.length != 2) || CadenaVacia(sNumero))
    return(false);

  for (var i = 0; i < sNumero.length; i++)
  {   
    var cCar = sNumero.charAt(i);
    if (!EsDigito(cCar) && !(cCar == " ") && !(cCar == ".") && !(cCar == ",") )
      return false;
  }
  return true;
}
function FormateaDecimal(nNumero, nLongitud)
{
  var sNumero = "";
  var sNumeroFmt = "";
  sNumero = "" + eval(nNumero).value;
  
  if ((FormateaDecimal.arguments.length != 2) || CadenaVacia(sNumero))
    return(false);

  for (var i = 0; i < sNumero.length; i++)
  {   
    var cCar = sNumero.charAt(i);
    if (!EsDigito(cCar) && !(cCar == " ") && !(cCar == ".") && !(cCar == ",") )
      return false;
  }

  sNumeroFmt = ""
  for (var i = 0; i < sNumero.length; i++)
  {   
    var cCar = sNumero.charAt(i);
    if (!(cCar == " "))
      sNumeroFmt = sNumeroFmt + cCar;
  }

  espacios = nLongitud - sNumeroFmt.length
  sEspacios = ""
  for (var i = 0; i < espacios; i++)
  {   
    sEspacios = sEspacios + " ";
  }
  sNumeroFmt = sEspacios + sNumeroFmt;
  eval(nNumero).value = sNumeroFmt;
  eval(nNumero).focus();
  return true;
}

function EsEmailValido(sEmail)
{
	if (CadenaVacia(sEmail))
		return(false);   
    
  var i = 1;
  var sLength = sEmail.length;

  while ((i < sLength) && (sEmail.charAt(i) != "@"))
		i++

  if ((i >= sLength) || (sEmail.charAt(i) != "@")) return false;
  else i += 2;

  while ((i < sLength) && (sEmail.charAt(i) != "."))
		i++

  if ((i >= sLength - 1) || (sEmail.charAt(i) != ".")) return false;
  else return true;
}

