////////////////////////////////////////////////////// FUNZIONI AJAX //////////////////////////////////////////////////////

// Inizializzo l'oggetto
function iniXMLHTTP(){
	var request = false;
	if(window.XMLHttpRequest){
		request = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){
			request = new ActiveXObject("Msml2.XMLHTTP");
		}
	} else {
		var request = false;
	}
	return request;
}

// Preparo i dati nel caso di invio POST
function prepara_form(text){
  var stringa = "";
  var form = document.forms[text];
  var numeroElementi = form.elements.length;
  
  for(var i = 0; i < numeroElementi; i++){
	//Se non sono all'ultimo elemento
	if(i < numeroElementi-1){
     	// In base al tipo di campo passo il valore
		switch(form.elements[i].type) { 
		  case 'checkbox': 
			if	(form.elements[i].checked){
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
			} else {
				stringa += form.elements[i].name+"=0&";			
			}
		  break;
		  case 'radio':
			if	(form.elements[i].checked){
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
			}
		  break; 		  
		  default: 
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value)+"&";
		}
    }else{
		switch(form.elements[i].type) { 
		  case 'checkbox': 
			if	(form.elements[i].checked){
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
			} else {
				stringa += form.elements[i].name+"=0";	
			}
		  break;
		  case 'radio':
			if	(form.elements[i].checked){
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
			}
		  break; 		  
		  default: 
				stringa += form.elements[i].name+"="+encodeURIComponent(form.elements[i].value);
		}
    }  
  }
  return stringa;
}

// Chiamata ajax
function chiamaAjax(link, nodo, modo, form, conferma){

	if (conferma != null){
		if (!confirm(conferma)){
			return false;
		}	
	}

	var myRequest  = iniXMLHTTP();
	var casuale    = parseInt(Math.random()*99999999);

	if (modo=='GET'){
		var linkFinale = link+"&rand="+casuale;
		myRequest.open("GET",linkFinale,true);
		myRequest.onreadystatechange = rispostaAjax;
		myRequest.send(null);
	} else if (modo=='POST'){
		var dati = prepara_form(form)+"&rand="+casuale;
		myRequest.open("POST", link, true);
		myRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		myRequest.onreadystatechange = rispostaAjax;
		myRequest.send(dati);
	}

	function rispostaAjax(){ 
		if (myRequest.readyState==4 && myRequest.status==200){
			res = myRequest.responseText;
			if (res=='[++]'){
				window.location.reload();
			} else if (res=='[--]'){
				history.back();
			} else if (res=='[==]'){
				null;
			} else {
				document.getElementById(nodo).innerHTML = res;
			}
		} else {
			document.getElementById(nodo).innerHTML="<div align=\"center\"><img src=\"../images/loading.gif\" alt=\"... ... ...\" /></div>";
		}	
	}
return false;
}
////////////////////////////////////////////////////// FUNZIONI AJAX //////////////////////////////////////////////////////


// Funzione di aggiornamento connessione
// tempo dell'utente
function refresh(){
	document.write ('<iframe src="../include/refresh.php" width="0" height="0"></iframe>');
}


// Funzione controllo completezza
// campi di login
function submit_login (){

	// Inizializzo l'elenco dei campi
	campi = new Array ("form_username", "form_password");

	// Con un ciclo li controllo ed effettuo i vari focus
	for (i=0; i<campi.length; i++) { 
		nodo = document.getElementById(campi[i]);
		if (nodo.value==""){		
			nodo.focus();
			return false;		
		}
	}
}

// Funzione controllo completezza
// campi di registrazione
function registrazione (campivuoti, mailincorretta){
	var usr = document.getElementById('username').value;	
	var psw = document.getElementById('password').value;	
	var email = document.getElementById('email').value;	
	var res = document.getElementById('residenza').value;	
	var nom = document.getElementById('veronome').value;	
	var cap = document.getElementById('captcha').value;
	var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; 

	if (usr == '' ||  psw == '' || email == '' ||  res == '' ||  nom == '' ||  cap == ''){
		alert (campivuoti);
		return false;
	}
	if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
	   alert(mailincorretta);
	   document.form.email.value='';
	   document.form.email.focus();
	   return false;
	}
	chiamaAjax('../ajax/controlla_user.php?user='+usr, 'conferma_registrazione', 'GET');
}


