/*
        Simple AJAX: conjunto de funções baseadas no código desse tutorial:
        
        http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html
        
        e de comentários postados também lá.
*/

//função que cria o objeto de resposta
function newRequest() 
{
    var ro;
    if(window.XMLHttpRequest) 
	{
        try 
		{
            ro = new XMLHttpRequest();
        }
		catch(e)
		{
            ro = false;
        }
    } 
    else if(window.ActiveXObject) 
	{
        try 
		{
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        }
		catch(e)
		{
            ro = false;
        }
    } 
    return ro;
}//newRequest

//manda ação pra mudar HTML
function callRPC(funct_name, funct_args, callback)
{
    queue[queue.length] = [funct_name, funct_args, callback];
    if((iqueue + 1) == queue.length)ajaxRun();
}//callRPC

function ajaxRun()
{
    http.open('GET', RPC + '?funct_name=' + queue[iqueue][0] + '&funct_args=' + queue[iqueue][1]);//manda ação pro PHP
    http.onreadystatechange = function()
    {
		if(http.readyState == 4)
	    {   	
	        var response = http.responseText;
	        //alert(response);
	        var update = new Object();
	        if(response.indexOf('|' != -1)) 
	        {
	            //update = response.split('|');
	            var pairs = response.split('|');
	            
	            for(var p in pairs)
	            {
	            	if(pairs[p].indexOf('=' != -1)) 
	            	{
		            	var pair = pairs[p].split('=');
		            	update[pair[0]] = pair[1];
	            	}//if =	            	
	            }//for p in pairs
	            
				ajaxUpdate(update);
	        }//if response ok
		    iqueue++;
		    if(iqueue < queue.length)setTimeout("ajaxRun()", 20);
	    }//if state == 4
    }//onreadystatechange    
    http.send(null)
}//ajaxRun

function ajaxUpdate(update)
{
	callback = queue[iqueue][2];
	callback(update);
}//ajaxProcess

//cria objeto de resposta
var http = newRequest();
var busy = false;
var queue = new Array();
var iqueue = 0;
var RPC = 'simpleAjaxHQ.php';