/*
 * Funciones desarrolladas por Soluciones Nexus.
 * http://www.solucionesnexus.es/
 *
 * Para enlazar:
 *  <script language="javaScript" src="js/funciones.js" type="text/javascript"></script>
 * 
 *
 * · function esDigito (c);
 * · function esLetra (c);
 * · function esPuntuacion (c);
 * · function esNumero (s);
 * · function esNumeroComa (s);
 * · function esAlfabetica (s);
 * · function esAlfanumerica (s);
 * · function esAlfanumericaPun (s);
 * · function esCaracterCorreo (s);
 * · function esCaracterTelefono ();
 * */



/*
 * Función que implementa una pausa en javascript.
 * */
function pausa (milis)
{
  var inicio = new Date();
  var ahora = null;

  do
    ahora = new Date();
  while (ahora-inicio<milis);
}

/*
 * Función que devuelve si un caracter representa un dígito.
 * */
function esDigito (c)
{
  return ((c>='0') && (c<='9'));
}

/*
 * Función que devuelve si un caracter es una letra.
 * */
function esLetra (c)
{
  return (
   ((c>='a') && (c<='z')) ||
   ((c>='A') && (c<='Z')) ||
    (c=='á') || (c=='Á')  ||
    (c=='é') || (c=='É')  ||
    (c=='í') || (c=='Í')  ||
    (c=='ó') || (c=='Ó')  ||
    (c=='ú') || (c=='Ú')  ||
    (c=='à') || (c=='À')  ||
    (c=='è') || (c=='È')  ||
    (c=='ì') || (c=='Ì')  ||
    (c=='ò') || (c=='Ò')  ||
    (c=='ù') || (c=='Ù')  ||
    (c=='ñ') || (c=='Ñ')  ||
    (c=='ü') || (c=='Ü'));
}

/*
 * Función que devuelve si un caracter es un símbolo de puntuación.
 * */
function esPuntuacion (c)
{
  return (
    (c=='.') || (c==',') ||
    (c==':') || (c==';') ||
    (c=='¡') || (c=='!') ||
    (c=='¿') || (c=='?') ||
    (c=='(') || (c==')') ||
    (c==' ') || (c=="\n")
  );
}

/*
 * Función que devuelve si una cadena es numérica sin signo.
 * */
function esNumero (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if (!esDigito(s.charAt(i)))
      return false;
  return true;
}

/*
 * Función que devuelve si una cadena es numérica con coma y sin signo.
 * */
function esNumeroComa (s)
{
  var i;
  var coma;

  if (!esDigito(s.charAt(0)))
    return false;
    
  coma = 0;
  for (i=1; i < (s.length-1); i++)
  {
    if (!esDigito(s.charAt(i)))
    {
      if ( (s.charAt(i) != '.') || (coma == 1) )
        return false;
      else
        coma = 1;
    }
  }

  if (!esDigito(s.charAt(s.length-1)))
    return false;

  return true;
}

/*
 * Función que devuelve si una cadena es alfabética.
 * */
function esAlfabetica (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if (!esLetra(s.charAt(i)))
      return false;
  return true;
}

/*
 * Función que devuelve si una cadena es alfanumérica.
 * */
function esAlfanumerica (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if ((!esLetra(s.charAt(i))) && (!esNumero(s.charAt(i))))
      return false;

  return true;
}

/*
 * Función que devuelve si una cadena es alfanumérica con espacios, comas, puntos, punto y coma....
 * */
function esAlfanumericaPun (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if ((!esLetra(s.charAt(i))) && (!esNumero(s.charAt(i))) && (!esPuntuacion(s.charAt(i))) )
      return false;

  return true;
}

/*
 * Función que comprueba si dada una cadena todos los caracteres son válidos para formar un correo.
 * */
function esCaracterCorreo (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if ((!esLetra(s.charAt(i))) && (!esNumero(s.charAt(i))) && (!(s.charAt(i)=='_')) && (!(s.charAt(i)=='@')) &&
        (!(s.charAt(i)=='.')) )
      return false;

  return true;
}

/*
 * Función que comprueba si dada una cadena todos los caracteres son válidos para formar un teléfono.
 * */
function esCaracterTelefono (s)
{
  var i;

  for (i=0; i<s.length; i++)
    if ( (!esNumero(s.charAt(i))) && (!(s.charAt(i)=='+')) && (!(s.charAt(i)=='(')) && (!(s.charAt(i)==')')) )
      return false;

  return true;
}

/*
 * Coloca el botón que corresponde.
 * */
function cE (boton, estado) {
  document.getElementById(boton).src = 'img/' + boton + estado + '.jpg';
}
