// un po' di entropia agli url per evitare le caches
function addEntropy(){return('&entropy=' + Math.round( Math.random() * 10000 ));}

//******* Ajax creation *******
function startAjax()
{
	// creazione dell'oggetto
	var requester;
	try 
	{ 
		// standard way
		requester = new XMLHttpRequest(); 
	} 
	catch (error) 
	{
		try
		{ 
			// MS way 
			requester = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch (error) 
		{ 
			// no way
			return false;
		} 
	}
	
	return (requester);
}

//******* Ajax ritorni delle chiamate *******
// riceve i ritorni delle chiamate ajax e li sostituisce al 
// target indicato
function ajaxReceive(ajaxObj,target)
{
	// target
	var tg = document.getElementById(target);
		
	if (ajaxObj.readyState == 4) 
	{
		// controllo se lo stato è ok
		if (ajaxObj.status == 200)
		{
			// tutto a posto, la risposta è stata ricevuta
			tg.innerHTML = ajaxObj.responseText;
			// phinito
			ajaxObj.abort();
			return(1);
		}
		else
		{
			// ahio, qualcosa è andato storto
			tg.innerHTML = 'Fallita :(<br/>';
			tg.innerHTML+= 'Codice HTTP: ' + ajaxObj.status + ' - ' + ajaxObj.statusText + '<br/>';
			return(-1);
		}	
		
	}	
	else if (ajaxObj.readyState == 1)
	{
		tg.innerHTML = '<table><tr><td style="text-align:center;vertical-align:middle;"><img src="/board/templates/MagiBeyond/hacks/wait.gif"> waiting</td></tr></table>';
		return(0);
	}	

}

// riceve i ritorni ma elimina l'output
function ajaxDiscard(ajaxObj,target)
{	
	// handle solo della terminazione con successo
	if (ajaxObj.readyState == 4 && ajaxObj.status == 200)
	{
		// var tg = document.getElementById('adminToolbox');
		// tg.innerHTML += '<textarea>'+ajaxObj.responseText.replace('<','&lt;').replace('>','&gt;') +'</textarea>';
		// terminata ok, chiudo questa iterata ajax
		ajaxObj.abort();
		return(1);
	}
	else
	{
		// altrimenti lascio fare ad altri
		return(usrmgmt_ajax_receive(target));		
	}	
}