// JavaScript Document
/*
	*** When copying, keep this header. / Ao copiar, mantenha este cabeçalho.

	Desenvolvido por Blackball TI [ http://www.blackballti.com/ ]
	Autor: Ricardo Alberto Schütz [ ricardo@blackballti.com ]
*/

var ajax = null;

// Função copiada de http://www.unioeste.br/servicos/arqvirtual/arquivos/001-2007-DVCO.pdf (19 out 2010)
function ajaxInit() {
	var xmlhttp;
	try {
		xmlhttp = new XMLHttpRequest();
	} catch ( ee ) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch ( e ) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch ( E ) {
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

/*
	Função para buscar uma URL com AJAX.
	Para usar com GET:
		getAjaxUrl("busca.php?name=over&id=666", null, nomeDaFuncaoAExecutar);
		
	com POST:
		getAjaxUrl("busca.php", "name=over&id=666", nomeDaFuncaoAExecutar);
		
	function nomeDaFuncaoAExecutar(http) {
		alert(http.responseText);
	}
*/
function getAjaxUrl(url, params, runThis) {
	if (ajax == null)
		ajax = ajaxInit();
		
	// Se não tem variável params é porque os parametros estão na URL
	if (params == null)
		ajax.open("GET", url, true);
	else {
		ajax.open("POST", url, true);
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//		ajax.setRequestHeader("Content-length", params.length);
//		ajax.setRequestHeader("Connection", "close");
	}

	ajax.onreadystatechange = function() {
		if(ajax.readyState == 4) {
			if (ajax.status == 200) {
				try {
					var res = eval('(' + ajax.responseText + ')');
					if (typeof res.errorMsg != "undefined")	alert("Blackball - Erro: " + decodeParameterString(res.errorMsg));
				} catch (err) {}
				runThis(ajax);
			} else if (ajax.status != 0) alert("Blackball - Erro ao carregar página.\nCódigo do erro: " + ajax.status);
		}
	}
	
	if (params == null) ajax.send();
	else ajax.send(params);
}
