
/* -----------------------------------------------------------------------------------
------- location.Key[IdChiave][1] e location.QS("NomeChiave") ------------------------
------- Restituiscono i parametri ricevuti dalla pagina nella QueryString
------- 
------- ValoreParametro = location.key[NumPar][1];
-------       NumPar e' l'ordinale della coppia nella stringa a partire da 0 (zero)
------- 
------- ValoreParametro = location.QS("NomeParametro");
-------       NomeParametro e' il nome del parametro ricevuto nella stringa
-------                                                                            --- */
var Keys = unescape(location.search.substr(1)).split("&");
for (var _Id in Keys)
	Keys[_Id]=Keys[_Id].split("=");
location.Key = Keys;

function QueryString(_key){
	var _QSvalue;
	for (var _Id in location.Key)
		if (location.Key[_Id][0]==_key)
			return location.Key[_Id][1];
	}
location.QS=QueryString;
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- Trim(), LTrim(), RTrim() -----------------------------------------------------
------- 
------- Metodi per l'oggetto String, restituiscono la stringa cui sono applicati
------- senza spazi iniziali e/o finali:
------- 
------- str_a = stringa.Trim();
-------       str_a contiene il valore di stringa senza spazi iniziali ne' finali
------- 
------- str_a = stringa.LTrim();
-------       str_a contiene il valore di stringa senza spazi iniziali
------- 
------- str_a = stringa.RTrim();
-------       str_a contiene il valore di stringa senza spazi finali
------- 
------- N.B.
------- [\s] nelle RegExp contiene sia gli spazi che i ritorni a capo, avanzamento riga
------- tabulatore, tabulatore verticale. Tutti questi caratteri, se presenti, verranno
------- eliminati.
-------                                                                            --- */
function Trim() {
   return this.replace(/\s+$|^\s+/g,"");
   }

function LTrim() {
   return this.replace(/^\s+/,"");
   }

function RTrim() {
   return this.replace(/\s+$/,"");
   }
	
String.prototype.Trim=Trim;	
String.prototype.RTrim=RTrim;	
String.prototype.LTrim=LTrim;	
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- SpecialChars( [TipoSostituzione] ) -------------------------------------------
------- Metodo aggiuntivo per l'oggetto String, consente di sostituire,nella stringa
------- cui viene applicato, le lettere accentate con i corrispondenti codici HTML e
------- viceversa.
------- 
------- Supponendo di avere: Str1=" per ", Str2= " part "
------- 
------- Str1.SpecialChars(); restituisce " per "
------- 
------- Str1.SpecialChars(true); restituisce " per "
------- 
------- Str2.SpecialChars(false); restituisce " part "
------- 
-------                                                                            --- */
function SpecialChars(_flag)
	{
	_flag=arguments.length?_flag?0:1:0;
	var _CharsArray= [
		["","&agrave;"],
		["","&egrave;"],
		["","&eacute;"],
		["","&igrave;"],
		["","&ograve;"],
		["","&ugrave;"]
		];
	var _SpecialChars=this.toString();
		for (i in _CharsArray)
			_SpecialChars=_SpecialChars.replace(new RegExp(_CharsArray[i][_flag],"g"),_CharsArray[i][1-_flag]);
	return _SpecialChars;
	}

String.prototype.SpecialChars=SpecialChars;
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- Swap(Id1,Id2) ----------------------------------------------------------------
------- Metodo per l'oggetto Array, consente, in soli array monodimensionali, di scam-
------- biare il valore degli elementi di indice Id1 e Id2 passati al metodo.
------- 
------- Dato l'array: var Nums = New Array("1","2","3","4","5","6");
------- Nums.Swap(1,4) restituisce l'array ("1","5","3","4","2","6");
------- 
------- N.B.
------- Il metodo non controlla l'esistenza degli indici ricevuti, quindi puo' essere
------- usato cosi' com'e' solo su array che non contengono "buchi" cioe' indici senza
------- elementi associati.
------- 
-------                                                                            --- */
function Swap(_sca,_scb)
	{
	_temp=this[_swa];
	this[_swa]=this[_swb];
	this[_swb]=_temp;
	return this;
	}

