
//--funzione che crea l'oggetto XMLhttpRequest... ajaxObj è il cuore delle funzioni AJAX
function createObject() {                
  var tipo_richiesta;
  var browser = navigator.appName;
  if(browser == "Microsoft Internet Explorer"){
    tipo_richiesta = new ActiveXObject("Microsoft.XMLHTTP");
   }else{
    tipo_richiesta = new XMLHttpRequest();
   }
return tipo_richiesta;
}//createObject
var ajaxObj = createObject();
/*-funzione: richiamata appena il server restituisce qualcosa-*/
function handleResponse(myConteiner) {
  var myObj           =  document.getElementById(myConteiner);
  if(ajaxObj.readyState == 4){                                   //--se c'è risposta   
    if ((ajaxObj.status == 200) || (ajaxObj.status == 0)) {         //--se risposta è OK (lo 0 è usato solo nel caso i test in locale)
        var response            = ajaxObj.responseText;
        myObj.innerHTML         = response;
    }//status
  } else {
    myObj.innerHTML = "Loading...";
  }
 }//handleResponse
 

/*-
dato l'id del form questa funzione ne ricava il contenuto
nome=pippo&cognome=paperino&eta=12
-*/
function getFormData(myForm) {
    var the_form     = document.getElementById(myForm);
    var num          = the_form.elements.length;
    var form_data    = "";
    for (i=0; i<num; i++){
        form_data = form_data+the_form.elements[i].name+"=";
        form_data = form_data+the_form.elements[i].value+"&";
        }//for
    return form_data;
}//getFormData





/*-invio dati al form-*/
function ajaxForm(myUrl, myConteiner, myForm) {
    ajaxObj.open('POST', myUrl, true);
    ajaxObj.onreadystatechange = function(){ handleResponse(myConteiner) }; //--leggo lo stato della richiesta
		ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajaxObj.send(getFormData(myForm));
  }//ajaxLink




 
/*-funzione cuore: kiamata al link-*/
function ajaxLink(myUrl, myConteiner) {
	//alert(myUrl, myConteiner);
    ajaxObj.open('get', myUrl, true);
    ajaxObj.onreadystatechange = function(){ handleResponse(myConteiner) }; //--leggo lo stato della richiesta
    ajaxObj.send(null);
  }//ajaxLink





/*-controlla i campi obbnligatori, passare l'id come array-*/
/*-
<input name="nome_en" id="nome_en"....
<div class='err' id='err_nome_en'>Campo obbligatirio...
-*/
function controllaCampiObbligatori(){
	var campiObblig = controllaCampiObbligatori.arguments;	//carico il num di parametri passato
	var idForm		= campiObblig[0];						//--il primo parametro passato è l'ID del form da conrollare

	var ok = true;
	for (i=1; i<campiObblig.length; i=i+2){
		document.getElementById('err_'+campiObblig[i]).style.display = "none";
		var tmp = document.getElementById(campiObblig[i]).value;
		//alert(campiObblig[i]);
		
		switch (campiObblig[i+1]){
			case '':	/*----controllo in caso di value VUOTO-----*/
						if (tmp==""){
						document.getElementById('err_'+campiObblig[i]).style.display = "block";
						ok = false;		
						}//if
						break; 
			case 'num': /*-----controllo che siano solo valori numerici o - o . o SPAZIO----*/
						var only_number = /^([0-9-. ])+$/; 
						if(!only_number.test(tmp)){
						document.getElementById('err_'+campiObblig[i]).style.display = "block";
						document.getElementById('err_'+campiObblig[i]).innerHTML = "Solo valori numerici";
						ok = false;
						}//checked
						break;
			case 'mail':/*-----controllo la validità nel campo mail----*/
						var goodEmail = tmp.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
						if (!goodEmail){
						document.getElementById('err_'+campiObblig[i]).style.display = "block";
						document.getElementById('err_'+campiObblig[i]).innerHTML = "Mail non valida";
						ok = false;
						}//goodEmail
						break; 
			case 'chk': /*-----controllo checkbox----*/
						if (!document.getElementById(campiObblig[i]).checked){
						document.getElementById('err_'+campiObblig[i]).style.display = "block";
						ok = false;
						}//checked
						break;
			}//switch
		}//for

	if (ok!=false){
		document.getElementById(idForm).submit();
		}//ok
 }//controllaCampiObbligatori
