/* 

	a declaracao da variavel deve estar fora de funcao 
	para se tornar as vari&aacute;veis globais ( http e AjaxNomeCombo)


	para utilizar a funcao chamar a funcao 

	AjaxCarregarCombo(pagina,valor,nomecombo);

	parametros
	pagina		=> pagina a ser carregada no ajax
	valor		=> valor a ser pesquisado (valor digitado na caixa de texto)
	nomecombo	=> nome do combo que ser&aacute; carregado


	O arquivo  a ser carregado (parametro pagina) pode ser um arquivo jsp
	que retorne o resultado de uma busca do Banco de Dados no seguinte formato

	<valores>
		<valor>
			<id>id</id>
			<descricao>descricao</descricao>
		</valor>
	</valores>


	Segue ao final
	um exemplo em html de utilizacao desta funcao carregando o arquivo nome.xml

*/
var httpAjax = null;

var AjaxNomeCombo;


            

function AjaxCarregarCombo(pagina,value,obj){
		//alert(pagina+"|"+value+"|"+obj);
		//alert("1");
			AjaxNomeCombo = obj;

			if(typeof window.ActiveXObject!='undefined'){
				httpAjax = new ActiveXObject("Microsoft.XMLHTTP");
				httpAjax.onreadystatechange = AjaxCarregandoCombo;
			} else {
				httpAjax = new XMLHttpRequest();
				httpAjax.onload  = AjaxCarregandoCombo;
			}			

			//		alert("2");
			//alert (pagina+value);
			
			httpAjax.open("GET", pagina+value, false);
			//httpAjax.open("GET", "combo_bairro.php", false);
			//httpAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			//alert("2.1")
			//alert (5);
			httpAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=iso-8859-1");
			try{
				httpAjax.send(null);
				//alert("6");
			}catch( e){
				alert (obj+"errr="+e.name+"="+e.message);
			}
		return true;
		
}


function AjaxCarregandoCombo(){
  //alert("readyState"+httpAjax.readyState);
  if (httpAjax.readyState == 4) {
		//alert ("carregando");
  		//para remover o "carregando" comentar estas duas linhas  
		//obj=document.getElementById("carregar");
		//obj.innerHTML = httpAjax.responseText;		
		//alert(httpAjax.responseText);		
		//alert();		
		AjaxPreencherCombo(httpAjax.responseText);
  }
} 


function AjaxPreencherCombo(xml){
	  //alert(AjaxNomeCombo);

	  var obj = stringToXml(xml);
	  
	  var objDDL = document.getElementById(AjaxNomeCombo);
	  objDDL.options.length=0;

	  var theValue = obj.getElementsByTagName('id');
	  var theText = obj.getElementsByTagName('descricao');

	  for (i=0;i<theValue.length ;i++ )
	  {
		var option   = new Option (theText[i].firstChild.nodeValue,theValue[i].firstChild.nodeValue);

		try
		{
			objDDL.add(option,null);
		}
		catch (e)
		{
			objDDL.add(option,-1);
		}
	  }
}

function stringToXml(str){

	if (window.ActiveXObject)
	{
		var doc=new ActiveXObject("Microsoft.XMLDOM");
		doc.async="false";
		doc.loadXML(str);
	}
	// code for Mozilla, Firefox, Opera, etc.
	else
	{
		var parser=new DOMParser();
		var doc=parser.parseFromString(str ,"text/xml");
	}
	return doc;
}

function RetiraAcentos(Campo) {
   var Acentos = "ÁÀÂÃáàâãéèêÉÈÊóòôõÓÒÔÕúùûÚÙÛçÇ";
   var Traducao ="AAAAaaaaeeeEEEooooOOOOuuuUUUcC";
   var Posic, Carac;
   var TempLog = "";
   for (var i=0; i < Campo.length; i++)
   {
   Carac = Campo.charAt (i);
   Posic  = Acentos.indexOf (Carac);
   if (Posic > -1)
	  TempLog += Traducao.charAt (Posic);
   else
      TempLog += Campo.charAt (i);
   }
      return (TempLog);
}