// Funzione controllo completezza
// modifica profilo
function mod_prof (campivuoti, mailincorretta){
	var usr = document.getElementById('username').value;	
	var psw = document.getElementById('password').value;	
	var email = document.getElementById('email').value;	
	var res = document.getElementById('residenza').value;	
	var nom = document.getElementById('veronome').value;	
	var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; 

	if (usr == '' ||  psw == '' || email == '' ||  res == '' ||  nom == ''){
		alert (campivuoti);
		return false;
	}
	if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
	   alert(mailincorretta);
	   document.form.email.value='';
	   document.form.email.focus();
	   return false;
	}
}


// Funzione di controllo di accettazione regolamento
function dichiarazione (testo, link){
	dichiaro = document.getElementById('dichiaro');
	if (!dichiaro.checked){
		alert(testo);
		dichiaro.focus();
		return false;
	}
	if (link){
		document.location.href=link;
	}
}


// Funzione di controllo se l'immagine è una jpeg
// e se l'utente ha accettato il regolamento
// sull'upload delle foto
function controllo(num_box, testo1, testo2){
	for (x=1; x<=num_box; x++){
		nome = document.getElementById("foto_"+x);
		nomeFile = nome.value;
		if (nomeFile!=""){
			// isolo l'estensione
			extFile=nomeFile.substr(nomeFile.lastIndexOf(".")+1);
			// verifico che sia fra quelle permesse
			permesse="#jpg#JPEG#Jpeg#JPG#Jpg#";
			if (permesse.indexOf("#"+extFile+"#")==-1) {
				alert(testo1+x);
				nome.focus();
				return false;
			}
		}
	}
	return dichiarazione(testo2);
}


// Funzione di controllo upload foto
function upload(box, testo1, testo2, testo3){
	for (x=1; x<=box; x++){
		nome		= document.getElementById("titolo_"+x);
		categoria	= document.getElementById("cat_"+x);
		album		= document.getElementById("album_"+x);
		if (nome.value ==""){
			alert(testo1+" "+x);
			nome.focus();
			return false;
		}		
		if (categoria.value == "NN"){
			alert(testo2+" "+x);
			categoria.focus();
			return false;
		}
		if (album.value == "NN" && categoria.value != "XX"){
			alert(testo3+" "+x);
			album.focus();
			return false;
		}
	}
}


// Funzione di aggiunta emoticons
function emoticons(text) {
	nodo = document.getElementById('commento');
	nodo.value = nodo.value+' '+text;
	nodo.focus();
}


// Funzione di controllo se l'immagine è una jpeg generica
function controllo_generico(id_box, testo, tipo){
	nome = document.getElementById(id_box);
	nomeFile = nome.value;
	
	if (nomeFile=="" && tipo=='obb'){
		alert(testo);
		nome.focus();
		return false;
	}

	if (nomeFile!=""){	
		// isolo l'estensione
		extFile=nomeFile.substr(nomeFile.lastIndexOf(".")+1);
		// verifico che sia fra quelle permesse
		permesse="#jpg#JPEG#Jpeg#JPG#Jpg#";
		if (permesse.indexOf("#"+extFile+"#")==-1) {
			alert(testo);
			nome.focus();
			return false;
		}
	}
}


// Funzione dei messaggi istantanei
function istantaneo (mittente, messaggio, risposta){
	
	nuova_risposta = prompt(messaggio+'\n\n'+risposta, '');
	
	// Se c'è la risposta invio
	if (nuova_risposta){
		chiamaAjax('../ajax/messaggio_istantaneo.php?prov=risposta&dest='+mittente+'&risposta='+encodeURIComponent(nuova_risposta), '', 'GET');
	}
}


