Verificar estado do CPF

Olá galera, bom estou desenvolvendo uma aplicação em que verifica se o cpf é valido e o estado de que ele é , mas estou tendo um erro na hora de verificar o estado usando substring.

<html>
<head>
<title>Trabalhando com Javascript</title>
<meta charset="UTF-8"/>
<meta name="Description" CONTENT="Trabalhar com funções javascript"/>
<meta name="keywords" content="color , body , funções"/>

<script>
  function verifica(){
	var RegraValida = document.getElementById("cpf").value; 
	var cpfValido = /^(([0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2})|([0-9]{11}))$/;	 
       var Soma, Resto;
		Soma = 0;
		var cpf;
		
		cpf = document.getElementById("cpf");
	if (cpfValido.test(RegraValida) == true){ 
    
  alert("CPF válido");
	}

	 if ( cpf == "00000000000" || 
		cpf == "11111111111" || 
		cpf == "22222222222" || 
		cpf == "33333333333" || 
		cpf == "44444444444" || 
		cpf == "55555555555" || 
		cpf == "66666666666" || 
		cpf == "77777777777" || 
		cpf == "88888888888" || 
		cpf == "99999999999"){
		
		alert("CPF Inválido");	
		
		}else
		estado();
	
	
	
	
	}
	
	function estado(){
	
	                var cpf;
                    var n;
					
               cpf = document.getElementById("cpf");
                n = parseFloat(cpf.value);
				
				if(n.substring(7,9) == 0){
				
				alert("Rio Grande do Sul");
				
				}
				
				else if(n.substring(7,9) == 1){
				
				alert(" Distrito Federal – Goiás – Mato Grosso – Mato Grosso do Sul – Tocantins ");
				
				}
				else if(n.substring(7,9) == 2){
				
				alert("  Pará – Amazonas – Acre – Amapá – Rondônia – Roraima");
				
				}
				else if(n.substring(7,9) == 3){
				
				alert(" Ceará – Maranhão – Piauí");
				
				}
				else if(n.substring(7,9) == 4){
				
				alert(" Pernambuco – Rio Grande do Norte – Paraíba – Alagoas ");
				
				}
				else if(n.substring(7,9) == 5){
				
				alert(" Bahia – Sergipe   ");
				
				}
				else if(n.substring(7,9) == 6){
				
				alert("Minas Gerais ");
				
				}
				else if(n.substring(7,9) == 7){
				
				alert("Rio de Janeiro – Espírito Santo");
				
				}
			   else if(n.substring(7,9) == 8){
				
				alert("São Paulo");
				
				}
				else if(n.substring(7,9) == 9){
				
				alert("Paraná – Santa Catarina");
				
				}
				
	
	
	
	}
  
 
        </script>


</head>
<body>
<form name="form1" method="post" action="pagina2.php">
          <label for="cpf">Informe seu CPF</label>
          <input type="text" name="cpf" id="cpf"/><br/>
          <input type="button" name="botao" value="Verificar" onclick="verifica()"/>

</body>
    </html>

Abre o console do navegador e vê qual é a mensagem que ele ta apresentando, posta o erro aqui…

Esse monte de if aumenta a chance de erros…

o if da função verifica pode ficar assim:

var cpfClone = cpf.substring(0, 1).repeat(11); //111... ou 222... etc
if (cpf === cpfClone) {
    alert("CPF inválido");
} else {
    estado();
}

E no estado…

var ufs = [
    "Rio Grande do Sul",
    "Distrito Federal – Goiás – Mato Grosso – Mato Grosso do Sul – Tocantins",
    "Pará – Amazonas – Acre – Amapá – Rondônia – Roraima",
    "Ceará – Maranhão – Piauí",
    "Pernambuco – Rio Grande do Norte – Paraíba – Alagoas",
    "Bahia – Sergipe",
    "Minas Gerais",
    "Rio de Janeiro – Espírito Santo",
    "São Paulo",
    "Paraná – Santa Catarina"
];

var pos = n.substring(7,9);
if (ufs[pos]) {
    alert(ufs[pos]);
} else {
    alert("Estado não identificado");
}

Algo nesse sentido… da uma estudada, o primeiro if basicamente pega o primeiro caractere e repete 11x assim vc consegue testar facilmente se é 000 ou 111 ou 222 etc dinamicamente, sem precisar ter tudo “chumbado” (hardcoded) no código…

O segundo monta uma lista, percebi que cada grupo de estados possui um valor que vai de 0 a 9, assim fica facil colocar num array, onde ele começa justamente na posição zero, tendo essa lógica basta colocar as mensagens conforme a ordem de cada grupo…

Agora para isso tudo funcionar, vc precisa limpar o cpf retirando os pontos e traço antes de validar… para isso use o replace, pesquise a respeito…

Mais sobre repeat aqui…