/* -------------------------------------------------------------------------------------
   --- Libreria di Proprieta' e Metodi aggiuntivi per JavaScript                       -
   --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   --- Gli script che seguono sono gratuiti e liberi da Copyright.                     -
   --- Il riutilizzo e la modifica sono consentiti senza alcuna limitazione sia per    -
   --- usi amatoriali che professionali.                                               -
   ---                                                                                 -
   --- Questa libreria e' disponibile alla URL: http://www.jsdir.com/LibreriaJs        -
   ---                                                                                 -
   --- Generata il: Mercoledi' 3 Settembre  2003 - 16:19:53                            -
   ---                                                                                 -
   --- E' fatta richiesta all'utilizzatore di lasciare inalterato questo commento      -
   --- iniziale quale "credit" per i realizzatori, ed i commenti successivi per dar    -
   --- modo, a successivi utilizzatori, di capire il funzionamento dei metodi e di     -
   --- reperire il sorgente originale con i relativi aggiornamenti.                    -
   ---                                                                                 -
   ---                                                         webmasterATjsdir.com     -
   ---                                                                                 -
   ---------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- 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(_swa, _swb) {
	_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() {
	var _RandArrlen = this.length;
	_RandCicli =_RandArrlen + parseInt(10000 * Math.random());
	while (_RandCicli-- > 0)
		this.Swap(0, parseInt(_RandArrlen * Math.random()));
	return this;
}

Array.prototype.Randomize = Randomize;
/* ----------------------------------------------------------------------------------- */