function eNumero(Numr)
{
   var Aux;
   Aux = Numr;

   for (i=0;i<Aux.length;i++)
   {
      if (Aux.substring(0,(i+1)).match(/[0-9]+/) != Aux.substring(0,(i+1)))
         return (false);
   }
   return(true);
}

function validaIE(InscEst)
{
   /*
    Retorna status da inscricao, a seguir:
    0 = OK
    1 = vazia
    2 = invalida
    3 = nao numerica
   */

   var x, ie, tam, zeros, total, resto, dv;
   var resultado = 0;

   //Inscricao vazia
   if (InscEst == "")
   {
      resultado = 1;
      return(resultado);
   }

   //Verifica se existem somente dígitos númericos na Inscrição
   if (eNumero(InscEst))
   {
      ieAux = "";
      tam = InscEst.toString().length;

      if (tam < 11)
      {
         zeros = (11 - tam);

         //Preenche com zeros a esquerda
         for (x=1;x<=zeros;x++)
         {
            // toString()
            ieAux += "0";
         }

         ieAux += InscEst.toString();
      }
      else
      {
         ieAux = InscEst;
      }

      //Cálculo do dígito verificador da Inscrição
      total = (3 * ieAux.substr(0,1)) + (2 * ieAux.substr(1,1)) + (9 * ieAux.substr(2,1)) + (8 * ieAux.substr(3,1)) + (7 * ieAux.substr(4,1));
      total = total + (6 * ieAux.substr(5,1)) + (5 * ieAux.substr(6,1)) + (4 * ieAux.substr(7,1)) + (3 * ieAux.substr(8,1)) + (2 * ieAux.substr(9,1));

      resto = (total % 11);
      resto = (11 - resto);

      if ((resto == 10) || (resto == 11))
         resto = 0

      dv = resto

      //DV da incricao invalido
      if (ieAux.substr(10,1) != dv)
         resultado = 2
      else
         resultado = 0

   }
   else //Inscricao nao numérica
   {
      resultado = 3
   }

   return(resultado);
}
