// JavaScript Document
var oXmlHttp=null; //variabile globale che rappresenta l'ogetto Ajax XmlHTTPRequest creato

function CampoVuoto(campo,nome) 
	{ if (campo.value=="")
		{  
		  alert("Attenzione: il campo " +nome+" è obbligatorio");
		  campo.focus();
		  return true;   
		} 
	  return false;
	}
	
function ErrorString(campo,nomeCampo)
	{var st=campo.value;
	  for (var k=0;k<st.length;k++)
		if ((st.charAt(k)>="0") && (st.charAt(k)<="9"))
		{ alert("Attenzione: il campo" +nomeCampo+" non deve contenere caratteri numerici");
		  campo.focus();
		  return true;
		}  
	  return false;
	}  

 String.prototype.isMail = function(){     return this.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/); } 
  
  function CheckMail(campo){
  var st=campo.value;
  if (!st.isMail()) {
  alert("Attenzione: indirizzo E- mail non valido");
  campo.focus();
  return true;}
  else
  {
  return false;}
  }
  
  
// inserisce un commento tramite ajax
function checkInviaCommentoInfonline(sez,sotSez,detSotSez,doc,Lingua){
//alert(sez + "," + sotSez + "," + detSotSez + "," +doc + "," + Lingua)
var sNome = document.getElementById("txtNome").value;
var sEmail = document.getElementById("txtNome").value;
var sCommento = document.getElementById("txtCommento").value;
var sTags=document.getElementById("txtTag").value;
//alert(sTags);

 if(
		  (CampoVuoto(document.frmCommenti.txtNome,"Nome"))||
		  (ErrorString(document.frmCommenti.txtNome,"Nome")) ||
		  (CampoVuoto(document.frmCommenti.txtEmail,"E-mail")) ||
		  (CheckMail(document.frmCommenti.txtEmail)) ||
		  (CampoVuoto(document.frmCommenti.txtCommento,"Commento")) 

				
		 )
		 {return false;} 
		else
		 {
			//oForm rapresenta la form nella sua interezza (il contenitore e tutti i suoi elementi contenuti)
			var oForm = document.frmCommenti;
						
			//è una stringa data dalla concatenazione di tutte le coppie idOggetto=valoreOggetto concatenate tramite la lettera &			
			var sBody = getRequest(oForm);
			
			oXmlHttp = zXmlHttp.createRequest();
			
			usaLink = true;
			if(oXmlHttp) {
				usaLink = false;
				// apro la richiesta asincrona alla pagina asp in modalità post
			oXmlHttp.open("post", "/info/infoinclude/insertCommento_Infonline.asp?sez=" + sez + "&sotSez="+sotSez + "&detSotSez=" + detSotSez + "&doc=" +doc + "&Lingua=" + Lingua, true);
			
			// indico che il contenuto della richiesta è relativo a una form
				oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				
				oXmlHttp.onreadystatechange = function() {
				
				  if (oXmlHttp.readyState == 4) { //completata
					if (oXmlHttp.status==200){ // HTTP response --> OK
						$('response').style.display='block';
						//avvertire l'utente che il commento è stato inserito....
						$('response').innerHTML="<strong>Commento Inserito!</strong>";
						
						$('scriviCommenti').hide();
						x=0; //metto a 0 il contatore in modo tale che con il prossimo click
						//apro il box dei commenti	
						}
					}
				};
			   
			   //bisogna codificare tutte le coppie nome-valore come un URL come si vede nella funzione getRequest
				oXmlHttp.send(sBody);
				
				//alert (sBody);
			  }
		}//else
		
	return usaLink;
}
//checkInvia

//get Request

function getRequest(form) {

// funzione che accetta in ingresso l'oggetto form e restituisce in uscita una stringa formattata come una serie di coppie id-oggetto=valoreOggetto concatentate con la &

// mi creo un nuovo array vuoto
	var params = new Array();
// faccio il ciclo su tutti gli elementi della form; form.elements.length rappresenta il numero degli elementi della form (compresi i pulsanti) 
	for (var i = 0; i < form.elements.length; i++) {
/* la variabile param è una stringa.
form.elements[i].id è l'id dell'i-esimo elemento
encodeURIComponent è una funzione javascript che permette di decodificare caratteri non alfabetici come spazi bianc????·?hi, virgolette, apostrofi, ecc.
*/	
		var param = encodeURIComponent(form.elements[i].id) + '='
			+ encodeURIComponent(form.elements[i].value)
// la funzione push permette di inserire un valore (param) in un array (params)		
		params.push(param)
	}
// la funzione join permette di trasformare un array in una stringa, concatenando gli elementi dell'array con un carattere particolare (&), ci vuole & perché è previsto dalla sintassi (post) della richiesta asincrona relativa al componente XMLHttp
	//alert(params.join('&'));
// retur significa che la funzione restituisce la stringa di cui sopra; tale stringa viene passata all'intero della richiesta oXMLHttp.send(sBody)
	return params.join('&')
}

// fine get Request


