
uf = {}
municipio = {}

/**
 * A funcao imprimeSelects recebe o parametro 'content_div' na primeira posicao que é o identificador (id) do lugar
 * onde voce quer que seja renderizado os selects de uf e de municipio. Basta voce criar 
 * esse div e chamar essa funcao que ele faz o resto sozinho.
 * Esse segue a norma de nomenclatura de ids utilizada no formulario de cadastro de projetos CI
 * Mas isso nao impede que este mecanismo seja usado em outros sistemas
 * 
 * Voce tambem pode passar outros dois parametros pra funcao imprimeSelects: a sigla
 * de uma UF ou o codigo IBGE de um municipio. Isso serve pra que o select de estado
 * ja venha selecionado na UF indicada e que o select de municipios ja venha com 
 * a lista completa de municipios daquele estado. Se voce passar o parametro codigo
 * do municipio o select de municipio ja vem selecionado nele
 * 
		>>> imprimeSelects('endereco')
		>>> vai imprimir no div id="endereco" dois selects: um de estado e um de municipio, este ultimo vazio
		>>> imprimeSelects('endereco', 'SC')
		>>> vai imprimir um select de UF com SC selecionado e um select dos municipios de SC
		>>> imprimeSelects('select_ufs_municipios', 'SC', 4202008)
		>>> vai imprimir o select de SC e o select dos municipios da UF com Balneario Comboriu selecionado
 */
function imprimeSelects(content_div, uf, mun_id){		
	html = '<label for="id_uf_sigla">UF</label>'
	html += selectUfs(uf)
	html += '<label for="id_municipio_id">Munic&iacute;pio</label>'
	html += selectMun(uf, mun_id)
	$('#'+content_div).hide().html(html).show('fast')	
	$('select#id_uf_sigla').change(function(){
		alteraUf($(this).val())
    })
}

function alteraUf(uf){
    $('#id_municipio_id').html('<option value="">Carregando...</option>')
    if(uf)
        monta_options_municipios(uf)
	else
        $('#id_municipio_id').html('<option value="">Escolha primeiro um estado acima...</option>')
}

function selectMun(uf, mun_id, name){
	if(!name)
		name = 'municipio_id' 		
	if (uf)
		monta_options_municipios(uf, mun_id)
    str_select = "<select id='id_municipio_id'  name='"+name+"'>\n\t\t<option value=''>Município</option>"
    str_select += '</select>'
    return str_select
}

function monta_options_municipios(uf, mun_id){
	$.getScript("http://estatico.ipso.org.br/js/brasil_ufs_json/" + uf + ".js", function(){
		$('#id_municipio_id').html(for_options_municipios(mun_id))
	});
}

function for_options_municipios(mun_id){
	str_opt = '<option value="">Escolha um município...</option>'
	for (i in json_municipios){        
		str_sel = ''
		if(mun_id == json_municipios[i].id) 
			str_sel = 'selected'		
    	str_opt += '<option value="'+json_municipios[i].id+'" '+str_sel+' >'+json_municipios[i].n+'</option>\n'
	}
	return str_opt
}

function selectUfs(sel, name){
    if(!name)
		name = 'uf_sigla'		
	ufs =['AC','AL','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PB','PE','PI', 'PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO']
    str_select = "<select id='id_uf_sigla' name='"+name+"'>\n\t\t<option value=''>Escolha uma UF...</option>"
    for(i in ufs){
        str_sel = ''
        if(sel == ufs[i]) 
            str_sel = 'selected'
        str_select += '<option value="'+ufs[i]+'" '+str_sel+' >'+ufs[i]+'</option>'
    }
    str_select += '</select>'
    return str_select
}
