function get_element(id_elemento)
{
	var elemento
	if(document.getElementById)
		elemento = document.getElementById(id_elemento)
	else
		elemento = document.all[id_elemento]
	return elemento
}
	
function get_request()
{
	var
		request = null,
		browserUtente = navigator.userAgent.toUpperCase()
		
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
		request = new XMLHttpRequest()
	else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
		if(browserUtente.indexOf("MSIE 5") < 0)
			request = new ActiveXObject("Msxml2.XMLHTTP")
		else
			request = new ActiveXObject("Microsoft.XMLHTTP")
	}
	return request
}

var readyState = 
{
	INATTIVO:		0,
	INIZIALIZZATO:	1,
	RICHIESTA:		2,
	RISPOSTA:		3,
	COMPLETATO:		4
}

var statusText = new Array()
statusText[100] = "Continue"
statusText[101] = "Switching Protocols"
statusText[200] = "OK"
statusText[201] = "Created"
statusText[202] = "Accepted"
statusText[203] = "Non-Authoritative Information"
statusText[204] = "No Content"
statusText[205] = "Reset Content"
statusText[206] = "Partial Content"
statusText[300] = "Multiple Choices"
statusText[301] = "Moved Permanently"
statusText[302] = "Found"
statusText[303] = "See Other"
statusText[304] = "Not Modified"
statusText[305] = "Use Proxy"
statusText[306] = "(unused, but reserved)"
statusText[307] = "Temporary Redirect"
statusText[400] = "Bad Request"
statusText[401] = "Unauthorized"
statusText[402] = "Payment Required"
statusText[403] = "Forbidden"
statusText[404] = "Not Found"
statusText[405] = "Method Not Allowed"
statusText[406] = "Not Acceptable"
statusText[407] = "Proxy Authentication Required"
statusText[408] = "Request Timeout"
statusText[409] = "Conflict"
statusText[410] = "Gone"
statusText[411] = "Length Required"
statusText[412] = "Precondition Failed"
statusText[413] = "Request Entity Too Large"
statusText[414] = "Request-URI Too Long"
statusText[415] = "Unsupported Media Type"
statusText[416] = "Requested Range Not Satisfiable"
statusText[417] = "Expectation Failed"
statusText[500] = "Internal Server Error"
statusText[501] = "Not Implemented"
statusText[502] = "Bad Gateway"
statusText[503] = "Service Unavailable"
statusText[504] = "Gateway Timeout"
statusText[505] = "HTTP Version Not Supported"
statusText[509] = "Bandwidth Limit Exceeded"


function execJS(elementId)
{
var scripts = elementId.getElementsByTagName('script')
var code
for (var i = 0; i < scripts.length; i++)
	{
	code =	scripts[i].innerHTML ? scripts[i].innerHTML : 
		scripts[i].text ? scripts[i].text : 
		scripts[i].textContent
	try { eval(code) }
	catch(e) { alert(e) }
	}
}

function get_page(nomeFile,elementoID)
{
  var
    ajax = get_request(),
    elemento = get_element(elementoID),
    result = true,
    start_action_secs = new Date().getSeconds()
  
  if(ajax) 
  {
    result = false
    ajax.open('get', nomeFile, true)
    ajax.setRequestHeader("connection", "close")
    ajax.onreadystatechange = function()
    {
	if (ajax.readyState === readyState.COMPLETATO)
		{
		if (statusText[ajax.status] === "OK")
			{
			elemento.innerHTML = ajax.responseText
			execJS(elemento)
			}
		else
			{
			elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />"
			elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status]
			}
		} 
	else if ((new Date().getSeconds() - start_action_secs) > 2)
		elemento.innerHTML = '<div align="center">Attendere <img alt="loading" src="/utils/res/stop_and_go/loader.gif" border="0" align="middle"></div>'
    }
    ajax.send(null)
  }
   
  return result
} 


function post_page(nomeFile,elementoID)
{
  var
    ajax = get_request(),
    elemento = get_element(elementoID),
    result = true,
    start_action_secs = new Date().getSeconds()
 
  if(ajax) 
  {
    result = false
    loc = nomeFile.split("?")
    ajax.open('post', loc[0], true)
    ajax.onreadystatechange = function()
    {
	if (ajax.readyState === readyState.COMPLETATO)
		{
		if (statusText[ajax.status] === "OK")
			{
			elemento.innerHTML = ajax.responseText
			execJS(elemento)
			}
		else
			{
			elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />"
			elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status]
			}
		}
	else if ((new Date().getSeconds() - start_action_secs) > 2)
		elemento.innerHTML = '<div align="center">Attendere <img alt="loading" src="/utils/res/stop_and_go/loader.gif" border="0" align="middle"></div>'
    }
	ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded")
	ajax.setRequestHeader("connection", "close")
    ajax.send(loc[1])
  }
   
  return result
} 
