function ajaxPower(paramSend, posAct, idDest, postCont)
{
	//Essa classe esta habilitada a tratar requisicoes GET e POST, sejam unicas ou multiplas.
	
	//criamos uma string num鲩ca rand�mica para concatenar com o nome de request
	var nomeVar = String(Math.random()).substring(2);
	
	//criamos uma request com uma variavel variavel
	eval('REQ'+nomeVar+' = (window.XMLHttpRequest) ? new XMLHttpRequest() : (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false ;');
	
	//aqui tomamos a decisao pelo tipo de cabe硬ho se GET ou POST
	if(postCont != '')
	{
		eval('REQ'+nomeVar).open("POST",paramSend,true);
		eval('REQ'+nomeVar).setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		eval('REQ'+nomeVar).setRequestHeader("Content-length", postCont.length);
		eval('REQ'+nomeVar).setRequestHeader("Connection", "close");	
	}else{
		eval('REQ'+nomeVar).open("GET",paramSend,true);
	}
	
	//requisicao ajax normal
	eval('REQ'+nomeVar).onreadystatechange=function()  
	{ 
		if (eval('REQ'+nomeVar).readyState==4)  
		{ 
			switch(parseInt(posAct))
			{
				case 1:
					var partes = (eval('REQ'+nomeVar).responseText).split('|');
					if(parseInt(partes[0]))
					{
						document.getElementById(idDest).innerHTML = partes[2];
						document.getElementById('frmLogin').innerHTML = '<p>Usu&aacute;rio logado: <span style="color:#990000; font-weight:bold;">'+partes[1]+'</span></p><p><a href="javascript:location=\'index.php\'">sair</a></p>';
					}else{
						document.getElementById('msgCheckErrors').innerHTML = '<p style="color:#990000; font-weight:bold;">'+partes[1]+'</p>';						
					}
				break;
				
				case 2://insercao de dados
					var packData =  (eval('REQ'+nomeVar).responseText).split('|');
					if(parseInt(packData[0]))
					{
						actForm = document.getElementById(idDest).action;
						//alert(actForm);
						if(actForm != '')//ativa o delay de envio se tiver action, para nao ativar usar action vazio ou nao colocar o atributo
						{
							window.setTimeout(function() { document.location.href = actForm;}, 2000);
						}
					}
					document.getElementById('msgEnvio').innerHTML = packData[1];
				break;				
				
				case 3://insercao de dados
					//alert(1)
					var packData =  (eval('REQ'+nomeVar).responseText).split('|');
					document.getElementById('resfrmAcesso').innerHTML = packData[1];//resfrmAcesso
				break;
				
				case 4://insercao de dados
					//alert(1)
					var packData =  (eval('REQ'+nomeVar).responseText).split('|');
					document.getElementById('frmNews').innerHTML = packData[1];
				break;
				
				case 5://insercao de dados
					var packData =  (eval('REQ'+nomeVar).responseText).split('|');
					document.getElementById(idDest).innerHTML = packData[2];
				break;

				case 6://calculo de rendimentos
					var packData =  (eval('REQ'+nomeVar).responseText).split('|');
					document.getElementById(idDest).innerHTML = packData[1];
				break;

				default:	
					document.getElementById(idDest).innerHTML = (eval('REQ'+nomeVar).responseText);
				break;	
			}
		} 
	} 
	
	//Tratamos o send de GET ou POST
	if(postCont != '')
	{	
		eval('REQ'+nomeVar).send(postCont);
	}else{
		eval('REQ'+nomeVar).send(null); 		
	}
}