/* ---------------------------------------------------------------------------
	Descricao : Rotina generica para calculo do dĄgito verificador m˘dulo 11,
					de uma cadeia numerica. Esta rotina e utilizada no calculo do
					DV de cpf e cgc.
	Parametros: numero 		 - string de digitos decimais;
					tam 			 - numero de dĄgitos a serem utilizados no calculo;
					fatorInicial - valor base do fator de multiplicacao;
					faforFinal   - valor limite do fator de multiplicacao.
	Retorno   : Valor (decimal) do digito verificador.
	Globais   : -
*/
function calcDvMod11(cadeia, tam, fatorInicial, fatorFinal)
{
   tot = 0;

	fator = fatorInicial;

	for (i = 0; i < tam; i++)
	{
      pos = tam - i - 1;                                  /* posicao */
      num = new Number(cadeia.substring(pos, pos + 1));   /* valor da posicao */
		tot += fator * num;
		fator++;
		if (fator > fatorFinal)
			fator = fatorInicial;
	}

	tot = tot % 11;
	if (tot < 2)
		dv = 0;
   else
   	dv = 11 - tot;

   return dv;
}