// Funciones de comprobación

function isAlphabetic (s){
  var i;

  if (isEmpty(s))
    if (isAlphabetic.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isAlphabetic.arguments[1] == true);
  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;
}

function isAlphanumeric (s){
  var i;

  if (isEmpty(s))
    if (isAlphanumeric.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isAlphanumeric.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (!(isLetter(c) || isDigit(c)))
      return false;
  }

  return true;
}

function isInteger (s){
  var i;
  if (isEmpty(s))
    if (isInteger.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if( i != 0 ) {
      if (!isDigit(c))
        return false;
    }
    else {
      if (!isDigit(c) && (c == "-") || (c == "+"))
        return false;
    }
  }
  return true;
}

function isNumber (s){
  var i;
  var dotAppeared;
  dotAppeared = false;
  if (isEmpty(s))
    if (isNumber.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isNumber.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if( i != 0 ) {
      if ( c == "," ) {
        if( !dotAppeared )
          dotAppeared = true;
        else
          return false;
      }
      else
        if (!isDigit(c))
          return false;
    }
    else {
      if ( c == "," ) {
        if( !dotAppeared )
          dotAppeared = true;
        else
          return false;
      }
      else
        if (!isDigit(c) && (c != "-") || (c == "+"))
          return false;
    }
  }
  return true;
}

function isEmail (s){
  if (isEmpty(s))
    if (isEmail.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isEmail.arguments[1] == true);
  if (isWhitespace(s))
    return false;
	if (s.indexOf(' ')!=-1)
		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;
}

function isPhoneNumber (s){
  var modString;
  if (isEmpty(s))
    if (isPhoneNumber.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isPhoneNumber.arguments[1] == true);
  modString = stripCharsInBag( s, phoneChars );
  return (isInteger(modString))
}

function isName (s){
  if (isEmpty(s))
    if (isName.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isAlphanumeric.arguments[1] == true);

  return(isAlphanumeric(stripCharsInBag(s, whitespace)));
}

function isCaracter (s){
  var i;
  if (isEmpty(s))
    if (isAlphanumeric.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isAlphanumeric.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (! (isLetter(c) || isDigit(c) || caracter.indexOf( c ) != -1 || "\r\n".indexOf(c) != -1) )
      return false;
  }
  return true;
}

function isDireccion(s){
	return true;
}

function isEntero (s){
  var i;
  if (isEmpty(s))
    if (isEntero.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isEntero.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (!isDigit(c))
      return false;
  }
  return true;
}

function isCif (s){
  var i;

  if (isEmpty(s))
    if (isAlphanumeric.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (isAlphanumeric.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (!(isLetter(c) || isDigit(c)))
      return false;
  }

  return true;
}

function isEspacio (s){
  var i;
  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 (Espacio.indexOf(c) == -1)
      return false;
  }
  return true;
}

function isCP(s){
  if (isEmpty(s))
    if (idCP.arguments.length == 1)
      return defaultEmptyOK;
    else
      return (idCP.arguments[1] == true);

  for (i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if (!isDigit(c)){
      return false;
    }
  }
  if(s.length!=5){
    return false;
  }
  return true;
}

function validaCadena(s, campo){
  var i = 0;
  var c = "";
  var sLength = s.length;
  while(i<sLength) {
    c = s.charAt(i);
    if(caracteresPermitidos.indexOf( c ) == -1 && c!='\r' && c!='\n'){
      alert("Ha escrito el carácter '" + c + "' y por motivos de seguridad es un caracter no permitido, por favor, modifiquelo." + pCaracter);
      campo.focus();
      return false;
    }
    i++;
  }
  return true;
}

function validaCadenaDir(s, campo){
  var i = 0;
  var c = "";
  var sLength = s.length;
  while(i<sLength) {
    c = s.charAt(i);
    if(caracteresPermitidosDir.indexOf( c ) == -1 && c!='\r' && c!='\n'){
      alert("Ha escrito el carácter '" + c + "' y por motivos de seguridad es un caracter no permitido, por favor, modifiquelo." + pCaracter);
      campo.focus();
      return false;
    }
    i++;
  }
  return true;
}

function isSelect(s){
	if(s==0){
		return false
	}
	return true;
}
