function iniciaAjax()
{
	//verifica se o navegado é o Iternet Explorer ou outros navegadores
	if(window.ActiveXObject)
	{
		//estância o objeto ActiveX
		ajax = new ActiveXObject("Microsoft.XMLHTTP");				
	}
	else
	{
		ajax = new XMLHttpRequest();
	}
	
	return ajax;
}

function carregando()
{
	//limpa as cidades já existentes
	document.getElementById('cidades').innerHTML = "";
	//pega o local onde a combo de cidades será exibida]
	var local = document.getElementById('cidades');
	
	//cria uma combo select
	var combo = document.createElement('select');
	combo.setAttribute('name','cidade');
	combo.setAttribute('id','cidade');

	var opcao = document.createElement('option');
	opcao.setAttribute('value', 00);
	opcao.appendChild(document.createTextNode("Carregando..."));
	
	//adiciona essa opção na combo
	combo.appendChild(opcao);
	
	//coloca a combo dentro do div
	local.appendChild(combo);
}

function mostrarCidades(idEstado)
{
	//informa que está carregando as cidades
	carregando();
	
	
	//inicia o AJAX
	ajax = iniciaAjax();
	
	ajax.onreadystatechange = mostrarCidades2;
	
	//abre a conexão com o servidor
	ajax.open("GET", "cidades_xml.php?idEstado="+idEstado);
	
	//envia a requisição para o servidor
	ajax.send(null);
}

function mostrarCidades2()
{
	//verifica o status da requisição, se for o processamento está completo 
	if (ajax.readyState == 4) 
	{     		
		//verifica o número do status, se for diferente de 200 tem algum erro 
		if (ajax.status == 200) 
		{
            var xml = ajax.responseXML;
			if(xml != null)
			{
				if(xml.hasChildNodes())
				{	
					//limpa as cidades já existentes
					document.getElementById('cidades').innerHTML = "";
					
					//pega o local onde a combo de cidades será exibida]
					var local = document.getElementById('cidades');
					
					//cria uma combo select
					var combo = document.createElement('select');
					combo.setAttribute('name','cidade');
					combo.setAttribute('id','cidade');
					combo.onchange = function(){mostrarBairros(this.options[this.selectedIndex].value);};
					
					//pega todas as cidades qae retornou do XML
					var nos = xml.getElementsByTagName('cidade');
					
					//faz um loop para percorrer todas as tags produto
					for(cont = 0; cont < nos.length; cont++)
					{
						//verifica se é o IE
						if(window.ActiveXObject)
						{						
							var idCidade = nos[cont].childNodes[0].firstChild.nodeValue;
							var cidade = nos[cont].childNodes[1].firstChild.nodeValue;
						}
						else
						{
							var idCidade = nos[cont].childNodes[1].firstChild.nodeValue;
							var cidade = nos[cont].childNodes[3].firstChild.nodeValue;
						}	
						
						//cria um option do select
						var opcao = document.createElement('option');
						opcao.setAttribute('value', idCidade);
						opcao.appendChild(document.createTextNode(cidade));
						
						//adiciona essa opção na combo
						combo.appendChild(opcao);
						
					}
					
					//coloca a combo dentro do div
					local.appendChild(combo);
				}
			}
        } 
		else 
		{
            alert("Erro ao carregar a Cidade:\n" + ajax.statusText);
        }		
    } 	
}	








function carregando_bairros()
{
	//limpa as cidades já existentes
	document.getElementById('bairros').innerHTML = "";
	//pega o local onde a combo de cidades será exibida]
	var local = document.getElementById('bairros');
	
	//cria uma combo select
	var combo = document.createElement('select');
	combo.setAttribute('name','bairro');
	combo.setAttribute('id','bairro');

	var opcao = document.createElement('option');
	opcao.setAttribute('value', 00);
	opcao.appendChild(document.createTextNode("Carregando..."));
	
	//adiciona essa opção na combo
	combo.appendChild(opcao);
	
	//coloca a combo dentro do div
	local.appendChild(combo);
}

function mostrarBairros(idCidade)
{
	//informa que está carregando os bairros
	carregando_bairros();
	
	
	//inicia o AJAX
	ajax = iniciaAjax();
	
	ajax.onreadystatechange = mostrarBairros2;
	
	//abre a conexão com o servidor
	ajax.open("GET", "bairros_xml.php?idCidade="+idCidade);
	
	//envia a requisição para o servidor
	ajax.send(null);
}


function mostrarBairros2()
{
	//verifica o status da requisição, se for o processamento está completo 
	if (ajax.readyState == 4) 
	{     		
		//verifica o número do status, se for diferente de 200 tem algum erro 
		if (ajax.status == 200) 
		{
            var xml = ajax.responseXML;
			if(xml != null)
			{
				if(xml.hasChildNodes())
				{	
					//limpa os bairros já existentes
					document.getElementById('bairros').innerHTML = "";
					
					//pega o local onde a combo de bairros será exibida]
					var local = document.getElementById('bairros');
					
					//cria uma combo select
					var combo = document.createElement('select');
					combo.setAttribute('name','bairro');
					combo.setAttribute('id','bairro');
					combo.onchange = function(){cad_grupo(this.options[this.selectedIndex].value);};
					
					//pega todas as bairros qae retornou do XML
					var nos = xml.getElementsByTagName('bairro');
					
					//faz um loop para percorrer todas as tags produto
					for(cont = 0; cont < nos.length; cont++)
					{
						//verifica se é o IE
						if(window.ActiveXObject)
						{						
							var idBairro = nos[cont].childNodes[0].firstChild.nodeValue;
							var bairro = nos[cont].childNodes[1].firstChild.nodeValue;
						}
						else
						{
							var idBairro = nos[cont].childNodes[1].firstChild.nodeValue;
							var bairro = nos[cont].childNodes[3].firstChild.nodeValue;
						}	
						
						//cria um option do select
						var opcao = document.createElement('option');
						opcao.setAttribute('value', idBairro);
						opcao.appendChild(document.createTextNode(bairro));
						
						//adiciona essa opção na combo
						combo.appendChild(opcao);
						
					}
					
					//coloca a combo dentro do div
					local.appendChild(combo);
				}
			}
        } 
		else 
		{
            alert("Erro carregando Bairros:\n" + ajax.statusText);
        }		
    } 	
}