/* ----------------------------- utilità ajax */

var xmlHttp = getXmlHttpObject();

function getXmlHttpObject()
{
  var xmlHttp=null;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}


/* ----------------------------- invio mail */

function sendPosta(formName){
	// creo l'array dei campi
		campi = new Array();
	// creo la stringa che passerà i campi a PHP
		stringaGet = "?nomeForm="+formName;
		
	//DEFINISCO I CAMPI PRESENTI NEI DIVERSI FORM
	if (formName=="moduloPosta") {
		campi [0]="nome";
		campi [1]="email";
		campi [2]="telefono";
		campi [3]="messaggio";
		campi [4]="privacy";
		
	} else if (formName=="moduloCommenti") {
		campi [0]="nome";
		campi [1]="cognome";
		campi [2]="privacy";	
	}
	
	// aggiungo i campi definiti alla stringa che passa i dati a php
	for (i=0; i<campi.length; i++) { 
		qualeCampo = campi[i];
		valoreCampo = document.forms[formName][qualeCampo].value;
		stringaGet += "&"+qualeCampo+"="+valoreCampo;
	}

	//faccio fare il controllo dei campi alla funzione checkmodulo
	if (checkModulo(formName)) {	
	//adess el mandi tutt in ajax alla php che manda la mail
		xmlHttp.open('GET', 'send.php'+stringaGet, true);
		xmlHttp.onreadystatechange = stateChangedMail;
		xmlHttp.send(null);
	}

}


function stateChangedMail() {
	if(xmlHttp.readyState == 4) {
		//Stato OK
		if (xmlHttp.status == 200) {
			var resp = xmlHttp.responseText;
			
			if(resp) {
				var testo ="La tua richiesta &egrave; stata inviata!<br/><br/> Grazie.";
				document.getElementById('moduloAjax').innerHTML = testo;
			}
		} else {
			alert(xmlHttp.responseText);
		}
	}
}




/* ----------------------------- controllo moduli form */

function checkModulo(formName) {
	
	// creo l'array dei campi obbligatori
	obbliga = new Array();
	var campi = '';
	var reg = /\'/g;
	var text = 'e\' necessario compilare i seguenti campi:';


	//DEFINISCO I CAMPI OBBLIGATORI PER OGNI FORM
	if (formName=="moduloPosta") {
		obbliga [0]="nome";
		obbliga [1]="email";
		obbliga [2]="messaggio";
		obbliga [3]="privacy";
		
	} else if (formName=="moduloCommenti") {
		obbliga [0]="nome";
		obbliga [1]="cognome";
		obbliga [2]="privacy";
	}
	
	// per ogni obbligatorio indicato
	for (i=0; i<obbliga.length; i++) {
		qualeCampo = obbliga[i];
		//definisco il valore
		valoreCampo = document.forms[formName][qualeCampo].value;
		// se è vuoto
		if (valoreCampo=='') {
			//aggiungo una indicazione all'alert
			campi += qualeCampo + '\n'
			// coloro il campo di rosso
			document.forms[formName][qualeCampo].style.borderColor = "#990000";
		//altrimenti se il campo è pieno
		} else {
			// tolgo gli apici
			valoreCampo = valoreCampo.replace(reg,"`");
			//coloro i campi di grigio
			document.forms[formName][qualeCampo].style.borderColor = "#323238";
			// se è una mail controllo sia nella forma giusta
			if (qualeCampo=='email') {
				Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
				if (!Filtro.test(valoreCampo)){
					campi += 'email non corretta' + '\n';
					// coloro il campo di rosso
					document.forms[formName][qualeCampo].style.borderColor = "#990000";
				}	
				
			};
		}
	}
	

	if (document.forms[formName].privacy.checked != true ) { 
	campi = campi + 'privacy' + '\n';
	} 
	

if (campi == '')
{
	return true;
} else { 
window.alert(text + '\n\n' + campi );
}  

}

