function Dados(valEstado, objCidade, padraoCidade,onReadyCmd) {
  //verifica se o browser tem suporte a ajax
  try {
	 ajax = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  catch(e) {
	 try {
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
	 }
	 catch(ex) {
		try {
		   ajax = new XMLHttpRequest();
		}
		catch(exc) {
		   alert("Não é possível carregar lista de cidades!");
		   ajax = null;
		}
	 }
  }
  //se tiver suporte ajax
  if(ajax) {
	 //deixa apenas o elemento 1 no option, os outros são excluídos
	 objCidade.options.length = 1;
	 
	 idOpcao  = document.getElementById("opcoesCidade");
	 
	 ajax.open("POST", "cidades.php", true);
	 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	 
	 ajax.onreadystatechange = function() {
		//enquanto estiver processando...emite a msg de carregando
		if(ajax.readyState == 1) {
		   idOpcao.innerHTML = "Carregando...!";   
		}
		//após ser processado - chama função processXML que vai varrer os dados
		if(ajax.readyState == 4 ) {
		   if(ajax.responseXML) {
			  processXML(ajax.responseXML,objCidade,padraoCidade,onReadyCmd);
		   }else{
			   //caso não seja um arquivo XML emite a mensagem abaixo
			   idOpcao.innerHTML = "--Primeiro selecione o estado--";
		   }
		}
	 }
	 //passa o código do estado escolhido
	 var params = "estado="+valEstado;
	 ajax.send(params);
  }
}

function processXML(obj,objCidade,padraoCidade,onReadyCmd){
  //pega a tag cidade
  var dataArray   = obj.getElementsByTagName("cidade");
  var optSelected = 0;
  
  //total de elementos contidos na tag cidade
  if(dataArray.length > 0) {
	 //percorre o arquivo XML para extrair os dados
	 for(var i = 0 ; i < dataArray.length ; i++) {
		var item = dataArray[i];
		//contéudo dos campos no arquivo XML
		var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
		var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
		
		idOpcao.innerHTML = "--Selecione a cidade--";
		
		//cria um novo option dinamicamente  
		var novo = document.createElement("option");
			//atribui um ID a esse elemento
			novo.setAttribute("id", "opcoesCidade");
			//atribui um valor
			novo.value = codigo;
			//atribui um texto
			novo.text  = descricao;
			//finalmente adiciona o novo elemento
			objCidade.options.add(novo);
			//seleciona como valor padrao
			if (padraoCidade == codigo){
				optSelected = (objCidade.length - 1);
			}
	 }
	 objCidade.selectedIndex = optSelected;
	 eval(onReadyCmd);

  }else{
	//caso o XML volte vazio, printa a mensagem abaixo
	idOpcao.innerHTML = "--Primeiro selecione o estado--";
  }	  
}

