/*
        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 = '/skin-cream/simpleAjaxHQ.php';

