/**
* Supprime un élément désigné par son indice du tableau et décale les éléments suivants.
*
* @param Integer i Position de l'élément à  supprimer
* @access public
* @since 1.0
*/
Array.prototype.shiftElementByPosition = function(i) {
	var len = this.length;
	//décalage d'un cran des valeurs dans le tableau
	for(j = i; j <= len; j++) {
		this[j] = this[j + 1];
	}
	
	//mise à  jour de la taille du tableau à  la taille correspondante
	this.length = this.length - 2;
}

/**
* Supprime un élément " objet " du tableau et décale les éléments suivants.
*
* @param Object el Elément à  supprimer
* @return Boolean L'élément était dans le tableau donc supprimé (true) ou pas (false)
* @access public
* @since 1.0
*/
Array.prototype.shiftElementByObject = function(el) {
	var len = this.length;
	var i, j, pos = 0, trouve = false;
	
	//recherche de la position :
	while(pos < len && !trouve) {
//alert((this[pos] == el) + " " + this[pos] +  " " + el);
		if(this[pos] == el) {
			i = pos;
			trouve = true;
		}
		pos++;
	}
	
	if(trouve) {
		//décalage d'un cran des valeurs dans le tableau
		for(j = i; j <= len; j++) {
			this[j] = this[j + 1];
		}
		
		//mise à  jour de la taille du tableau à  la taille correspondante
		this.length = this.length - 2;
		
		return true;
	}
	
	return false;
}

/**
* Vérifie l'appartenance d'un élément au tableau.
*
* @param Object item Elément à vérifier
* @return Boolean L'élément figure dans le tableau (true) ou pas (false)
* @access public
* @since 1.0
*/
Array.prototype.inArray = function(item) {
	var k = 0;
	while(k < this.length) {
		if(this[k] == item) {
			return true;
		}
		k++;
	}
	
	return false;
}

/**
* Recherche la position d'un élément dans le tableau.
*
* @param Object item Elément à rechercher
* @return Integer Position de l'élément dans le tbaleau s'il existe ou -1 sinon
* @access public
* @since 1.0
*/
Array.prototype.positionOf = function(item) {
	var k = 0;
	while(k < this.length) {
		if(this[k] == item) {
			return k;
		}
		k++;
	}
	
	return -1;
}

/**
* Vide le tableau.
*
* @access public
* @since 1.0
*/
Array.prototype.shiftAllElements = function() {
	this.splice(0, this.length);
}

/**
* Remplit le tableau avec les valeurs d'un autre.
*
* @param Array tab Tableau à copier
* @access public
* @since 1.0
*/
Array.prototype.copy = function(tab) {
	var i = 0;
	for(i = 0;i < tab.length; i++) {
		this[i] = tab[i];
	}
}
