/*
 * Objeto usado para validar CPFs.
 * @date 28/06/2010
 * @author André Garlini
 */
var CPF = {

    validos: [
        
    ],

    invalidos: [
        '00000000000',
        '11111111111',
        '22222222222',
        '33333333333',
        '44444444444',
        '55555555555',
        '66666666666',
        '77777777777',
        '88888888888',
        '99999999999'
    ],

    valida: function(CPF){
        
        CPF = CPF.toString().replace(/[^0-9]/g, "");
        
        for (var i = 0; i < this.validos.length; i++){
            if (this.validos[i] == CPF){
                return true;
            }
        }
        for (i = 0; i < this.invalidos.length; i++){
            if (this.invalidos[i] == CPF){
                return false;
            }
        }

        var valido = false;
        if (CPF.length == 11){
            
            var arrCPF = new Array(11);
            for (i = 0; i < 11; i++){
                arrCPF[i] = parseInt(CPF.charAt(i), 10);
            }
            var dv = [0, 0];

            for (i = 10; i >= 2; i--){
                dv[0] += (i * (arrCPF[10-i]));
            }
            dv[0] = (11 - (dv[0] % 11));
            if (dv[0] >= 10){
                dv[0] = 0;
            }

            for (i = 11; i >= 2; i--){
                dv[1] += (i * (arrCPF[11-i]));
            }
            dv[1] = (11 - (dv[1] % 11));
            if (dv[1] >= 10){
                dv[1] = 0;
            }

            valido = ((arrCPF[9] == dv[0]) && (arrCPF[10] == dv[1]));
        }
        
        
        return valido;
    }
}
