var origem;
function setOrigem(orig){
	origem = orig;
}

// busca os logradouros por CEP
function buscarLogradouros(){
 	var cep = document.getElementById('cep').value;
 	ConsultarCep.getLocalidades(cep, preencherTabela);
}

// busca os CEP por logradouros
function buscarCep(){
 	var uf = document.getElementById('uf').value;
 	var municipio = document.getElementById('municipio').value;
 	var tipo = document.getElementById('tipo').value;
 	var logradouro = document.getElementById('logradouro').value;
 	var numero = document.getElementById('numero').value;
 	
 	ConsultarCep.getCep(uf, municipio, tipo, logradouro, numero, preencherTabela);
}

// Atualiza a tabela
function preencherTabela(ceps){
var p, link;
var limite = 100;
var fechTag = '</a>';

  if (ceps != null) {
    dwr.util.removeAllRows("logradouros", { 
	 	filter:function(tr){ 
	 		return (tr.id != "pattern");
	 	}
 	});
	
		if(ceps.length == 1){
			retornar(ceps[0].numero, ceps[0].logradouro, ceps[0].bairro, ceps[0].estado, ceps[0].municipio);		
			return;	
		}
		
		for(i = 1; i <= ceps.length && i < limite  ; i++){
			p = ceps[i-1];
			link = '<a href=\"#\" onclick=\"javascript:retornar(\''+ p.numero + '\',\'' + p.logradouro + '\',\'' + p.bairro + '\',\'' + p.estado + '\',\'' + p.municipio +'\');\">'
			dwr.util.cloneNode("pattern", {idSuffix:i});
			dwr.util.setValue("logra"+i, link + p.logradouro + fechTag, {escapeHtml:false});		
			dwr.util.setValue("bairr"+i, link + p.bairro  + fechTag , {escapeHtml:false});		
			dwr.util.setValue("local"+i, link + p.municipio  + fechTag, {escapeHtml:false});			
			dwr.util.setValue("estad"+i, link + p.estado  + fechTag, {escapeHtml:false});			
			dwr.util.setValue("cep"  +i, '<nobr>' + link + p.numero.substr(0, 5) + '-' + p.numero.substr(5)  + fechTag + '</nobr>', {escapeHtml:false});
		}
		
		if(ceps.length > limite){
			alert('A consulta retornou mais de ' + limite +' resultados. Informe mais dados na sua pesquisa.');
		}
	}
}

// Retorna os valores da consulta para o formulario que originou a chamada
	function retornar(cep, logradouro, bairro, uf, municipio) {

	   	if (origem=='EntregaAlt') {
			window.opener.document.forms[0].estado.value = uf;
			window.opener.document.forms[0].estado.readOnly = true;
			window.opener.document.forms[0].estado.className = 'disabled';
			setValueCombo(window.opener.document.forms[0].estado, uf);
			window.opener.document.forms[0].municipio.value = municipio;
			window.opener.document.forms[0].municipio.readOnly = true;
			window.opener.document.forms[0].municipio.className = 'disabled';
			window.opener.document.forms[0].cep.value = cep;
			window.opener.document.forms[0].cep.readOnly = true;
			window.opener.document.forms[0].cep.className = 'disabled';
			window.opener.document.forms[0].endereco.value = logradouro;
			window.opener.document.forms[0].endereco.readOnly = true;
			window.opener.document.forms[0].endereco.className = 'disabled';
			window.opener.document.forms[0].bairro.value = bairro;
			window.opener.document.forms[0].bairro.readOnly = true;
			window.opener.document.forms[0].bairro.className = 'disabled';
			
			window.close();
		} else if (origem=='Solic2Via') {
			window.opener.document.forms[0].cdEstado.value = uf;
			window.opener.document.forms[0].cdEstado.readOnly = true;
			setValueCombo(window.opener.document.forms[0].cdEstado, uf);
			window.opener.document.forms[0].cdEstado.className = 'disabled';
			window.opener.document.forms[0].dsMunicipio.value = municipio;
			window.opener.document.forms[0].dsMunicipio.readOnly = true;
			window.opener.document.forms[0].dsMunicipio.className = 'disabled';
			window.opener.document.forms[0].dsCep.value = cep;
			window.opener.document.forms[0].dsCep.readOnly = true;
			window.opener.document.forms[0].dsCep.className = 'disabled';
			window.opener.document.forms[0].dsEndereco.value = logradouro;
			window.opener.document.forms[0].dsEndereco.readOnly = true;
			window.opener.document.forms[0].dsEndereco.className = 'disabled';
			window.opener.document.forms[0].dsBairro.value = bairro;
			window.opener.document.forms[0].dsBairro.readOnly = true;
			window.opener.document.forms[0].dsBairro.className = 'disabled';
			
			window.close();
		} else if(origem=='PreencAutom'){
			document.getElementById('hdnEstado').value = uf;
			document.getElementById('hdnLogradouro').value = logradouro;
			document.getElementById('hdnMunicipio').value = municipio;
			document.getElementById('hdnCep').value = cep;
			document.getElementById('hdnBairro').value = bairro;
			
			submitForm(0);
		}
	 }
	 
	 function enviarEnter(event, func){
	   if((event && event.which == 13) ||
	      (window.event && window.event.keyCode == 13)){
	   		if(func == 'L'){
	   			buscarLogradouros();
	   		} else if(func == 'C'){
	   			buscarCep();
	   		}
	   }
	 }
	 
	 function setValueCombo(combo, value){
	 	for(index = 0; index < combo.length; index++){
	 		if(combo[index].value == value){
	 		   combo.selectedIndex = index;
	 		}
	 	}
	 
	 }
