$(function() {
    // Ao mudar o cursor do campo CEP, ou pressionar TAB para avançar o campo
	$('#cep').blur(function(){
    	// Pegamos o valor do input CEP
    	var cep = $('#cep').attr('value')
 
    	// Se o CEP não estiver em branco
		if(cep != '') {
			// Adiciona imagem de "Loading"
			$('#status').html('<img src="ajax-loader.gif" align="middle" />')
 
			/*
				Aqui usamos a função $.getScript da jQuery já que nosso retorno
				se baseia em um script baseado na variável resultadoCEP
			*/
	    	$.getScript('buscaendereco.php?cep='+cep, function(data){			
				// A cada nova requisição zeramos os campos do form
	    		$('#status').html('')
				$('#estado').val('Selecione')
			    $('#cidade').val('')
			    $('#bairro').val('')
			    $('#endereco').val('')
 
			    /*
			    	Abaixo fazemos verificações de flags cedidas pelo próprio Webservice, que são:
			    		0 - CEP não encontrado
			    		1 - CEP completo, todos os campos (estado, cidade, bairro, endereço) disponíveis
			    		2 - CEP incompleto, apenas alguns dados disponíveis (estado, cidade)
			    */
				if(resultadoCEP.resultado == 0)
					alert('Não foi encontrado nenhum endereço para este CEP!\nCaso ele realmente exista, preencha o endereço manualmente!')
				else if(resultadoCEP.resultado == 1) {
					$('#estado').val(resultadoCEP.uf)
					$('#cidade').val(unescape(resultadoCEP.cidade))
					$('#bairro').val(unescape(resultadoCEP.bairro))
					$('#endereco').val(unescape(resultadoCEP.logradouro))
				}
				else {
					$('#estado').val(resultadoCEP.uf)
					$('#cidade').val(unescape(resultadoCEP.cidade))
					// Jogamos o cursor para o campo bairro, já que é o próximo campo além dos já preenchidos
					$('#bairro').focus()
				}
			})
		}
		// Se o campo CEP estiver em branco, apresenta mensagem de erro
		else
			alert('Para que o endereço seja completado automaticamente você deve preencher o campo CEP!')
    	return false
    })
})