function ajaxRequest(){

 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
}

function xmlhttpPostTest(strURL) {
//Inizializzo l'oggetto xmlHttpReq
alert ("qui");
}


//Funzione per la gestione asincrona AJAX
function xmlhttpPost(strURL,formId) {
//Inizializzo l'oggetto xmlHttpReq
var xmlHttpReq = false;
var self = this;
// qui valutiamo la tipologia di browser utilizzato per selezionare la tipologia di oggetto da creare.
// Se sono in un browser Mozilla/Safari, utilizzo l'oggetto XMLHttpRequest per lo scambio di dati tra browser e server.
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// Se sono in un Browser di Microsoft (IE), utilizzo Microsoft.XMLHTTP
//che rappresenta la classe di riferimento per questo browser
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
//Apro il canale di connessione per regolare il tipo di richiesta.
//Passo come parametri il tipo di richiesta, url e se è o meno un operazione asincrona (isAsync)
self.xmlHttpReq.open('POST', strURL, true);

//setto l'header dell'oggetto
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

/* Passo alla richiesta i valori del form in modo da generare l'output desiderato*/
if (formId ==0){
	self.xmlHttpReq.send(recuperaValore());
} else {
	self.xmlHttpReq.send(recuperaValore2(formId));	
}
/* Valuto lo stato della richiesta */
self.xmlHttpReq.onreadystatechange = function() {

/*Gli stati di una richiesta possono essere 5
* 0 - UNINITIALIZED
* 1 - LOADING
* 2 - LOADED
* 3 - INTERACTIVE
* 4 - COMPLETE*/

//Se lo stato è completo
if (self.xmlHttpReq.readyState == 4) {
/* Aggiorno la pagina con la risposta ritornata dalla precendete richiesta dal web server.Quando la richiesta è terminata il responso della richiesta è disponibie come responseText.*/

if (formId ==0){
	aggiornaPagina(self.xmlHttpReq.responseText);
} else {
	aggiornaPagina2(self.xmlHttpReq.responseText,formId);	
}
}
}

}
/*Questa funzione recupera i dati dal form.*/
function recuperaValore2(codiceForm) {
	
	var nomeForm = 'form_'+codiceForm;
	var nomeCommento = 'commento_'+codiceForm;
	var nomeImmagine = 'immaginePost_'+codiceForm;
	//document.getElementById(nomeImmagine).src="img/icone/globe.gif";
	//document.getElementById(nomeImmagine).alt = "Processing";
	document.getElementById(nomeImmagine).disabled="disabled";
	document.getElementById(nomeCommento).style.background = "#ECE9D8";
	var formwt = document.forms[nomeForm];
	var text = formwt.commento.value;
	var codice = formwt.codice.value;
	var param1 = formwt.param1.checked;
	var param2 = formwt.param2.value;
	var param3 = formwt.param3.value;
	var param4 = formwt.param4.value;
	
	var bitly_link = document.getElementById('bitly_link').value;
	
	valore = 'testo=' + text;
	valore2= 'codice=' + escape(codice);
	valore3= 'bitly_link=' + escape(bitly_link);
	valore4= 'param1=' + escape(param1);
	
	valore5= 'param2=' + escape(param2);
	valore6= 'param3=' + escape(param3);
	valore7= 'param4=' + escape(param4);
	return valore+'&'+valore2+'&'+valore3+'&'+valore4+'&'+valore5+'&'+valore6+'&'+valore7;
//	return valore+'&'+valore2+'&'+valore3;

}
function recuperaValore() {
	document.getElementById("testo").style.background = "#ECE9D8";
	document.getElementById("immaginePost").disabled="disabled";
//	document.getElementById("immaginePost").src="img/icone/globe.gif";
//	document.getElementById("immaginePost").alt = "Processing";
	var formwt = document.forms['formwt'];
	var text = formwt.testo.value;
	var codice = formwt.codice.value;
	var param1 = formwt.param1.checked;
	var param2 = formwt.param2.value;
	var param3 = formwt.param3.value;
	var param4 = formwt.param4.value;
	
//	var bitly_link = formwt.bitly_link.value;
	var bitly_link = document.getElementById('bitly_link').value;

	valore = 'testo=' + escape(text);
	valore2= 'codice=' + escape(codice);
	valore3= 'bitly_link=' + escape(bitly_link);
	valore4= 'param1=' + escape(param1);
	
	valore5= 'param2=' + escape(param2);
	valore6= 'param3=' + escape(param3);
	valore7= 'param4=' + escape(param4);
	return valore+'&'+valore2+'&'+valore3+'&'+valore4+'&'+valore5+'&'+valore6+'&'+valore7;
//	return valore+'&'+valore2+'&'+valore3;

}
/*Questa funzione viene richiamata dall'oggetto xmlHttpReq per l'aggiornamento asincrono dell'elemento risultato*/
function aggiornaPagina2(stringa,codiceForm){
	/* per debug si può utilizzare questo come param di ritorno*/
	var nomeForm = 'form_'+codiceForm;	
	var nomeImmagine = 'immaginePost_'+codiceForm;
	var nomeCommento = 'commento_'+codiceForm;
	var nomeMsg = 'msg_'+codiceForm;
	document.getElementById(nomeCommento).style.background = "#FFF";
	document.getElementById(nomeImmagine).disabled="";
	document.forms[nomeForm].commento.value = "";
	document.getElementById(nomeMsg).innerHTML = stringa;
	
}

