/*
=========================================================
======================= A J A X =========================
=========================================================
*/
    // url_encode version 1.0  
    function url_encode(str) {  
        var hex_chars = "0123456789ABCDEF";  
        var noEncode = /^([a-zA-Z0-9\_\-\.])$/;  
        var n, strCode, hex1, hex2, strEncode = "";  

        for(n = 0; n < str.length; n++) {  
            if (noEncode.test(str.charAt(n))) {  
                strEncode += str.charAt(n);  
            } else {  
                strCode = str.charCodeAt(n);  
                hex1 = hex_chars.charAt(Math.floor(strCode / 16));  
                hex2 = hex_chars.charAt(strCode % 16);  
                strEncode += "%" + (hex1 + hex2);  
            }  
		
        }  
        return strEncode;  
    }  

    // url_decode version 1.0  
    function url_decode(str) {  
        var n, strCode, strDecode = "";  

        for (n = 0; n < str.length; n++) {  
            if (str.charAt(n) == "%") {  
                strCode = str.charAt(n + 1) + str.charAt(n + 2);  
                strDecode += String.fromCharCode(parseInt(strCode, 16));  
                n += 2;  
            } else {  
                strDecode += str.charAt(n);  
            }  
        }  

        return strDecode;  
    }  

function ajaxInit() {
	var req;
	try {
	 	req = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
	 	try {
	  		req = new ActiveXObject("Msxml2.XMLHTTP");
	 	} catch(ex) {
	  		try {
	   			req = new XMLHttpRequest();
	  		} catch(exc) {
	   			alert("Esse browser não tem recursos para uso do Ajax");
	   			req = null;
	  		}
	 	}
	}
	return req;
}

function DecHex(dec2) {  
    var hex_chars = "0123456789ABCDEF";  
    var n1 = hex_chars.charAt(Math.floor(dec2 / 16));  
    var n2 = hex_chars.charAt(dec2 % 16);  
    return n1 + n2;  
}  

function formSender(f, div_container) {  
//	alert('f é '+f+' e div_container é '+div_container);
    var acao = f.action;  
    var metodo = f.method.toLowerCase();  
    if(!acao) {  
//        alert("erro: o valor action do formulario nao foi definido");  
    }        
    var a_send = new Array();  
    var elementos = f.elements;        
//    alert('antes do for');
    for(var i = 0; i < elementos.length; i++) {  
        var e = elementos[i];  
        if(!e.name) {
//		    alert('continue');
            continue;
			}  
//        alert(e.name+" é "+e.value);
        var nVal = url_encode(e.value);  
//		alert(nVal);
		
        var tipo = e.type.toLowerCase();            
        if(tipo != "checkbox" && tipo != "radio") {  
//		    alert('aqui 1');
            a_send[a_send.length] = e.name + "=" + nVal;  
        } else {  
            if(e.checked) {  
//			    alert('aqui 2');
                a_send[a_send.length] = e.name + "=" + nVal;  
            }  
        }  
    }        
//   alert('saiu');
    a_send = a_send.join("&");        
//    alert(a_send); //apague essa linha, so coloquei ela para voce ver como fica a querystring  
      
    var ajax = ajaxInit();  
	var ajax_element = document.getElementById(div_container);
	ajax_element.innerHTML = "<span class='ajax_aguarde'>Aguarde...</span>";
    if(ajax) {  
        if(metodo == "post") {  
            ajax.open("POST", acao, true);  
            ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
        } else {  
            ajax.open("GET", acao + "?" + a_send, true);  
        }            
		ajax.onreadystatechange = function() { //funcao executada ao trocar de stado
			if(ajax.readyState == 4) { //verifica se o estado atual é "concluido"
				ajax_element.innerHTML = url_decode(ajax.responseText); //define o texto do span
			}
		}          
        if(metodo == "post") {  
            ajax.send(a_send);  
        } else {  
            ajax.send(null);  
        }  
    }  
}  

function preenche_ajax(div_container, arq_php, valores_get){
	var ajaxUC = ajaxInit(); //inicia a variavel ajax para uso e UserCount
	var ajax_element = document.getElementById(div_container);
	ajax_element.innerHTML = "<span class='ajax_aguarde'>Aguarde...</span>";
		//acao: 0=visualizar; 1=editar; 2=gravar; 3=cancelar
		//valores_get="a="+acao+"&i="+pes_id;
	ajaxUC.open("POST", arq_php, true);
	ajaxUC.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajaxUC.onreadystatechange = function() { //funcao executada ao trocar de stado
		if(ajaxUC.readyState == 4) { //verifica se o estado atual é "concluido"
			ajax_element.innerHTML = url_decode(ajaxUC.responseText); //define o texto do span
		}
	}
	ajaxUC.send(valores_get); //enviar dados para poder receber resposta

}

function ajax_insere_select(div_container, nome_campo, campo_id, campo_desc, tabela, where, order_by, valor, onChange){
	preenche_ajax(div_container,'ajax_insere_select.php', 'nome_campo='+nome_campo+'&campo_id='+campo_id+'&campo_desc='+campo_desc+'&tabela='+tabela+'&where='+where+'&order_by='+order_by+'&valor='+valor+'&onChange='+onChange);
}


//function ajax_update_and_show(div_container, tabela, campo_a_alterar, valor, where, show_campo, show_tabela, show_campo_id, show_valor){
	
function ajax_update_and_show(div_container, tabela,campo_a_alterar,valor,where,show_campo,show_tabela,show_campo_id,show_valor){	
	//alert('entrou no ajax_update_and_show, tabela é '+tabela+', campo é '+campo_a_alterar+', valor é '+valor+' e where é '+where);

//SEPARAR EM DUAS ROTINAS: UPDATE E SHOW.

	preenche_ajax(div_container,'ajax_update_and_show.php', 'tabela='+tabela+'&campo_a_alterar='+campo_a_alterar+'&valor='+valor+'&where='+where+'&show_campo='+show_campo+'&show_tabela='+show_tabela+'&show_campo_id='+show_campo_id+'&show_valor='+show_valor);
}


/*
======================= F I M   D O   A J A X =========================
*/

