// ...

// Memorizza l'URL base del sito
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);

// Richiama una pagina sul server e visualizza il suo output HTML all'interno di un DIV
// url = URL della pagina da richiamare
// outDivId = ID del DIV in cui inserire l'output tramite .innerHTML
function ajax_do(url, outDivId)
{
	// Completa l'URL se necessario
	if (url.substring(0, 4) != 'http')
		url = base_url + url;
	
	// Crea un oggetto XMLHttpRequest, cercando di farlo in modo compatibile con tutti i browser
	if (window.XMLHttpRequest)
	{ // Mozilla, Safari,...
		http = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{ // IE
		try
		{
			http = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				http = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	if (!http)
	{
		alert("Unable to create an XMLHTTP instance");
		return;
	}	
	/*
	if (window.XMLHttpRequest)
		var http = xmlhttp = new XMLHttpRequest();
	else
		var http = new ActiveXObject("microsoft.xmlhttp");
	*/
	
	// Invia una richiesta sincrona di tipo GET alla pagina specificata
	http.open("GET", url, false);
	http.send();
	
	// Estrae ed esegue a parte tutti gli script JavaScript (i browser non riescono a farlo usando innerHTML)
	html = http.responseText;
	while ((scriptStart = html.search("<script>")) != -1)
	{
		// Determina inizio e fine del codice JavaScript
		codeStart = scriptStart + 8;
		codeEnd = html.search("</script>");
		
		if (codeEnd != -1)
		{
			--codeEnd;
			
			// Esegue direttamente il codice individuato
			code = html.substring(codeStart, codeEnd);
			eval(code);
			
			// Rimuove lo script dall'HTML, per poter cercare ed elaborare il prossimo script
			html.replace("<script>" + code + "</script>", "");
			html = html.substring(0, scriptStart -1 ) + html.substring(codeEnd + 10);
		}
	}

	// Visualizza l'output restituito dalla pagina all'interno del DIV specificato, come HTML
	document.getElementById(outDivId).innerHTML = html;
}

// Richiama una pagina sul server aggiungendo all'URL tutti i parametri (nome e valore) contenuti in una data form; visualizza poi l'output HTML della pagina all'interno di un DIV
// url = URL della pagina da richiamare
// formId = ID della form da cui estrarre i valori di tutti i campi
// outDivId = ID del DIV in cui inserire l'output tramite .innerHTML
function ajax_submit(url, formId, outDivId)
{
	formElem = document.getElementById(formId);
	if (formElem)
	{
		if (url.search("?") == -1)
			url += "?";
		else
			url += "&";
		
		for (var k = 0; k < formElem.elements.length; ++k)
		{
			fldName = formElem.elements[k].name;
			fldValue = formElem.elements[k].value;
			fldType = formElem.elements[k].type;
			url += formElem.elements[k].name + "=" + formElem.elements[k].value;
		}
	}
	
	//alert(url);
	ajax_do(url);
}

