// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere


//--------------------------Link
//------------------------------Riceve la classe e il valore 'input' da inviare al ponte via get, mostra attesa e poi ricarica il div contenuto-dinamico
//--------------------------LinkDato
//------------------------------Riceve la classe,il valore 'input' e il valore dato da inviare al ponte via get, mostra attesa e poi ricarica il div contenuto dinamico
//------------------------------il dato è formattato in maniera tale da passare anche più valori via get esempio: dato = '&dato1=valore1&dato2=valore2' 
//--------------------------LinkDatoParziale
//------------------------------Riceve la classe, il nome del div su cui caricare i contenuti, il valore input e il dato, dato formattato come scritto prima
//------------------------------Questa server per ricaricare div all'interno del div principale contenuto-dinamico, questo non viene ricaricato

function Link(classPHP,valore) {  

	//MOSTRA MESSAGGIO DI ATTESA
	mostraAttesa();
	
  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId("contenuto-dinamico"),
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", '../pages/ponte.php?classe='+ classPHP +'&input='+valore, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");


    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK"){

          // operazione avvenuta con successo
          elemento.innerHTML = ajax.responseText;
		  
		  }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
	



  }
   
  return usaLink;
} 


// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
//il valore dato vieni passato via get e va scritto &dato1=valore1&dato2=valore 2
function LinkDato(classPHP,valore,dato) {  

	//MOSTRA MESSAGGIO DI ATTESA
	mostraAttesa();
	
  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId("contenuto-dinamico"),
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
	
    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", '../pages/ponte.php?classe='+ classPHP +'&input='+valore+dato, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");


    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK"){

          // operazione avvenuta con successo
          elemento.innerHTML = ajax.responseText;
		  
		  }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
	



  }
   
  return usaLink;
}
 
//Richiamo link dato parziale piu il nome del campo input
function LinkDatoParziale(classPHP,divdinamico,valore,dato){
	return LinkDatoParziale(classPHP,divdinamico,valore,dato,null);
}

// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function LinkDatoParziale(classPHP,divdinamico,valore,dato,nomeinput) {  

	
  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId(divdinamico),
    // risultato booleano di funzione
    usaLink = true,
    //input per il ponte
    input = "input";
  	
  	if(nomeinput != null){
  		input = nomeinput;
  		if( prendiElementoDaId('modifica') != null ) {
  			return false;
  		}		
  	}
  	
  	//MOSTRA MESSAGGIO DI ATTESA
	mostraAttesaParziale(divdinamico);
	
  	
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
	
    ajax.open("get", '../pages/ponte.php?classe='+ classPHP +'&'+input+'='+valore+dato, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");


    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK"){

          // operazione avvenuta con successo
          elemento.innerHTML = ajax.responseText;
		  
		  }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
	



  }
   
  return usaLink;
} 


//Per eseguire i refresh
function LinkDatoRefresh(classPHP,divdinamico,valore) {  

	
  	// variabili di funzione
    var ajax = assegnaXMLHttpRequest();  // assegnazione oggetto XMLHttpRequest
   // assegnazione elemento del documento
   var elemento = prendiElementoDaId(divdinamico);
    // risultato booleano di funzione
   var usaLink = true;
   //input per il ponte
   var input = "input";
	
  	
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;

    // impostazione richiesta asincrona in GET
    // del file specificato
	
    ajax.open("get", '../pages/ponte.php?classe='+ classPHP +'&'+input+'='+valore, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");


    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK"){

          // operazione avvenuta con successo
          elemento.innerHTML = ajax.responseText;
		  
		  }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        }
      } 
    }

    // invio richiesta
    ajax.send(null);
	



  }
   
  return usaLink;
} 

// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
//classPHP - Classe per effettuare il post dei dati del form
//divdinamico - id del div dove caricare un eventuale messaggio di errore
//funzione - per indicare quale funzione usare per la validazione, si rifa a 'uno due ...' del ponte classe class.validazione.php
//parametres - standard passati da parameters =	 Form.serialize('myform');
function Validazione(classPHP,divdinamico,funzione,parameters) {  

	//MOSTRA MESSAGGIO DI ATTESA
	mostraAttesaParziale(divdinamico);

  // variabili di funzione
  var
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = prendiElementoDaId(divdinamico),
    //variabile con nome classe per le validazioni
     classPHPval = 'class.validazione.php',
     //flag per il controllo se 0 tutto ok altrimenti 1
     flagcontrol = "errore",
     //varibaile temporanea per eseguire l'explode
     tempexp = "",
     // risultato booleano di funzione
    usaLink = true;

  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
    // impostazione richiesta asincrona in GET
    // del file specificato
	
    ajax.open("get", '../pages/ponte.php?classe='+ classPHPval +'&input='+funzione+'&'+parameters, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");


    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
      
      // verifica dello stato
      if(ajax.readyState === readyState.COMPLETATO) {
        // verifica della risposta da parte del server
        if(statusText[ajax.status] === "OK"){

          //operazione avvenuta con successo
          //carico il messaggio di risposta nella variabile temporanea
         tempexp = ajax.responseText;
         //explode del messaggio ricevuto
         tempexp=tempexp.split("?"); 
         
         //flag per il controllo
         flagcontrol = tempexp[0];
         //messaggio di errore
         elemento.innerHTML = tempexp[1];
         
         
         flagcontrol = flagcontrol.indexOf("corretto");

         if( flagcontrol != -1 ) InvioForm(classPHP,parameters);
         
		  }
        else {
          // errore di caricamento
          elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
          elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
        

        }
      } 
    }

    // invio richiesta
    ajax.send(null);
	



  }
   
  return usaLink; 
  
  
} 


