/* ----------------------------- 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 sendVars(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=="form") {
		campi [0]="nome";
		campi [1]="cognome";
		campi [2]="datanascita";
		campi [3]="citta";
		campi [4]="azienda";
		campi [5]="professione";
		campi [6]="email";
		campi [7]="accettazione";
	} 
	
		
	// 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', 'grazie.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) {
				document.getElementById('iscrizioneform').style.display = "none";	
				document.getElementById('iscrizioneok').style.display = "block";				
			}
		} 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=="form") {		
		obbliga [0]="nome";
		obbliga [1]="cognome";
		obbliga [2]="professione";
		obbliga [3]="email";
		obbliga [4]="accettazione";
	}
	
	// per ogni obbligatorio indicato
	for (i=0; i<obbliga.length; i++) {
		qualeCampo = obbliga[i];
		var alertbox = qualeCampo + 'alert';
		//definisco il valore
		valoreCampo = document.forms[formName][qualeCampo].value;
		// se è vuoto
		if (valoreCampo=='') {
			//aggiungo una indicazione all'alert
			campi += qualeCampo + '\n';
			//alert(qualeCampo);
			// coloro il campo di rosso			
			//alert(alertbox);			
			document.getElementById(alertbox).style.display = "inline";
			document.forms[formName][qualeCampo].style.borderColor = "red";
		//altrimenti se il campo è pieno
		} else {
			// tolgo gli apici
			valoreCampo = valoreCampo.replace(reg,"`");
			//coloro i campi di grigio
			document.getElementById(alertbox).style.display = "none";
			document.forms[formName][qualeCampo].style.borderColor = "#666666";
			// 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.getElementById('emailalert').style.display = "inline";
					document.forms[formName][qualeCampo].style.borderColor = "red";
				}	
			}
		}
	}
	

	if (document.forms[formName].accettazione.checked != true ) { 
	campi = campi + 'accettazione' + '\n';
	document.getElementById('accettazionealert').style.display = "block";
}  else {	
	document.getElementById('accettazionealert').style.display = "none";
}
	

if (campi == '')
{
	return true;
} else { 
//window.alert(text + '\n\n' + campi );

}  

}



/* ----------------------------- gestione tendine GEOREFERENZIAZIONE */

function loadNazione(id) {
	//se è l'ID dell'Italia allora carica le regioni
	if(id=="244") {
		loadList('regioni', '0');
		document.getElementById('datiItalia').style.display = "block";
		}
	}


function loadList(tb, id){
xmlHttp.open('GET', 'visit_info_query.php?table='+tb+'&id='+id, true);
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.send(null);
}
function addOption(select, value, text) {
	//Aggiunge un elemento <option> ad una lista <select>
	var option = document.createElement("option");
	option.value = value,
	option.text = text;
	try {
		select.add(option, null);
	} catch(e) {
		//Per Internet Explorer
		select.add(option);
	}
}
function getSelected(select) {
	//Ritorna il valore dell'elemento <option> selezionato in una lista
	return select.options[select.selectedIndex].value;
}


function stateChanged() {
	if(xmlHttp.readyState == 4) {
		//Stato OK
		if (xmlHttp.status == 200) {
			var resp = xmlHttp.responseText;
			
			if(resp) {
				//Le coppie di valori nella striga di risposta sono separate da ;
				var values = resp.split(';');
				//Il primo elemento è l'ID della lista.
				var listId = values.shift();
				var select = document.getElementById(listId);
				//Elimina i valori precedenti
				while (select.options.length) {
					select.remove(0);
				} 
				if(listId == 'nazioni') {
					addOption (select, 0, '-- Selezionare nazione --');
				}
				if(listId == 'regioni') {
					addOption (select, 0, '-- Selezionare regione --');
				}
				var limit = values.length;
				
				for(i=0; i < limit; i++) {
					var pair = values[i].split('|');
					//aggiunge un elemento <option>
					addOption(select, pair[0], pair[1]);
				}
			}
		} else {
			//alert(xmlHttp.responseText);
		}
	}
}


