/***
* Objeto AJAX para comunicação Assincrona com um servidor de aplicações WEB
***/
function AJAX(url,metodo,params,processa,modo) {
	this.url = url;
	this.metodo = (metodo) ? metodo : 'GET';
	this.params  = (metodo='GET') ? null : params;
	this.processaresultado = processa;
	this.Header = new Array();
	this.modo = (modo) ? modo : 'T';
	if(this.modo!='T'&&this.modo!='X') {
		this.modo = 'T';
	}
	this.conectar();
}
AJAX.prototype = {
	addHeader:	function(h,v) {
					this.Header[h] = v;
				},
	delHeader:	function(h) {
					delete(this.Header[h]);
				},
	setHeader:	function() {
					if(this.httprequest==null) { return;} 
					for(h in this.Header) {
						this.httprequest.setRequestHeader(h,this.Header[h]);
					}
				},
	conectar:			function() {
							if(this.url==undefined||this.url=='') {
								return; 
							}
							this.httprequest = null;
						   	if (window.XMLHttpRequest) { // Mozilla, Safari,...
					         	this.httprequest = new XMLHttpRequest();
				        	} else if (window.ActiveXObject) { // IE
					         	try {
							     	 this.httprequest = new ActiveXObject("Msxml2.XMLHTTP");
				    	     	} catch (e) {
				               		try {
		        		           	 this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
									} catch (e) {}
								}
							}
							if(this.httprequest!=null&&this.httprequest!=undefined) {
								var obj = this;
								this.httprequest.onreadystatechange = 	function() {
																			obj.processaretorno.call(obj);
																		}
								if(this.metodo==undefined||this.metodo=='') { this.metodo = 'GET';}
					        	this.httprequest.open(this.metodo,this.url, true);
								this.setHeader();
						        this.httprequest.send(this.params);
							} else {
								alert('Não foi possível iniciar o AJAX');
							}
						},
	processaretorno:	function() {
							if(this.httprequest.readyState==4) {
								if(this.httprequest.status==200) {
									var resp = (this.modo=='T') ? 
												this.httprequest.responseText : 
												this.httprequest.responseXML;
									if(this.processaresultado!=null) {
										this.processaresultado(resp);
									} else {
										document.write(resp);
									}
								} else { 
									this.processaerro();
								}
							}
						},
	processaerro:		function() {
							var erro = prompt(this.httprequest.status + '-' + this.httprequest.statusText, this.url);
							// alert(this.httprequest.status + '-' + this.httprequest.statusText + ' :-> ' + this.url);
						}
}

//Fim do Objeto AJAX

/***
* LISTACIDADES - completa a combo de funções de acordo com a área de atuação escolhida
***/
	function listacidades() {
		var desc = document.getElementById('estados').value;
		var selp   		= document.getElementById('cidades');
		selp.options.length 	= 0;
		var opt			= new Option('Aguarde...','');
		// selp.add(opt);
		selp.options[selp.options.length] = opt;
		if (desc!="") {
			var ajax = new AJAX();
			ajax.url = 'xml_lista_cidades.php?estado='+desc;
			ajax.modo = 'T';
			ajax.processaresultado = function(xmltxt) {					
										// code for IE
										if (window.ActiveXObject)
										  {
										  var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
										  xmldoc.async="false";
										  xmldoc.loadXML(xmltxt);
										  }
										// code for Mozilla, Firefox, Opera, etc.
										else
										  {
										  var parser=new DOMParser();
										  var xmldoc=parser.parseFromString(xmltxt,"text/xml");
										  }
										var nos    		= xmldoc.getElementsByTagName('row');
										if(xmldoc.hasChildNodes()&&nos.length>0) {
											var estados 	= document.getElementById('estados').value;
											var selp   		= document.getElementById('cidades');
											selp.options.length 	= 0;
											var opt			= new Option('','');
											// selp.add(opt);
											selp.options[selp.options.length] = opt;
											for(var i=0;i<nos.length;i++) {
												var no = nos[i];
												if (window.ActiveXObject) { 
													var cod = no.childNodes[0].firstChild.nodeValue;
													var des = no.childNodes[1].firstChild.nodeValue;
												} else {
													var cod = no.childNodes[1].firstChild.nodeValue;
													var des = no.childNodes[3].firstChild.nodeValue;
												}
												var opt		= new Option(des,cod);
												// selp.add(opt);
												selp.options[i+1] = opt;
											}
										} else {
											var selp   		= document.getElementById('cidades');
											selp.options.length 	= 0;
											var opt			= new Option('','');
											// selp.add(opt);
											selp.options[selp.options.length] = opt;
										}
									 }
			ajax.conectar();
		} else {
			var selp   		= document.getElementById('cidades');
			selp.options.length 	= 0;
			var opt			= new Option('','');
			// selp.add(opt);
			selp.options[selp.options.length] = opt;
		}
	} 
