
	/*	┌────────────────────────────────────────────────────────────────────────────────────────────┐
		│ new sfio ( { mini: opacité minimum (0 par défaut) ,														│
		│					maxi: opacité maximum (100 par défaut) ,													│
		│					pas:  pas d'incrément ou de décrément de l'opacité (1 par défaut),				│
		│					delai:délai entre 2 changement d'opacité, en milli-secondes (10 par défaut),	│
		│					image:élément html à gérer (id d'un img en général),									│
		│				 		tableau:[ liste des 'images à faire défiler' séparées par , ]					│
		│					ou	over: 'image à afficher au survol',														│
		│						out:  'image à afficher quand on ne survole pas (image.src par défaut)'		│
		│				 }																											│
		│			  );																											│
		└────────────────────────────────────────────────────────────────────────────────────────────┘ */

	//───────────────────────────────────────────────────────────
	function sfio()	//── Sytème de Fondu sur Images en Objet ──
	//───────────────────────────────────────────────────────────
	{	var prm=sfio.arguments[0];
		this.dessin=prm['image'];
		this.mini=Number( prm['mini'] ) || 0;
		this.maxi=Number( prm['maxi'] ) || 100;
		this.delai=Number( prm['delai'] ) || 10;
		this.pas=Number( prm['pas'] ) || 1;
		this.opaImg=this.maxi;
		this.timid=0;
		this.tableau=prm['tableau'] || null;
		if ( this.tableau==null )
				{	this.imgout=prm['out'] || this.dessin.src;
					this.dessin.src=this.imgout;
					this.imgover=prm['over'];
					this.metStyle();
					var zis=this;
					//────────────────────────────────────────────────
					this.dessin.onmouseover=function()	//── survol ──
					//────────────────────────────────────────────────
						{	clearTimeout( zis.timid );
							zis.opacite( '-', zis.imgover );
						};
					//──────────────────────────────────────────────────────────
					this.dessin.onmouseout=function()	//── quitte le survol ──
					//──────────────────────────────────────────────────────────
						{	clearTimeout( zis.timid );
							zis.opacite( '-', zis.imgout );
						};
				}
		else	{	this.dessin.src=this.tableau[0];
					this.metStyle();
					this.imgAct=0;
					this.opacite( '-', this.tableau[0] );
				}
	}
	
	//───────────────────────────────────────────────────────
	sfio.prototype.metStyle=function()	//── met l'opacité ──
	//───────────────────────────────────────────────────────
	{	this.dessin.style.filter="alpha(opacity="+this.opaImg+")";
		var opad2=( this.opaImg/100 ).toFixed( 2 );
		this.dessin.style.opacity=opad2;
		this.dessin.style.mozOpacity=opad2;
		this.dessin.style.khtmlOpacity=opad2;
	}
	
	//──────────────────────────────────────────────────────────────────────────────────────────────
	sfio.prototype.opacite=function( sens, imge )	//── dé+in crémenter l'opacité, gestion image ──
	//──────────────────────────────────────────────────────────────────────────────────────────────
	{	switch ( sens )
		{	case '-':	// décrémenter l'opacité
				this.opaImg-=this.pas;
				if ( this.opaImg > this.mini )
						{	// mini non atteint
							this.metStyle();
							var zis=this;
							this.timid=setTimeout	(	function()	{ zis.opacite ( sens, imge ); }
																, 	this.delai
															);
						}
				else	{	// mini atteint
							this.opaImg=this.mini;
							this.metStyle();
							if ( this.tableau==null )
									{	this.dessin.src=imge;
										this.opacite ( '+', imge );	}
							else	{	this.imgAct++;
										var i=this.tableau[this.imgAct%(this.tableau.length)];
										this.dessin.src=i;
										this.opacite ( '+', i );
									}
						}
				break;
			case '+':	// incrémenter l'opacité
				this.opaImg+=this.pas;
				if ( this.opaImg < this.maxi )
						{	// maxi non atteint
							this.metStyle();
							var zis=this;
							this.timid=setTimeout	(	function() 	{ zis.opacite ( sens, imge ); }
																, 	this.delai
															);
						}
				else	{	// maxi atteint
							this.opaImg=this.maxi;
							this.metStyle();
							if ( this.tableau!=null )
							{	this.opacite ( '-', this.tableau[this.imgAct%(this.tableau.length)] );	}
						}
				break;
		}
	}

