function ajax(arquivo,funcao){
	try{
		req = new XMLHttpRequest();
		req.overrideMimeType('text/xml');
	}
	catch(e){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e2){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e3){
				req = false;
			} 
		}
	}
	req.onreadystatechange = funcao;
	req.open('GET',arquivo,true);
	req.send(null);
	return(req);
}


function ajax2() {
	this.Updater=carregarDados;
	function carregarDados(caminhoRetorno,idResposta,metodo,mensagem) {
		if(idResposta!=''){
			var conteudo=document.getElementById(idResposta)
			conteudo.innerHTML= mensagem;
		}
		
		var xmlhttp = getXmlHttp();
		
		//Abre a url
		xmlhttp.open(metodo.toUpperCase(), caminhoRetorno,true);
		
		//Executada quando o navegador obtiver o código
		xmlhttp.onreadystatechange=function() {
		
			if (xmlhttp.readyState==4){
				//Lê o texto
				var texto=xmlhttp.responseText;
				
				//Desfaz o urlencode
				texto=texto.replace(/\+/g," ");
				texto=unescape(texto);
				
				//Exibe o texto no div conteúdo caso tenha
				if(idResposta!=''){
					var conteudo=document.getElementById(idResposta);
					conteudo.innerHTML=texto;
				}
			}
		}
		xmlhttp.send(null);
	}
}
/*//Modificado por: Adriano Gomes//Data: 21/07/2010//Motivo: Variavel que será utilizada para armazenar o retorno da busca, será utlizada com cache
*/
var arr_cache_retorno = new Array();
/*//Funcao utilizada para consulta de campo para sempre pegar a ultima consulta*/
function ajax3() {
    this.Updater=carregarDados;
    function carregarDados(caminhoRetorno,idResposta,metodo,mensagem, busca) {
                /*//verificando se existe a busca no cache */       
        for ( var key in arr_cache_retorno){
                    if(busca == key){                var conteudo_cache=document.getElementById(idResposta);                conteudo_cache.innerHTML=arr_cache_retorno[key];                return;            }        }                        if(idResposta!=''){
            var conteudo=document.getElementById(idResposta)
            conteudo.innerHTML= mensagem;
        }
        
        var xmlhttp = getXmlHttp();
        
        //Abre a url
        xmlhttp.open(metodo.toUpperCase(), caminhoRetorno,true);
        
        //Executada quando o navegador obtiver o código
        xmlhttp.onreadystatechange=function() {
        
            if (xmlhttp.readyState==4){                //Lê o texto
                var texto=xmlhttp.responseText;
                
                //Desfaz o urlencode
                texto=texto.replace(/\+/g," ");
                texto=unescape(texto);
                //Exibe o texto no div conteúdo caso tenha
                if(idResposta!=''){
                    if(texto.indexOf('informBusc_'+busca) > -1){
                        var conteudo=document.getElementById(idResposta);
                        conteudo.innerHTML=texto;                                                arr_cache_retorno[busca] = texto;
                    }
                }
            }
        }
        xmlhttp.send(null);
    }
}

function getXmlHttp() {
    var xmlhttp;
    try{
        xmlhttp = new XMLHttpRequest();
    }
    catch(ee){
        try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e){
            try{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(E){
                xmlhttp = false;
            }
        }
    }
    return xmlhttp;
}