//Fim da Função LISTACIDADES

		
		

/***
* LISTABAIRROS- completa a combo de funções de acordo com a área de atuação escolhida
***/
	function listabairros() {
		var x = document.getElementById('cidades').value;
		x = x.toLowerCase(); 
		var estranha = "áéíóúàèìòùâêîôûäëïöüãõç"; 
		var correta = "aeiouaeiouaeiouaeiouaoc"; 
		var retorno = ""; 
		for(i=0;i<estranha.length;i++) 
		{ 
			for(j=0;j< x.length;j++) 
			{ 
				retorno = x.replace(estranha.substr(i,1),correta.substr(i,1)); 
				retorno = retorno.replace("_",""); 
				x = retorno;
			} 
		}
		var desc = x;
		var selp   		= document.getElementById('bairros');
		selp.options.length 	= 0;
		var opt			= new Option('Aguarde...','');
		// selp.add(opt);
		selp.options[selp.options.length] = opt;
		if (desc!="") {
			var ajax = new AJAX();
			ajax.url = 'xml_lista_bairros.php?cidade='+desc;
			ajax.modo = 'T';
			ajax.processaresultado = function(xmltxt) {					
										// code for IE
										if (window.ActiveXObject)
										  {
										  var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
										  xmldoc.async="false";
										  xmldoc.loadXML(xmltxt);
										  }
										// code for Mozilla, Firefox, Opera, etc.
										else
										  {
										  var parser=new DOMParser();
										  var xmldoc=parser.parseFromString(xmltxt,"text/xml");
										  }
										var nos    		= xmldoc.getElementsByTagName('row');
										if(xmldoc.hasChildNodes()&&nos.length>0) {
											var cidade = document.getElementById('cidades').value;
											var selp = document.getElementById('bairros');
											selp.options.length 	= 0;
											var opt			= new Option('','');
											// selp.add(opt);
											selp.options[selp.options.length] = opt;
											for(var i=0;i<nos.length;i++) {
												var no = nos[i];
												if (window.ActiveXObject) { 
													var cod = no.childNodes[0].firstChild.nodeValue;
													var des = no.childNodes[1].firstChild.nodeValue;
												} else {
													var cod = no.childNodes[1].firstChild.nodeValue;
													var des = no.childNodes[3].firstChild.nodeValue;
												}
												var opt		= new Option(des,cod);
												// selp.add(opt);
												selp.options[i+1] = opt;
											}
										} else {
											var selp   		= document.getElementById('bairros');
											selp.options.length 	= 0;
											var opt			= new Option('','');
											// selp.add(opt);
											selp.options[selp.options.length] = opt;
										}
									 }
			ajax.conectar();
		} else {
			var selp   		= document.getElementById('bairros');
			selp.options.length 	= 0;
			var opt			= new Option('','');
			// selp.add(opt);
			selp.options[selp.options.length] = opt;
		}
	} 
//Fim da Função LISTACBAIRROS