function validaCEP(v) {
	return Validation.get('IsEmpty').test(v) || /^\d{2}\.?\d{3}-?\d{3}$/.test(v);
}

function buscarEndereco(local, baseUrl) {
	local_ = local;
	if(!Validation.get('IsEmpty').test(local)) {
		local = local + ':';
	}
	
	if($(local + 'street1')) {
		$(local + 'street1').value = '';
	}
	
	if($(local + 'numero')) {
		$(local + 'numero').value = '';
	}
	
	if($(local + 'complemento')) {
		$(local + 'complemento').value = '';
	}
	
	if($(local + 'bairro')) {
		$(local + 'bairro').value = '';
	}

	if($(local + 'city')) {
		$(local + 'city').value = '';
	}

	if($(local + 'region')) {
		$(local + 'region').value = '';
	}

	if($(local + 'region_id')) {
		$(local + 'region_id').value = '';
	}

	var urlAjax = baseUrl + 'campos/ajax';
	
	new Ajax.Request(urlAjax, { method: 'POST',
		parameters: 'cep=' + $(local + 'postcode').value,
		evalScripts: true,
		onLoading: function(transport) {
			$('load-end-' + local_ + '-loading').setStyle({display:'block'});
			$('load-end-' + local_ + '-text').setStyle({display:'none'});
		},
		onComplete: function(transport) {
			$('load-end-' + local_ + '-loading').setStyle({display:'none'});
			$('load-end-' + local_ + '-text').setStyle({display:'block'});
		},
		onSuccess: function(transport) {
			if(200 == transport.status) {
				try {
					var res = transport.responseText.evalJSON();
					
					if(res.resultado > 0) {
						$(local + 'street1').value = res.tipo_logradouro + ' ' + res.logradouro;

						if($(local + 'bairro')) {
							$(local + 'bairro').value = res.bairro;
						}

						$(local + 'city').value = res.cidade;
						$(local + 'region').value = res.uf;

						for(var obj in countryRegions['BR']) {
							if(res.uf == countryRegions['BR'][obj].code) {
								$(local + 'region_id').value = obj;
							}
						}

						$(local + 'numero').focus();
					}
				} catch(e) { }
			}
		},
		onFailure: function() { }
	});
}

