/*
Script Ajax para Localiza CEP em Base de Dados
Desenvolvido por: Willian Spagnol - willianspagnol@gmail.com (Gtalk)
*/

// FUNÇÕES OPCIONAIS - usadas no caso de se ter o campo CEP1 e CEP2
function cep1Digita(){
	var cep = document.getElementById("cep1").value;
	if(cep.length==5){
		document.getElementById("cep2").focus();
		return false;
	}
}
function cep2Digita(){
	var cep2 = document.getElementById("cep2").value;
	if(cep2.length==3){
		document.getElementById("estado").focus();
		gluppyCepLocaliza(document.getElementById("cep1").value+""+cep2);
		return false;
	}
}

try{
    var gluppyXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(ee){
    try{
        var gluppyXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){
        try{
            var gluppyXmlHttp = new XMLHttpRequest();
        }catch(E){
            var gluppyXmlHttp = false;
        }
    }
}
// FUNÇÕES OBRIGATÓRIAS - procure não mexer
function gluppyCepLocaliza(cep) {
	var dadosPost = "cep="+cep;
	document.body.style.cursor = "wait";
	gluppyXmlHttp.open("POST","/localizacep.php",true);
	gluppyXmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	gluppyXmlHttp.onreadystatechange=function() {		
		switch( gluppyXmlHttp.readyState ) {
			case 4: {
				if (gluppyXmlHttp.status==200) {
					var texto = gluppyXmlHttp.responseText;
					texto = texto.replace(/\+/g," ");
					texto = unescape(texto);	
					if (texto=="ERRO1") {
						document.body.style.cursor = "";
						alert('O CEP deve conter 8 números.');
					} else {
						gluppyCepLe(gluppyXmlHttp.responseXML);
					}
				}
			}
		}
	}
	gluppyXmlHttp.send(dadosPost);
}
function gluppyCepLe(obj) {
	var retorno = "";
	var dataArray = obj.getElementsByTagName("item");
	if(dataArray.length>0) {
		for(var i=0;i<dataArray.length;i++) {
			var item = dataArray[i];
			var cep = item.getElementsByTagName("cep")[0].firstChild.nodeValue;
			var uf = item.getElementsByTagName("uf")[0].firstChild.nodeValue;
			var ufsigla = item.getElementsByTagName("ufsigla")[0].firstChild.nodeValue;
			var cidade = item.getElementsByTagName("cidade")[0].firstChild.nodeValue;
			var bairro = item.getElementsByTagName("bairro")[0].firstChild.nodeValue;
			var logradouro = item.getElementsByTagName("logradouro")[0].firstChild.nodeValue;
			var complemento = item.getElementsByTagName("complemento")[0].firstChild.nodeValue;
			if (bairro=="-") bairro="";
			if (logradouro=="-") logradouro="";
			if (complemento=="-") complemento="";
			cepPreenche(cep,uf,ufsigla,cidade,bairro,logradouro,complemento);
		}
	} else {
		document.body.style.cursor = "";
	}
}	
function cepPreenche(cep,uf,ufsigla,cidade,bairro,logradouro,complemento) {
	var estadoObj = document.getElementById("estado");
	for (var i=0;i<estadoObj.length;i++) {
		var estadoObjTexto = estadoObj.options[i].text;
		var estadoObjValor = estadoObj.options[i].value.toUpperCase;
		if (estadoObjTexto==uf || estadoObjTexto==ufsigla || estadoObjValor==uf || estadoObjValor==ufsigla) {
			estadoObj.selectedIndex=i;
			break;
		}
	}
	document.getElementById('cidade').value=cidade;
	document.getElementById('bairro').value=bairro;
	document.getElementById('endereco').value=logradouro;
	document.getElementById('complemento').value="";
	if (logradouro!="") 
		document.getElementById('numero').focus();
	else if (bairro!="") 
		document.getElementById('endereco').focus();
	else 
		document.getElementById('bairro').focus();
	document.body.style.cursor = "";
}
