	var http_request = false;
	var idVar = '';
	function makeRequest(url, parameters, id, fx_retorno) {
		
		if (!fx_retorno) fx_retorno = function(){};		
		
		idVar = id;
		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				// set type accordingly to anticipated content type
				// http_request.overrideMimeType('text/xml');
				http_request.overrideMimeType('text/html');
			}
		} else if (window.ActiveXObject) { // IE
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
				}
			}
		}
		if (!http_request) {
			alert('Não foi possível se conectar ao servidor.');
			return false;
		}
		http_request.onreadystatechange = function(){
			if (http_request.readyState == 4) {
				//alert(http_request.status);
				if (http_request.status == 200) {
					// alert(http_request.responseText);
					result = http_request.responseText;
					document.getElementById(idVar).innerHTML = result;
					fx_retorno();
					// document.getElementById('resultado').innerHTML = 'OK'
				} else {
					alert('Não foi possível processar a requisição. Tente novamente em alguns minutos.('+http_request.status+')');
				}
			}
		};
			
			
			
			
			//alertContents;
		http_request.open('GET', url + parameters, true);
		http_request.send(null);
	}
	
	function alertContents() {
		if (http_request.readyState == 4) {
			//alert(http_request.status);
			if (http_request.status == 200) {
				// alert(http_request.responseText);
				result = http_request.responseText;
				document.getElementById(idVar).innerHTML = result;
				// document.getElementById('resultado').innerHTML = 'OK'
			} else {
				alert('Não foi possível processar a requisição. Tente novamente em alguns minutos.('+http_request.status+')');
			}
		}
	}
	
	function get(obj) {
		var retorno = "?";
		var title = "";
		var value = "";
		var name = "";
		var els = "";
		for ( var i = 0; i < obj.elements.length; i++) {
			els = obj.elements[i];
			title = els.title;
			value = els.value;
			name = els.name;
			switch (els.type) {
			case "text":
			case "hidden":
			case "password":
			case "textarea":
				// is it a required field?
//				if (encodeURI(title) == "required" && encodeURI(value).length < 1) {
//					alert('\'' + name + '\' is a required field, please complete.');
//					els.focus();
//					return false;
//				}
				retorno += name + "=" + encodeURI(value) + "&";
				break;
	
			case "checkbox":
			case "radio":
				if (els.checked)
					retorno += name + "=" + encodeURI(value) + "&";
				break;
	
			case "select-one":
				retorno += name + "=" + els.options[els.selectedIndex].value + "&";
				break;
			} // switch
		} // for
		retorno = retorno.substr(0, (retorno.length - 1));
		return retorno;
	}
	function validaRadio(obj) {
		for ( var i = 0; i < obj.elements.length; i++) {
			els = obj.elements[i];
			if(els.type == "radio" && els.checked){
				return true;
			}
		}
	}


	function GetXmlHttpObject()
	{ 
		var objXMLHttp=null
		if (window.XMLHttpRequest)
		{
			objXMLHttp=new XMLHttpRequest()
		}
		else if (window.ActiveXObject)
		{		
			try 
			{
				objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
	        }
			catch (e) 
			{
	            try 
	            {
	            	objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	            }
	            catch (e) {}
	        }

		}
		return objXMLHttp
	}

	var xmlHttp;
	function votaComentario(tipoVotacao,path,pathPage,name,linkComment)
	{ 
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
			alert ("Este browser não suporta HTTP Request");	
			return false;
		}

		var url=pathPage;
		url=url+"?tipoVotacao="+tipoVotacao
		url=url+"&path="+path
		url=url+"&spanId="+name
		url=url+"&linkComment="+linkComment

		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				document.getElementById(name).innerHTML=xmlHttp.responseText 
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	
	function filtraDestino(uf,pathPage,name,tipo)
	{ 
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
			alert ("Este browser não suporta HTTP Request");	
			return false;
		}

		var url=pathPage;
		url=url+"?uf="+uf
		url=url+"&tipo="+tipo

		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				document.getElementById(name).innerHTML=xmlHttp.responseText 
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	
	function buscaDestinoLetra(letra,pathPage,name)
	{ 
		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
			alert ("Este browser não suporta HTTP Request");	
			return false;
		}

		var url=pathPage;
		url=url+"?letra="+letra

		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				document.getElementById(name).innerHTML=xmlHttp.responseText 
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	
	/** FUNCOES UTILIZADAS NO FORM DE BUSCA DE DESTINOS - Inicio*/
	
	function filtraPeloTema(filtro,pathPage,estado,roteiro,destino) {
		
		if(filtro == ""){
			enableformInput(destino);
		} else{
			disableformInput(destino);
		}
		
		filtraBusca(filtro,pathPage,estado);
		filtraBusca(filtro,pathPage,roteiro);
	}
	
	function filtraComuPeloTema(filtro,pathPage,estado,roteiro) {

		filtraBusca(filtro,pathPage,estado);
		filtraBusca(filtro,pathPage,roteiro);
	}
	
	function filtraPelaUf(filtroUf,filtroTema,pathPage,tema,roteiro,destino) {
		
		//filtraBusca(filtro,pathPage,tema);
		filtraBuscaComposto(filtroUf,filtroTema,pathPage,destino);
		filtraBuscaComposto(filtroUf,filtroTema,pathPage,roteiro);
	}
	
	function filtraComuPelaUf(filtro,pathPage,roteiro) {
		
		filtraBusca(filtro,pathPage,roteiro);
	}

	function filtraPeloRoteiro(filtroRoteiro,filtroUf,pathPage,destino){
		
		enableformInput(destino);
		filtraBuscaComposto(filtroRoteiro,filtroUf,pathPage,destino);
	}
	
	function enableformInput(campo){
		document.getElementById(campo).disabled="";
	}
	
	function disableformInput(campo){
		document.getElementById(campo).disabled="disabled";
	}

	/**
	 * Funcao ajax para filtrar o drop down de busca	
	 */
	function filtraBuscaComposto(searchField1,searchField2,pathPage,id)
	{ 
		var xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
			alert ("Este browser não suporta HTTP Request");	
			return false;
		}

		var url=pathPage;
		url=url+"?searchField1="+searchField1
		url=url+"&searchField2="+searchField2
		url=url+"&id="+id

		document.getElementById(id).innerHTML= getTagBuscaAguarde(id); 
		
		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				document.getElementById(id).innerHTML=xmlHttp.responseText 
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	
	/**
	 * Funcao ajax para filtrar o drop down de busca	
	 */
	function filtraBusca(searchField,pathPage,id)
	{ 
		var xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
			alert ("Este browser não suporta HTTP Request");	
			return false;
		}

		var url=pathPage;
		url=url+"?searchField="+searchField
		url=url+"&id="+id

		document.getElementById(id).innerHTML= getTagBuscaAguarde(id); 
		
		xmlHttp.onreadystatechange= function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				document.getElementById(id).innerHTML=xmlHttp.responseText 
			}
		}

		xmlHttp.open("GET",url,true)
		xmlHttp.send(null)
	}
	
	/**
	 * Funcao que monta a tag select com o texto 'aguarde'.
	 * Usado para o form de busca geral e destinos.
	*/
	function getTagBuscaAguarde(id){
		
		var text;
		
		switch (id) {
		
		case "temaField":
		case "destinoField":
		case "roteiroField":
			text = '<select class="cbo_01"><option value="">aguarde</option></select>';
			break;
		case "estadoField":
			text = '<select class="cbo_02"><option value="">aguarde</option></select>';
			break;
		case "roteiroDestinoField":
			text = '<select class="cbo_03"><option value="">aguarde</option></select>';
			break;
		}
		
		return text;
	}
	/** FUNCOES UTILIZADAS NO FORM DE BUSCA DE DESTINOS - Fim*/
	