//Cria o objeto HTTP Request
try{
	var xmlhttp = new XMLHttpRequest();
}catch(ee){
	try{
		var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){var xmlhttp = false}
	}
}

//obterPagina(): retorna o texto de uma pagina
// - endereço: caminho da pagina
var conteudoPagina = null;
function obterPagina(metodo, endereco, funcaoOnload, assincrono){
	var ass = (assincrono)? assincrono : true;
	xmlhttp.open(metodo, endereco, ass);
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4){
			conteudoPagina = xmlhttp.responseText;
			if(funcaoOnload)
				eval(funcaoOnload);
		}
	}
	xmlhttp.send(null);
}

//buscarEndereco(): procura um endereço
//	- form: formulário
//	- cepIni(opcional): campo com o CEP (se nao for inserido, insere 'cep_ini')
//	- cepFim(opcional): campo com o digito do CEP (se nao for inserido, insere 'cep_fim')
//	- funcao(opcional): função a executar ao terminar de carregar os dados
function buscarEndereco(form, cepIni, cepFim, funcao) {
	f = document.getElementById(form);
	cep_ini = (cepIni)? cepIni : f.cep_ini;
	cep_fim = (cepFim)? cepFim : f.cep_fim;
	if (cep_ini.value == '') {
		cep_ini.focus();
		alert('Preencha o CEP');
	}else if (cep_fim.value == '') {
		cep_fim.focus();
		alert('Preencha o CEP');
	} else {
		exibirMensagemCep('Aguarde. Pesquisando os dados de endereço.');
		if(funcao)
			obterPagina("GET", "/includes/buscaCep.asp?cep=" + cep_ini.value + "-" + cep_fim.value, "preencherCamposEndereco('" + form  + "', '"+ funcao +"')");
		else
			obterPagina("GET", "/includes/buscaCep.asp?cep=" + cep_ini.value + "-" + cep_fim.value, "preencherCamposEndereco('" + form  + "')");
	}
}
//preencherCamposEndereco(): Preenche os campos do formulario com os dados do CEP
//	- f: formulário
//	- funcao: função a executar ao terminar de inserir o texto
function preencherCamposEndereco(form, funcao){
	if (conteudoPagina.indexOf("##") > -1){
		var f = document.getElementById(form);
		var arrEndereco = conteudoPagina.split("##");
		f.endereco.value = arrEndereco[0];
		f.bairro.value = arrEndereco[2];
		f.cidade.value = arrEndereco[3];
		f.uf.value = arrEndereco[4];
		try{
			f.complementoEnd.value = arrEndereco[1];
		}catch(e){
			f.complemento.value = arrEndereco[1];
		}
		exibirMensagemCep('Dados de endereço carregados.');
		setTimeout('exibirMensagemCep("");', 2000);
		if(funcao)
			eval(funcao)
	} else {
		exibirMensagemCep(conteudoPagina);
	}
}

//exibirMensagemCep(): exibe uma mensagem
//	-mensagem: mensagem a exibir
function exibirMensagemCep(mensagem){
	if(document.getElementById('erroCep'))
		document.getElementById('erroCep').innerHTML = '<font color="#ff0000">' + mensagem + '</font>';
	else if (mensagem != '')
		alert(mensagem);
}
