//!------------------------------------------------------
// @function	abreBuscaCEP
// @desc		Abre a janela de busca por CEP
// @param		formName string		Nome do formulário
// @param		fieldName string	Nome do campo
// @return		void
//!------------------------------------------------------
function abreBuscaCEP(formName, fieldName) {
	var URL;
	URL = "busca_cep.php?form="+formName+"&field="+fieldName;
	createWindow (URL, 485, 260, null, null, 'buscacep', 32);
}

//!------------------------------------------------------
// @function	novaBusca
// @desc		Limpa o formulário de busca por CEP para
//				reconstrução dos filtros
// @return		void
//!------------------------------------------------------
function novaBusca(uri) {
	document.location.href = uri+"#topo";
	clearForm("busca_cep", false);
	document.busca_cep.UF.focus();
}

//!------------------------------------------------------
// @function	mudaMunicipio
// @desc		Troca de Estado, que acarreta uma nova requisição da página de busca
// @param		value string	Valor do Estado escolhido
// @return		void
//!------------------------------------------------------
function mudaMunicipio(value) {
	var formVal, fieldVal;
	formVal = document.busca_cep.elements['form'].value;
	fieldVal = document.busca_cep.elements['field'].value;
	if (value != "")
		eval("location.href='?UF="+value+"&form="+formVal+"&field="+fieldVal+"'");
	else
		return;
}

