
function ConnectGetControl(){
	var e, i, pre, con;

	// Origens
	pre = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];

	//Controle Firefox
	try {
		if (typeof(XMLHttpRequest) != 'undefined'){
			con = new XMLHttpRequest();
			if (con) return con;
		}
	} catch(e) {}

	//Controle IE
	for (i = 0; i < pre.length; i++){
		try {
			con = new ActiveXObject(pre[i] + '.XMLHTTP');
			if (con) return con;
		} catch(e) {}
	}

	//Não deu
	return null;

}

function ConnectSendRequest(sUrl, sPost, pFunc){
	var bPost, cConnect;

	cConnect = ConnectGetControl();

	if (cConnect == null) return false;

	bPost = ((typeof(sPost) != 'undefined') ? (sPost != "") : false);

	cConnect.open(bPost ? 'POST' : 'GET', sUrl, true);

	if (bPost) cConnect.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

	cConnect.onreadystatechange = function(){
		var sMsg, lState, lRead, e;
		sMsg = ''; lState = 0; lRead = 0;
		try { lRead = cConnect.readyState; } catch(e) { return; }
		if (lRead != 4 /* AJAX_LOADED */) return;
		try { lState = cConnect.status; } catch(e) { return; }
		if (typeof(lState) == "undefined") return;
		try { sMsg = cConnect.responseText; } catch(e) { return; }
		try { if (typeof(pFunc) == 'function') pFunc(lState, sMsg); } catch(e) {}
	}

	cConnect.send(bPost ? sPost : null);

	return true;

}
