//Auto preenchime do endereço pelo CEP usando AJAX com dados obitidos da republicavirtual
//
//Feito por: Ariel Gonçalves www.eletricasintonia.com.br
//Utilizando o script client de Rafael Amorim - www.rafaelamorim.com
//baseado no script de original de: chiper efetuei modificações e complementos



function verifica(event){
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
var caract = new RegExp(/[0-9]+$/i);
var caract = caract.test(String.fromCharCode(keyCode));

if(!caract){
alert("Caracter inválido: " +String.fromCharCode(keyCode));
keyCode=0;
return false;
}//fim if
}//fim função verifica

function get(elemento){
  return document.getElementById(elemento);
}//fim função get
  
function addEvent(obj, evt, func) {
   if (obj.attachEvent) {
     return obj.attachEvent(("on"+evt), func);
   } else if (obj.addEventListener) {
     obj.addEventListener(evt, func, true);
     return true;
   }
   return false;
}


function XMLHTTPRequest() {

   try {
     return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...
   } catch(ee) {
     try {
       return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+)
     } catch(e) {
       try {
         return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1)
       } catch(E) {
         return false; // doesn't support
       }
     }
   }
}


function buscarEndereco() {
   var campos = {
     cep: document.getElementById("cep"),
     logradouro: document.getElementById("logradouro"),
     bairro: document.getElementById("bairro"),
     cidade: document.getElementById("cidade"),
     estado: document.getElementById("estado")
};

 
   
 var ajax = XMLHTTPRequest();
ajax.open("GET", ("scripts/client.php?cep="+campos.cep.value.replace(/\+/g, " ")), true);   
    
   
   ajax.onreadystatechange = function() {
     if (ajax.readyState == 1) {
  campos.logradouro.disabled = true;	 
       campos.logradouro.value = "carregando...";
  campos.bairro.disabled = true;	   
       campos.bairro.value = "carregando...";
  campos.cidade.disabled = true;	   
       campos.cidade.value = "carregando...";
  campos.estado.disabled = true;	   
       campos.estado.value = "carregando...";
	   
	   
  } else if (ajax.readyState == 4) {
  if(ajax.responseText == false){
    //campos.validpostcode.innerHTML = "Cep sem dados em nosso banco de dados. Preencha seu endereço manualmente.";
    campos.logradouro.disabled = false;
    campos.logradouro.value = "";
    campos.bairro.disabled = false;
    campos.bairro.value = "";
    campos.cidade.disabled = false;
    campos.cidade.value = "";
    campos.estado.disabled = false;
    campos.estado.value = "";	   
	   
	   
  }else{
    //campos.validpostcode.innerHTML = "";
    var r = ajax.responseText, i,  logradouro, bairro, cidade, estado;
      
	logradouro = r.substring(0, (i = r.indexOf(':')));
    campos.logradouro.disabled = false;
    campos.logradouro.value = unescape(logradouro.replace(/\+/g," "));
    r = r.substring(++i);
    
	bairro = r.substring(0, (i = r.indexOf(':')));
    campos.bairro.disabled = false;
    campos.bairro.value = unescape(bairro.replace(/\+/g," "));
    r = r.substring(++i);
    
	cidade = r.substring(0, (i = r.indexOf(':')));
    campos.cidade.disabled = false;
    campos.cidade.value = unescape(cidade.replace(/\+/g," "));
    r = r.substring(++i);
    
	estado = r.substring(0, (i = r.indexOf(';')));
    campos.estado.disabled = false;
	
	campos.estado.value = unescape(estado.replace(/\+/g," "));
    r = r.substring(++i);
	
	
    i = campos.estado.options.length;
    while (i--) {
      if (campos.estado.options[i].getAttribute("value") == estado) {
      break;
      }
    }
    campos.estado.selectedIndex = i;
  }
  }
};
ajax.send(null);
}

window.addEvent(
   window,
   "load",
   function() {window.addEvent(document.getElementById("cep"), "blur", buscarEndereco);}
);
