function ValidaCarteira(ValorCarteira)
{
   var tmpValorCarteira;
   VetCarteira = new Array(24);
   var MatrizDigito1 = '654329876543298765432';
   var MatrizDigito2 = '7654329876543298765432';
   var TempCarteira, DG1, DG2;
   var Tot1, Tot2;
   var I, X;
   
   TempCarteira = ValorCarteira;
   TempCarteira = TempCarteira.replace('.','');
   TempCarteira = TempCarteira.replace('.','');
   TempCarteira = TempCarteira.replace('.','');
   TempCarteira = TempCarteira.replace('.','');
   TempCarteira = TempCarteira.replace('.','');
   TempCarteira = TempCarteira.replace('-','');
   tmpValorCarteira = TempCarteira;

   if(tmpValorCarteira == '00000000000000000000000')
   {
      return false;
   }
   
   Tot1 = 0;
   Tot2 = 0;
   
   for (I=0;I<=20;I++)
   { // to 3 step -1
      Tot1 = Tot1 + parseInt(tmpValorCarteira.substr(I,1), 10) * parseInt(MatrizDigito1.substr(I,1), 10);
      X++;
   }
   
   DG1 = 11 - (Tot1 % 11);
   
   if (DG1 > 9)
   { 
      DG1 = 0; 
   }
   
   for (I=0;I<=20;I++)
   {
      Tot2 = Tot2 + parseInt(tmpValorCarteira.substr(I,1), 10) * parseInt(MatrizDigito2.substr(I,1), 10);
   }
   
   Tot2 = Tot2 + parseInt(DG1, 10) * parseInt(MatrizDigito2.substr(21,1), 10);
   DG2 = 11 - (Tot2 % 11);
   
   if (DG2 > 9)
   { 
      DG2 = 0; 
   }
   
   if (parseInt(DG1,10) == parseInt(tmpValorCarteira.substr(21,1),10) && parseInt(DG2,10) == parseInt(tmpValorCarteira.substr(22,1),10) && Tot1 > 0 && Tot2 > 0)
   {
      return true;
   }//ValidaCarteira = TRUE
   else
   {
      //return false;
      return true;
   }//ValidaCarteira = FALSE
}