//FUNCAO PARA PEGAR OS ELEMENTOS DO FORM
function elementos_form(idForm) {
    var elementosFormulario = document.getElementById(idForm).elements;
    var qtdElementos = elementosFormulario.length;
    var queryString = "";
    var elemento;
    
    //Cria uma funcao interna para concatenar os elementos do form
    this.ConcatenaElemento = function(nome,valor) {
    if (queryString.length>0) {
    queryString += "&";
    }
    queryString += encodeURIComponent(nome) + "=" + encodeURIComponent(valor);
    };
    
    //Loop para percorrer todos os elementos
    for (var i=0; i<qtdElementos; i++) {
        //Pega o elemento
        elemento = elementosFormulario[i];
        if (!elemento.disabled) {
        //Trabalha com o elemento caso ele nao esteja desabilitado
            switch(elemento.type) {
                //Realiza a acao dependendo do tipo de elemento
                case 'text': case 'password': case 'hidden': case 'textarea':
                    this.ConcatenaElemento(elemento.name,escape(elemento.value));
                    break;
                case 'select-one':
                    if (elemento.selectedIndex>=0) {
                        this.ConcatenaElemento(elemento.name,escape(elemento.options[elemento.selectedIndex].value));
                    }
                    break;
                case 'select-multiple':
                    for (var j=0; j<elemento.options.length; j++) {
                        if (elemento.options[j].selected) {
                            this.ConcatenaElemento(elemento.name,escape(elemento.options[j].value));
                        }
                    }
                    break;
                case 'checkbox': case 'radio':
                    if (elemento.checked) {
                        this.ConcatenaElemento(elemento.name,escape(elemento.value));
                    }
                    break;
            }
        }
    }
    return queryString;
}

//Variavel para serInterval uilizado em buscaSemAjax
var intervalBuscasemAjax="";
var idCampoBusca ="";
//Variavel para armazenar o falor anterior da consulta
var pesquisaAnterior ="";
//Busca em javascript, é necessario ter 3 variaveis sendo:
//var idQuantCampo => quantidade de retorno do campo
//var idTrcampo => id do tr onde iria dar display
//var idACampo => onde é feito o filtro sobre a palavra
//Variavel para armazenar o HTML caso não existir registro
var resultBuscaNullHtml = 'Nenhum registro encontrado...';


function buscaSemAjax(){
    //Campo para busca
    var searchName;
    //Campo com o numero de resultado
    var numberResult =0;
    
    if (idCampoBusca ==""){
        searchName = document.atrib.atr_prof_nome.value.toUpperCase();
    }else if(idCampoBusca =="texto_busca"){
        searchName = document.getElementById('texto_busca').value.toUpperCase();
    }else{
        searchName = idCampoBusca.value.toUpperCase();
    }
                                  
    //Verifica se o AJAX retorno os dados
    if (document.getElementById(idQuantCampo)){
        //Zera o serInterval
        intervalBuscasemAjax="";
        //quantidade de resultado da busca
        var quantCampo = document.getElementById(idQuantCampo).value;
        //variavel para armazenar o valor do td
        var valorCampo;
        
        
        //Verifica os nomes dos professores
        for(var i=1; i<=quantCampo; i++){
            valorCampo = document.getElementById(idACampo+i).innerHTML;
            //caso nao encontre o professor ele da display no tr
            if(valorCampo.indexOf(searchName)==-1 ){
                document.getElementById(idTrCampo+i).style.display = 'none';
            }else{
                document.getElementById(idTrCampo+i).style.display = '';
                numberResult ++;
            }
            
        }
        
        /**
        * Modificado: AGomes
        * Data: 02/07/2009
        * Motivo: Em caso da funcao nao mostrar nenhum resultado, indicar que nao tem registro
        */
        //Caso nao tiver o div com o resultado da busca iremos inserir um novo
        if (!document.getElementById('divResultBuscaNull') && document.getElementById('conteudo'))
        {
            var div = document.createElement("div");
            div.setAttribute("id", "divResultBuscaNull");
            div.setAttribute("name", "divResultBuscaNull");
            div.innerHTML = resultBuscaNullHtml;
            conteudo.appendChild(div);
        }
        if (numberResult != 0)
        {
            document.getElementById('divResultBuscaNull').style.display = 'none';
        }else{
            document.getElementById('divResultBuscaNull').style.display = '';
        }
        
        
        
        
    // caso o AJAX ainda nao retornou cria um setInveval para efetuar a busca assim que retorna
    }else if (intervalBuscasemAjax==''){
        intervalBuscasemAjax=setInterval(buscaSemAjax, 500);
    }
}
/*
//exemplo de chamada
var ajax = new AJAX();
ajax.Updater("../busca_professores.php?digito="+nome,"conteudo","get","carregando os dados...");
*/