// JavaScript Document
var http_request = false;

function makeRequest(valor, form) {
	alert("Aguarde! Carregando informações do CEP digitado.\nPressione OK para continuar.");
	form.p_endereco.disabled = true;
	form.p_bairro.disabled = true;
	form.p_cidade.disabled = true;
	form.p_estado.disabled = true;
	http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("MsXml2.XmlHttp");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
		//http_request.setRequestHeader('Content-Type', "text/xml; charset=iso-8859-1");
	}

	if (!http_request) {
		alert('Ocorreu um erro! Atualize a página e tente novamente.');
		return false;
	}
	http_request.onreadystatechange = function(){
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				//alert(http_request.responseText);				
				if(http_request.responseXML) {
				  processXML(http_request.responseXML, form);
			    }
				else
					alert('Ocorreu um erro.');
			} else {
				alert('Ocorreu um erro! Atualize a página e tente novamente.');
			}
		}
	}	

	http_request.open('GET', "pegaCep.php?cep="+valor, true);
	http_request.setRequestHeader("Content-Type", "text/xml; charset=iso-8859-1");
	//http_request.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	//http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_request.send(null);
	
}

function processXML(obj, form){
  var data   	= obj.getElementsByTagName("webservicecep");
  var resultado = data[0].getElementsByTagName("resultado")[0].firstChild.nodeValue;
  if(resultado > 0){
	  if(resultado == 1){
		  var endereco  = data[0].getElementsByTagName("tipo_logradouro")[0].firstChild.nodeValue+" "+data[0].getElementsByTagName("logradouro")[0].firstChild.nodeValue;
		  var bairro    = data[0].getElementsByTagName("bairro")[0].firstChild.nodeValue;
	  }
	  if(resultado == 2)
	  	alert("Cidade com CEP único! Por favor preencha o endereço e o bairro. ");
	  var cidade    = data[0].getElementsByTagName("cidade")[0].firstChild.nodeValue;
	  var uf	    = data[0].getElementsByTagName("uf")[0].firstChild.nodeValue;
	  preencheCampo(resultado, endereco, bairro, cidade, uf, form);
  }
  if(resultado == 0){
	alert("CEP inexistente!");
	form.p_endereco.disabled = false;
	form.p_bairro.disabled = false;
	form.p_cidade.disabled = false;
	form.p_estado.disabled = false;
	form.p_endereco.value = '';
	form.p_bairro.value = '';
	form.p_cidade.value = '';
	form.p_estado.selectedIndex = 0;
  }
  
  if(data.length == 0) {
	//caso o XML volte vazio, printa a mensagem abaixo
	alert("Ocorreu um erro! Atualize a página e tente novamente.");
  }	  
}

function preencheCampo(resultado, endereco, bairro, cidade, uf, form){
	if(resultado == 1){
		form.p_endereco.value 	= endereco;
		form.p_bairro.value 	= bairro;
	}
	for(var i = 0; i < form.p_estado.length; i++){
		if(form.p_estado.options[i].value == uf)
			form.p_estado.selectedIndex = i;
	}
	form.p_cidade.value = cidade;
	
	form.p_endereco.disabled = false;
	form.p_bairro.disabled = false;
	form.p_cidade.disabled = false;
	form.p_estado.disabled = false;
}

