//funzione per eliminare il campo con valore s dall'array
Array.prototype.rimuovi=function(s){
  for(i=0;i<this.length;i++){
    if(s==this[i]) this.splice(i, 1);
  }
}

//funzione per eliminare spazi iniziali e finali da una stringa
String.prototype.pulisci = function() {  return this.replace(/^\s*([\s\S]*?)\s*$/,"$1");};


// instanza di un oggetto XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// funzione per la creazione di un oggetti XMLHttpRequest
function createXmlHttpRequestObject()
{
 var xmlHttp;
 // dovrebbe funzionare per tutti i browsers ad eccezione di IE6 e precedenti
 try
 {
   // prova a creare un oggetto XMLHttpRequest
   xmlHttp = new XMLHttpRequest();
 }
 catch(e)
 {
   // IE6 o precedente
   var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
                                   'MSXML2.XMLHTTP.5.0',
                                   'MSXML2.XMLHTTP.4.0',
                                   'MSXML2.XMLHTTP.3.0',
                                   'MSXML2.XMLHTTP',
                                   'Microsoft.XMLHTTP');
   // prova tutte le versioni fino a quella corretta
   for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
   {
     try

     {
       // prova a creare un oggetto XMLHttpRequest
       xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
     }
     catch (e) {}
   }
 }
 // restituisce l'oggetto creato o un messaggio di errore
 if (!xmlHttp)
   alert("Errore durante la creazione di un oggetto XMLHttpRequest.");
 else
   return xmlHttp;
}

// esegue la funzione passata per parametro con il risultato dell'interrogazione all'url passato per parametro
function process(indirizzo,parametri,funzione){
 // prosegue solo se xmlHttp non č nullo
 if (xmlHttp)
 {
   // tenta di connettersi al server
   try
   {
     // effettua la lettura dall'indirizzo
     xmlHttp.open("POST", indirizzo, true);
     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xmlHttp.setRequestHeader("Content-length", parametri.length);
     xmlHttp.setRequestHeader("Connection", "close");
     xmlHttp.onreadystatechange = gestCambStatoRequest;
     xmlHttp.send(parametri);
   }
   // messaggio di avviso nel caso di errore
   catch (e)
   {
     alert("Impossibile connettersi al server:\n" + e.toString());
   }
 }

 function gestCambStatoRequest()
 {
   // quando il readyState č 4, siamo in grado di leggere la risposta del server
   if (xmlHttp.readyState == 4)
   {
     // prosegue solo se lo status HTTP č 200=OK
     if (xmlHttp.status == 200)
     {
       try
       {
         // esegue la funzione passata per parametro
         funzione();
       }
       catch(e)
       {
         // messaggio di errore
         alert("Errore durante la lettura: " + e.toString());
       }
     }
     else
     {
       // messaggio di errore
       alert("Si sono verificati problemi durante la lettura del risultato:\n" +
             xmlHttp.statusText);
     }
   }
 }
}

// valuta la risposta Ajax
function evalRisposta(){
    risposta=xmlHttp.responseText;
    eval(risposta);
  }

// risposta nulla
function voidRisposta(){
	void(0);
}

// aggiorna il contenuto dell'elemento passato per parametro con la risposta ajax
function aggiornaElemento(destinazione){
	  risposta=xmlHttp.responseText;
	  document.getElementById(destinazione).innerHTML=risposta;
	  return true;
	}
	
// invia tramite ajax i parametri per il login
function login(username,password){
  var indirizzopag = window.location;
	if((username!='')&&(password!='')){
		parametri="username="+username+"&password="+password+"&src="+indirizzopag;
		indirizzo="login.php";
		funzione=evalRisposta;
		process(indirizzo,parametri,funzione);
	}else alert('Inserire username e password');
}

// richiama la pagina per il logout 
function logout(){
	parametri="";
	indirizzo="login.php";
	funzione=evalRisposta;
	process(indirizzo,parametri,funzione);
}

var rosso='#FF2222';
var blu='#2222FF';
var verde='#22FF22';

// Riempie lo sfondo dell'oggetto con id passato per parametro con il colore passato per parametro
function colora(target,colore){
  document.getElementById(target).style.backgroundColor=colore;
}

// Nasconde l'oggetto con id passato per parametro
function nascondi(target){
  document.getElementById(target).style.display='none';
}


// Apre una nuova finestra
function apri(indirizzo,finestra,larghezza,altezza,alto,sinistra,opzioni){
  finestra=finestra||'operazioni';
  if(finestra!='_self'){
	  larghezza=larghezza||500;
	  altezza=altezza||500;
	  sinistra=sinistra||(screen.width-larghezza)/2;
	  alto=alto||(screen.height-altezza)/2;
	  opzioni=''||','+opzioni;
	  operazioni=window.open(indirizzo,finestra,'width='+larghezza+',height='+altezza+', scrollbars=1'+opzioni);
	  operazioni.moveTo(sinistra,alto);
	  window.setTimeout("operazioni.focus();",200);
  }else{
	  window.location=indirizzo;
  }
}

// Apre una nuova finestra lightwindow
function aprilw(indirizzo){
myLightWindow.activateWindow({
	href: indirizzo, 
	title: '', 
	author: '', 
	caption: ''
});
}

function visualizzaDivIns(e,idmenu){
    idmenuattuale=idmenu;
   	var posx = 0;
  	var posy = 0;
  	if (!e) var e = window.event;
  	if (e.pageX || e.pageY) 	{
  		posx = e.pageX;
  		posy = e.pageY;
  	}
  	else if (e.clientX || e.clientY) 	{
  		posx = e.clientX + document.body.scrollLeft
  			+ document.documentElement.scrollLeft;
  		posy = e.clientY + document.body.scrollTop
  			+ document.documentElement.scrollTop;
  	}
    document.getElementById('divInsVoceMenu').style.display='block';
    document.getElementById('divInsVoceMenu').style.position='absolute';
    document.getElementById('divInsVoceMenu').style.top=posy+"px";
    document.getElementById('divInsVoceMenu').style.left=posx+"px";
  }

function $(id){
	if(document.getElementById(id))
		return (document.getElementById(id));
	else return false;
}

function salva_campo(tabella, campo, valore, chiave,valorechiave,funzione){
	parametri="tabella="+tabella+"&campo="+campo+"&valore="+valore+"&chiave="+chiave+"&valorechiave="+valorechiave+"&funzione="+funzione;
	indirizzo="salva_campo.php";
	process(indirizzo,parametri,evalRisposta);
}

/***
 * generaPassword restituirā una password random
 * La password sarā composta da caratteri compresi nella stringa charOk
 * Non vi saranno ripetizioni dello stesso carattere(char) nella password
 * param: $lung - int (lunghezza della stringa da ottenere)
 */
function generaPassword(lung) {

password = "";

charOk = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"; 

i = 0; 

     while (i < lung) { 

     char = charOk.substr(Math.ceil(Math.random()*(charOk.length-1)), 1);

          if (password.lastIndexOf(char)==-1) {
	          password += char;
	          i++;
          }

     }

return password;

}
/***
 * controlla se num (parametro) č un numero
 ***/
function salvaOrdine(num,elemento){
	if(isNaN(num))
		return false;
	else{
		indirizzo='salva_posizione_allegato.php';
		variabili='pos='+num+'&idal='+elemento;
		process(indirizzo,variabili,evalRisposta);
	}
		
		
}

function cartella(ind,idu,idgu,nome,par){
window.open(ind+'&idu='+idu+"&idgu="+idgu,nome,par);	
}


