var ob_ajax = null;//Variavel Global - Definido como var pois no ajax variavel do tipo "this" ele se perde no retorno
function Ajax_Class() {
//-----------------------------------------
//Variaveis
this.tp_retorno = 'TEXT'; //Tratamento do Retorno do AJAX - TEXT | ALERT | PROC
this.tp_metodo = 'GET'; //metodo [GET | POST]
this.id_conteudo = ''; //id onde ser colocado o conteudo de retorno
this.id_loading = ''; //id para fazer o carregando
this.mg_alert = ''; //Mensagem de alerta apos processar a pagina
this.des_url = ''; // url para acessar a pagina
this.is_hitorico = false; // gravar historico das paginas
this.is_asc = true; //assincrono
this.is_loading = true; // mostrar o carregando
this.function_eval_return = '';
//-----------------------------------------
//Construtor
this.Create = function() {
//Cria o objeto AJAX
this.AJAX();
}
this.doAjaxReplace = function(responseTextAjax) {
responseTextAjax = unescape(responseTextAjax.replace(/\+/g," "));
return responseTextAjax;
}
//Abre URL via AJAX
this.getUrl = function() {
//-----------------------------------------
//Inicializacoes
if (this.id_loading == '') { this.id_loading = this.id_conteudo; }
if (this.is_hitorico) { }
if (this.is_loading) { doLoading(this.id_loading); }
var tp_retorno = this.tp_retorno;
var id_conteudo = this.id_conteudo;
var mg_alert = this.mg_alert;
var id_loading = this.id_loading;
var function_eval_return = this.function_eval_return;
//-----------------------------------------
//Inicia a busca pela pagina via ajax
ob_ajax.open(this.tp_metodo,this.des_url,this.is_asc);
if (this.tp_metodo == 'POST') { ob_ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); }
ob_ajax.onreadystatechange = function () {
if (ob_ajax.readyState == 4) {
if (ob_ajax.status == 200) {
doClearLoading(id_loading);
switch (tp_retorno) {
//Executa com loader internos
case 'TEXT':
js_retornaObj(''+id_conteudo+'').innerHTML = ob_ajax.responseText;
break;
case 'ALERT':
if (mg_alert != "")
alert(mg_alert);
break;
case 'PROC':
//Somente Executa a URL
eval(ob_ajax.responseText);
break;
}
if (function_eval_return != ''){
eval(function_eval_return);
}
}
}
}
ob_ajax.send(this.doUrlPost());
}
//-----------------------------------------
//URL via ajax post
this.doUrlPost = function() {
if (this.tp_metodo == 'GET') {
return null;
}
else {
return getUrlString();
}
}
//-----------------------------------------
//Cria objeto ajax
this.AJAX = function() {
if (window.XMLHttpRequest) { // Mozilla, Safari,...
ob_ajax = new XMLHttpRequest();
if (ob_ajax.overrideMimeType) {
ob_ajax.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE
try {
ob_ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
ob_ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
}
}
//Carregando
function doLoading(id) {
try {
//js_retornaObj(id).innerHTML = 'Carregando...';
js_retornaObj(''+id+'').innerHTML = '
Carregando
';
}
catch (e) {}
}
//Retira o Carregando
function doClearLoading (id) {
try {
js_retornaObj(id).innerHTML = '';
}
catch (e) {}
}