//!------------------------------------------------------
// @function	escolheCEP
// @desc		Trata o clique sobre um valor de CEP nos resultados
//				da busca, que permite que o valor seja copiado para
//				o formulário que abriu a janela de busca
// @param		cepVal string	Um CEP na lista de resultados
// @return		void
//!------------------------------------------------------
function escolheCEP(cepVal, formVal, fieldVal) {
	var cepDados, cepSplit;
	var outerForm, outerFocus;
	cepDados = document.busca_cep.elements['DADOS['+cepVal+']'].value;
	cepSplit = String(cepDados).split('|');
	outerForm = window.opener.document.forms[formVal];
	if (typeof(outerForm) == 'undefined')
		return false;
	if (confirm("Deseja copiar os dados deste CEP para o formulário?")) {
	try {
		if (fieldVal == 'ENDERECO_CEP') {
			outerForm.ENDERECO_CEP.value = cepVal;
			if (cepSplit[0] != "") outerForm.ID_MUNICIPIO.value = cepSplit[0]; else outerForm.ID_MUNICIPIO.value = "";
			if (cepSplit[1] != "") outerForm.ENDERECO_MUNICIPIO.value = cepSplit[1]; else outerForm.ENDERECO_MUNICIPIO.value = "";
			if (cepSplit[2] != "") outerForm.ENDERECO_UF.value = cepSplit[2]; else outerForm.ENDERECO_UF.value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_TIPO', cepSplit[3]); else outerForm.ENDERECO_TIPO.options[0].selected = true;
			if (cepSplit[4] != "") outerForm.ENDERECO_LOG.value = cepSplit[4]; else outerForm.ENDERECO_LOG.value = "";
			if (cepSplit[5] != "") outerForm.ENDERECO_BAIRRO.value = cepSplit[5]; else outerForm.ENDERECO_BAIRRO.value = "";
			outerForm.ENDERECO_NRO.value = '';
			outerForm.ENDERECO_COMP.value = '';
			outerForm.ENDERECO_CAIXA_POSTAL.value = '';
			outerFocus = outerForm.ENDERECO_NRO;
		} else if (fieldVal == 'ENDERECO_FAT_CEP') {
			outerForm.ENDERECO_FAT_CEP.value = cepVal;
			if (cepSplit[0] != "") outerForm.ID_MUNICIPIO_FATURAMENTO.value = cepSplit[0]; else outerForm.ID_MUNICIPIO_FATURAMENTO.value = "";
			if (cepSplit[1] != "") outerForm.ENDERECO_FAT_MUNICIPIO.value = cepSplit[1]; else outerForm.ENDERECO_FAT_MUNICIPIO.value = "";
			if (cepSplit[2] != "") outerForm.ENDERECO_FAT_UF.value = cepSplit[2]; else outerForm.ENDERECO_FAT_UF.value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_FAT_TIPO', cepSplit[3]); else outerForm.ENDERECO_FAT_TIPO.options[0].selected = true;
			if (cepSplit[4] != "") outerForm.ENDERECO_FAT_LOG.value = cepSplit[4]; else outerForm.ENDERECO_FAT_LOG.value = "";
			if (cepSplit[5] != "") outerForm.ENDERECO_FAT_BAIRRO.value = cepSplit[5]; else outerForm.ENDERECO_FAT_BAIRRO.value = "";
			outerForm.ENDERECO_FAT_NRO.value = '';
			outerForm.ENDERECO_FAT_COMP.value = '';
			outerForm.ENDERECO_FAT_CAIXA_POSTAL.value = '';
			outerFocus = outerForm.ENDERECO_FAT_NRO;
		} else if (fieldVal == 'ENDERECO_COB_CEP') {
			outerForm.ENDERECO_COB_CEP.value = cepVal;
			if (cepSplit[0] != "") outerForm.ID_MUNICIPIO_COBRANCA.value = cepSplit[0]; else outerForm.ID_MUNICIPIO_COBRANCA.value = "";
			if (cepSplit[1] != "") outerForm.ENDERECO_COB_MUNICIPIO.value = cepSplit[1]; else outerForm.ENDERECO_COB_MUNICIPIO.value = "";
			if (cepSplit[2] != "") outerForm.ENDERECO_COB_UF.value = cepSplit[2]; else outerForm.ENDERECO_COB_UF.value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_COB_TIPO', cepSplit[3]); else outerForm.ENDERECO_COB_TIPO.options[0].selected = true;
			if (cepSplit[4] != "") outerForm.ENDERECO_COB_LOG.value = cepSplit[4]; else outerForm.ENDERECO_COB_LOG.value = "";
			if (cepSplit[5] != "") outerForm.ENDERECO_COB_BAIRRO.value = cepSplit[5]; else outerForm.ENDERECO_COB_BAIRRO.value = "";
			outerForm.ENDERECO_COB_NRO.value = '';
			outerForm.ENDERECO_COB_COMP.value = '';
			outerForm.ENDERECO_COB_CAIXA_POSTAL.value = '';
			outerFocus = outerForm.ENDERECO_COB_NRO;
		} else if (fieldVal == 'ENDERECO_ENT_CEP') {
			outerForm.ENDERECO_ENT_CEP.value = cepVal;
			if (cepSplit[0] != "") outerForm.ID_MUNICIPIO_ENTREGA.value = cepSplit[0]; else outerForm.ID_MUNICIPIO_ENTREGA.value = "";
			if (cepSplit[1] != "") outerForm.ENDERECO_ENT_MUNICIPIO.value = cepSplit[1]; else outerForm.ENDERECO_ENT_MUNICIPIO.value = "";
			if (cepSplit[2] != "") outerForm.ENDERECO_ENT_UF.value = cepSplit[2]; else outerForm.ENDERECO_ENT_UF.value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_ENT_TIPO', cepSplit[3]); else outerForm.ENDERECO_ENT_TIPO.options[0].selected = true;
			if (cepSplit[4] != "") outerForm.ENDERECO_ENT_LOG.value = cepSplit[4]; else outerForm.ENDERECO_ENT_LOG.value = "";
			if (cepSplit[5] != "") outerForm.ENDERECO_ENT_BAIRRO.value = cepSplit[5]; else outerForm.ENDERECO_ENT_BAIRRO.value = "";
			outerForm.ENDERECO_ENT_NRO.value = '';
			outerForm.ENDERECO_ENT_COMP.value = '';
			outerForm.ENDERECO_ENT_CAIXA_POSTAL.value = '';
			outerFocus = outerForm.ENDERECO_ENT_NRO;
		} else if (fieldVal == 'ENDERECO_ENT_CERT_CEP') {
			outerForm.ENDERECO_ENT_CERT_CEP.value = cepVal;
			if (cepSplit[0] != "") outerForm.ID_MUNICIPIO_ENT_CERTIFICADO.value = cepSplit[0]; else outerForm.ID_MUNICIPIO_ENT_CERTIFICADO.value = "";
			if (cepSplit[1] != "") outerForm.ENDERECO_ENT_CERT_MUNICIPIO.value = cepSplit[1]; else outerForm.ENDERECO_ENT_CERT_MUNICIPIO.value = "";
			if (cepSplit[2] != "") outerForm.ENDERECO_ENT_CERT_UF.value = cepSplit[2]; else outerForm.ENDERECO_ENT_CERT_UF.value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_ENT_CERT_TIPO', cepSplit[3]); else outerForm.ENDERECO_ENT_CERT_TIPO.options[0].selected = true;
			if (cepSplit[4] != "") outerForm.ENDERECO_ENT_CERT_LOG.value = cepSplit[4]; else outerForm.ENDERECO_ENT_CERT_LOG.value = "";
			if (cepSplit[5] != "") outerForm.ENDERECO_ENT_CERT_BAIRRO.value = cepSplit[5]; else outerForm.ENDERECO_ENT_CERT_BAIRRO.value = "";
			outerForm.ENDERECO_ENT_CERT_NRO.value = '';
			outerForm.ENDERECO_ENT_CERT_COMP.value = '';
			outerForm.ENDERECO_ENT_CERT_CAIXA_POSTA.value = '';
			outerFocus = outerForm.ENDERECO_ENT_CERT_NRO;
		} else if (fieldVal == 'ENDERECO_CEP_CONTATO[0]') {
			outerForm.elements['ENDERECO_CEP_CONTATO[0]'].value = cepVal;
			if (cepSplit[0] != "") outerForm.elements['ID_MUNICIPIO_CONTATO[0]'].value = cepSplit[0]; else outerForm.elements['ID_MUNICIPIO_CONTATO[0]'].value = "";
			if (cepSplit[1] != "") outerForm.elements['ENDERECO_MUNICIPIO_CONTATO[0]'].value = cepSplit[1]; else outerForm.elements['ENDERECO_MUNICIPIO[0]'].value = "";
			if (cepSplit[2] != "") outerForm.elements['ENDERECO_UF_CONTATO[0]'].value = cepSplit[2]; else outerForm.elements['ENDERECO_UF_CONTATO[0]'].value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_TIPO_CONTATO[0]', cepSplit[3]); else outerForm.elements['ENDERECO_TIPO_CONTATO[0]'].options[0].selected = true;
			if (cepSplit[4] != "") outerForm.elements['ENDERECO_LOG_CONTATO[0]'].value = cepSplit[4]; else outerForm.elements['ENDERECO_LOG_CONTATO[0]'].value = "";
			if (cepSplit[5] != "") outerForm.elements['ENDERECO_BAIRRO_CONTATO[0]'].value = cepSplit[5]; else outerForm.elements['ENDERECO_BAIRRO_CONTATO[0]'].value = "";
			outerForm.elements['ENDERECO_NRO_CONTATO[0]'].value = '';
			outerForm.elements['ENDERECO_COMP_CONTATO[0]'].value = '';
			outerForm.elements['ENDERECO_CAIXA_POSTAL_CONTATO[0]'].value = '';
			outerFocus = outerForm.elements['ENDERECO_NRO_CONTATO[0]'];
		} else if (fieldVal == 'ENDERECO_CEP_CONTATO[1]') {
			outerForm.elements['ENDERECO_CEP_CONTATO[1]'].value = cepVal;
			if (cepSplit[0] != "") outerForm.elements['ID_MUNICIPIO_CONTATO[1]'].value = cepSplit[0]; else outerForm.elements['ID_MUNICIPIO_CONTATO[1]'].value = "";
			if (cepSplit[1] != "") outerForm.elements['ENDERECO_MUNICIPIO_CONTATO[1]'].value = cepSplit[1]; else outerForm.elements['ENDERECO_MUNICIPIO[1]'].value = "";
			if (cepSplit[2] != "") outerForm.elements['ENDERECO_UF_CONTATO[1]'].value = cepSplit[2]; else outerForm.elements['ENDERECO_UF_CONTATO[1]'].value = "";
			if (cepSplit[3] != "") selectOptionByCaption(outerForm, 'ENDERECO_TIPO_CONTATO[1]', cepSplit[3]); else outerForm.elements['ENDERECO_TIPO_CONTATO[1]'].options[0].selected = true;
			if (cepSplit[4] != "") outerForm.elements['ENDERECO_LOG_CONTATO[1]'].value = cepSplit[4]; else outerForm.elements['ENDERECO_LOG_CONTATO[1]'].value = "";
			if (cepSplit[5] != "") outerForm.elements['ENDERECO_BAIRRO_CONTATO[1]'].value = cepSplit[5]; else outerForm.elements['ENDERECO_BAIRRO_CONTATO[1]'].value = "";
			outerForm.elements['ENDERECO_NRO_CONTATO[1]'].value = '';
			outerForm.elements['ENDERECO_COMP_CONTATO[1]'].value = '';
			outerForm.elements['ENDERECO_CAIXA_POSTAL_CONTATO[1]'].value = '';
			outerFocus = outerForm.elements['ENDERECO_NRO_CONTATO[1]'];
		} 

		if (typeof(outerFocus) != 'undefined' && !outerFocus.disabled)
			outerFocus.focus();
		window.close();
	} catch(e) {
		alert(e);
	}
	}
	return true;
}

//!----------------------------------------------
// @function	enviaPesquisa
// @desc		Envia a pesquisa
// @return		void
//!----------------------------------------------
function enviaPesquisa() {
	var frm = $('busca_cep');
 	if (frm.validator.run()) {
		var vis = new VisibilityControl();
		vis.show('aguarde', true, true);
		frm.submit();
	}
}

//!----------------------------------------------
// @function	populaListaMunicipio
// @desc		Função que trata o retorno da busca por produtores utilizando JSRS
// @param		retorno String	Retorno da pesquisa
// @return		void
//!----------------------------------------------
function populaListaMunicipio(retorno) {
	var formObj = getFormObj('busca_cep');
	if (retorno == 'invalido') {
		alert("Parâmetros inválidos para a realização da pesquisa!");
		document.busca_cep.MUNICIPIO.value = "";
	} else if (retorno == 'vazio') {
		alert("A pesquisa realizada não retornou resultados!");
		document.busca_cep.MUNICIPIO.value = "";
	} else {
		clearOptions(formObj, "MUNICIPIOS");
		createOptionsFromString(retorno, formObj, "MUNICIPIOS", "|", "~", 0);
		requestFocus(formObj, "MUNICIPIOS");

	}
}