Dica para cálculo do digito verificador. Módulo 11 em javascript

[code]function modulo11(num){
var base = 2;
var fator = 9;
var digito;
var resto;
var numeros = new Array();
var parcial = new Array();
var soma = 0;
var tam =0;
var siz =0;
var dv1=0;

	if(num == ""){
		limpaCampos("formBaixa");
		return false
	};
	
	if(num.length < 13){
		alert("Nosso Numero invalido!");
		limpaCampos("formBaixa");						
		return false;
	}
	siz = num.substr(0,6);
            //valida se o dominio/protoco eh valido
	if(siz != '829526'){
		alert("Nosso Numero invalido!");
		limpaCampos("formBaixa");
		return false;
	}		
	
	//recebe apenas os 11 primeiros digitos para cálculo
	tam = num.substr(0,11);	
			
	/*separação dos números*/
	for(i=tam.length;i>0;i--){		    
		numeros[i]=tam.substr(i-1,1); //pega cada número isoladamente			
		parcial[i]=numeros[i]*fator; //Efetua a multiplicação do número pelo fator
		soma += parcial[i]; //soma dos digitos
		if(fator==base)fator=10; //restaura o fator de multiplicação para 2
		fator --;			 
	}		
	
	/*Calculo do módulo11*/
	resto = soma % 11;		
	if (resto < 10){ 
		dv = resto; 
	}else if(resto == 10){ 
		dv = 'x'; 
	}		
	//verifica se o digito verificador eh o mesmo calculado pelo módulo11
	dv1 = num.substr(12,12);
	if(dv != dv1){
		alert("Nosso Numero invalido!");
		limpaCampos("formBaixa");
		return false;
	}		
	return true;
}
    
    function limpaCampos(frm){		
	document.forms[frm].reset();
}

//passando valor campo html

[/code]