function envia_ajax(metodo, url, usaXml, dados, callback, componente){
    var httpRequest;
    //Mozilla, Safari, Opera, e outros navegadores sem ActiveX
    if(window.XMLHttpRequest){
        httpRequest = new XMLHttpRequest();
        if(usaXml && httpRequest.overrideMimeType){
            httpRequest.overrideMimeType('text/xml');
        }
    }
    
    //Internet Explorer
    else if (window.ActiveXObject){
        try{
            httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
        }catch(e){
            try{
                httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
            }catch(e){}
        }
    }
    
    if(!httpRequest){
        alert('Erro fatal ao criar objeto XMLHttpRequest');
        return false;
    }
    
    httpRequest.open(metodo, url, true);
    
    if(callback != null){
        httpRequest.onreadystatechange = function(){
            retorna_ajax(metodo, url, httpRequest, callback, componente);
        };
    }
    
    if(metodo == 'POST' && dados != null){
        httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    
    httpRequest.send(dados);   
    
}
function retorna_ajax(metodo, url, httpRequest, callback, componente){
    if(httpRequest.readyState == 1) {
        componente.innerHTML = "Carregando...";   
    }

    if(httpRequest.readyState == 4){
        if(httpRequest.status == 200){
            if(callback != null){
                callback(httpRequest);
            }
        }
        else{
            alert('Erro de AJAX: '+ httpRequest.status + '\n' + metodo + ': ' + url);
        }
    }
}
function envia_ajax_ramo(metodo, url, usaXml, dados, callback, compSetor,componente){
    var httpRequest;
    //Mozilla, Safari, Opera, e outros navegadores sem ActiveX
    if(window.XMLHttpRequest){
        httpRequest = new XMLHttpRequest();
        if(usaXml && httpRequest.overrideMimeType){
            httpRequest.overrideMimeType('text/xml');
        }
    }
    
    //Internet Explorer
    else if (window.ActiveXObject){
        try{
            httpRequest = new ActiveXObject('Msxml2.XMLHTTP');
        }catch(e){
            try{
                httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
            }catch(e){}
        }
    }
    
    if(!httpRequest){
        alert('Erro fatal ao criar objeto XMLHttpRequest');
        return false;
    }
    
    httpRequest.open(metodo, url, true);
    
    if(callback != null){
        httpRequest.onreadystatechange = function(){
            retorna_ajax_ramo(metodo, url, httpRequest, callback, compSetor ,componente);
        };
    }
    
    if(metodo == 'POST' && dados != null){
        httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    
    httpRequest.send(dados);   
    
}
function retorna_ajax_ramo(metodo, url, httpRequest, callback, compSetor, componente){
    if(httpRequest.readyState == 1) {
        componente.innerHTML = "Carregando...";   
    }

    if(httpRequest.readyState == 4){
        if(httpRequest.status == 200){
            if(callback != null){
                callback(httpRequest, compSetor);
            }
        }
        else{
            alert('Erro de AJAX: '+ httpRequest.status + '\n' + metodo + ': ' + url);
        }
    }
}
