// JavaScript Document
function addEvent(obj, evt, func) {
 if(obj) {
  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() {
if(document.getElementById("cep")) {
  var campos = {
    cep: document.getElementById("cep"),
    logradouro: document.getElementById("logradouro"),
    //numero: document.getElementById("numero"),
    bairro: document.getElementById("bairro"),
    cidade: document.getElementById("cidade"),
    uf: document.getElementById("uf")
  };
  
  var ajax = XMLHTTPRequest();
  ajax.open("GET", ("http://www.fundepe.com/novo/cppc/c.php?cep=" + campos.cep.value.replace(/[^\d]/, "")), true);
  ajax.onreadystatechange = function() {
    if (ajax.readyState == 1) {
      campos.logradouro.disabled = true;
      campos.bairro.disabled = true;
      campos.cidade.disabled = true;
      campos.uf.disabled = true;
      campos.logradouro.value = "carregando...";
      campos.bairro.value = "carregando...";
      campos.cidade.value = "carregando...";
      //campos.uf.value = "carregando...";
    } else if (ajax.readyState == 4) {
      var r = ajax.responseText, i, logradouro, bairro, cidade, uf;
      logradouro = r.substring(0, (i = r.indexOf(',')));
      r = r.substring(++i);
      bairro = r.substring(0, (i = r.indexOf(',')));
      r = r.substring(++i);
      cidade = r.substring(0, (i = r.indexOf(',')));
      r = r.substring(++i);
      uf = r.substring(0, (i = r.indexOf(',')));
      //r = r.substring(++i);
      campos.logradouro.disabled = false;
      campos.bairro.disabled = false;
      campos.cidade.disabled = false;
      campos.uf.disabled = false;
      campos.logradouro.value = logradouro;
      campos.bairro.value = bairro;
      campos.cidade.value = cidade;
      //campos.uf.value = uf;
      
	  if(campos.uf.tagName.toUpperCase()!='SELECT') {
		campos.uf.value = cidade;
	  }else{
        i = campos.uf.options.length;
        while (i--) {
         if (campos.uf.options[i].getAttribute("value") == uf) {
            break;
          }
        }
        campos.uf.selectedIndex = i;
	  }
    }
  };
  ajax.send(null);
}
}


function initCep() {
  vObjCep = document.getElementById("cep");
  if(vObjCep&&vObjCep.getAttribute('type')!='hidden') {
	if(window.addEventListener)
	  vObjCep.addEventListener("blur", buscarEndereco, true)
	if(window.attachEvent)
	  vObjCep.attachEvent("onblur", buscarEndereco)
	  buscarEndereco();
  }
}

if(window.addEventListener)
  window.addEventListener("load", initCep, true)
if(window.attachEvent)
  window.attachEvent("onload", initCep)
