/*
*	NewAjax() - Crea, inizializza e rende un oggetto XMLHTTPRequest.
*/
function NewAjax()
{
	var xmlhttp = false;
	
	try
	{
		// Internet Explorer 6 e successivi.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(exception_1)
	{
		try
		{
			// Internet Explorer 5.5.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(exception_2)
		{
			xmlhttp = false;
		}
	}
	
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		// Altri browsers.
		xmlhttp = new XMLHttpRequest();
	}
	
	return xmlhttp;
}


/*
*	GetHtml() - Esegue le chiamate AJAX e inserisce il risultato in un oggetto contenitore.
*
*	PARAMETRI:
*	elementId - Id del contenitore da aggiornare.
*	url - URL di destinazione per le chiamate AJAX.
*	method - GET o POST.
*/
function GetHtml(elementId, url, method)
{
	var ajax = false;
	var elem = document.getElementById(elementId);

	ajax = NewAjax();
	ajax.open(method, url + (/\?/.test(url) ? "&" : "?") + "ms=" + new Date().getTime());
	ajax.onreadystatechange = function()
	{
		if(ajax.readyState == 4 && ajax.status == 200) 
		{
			txt = unescape(ajax.responseText);
			//txt = txt.replace (/\+/gi, " ");
			elem.innerHTML = txt;
		}
	}
	ajax.send(null);
}


/*
*	AjaxRequest() - Costruisce l'url per le chiamate AJAX.
*
*	PARAMETRI:
*	elementId - Id del contenitore da aggiornare.
*	path - Percorso del file di destinazione.
*	parameters - Parametri da aggiungere all'url.
*/
function AjaxRequest(elementId, path, parameters)
{
	var startingPath = "ajax.php";
	var url = startingPath + "?ajax_path=" + path + "&" + parameters;
	
	GetHtml(elementId, url, "GET");
}


/*
*	AjaxQuery() - 
*
*	PARAMETRI:
*	query - 
*/
function AjaxQuery(query)
{
	var ajax = false;

	ajax = NewAjax();
	ajax.open("POST", "query.php", false);

	ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("connection", "close");
	ajax.send("query=" + query);

	resultValue = unescape(ajax.responseText);

	if(resultValue != "")
	{
		resultFields = resultValue.split("|");
		for(i = 0; i < resultFields.length; i++)
		{
			field = resultFields[i].split(":");
			if(document.getElementById(field[0])) { document.getElementById(field[0]).value = field[1]; }
		}
	}
}

