function Extension (idElement, minimumX, maximumX, decalageX, minimumY, maximumY, decalageY, intervalle)
{
	// propriétés via paramètres
	this.idElement		= idElement;
	this.minimumX		= minimumX;
	this.maximumX		= maximumX;
	this.minimumY		= minimumY;
	this.maximumY		= maximumY;
	this.decalageX		= decalageX;
	this.decalageY		= decalageY;
	this.intervalle		= intervalle;

	// propriétés additionnelles
	this.style			= document.getElementById(this.idElement).style;
	this.curseurX		= this.minimumX;
	this.curseurY		= this.minimumY;
	this.on				= false;
	this.tempo			= null;

	// méthodes
	this.afficher		= agrandir;
	this.masquer		= retrecir;
	this.cacher			= cacher;

	this.style.width	= this.minimumX + "px";
	this.style.height	= this.minimumY + "px";

	function agrandir ()
	{
		if (this.curseurX != this.maximumX || this.curseurY != this.maximumY)
		{
			if (!this.on)
			{
				this.style.display = "block";
				this.on = true;
			}
			this.curseurX += this.decalageX;
			this.curseurY += this.decalageY;
			this.style.width = this.curseurX + "px";
			this.style.height = this.curseurY + "px";
			this.tempo = setTimeout (this.idElement + ".afficher ()", this.intervalle);
		}
		else
		{
			clearTimeout (this.tempo);
		}	
	}

	function retrecir ()
	{
		if (this.curseurX != this.minimumX || this.curseurY != this.minimumY)
		{
			this.curseurX -= this.decalageX;
			this.curseurY -= this.decalageY;
			this.style.width = this.curseurX + "px";
			this.style.height = this.curseurY + "px";
			this.tempo = setTimeout (this.idElement + ".masquer ()", this.intervalle);
		}
		else
		{
			clearTimeout (this.tempo);
			this.curseurX = this.minimumX;
			this.curseurY = this.minimumY;
			//this.style.display = "none";
			this.on = false;
		}	
	}

	function cacher ()
	{
		this.on = false;
		this.style.display = "none";
		this.curseurX = this.minimumX;
		this.curseurY = this.minimumY;
	}
}


