//funcao que constroi o objeto ajax de acordo com o tipo de navegador - uma "zona" devido a falta de padrao W3C
function getXmlHttpRequest(){
             if (window.XMLHttpRequest){
                return new XMLHttpRequest();
             }else if (window.ActiveXObject){
                try{ return new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){ try{ return new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){} }
             }
}

		
// A FUNCAO AJAX SO RETORNA TEXTO PURAO, NADA DE CONTEUDO DINAMICO COM ASP... 
// Essa função faz a requisicao da pagina que deseja e inseri o seu conteudo estátio na div desejada, enquanto esta
// na requisicao ele exibe uma imagem de carregamento
// 06092008 - Diego SIlva Pires - FONTE: http://nodesign.wordpress.com/2006/08/10/contruindo-uma-fila-de-requisicoes-em-ajax/
var fila=[];
var ifila=0;
var xmlhttp = new getXmlHttpRequest();

function requisicao(_strNomePagina,divId){
				      
							var data = new Date();
							_strNomePagina = _strNomePagina  + "&data="+ data.getMilliseconds();
							
							//alert(_strNomePagina)&"..."
							document.getElementById(divId).innerHTML="<div align=center style='margin:0px;padding:0px;'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src='https://ssl461.websiteseguro.com/dialogoeventos/uteis/imagens/loading.gif' />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>" 
							//Adiciona à fila
							fila[fila.length]=[divId,_strNomePagina]
							//Se não há conexões pendentes, executa
							if( (ifila+1) == fila.length)
							    ajaxRun()
}					

function ajaxRun(){
    //Abre a conexão
    xmlhttp.open("GET",fila[ifila][1],true);
    //Função para tratamento do retorno
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            //Mostra o HTML recebido
            retorno=unescape(xmlhttp.responseText.replace(/\+/g," "))
            document.getElementById(fila[ifila][0]).innerHTML=retorno
            //Roda o próximo
            ifila++
            if(ifila<fila.length)setTimeout("ajaxRun()",20)
        }
    }
    //Executa
    xmlhttp.send(null)
}		



function enviaForm(frmNome, url, destino){
        // Captura o form
        f = document.getElementById(frmNome);
        // inicializa nova URL
        var query=url;
        //Percorre elementos do formulario
        for (i=0;i<f.elements.length;i++){
                // se for a primeira variavel adiciona o "?" senao adiciona "&"
                query += i==0 ? '?' : '&';
                // concatena a variavel na query
                query += f.elements[i].name + '=' + f.elements[i].value;
        }
        // envia o formulario
        requisicao(query, destino);
}		