function aggiornaPagina(stringa){
	/* per debug si può utilizzare questo come param di ritorno*/
	document.getElementById("msg").innerHTML= stringa;
	document.getElementById("testo").rows = '1';
	document.getElementById("testo").value = '';
	document.getElementById("testo").style.background = '#FFF';
	document.getElementById("immaginePost").disabled="";
}




//Funzione per la gestione asincrona AJAX
function xmlhttpTraduci(strURL) {

//Inizializzo l'oggetto xmlHttpReq
var xmlHttpReq = false;
var self = this;
// qui valutiamo la tipologia di browser utilizzato per selezionare la tipologia di oggetto da creare.
// Se sono in un browser Mozilla/Safari, utilizzo l'oggetto XMLHttpRequest per lo scambio di dati tra browser e server.
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// Se sono in un Browser di Microsoft (IE), utilizzo Microsoft.XMLHTTP
//che rappresenta la classe di riferimento per questo browser
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
//Apro il canale di connessione per regolare il tipo di richiesta.
//Passo come parametri il tipo di richiesta, url e se è o meno un operazione asincrona (isAsync)
//document.getElementById("descrizione").src="img/icone/globe.gif";
//document.getElementById("immaginePost").alt = "Processing";
self.xmlHttpReq.open('POST', strURL, true);

//setto l'header dell'oggetto
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

/* Passo alla richiesta i valori del form in modo da generare l'output desiderato*/

self.xmlHttpReq.send(recuperaOriginale());

/* Valuto lo stato della richiesta */
self.xmlHttpReq.onreadystatechange = function() {

/*Gli stati di una richiesta possono essere 5
* 0 - UNINITIALIZED
* 1 - LOADING
* 2 - LOADED
* 3 - INTERACTIVE
* 4 - COMPLETE*/

//Se lo stato è completo
if (self.xmlHttpReq.readyState == 4) {
/* Aggiorno la pagina con la risposta ritornata dalla precendete richiesta dal web server.Quando la richiesta è terminata il responso della richiesta è disponibie come responseText.*/

aggiornaTraduzione(self.xmlHttpReq.responseText);
}
}

}
/*Questa funzione recupera i dati dal form.*/
function recuperaOriginale() {
	
	var str="testo="+document.getElementById('descrizioneO').innerHTML;

	return str;

}

function aggiornaTraduzione(stringa){
/* per debug si può utilizzare questo come param di ritorno*/
document.getElementById("descrizioneO").innerHTML= stringa;
//document.getElementById("immaginePost").src="img/icone/submit.png";
//document.getElementById("testo").value = '';
}



