function BuscaElementosForm(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,elemento.value);
                    break;
                case 'select-one':
                    if (elemento.selectedIndex>=0) {
                        this.ConcatenaElemento(elemento.name,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,elemento.options[j].value);
                        }
                    }
                    break;
                case 'checkbox': case 'radio':
                    if (elemento.checked) {
                        this.ConcatenaElemento(elemento.name,elemento.value);
                    }
                    break;
            }
        }
    }
    return queryString;
}

function antiCacheRand(aurl){
    var dt = new Date();
    if(aurl.indexOf("?")>=0){// já tem parametros
        return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
    }else {
       return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());
    }
}


function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
function CarregaAgenda(vlinkag){
    var exibeResultado = document.getElementById("sitagendar"); // div que exibirá o resultado. 
    var http = createRequestObject();
    var arr;
    vlinkag = antiCacheRand(vlinkag);
   
    http.open('get', vlinkag); 
    http.onreadystatechange = function()
    {
        if(http.readyState == 4){
           if(http.status == 200)
           {
                var response = http.responseText; //resultado formatado
                response = response.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4) 
                response = unescape(response); // Resolve o problema dos acentos 
                arr=window.eval(response); //a funcao eval transforma em uma matriz
                for (var p = 0; p < arr.length; p++ ) {
                    //posicao arr[p][0] eh o nome do campo
                    //posicao arr[p][1] eh o valor do campo
                    document.getElementById(arr[p][0]).value = arr[p][1]; //localiza o campo do formulario pelo seu ID e coloca o valor
                }
                exibeResultado.innerHTML = "OK..";  
           }  
           else{   
               exibeResultado.innerHTML = "Erro..."; 
           }                 
        }
    }
    http.send(null);
}
function openAjax() { 
    var Ajax; 
    try {Ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers mais populares, como: Firefox, Safari, dentre outros. 
    }catch(ee) { 
    try {Ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS 
    }catch(e) { 
    try {Ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS 
    }catch(e) {Ajax = false; 
    } 
    } 
    } 
    return Ajax; 
} 
function GravaAjax(id,pagina,formular){
      var elementosForm = null;


    if(document.getElementById) { // Para os browsers complacentes com o DOM W3C. 
        var exibeResultado = document.getElementById(id); // div que exibirá o resultado. 
        elementosForm = BuscaElementosForm(formular);
        pagina = pagina + "&" + elementosForm;
        pagina = antiCacheRand(pagina)

        //alert(pagina);
        var Ajax = openAjax(); // Inicia o Ajax. 
        Ajax.open("GET", pagina, true); // fazendo a requisição 
        Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        Ajax.onreadystatechange = function() 
        { 
            if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando... 
               exibeResultado.innerHTML = "Gravando..."; 
            } 
            if(Ajax.readyState == 4) { // Quando estiver tudo pronto. 
                if(Ajax.status == 200) { 
                    var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável 
                    resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4) 
                    resultado = unescape(resultado); // Resolve o problema dos acentos 
                    exibeResultado.innerHTML = resultado; 
                } else { 
                       exibeResultado.innerHTML = "Erro: ."; 
                } 
            } 
        } 
        Ajax.send(formular); // submete 
    } 
}
function carregaAjax(id,pesajax) { 
    if(document.getElementById) { // Para os browsers complacentes com o DOM W3C. 
        var exibeResultado = document.getElementById(id); // div que exibirá o resultado. 
        var Ajax = openAjax(); // Inicia o Ajax. 
        pesajax = antiCacheRand(pesajax);
        Ajax.open("GET", pesajax, true); // fazendo a requisição 
        Ajax.onreadystatechange = function() 
        { 
            if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando... 
               if(exibeResultado.type=="text"||exibeResultado.type=="hidden"){
                 exibeResultado.value="Carregando...";
               }
               else{
                 exibeResultado.innerHTML = "Carregando"; 
               } 
            } 
            if(Ajax.readyState == 4) { // Quando estiver tudo pronto. 
                if(Ajax.status == 200) { 
                    var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável 
                    resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4) 
                    resultado = unescape(resultado); // Resolve o problema dos acentos 
                    if(exibeResultado.type=="text"||exibeResultado.type=="hidden"){
                       exibeResultado.value = resultado; 
                    }
                    else{   
                       exibeResultado.innerHTML = resultado; 
                    }   
                } else { 
                    if(exibeResultado.type=="text"||exibeResultado.type=="hidden"){
                       exibeResultado.value = "Erro: ."; 
                    }
                    else{   
                       exibeResultado.innerHTML = "Erro: ."; 
                    }   
                } 
            } 
        } 
        Ajax.send(null); // submete 
    } 
} 
function carregaAjaxMsg(id,pesajax) { 
    if(document.getElementById) { // Para os browsers complacentes com o DOM W3C. 
        var vmsgt = document.getElementById('Mensagens');
        vmsgt.innerHTML="";
        var vmsg = document.getElementById('MensagensServidor');   
        vmsg.style.display='block';
    
        var exibeResultado = document.getElementById(id); // div que exibirá o resultado. 
        var Ajax = openAjax(); // Inicia o Ajax. 
        pesajax = antiCacheRand(pesajax);
        Ajax.open("GET", pesajax, true); // fazendo a requisição 
        Ajax.onreadystatechange = function() 
        { 
            if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando... 
               if(exibeResultado.type=="text"){
                 exibeResultado.value="Carregando...";
               }
               else{
                 exibeResultado.innerHTML = "Carregando"; 
               } 
            } 
            if(Ajax.readyState == 4) { // Quando estiver tudo pronto. 
                if(Ajax.status == 200) { 
                    var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável 
                    resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4) 
                    resultado = unescape(resultado); // Resolve o problema dos acentos 
                    if(exibeResultado.type=="text"){
                       exibeResultado.value = resultado; 
                    }
                    else{   
                       exibeResultado.innerHTML = resultado; 
                    }   
                    vmsg.style.display='none';
                    vmsgt.innerHTML="";
                } else { 
                    if(exibeResultado.type=="text"){
                       exibeResultado.value = "Erro: ."; 
                    }
                    else{   
                       exibeResultado.innerHTML = "Erro: ."; 
                    }   
                    vmsgt.innerHTML=pesajax;
                } 
            } 
        } 
        Ajax.send(null); // submete 
    } 
}  