function calculaDigito(soma, metodo)
{
    var ret, resto;
    resto = soma % 11;
    ret = 11 - resto;
    if (metodo == 0)
    {
        ret = ret % 10;
    }
    else
    {
        ret  = (ret >= 10 ? 0 : ret);
    }
    return(ret);
}    


function validaTitulo(t)
{
    ret = false;
    coduf = new Array(2);
    dig = new Array(2);
    titulo = t;
    while (titulo.length < 12)
    {
        titulo = "0" + titulo;
    }
    numeros = titulo.substr(0,10);
    dgob = titulo.substr(10,2);
    estado = "" + titulo.substr(8,2);

    // São Paulo e Minas Gerais
    if ((estado == "01") || (estado == "02"))
    {
        met = 0;
    }
    else
    {
        met = 1;
    }
    soma = 0
    for(i=0;i<8;i++)
    {
        digito = parseInt(numeros.charAt(i));
        soma = soma + digito * (9-i);
    }
    
    for(i=0;i<2;i++)
        coduf[i] = parseInt(estado.charAt(i));
        
    dig[0] = calculaDigito(soma,met);

    soma = coduf[0] * 4 + coduf[1] * 3 + dig[0] * 2;
    dig[1] = calculaDigito(soma,met);

    digs = dig[0] + "" + dig[1];
    if (digs == dgob)
    {
        ret = true;
    }
    return ret;
}