Array.prototype.Swap=Swap;
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- Randomize() ------------------------------------------------------------------
------- Metodo per l'oggetto Array che consente di mescolarne gli elementi.
------- Va usato insieme al metodo Swap().
------- 
------- MioArray.Randomize()
-------       Restituisce l'array di partenza con i valori mescolati.
------- 
------- 
------- NOTA BENE ! ! !
------- Non ha senso un'istruzione del genere:
------- 
-------       NuovoArray = VecchioArray.Randomize();
------- 
------- perche' il metodo opera comunque su VecchioArray (che dunque viene effettiva-
------- mente mescolato) e l'assegnazione a NuovoArray non duplica il Vecchio nel Nuovo,
------- bensi' crea un PUNTATORE agli elementi del vecchio array.
------- Modificando un elemento di NuovoArray o di VecchioArray la modifica verrebbe
------- comunque effettuata su VecchioArray e NuovoArray ne rifletterebbe semplicemente
------- i nuovi valori
------- 
------- Per duplicare un array in un altro, vedere le faq su http://www.jsdir.com/faq
------- alla categoria "Oggetti"
-------                                                                            --- */
function Randomize()
	{
	_RandCicli=100+parseInt(10000*Math.random());
	var _RandArrlen=this.length;
	while (_RandCicli-- > 0)
		this.Swap(0,parseInt(_RandArrlen*Math.random()));
	return this;
	}

Array.prototype.Randomize=Randomize;
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- LayerWrite() -----------------------------------------------------------------
------- Non e' un metodo, ma semplicemente una funzione che consente di scri-
------- vere in un livello il testo desiderato senza preoccuparsi delle varie sin-
------- tassi dato che e' crossbrowser
-------
------- Sintassi:
-------
------- LayerWrite("nomelayer", "testodascrivere" )
------- LayerWrite("nomelayer",textvar)
------- 
------- dove:
-------    nomelayer (stringa) e' il nome del livello in cui scrivere
------- e
-------   "testodascrivere" o -textvar- sono rispettivamente una stringa da
-------   scrivere nel layer oppure una variabile che contiene la stringa
------- 
------- Perche' sia certo il funzionamento il livello dev'essere inserito nel 
------- documento con sintassi tipo:
------- 
------- <div id="nomelivello" stye=" ... position:absolute; ...">
------- 
------- "position:absolute", in particolare, e' importante perche' la funzione
------- riesca a scrivere nel caso il browser sia Netscape4
------- 
-------                                                                            --- */
function LayerWrite(_layer, _testo)
   {
   if (document.layers)
      with (document.layers[_layer].document) {
         open();
         write(_testo);
         close();
		 }
   else if (document.getElementById)
      document.getElementById(_layer).innerHTML=_testo;
      else _layer.innerHTML=_testo
   }

function ReplaceString(oldS,newS,fullS) {
    for (var i=0; i<fullS.length; i++) {
        if (fullS.substring(i,i+oldS.length) == oldS){
             fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length);
         }	
		}
         return fullS
}  



// altre funzioni -----------------------------------------------
function apri(pg, nome, w, h) {
	opt='width=' + w + ',height=' + h + ',menubar=no,resizable=yes,scrollbars=yes'
	window.open (pg, nome, opt)
}



function chiedi(indirizzo){
var esito;

esito=confirm("Volete davvero eliminare il seguente record ?");
	if(esito){
	document.location.href=indirizzo;
	
	}

}

function chiediCosa(indirizzo,cosa,conseguenza){
var esito;

var mess="Volete davvero eliminare "+  cosa +" ?";
var cons=conseguenza.Trim();

if(conseguenza.length>0){
	mess=mess +"\n------------\n"+cons;
	}

esito=confirm(mess);
	if(esito){
	document.location.href=indirizzo;
	}
}


function cancTesto(){
	if(document.frmCerca.parola.value=="Cerca nel sito"){
	document.frmCerca.parola.value="";	
	}
}

function ripristinaTesto(){
	if(document.frmCerca.parola.value=="" || document.frmCerca.parola.value==" "){
	document.frmCerca.parola.value="Cerca nel sito";
	}  
}  

function aprifinestra(pag,larg,altez){
window.open(pag,'Details','scrollbars=yes,resizable=yes,width='+ larg +',height='+altez);
}

  //----------------------------------------------------------------------
