// funzione per assegnare l'oggetto XMLHttpRequest
// compatibile con i browsers pił recenti e diffusi
function getXMLHttpRequest() 
{

	 // lista delle variabili locali
	 var pXMLHttpRequest = null;
	 
	if (window.XMLHttpRequest) 
	{
	
		pXMLHttpRequest = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) 
	{	
		pXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");				
	}

	 return pXMLHttpRequest;
}

function getElement_ById(id_elemento) 
{
//alert(id_elemento);
	 var elemento;
	 if(document.getElementById)
	 {
	  	elemento = document.getElementById(id_elemento);
	 }
	 else
	 {
	  	elemento = document.all[id_elemento];
	 }
 return elemento;
}

var READY_STATE = ({COMPLETATO: 4});

var  STATUS = ({200: 'OK'});


function callAction(sAction, sQueryString, sMethod, sIdElementToFill)
{

	    var pXMLHttpRequest = getXMLHttpRequest();
		var pElement = getElement_ById(sIdElementToFill);						
		var bAjaxEnabled = false;
		var sCallMethod = 'post';
						
		if (sMethod == 'get')
		{
			sCallMethod = 'get';
		}
		else
		{
			sCallMethod = 'post';
		}
		
		if (pXMLHttpRequest)
		{
			bAjaxEnabled = true;
		}
		else
		{
			bAjaxEnabled = false;
		}
		
		
		//Si pu usare ajax 
		if (bAjaxEnabled)
		{			
			
			if (sCallMethod == 'get')
			{
				pXMLHttpRequest.open(sCallMethod,sAction+'?'+sQueryString,true);
				pXMLHttpRequest.setRequestHeader("connection","close");
				pXMLHttpRequest.send(null);
				pXMLHttpRequest.onreadystatechange =    function  ()
														{
															manageResponse(pXMLHttpRequest, pElement);
														}
				
			}
			else
			{
				pXMLHttpRequest.open(sCallMethod,sAction,true);
				pXMLHttpRequest.setRequestHeader("connection","close");
				pXMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				pXMLHttpRequest.setRequestHeader("Content-length", sQueryString.length);
				pXMLHttpRequest.send(sQueryString);
				pXMLHttpRequest.onreadystatechange = 	function  ()
														{
															manageResponse(pXMLHttpRequest, pElement);
														}
			}			
		}	
}

function manageResponse(pXMLHttpRequest, pElement)
{
	if(pXMLHttpRequest.readyState  == READY_STATE.COMPLETATO) 
	{          		
		if (pXMLHttpRequest.status == 200) 
			{

				pElement.innerHTML= pXMLHttpRequest.responseText;
				document.body.style.cursor = 'default';
				//alert('pointer');
			}
		
	}
}
