// Effets commentaire : affiche un bloc quand on en survole un autre
// V1.0  - Eric Quillévéré (15/04/09)

/*jsl:import js_rewrite.js */
/*jsl:import js_rewrite_1-02.js */
/*jsl:import 1-effets.js */

var effetComm_objSrc=null; // Objet source de l'événement
var effetComm_objAff=null; // 
//var effetComm_objPos=null; // position de l'objet
var effetComm_objTaille=null; // taille de l'objet
var effetComm_encours1=null; // effet 1 en cours
var effetComm_encours2=null; // effet 2 en cours
var effetComm_afficheEnCours=false; // s'affiche ou s'efface ?
var effetComm_effaceEnCours=false; // s'affiche ou s'efface ?

//evenementCree(window, Array('load'), function() {effetComm_parcours();});

// Parcours les objets images pour mettre l'effet si title affecté et classe autoCommentaire
function effetComm_parcours(obj)
	{
	if (nonDef(obj)) obj=document.body;

	if (obj.nodeName.toLowerCase()=='img')
		{
		if (obj.title!=='' && obj.className=='autoCommentaire')
			{
			// Crée un objet DIV contenant l'image et le texte
			var objDiv=obj_Cree('div',obj.parentNode);
			var obj2=obj_Copie(obj,objDiv);
			
			var objTexte=obj_Cree('div',objDiv);
			obj_Cache(objTexte);
			objTexte.className='autoCommentaireDiv';
			objDiv.style.position='relative';
			objTexte.style.position='absolute';
			objTexte.innerHTML=obj.title;
			obj2.objTexte=objTexte;
			obj2.onmouseover=function() {effetCommentaire(this.objTexte);};
			obj_Detruit(obj);
			}
		}
	else
		{
		for (var i=0;i<obj.childNodes.length;i++)
			{
			var enfant=obj.childNodes[i];
			
			// Vérifie que l'objet n'est pas exclu des traductions
			var estExclus=false;
			
			// Exclus les scripts
			if (enfant.nodeName.toLowerCase()=='script' ||
				enfant.nodeName.toLowerCase()=='noscript') estExclus=true;
			
			if (!estExclus)
				effetComm_parcours (enfant);
			}
		}
	}


// Initialisation (appel par onmouseover)
function effetCommentaire(nomObjet)
	{
	if (!window.obj || !window.Effet) return;
	var objAff=obj(nomObjet);
	if (!objAff) return; // objet inexistant
	
	if (effetComm_objSrc==nomObjet && effetComm_afficheEnCours) return; // Même objet en cours d'affichage
	if (obj_estVisible(objAff) && !effetComm_effaceEnCours) return; // objet déjà visible
	effetComm_arreteEffets();
	
	obj_Affiche(objAff); // Affiche pour connaître le parent
	effetComm_afficheEnCours=true;
	effetComm_objSrc=objAff;
	var objParent=objAff.offsetParent;
	var tailleObj=obj_Taille_Renvoie(effetComm_objSrc);
	
	// Mémorise position et taille
	effetComm_objTaille=obj_Taille_Renvoie(objParent);
	//effetComm_objPos=obj_PosAbs_Renvoie(objParent);
	

	obj_Pos_Fixe(effetComm_objSrc, null, effetComm_objTaille.hauteur);
	obj_Opacite_Fixe(effetComm_objSrc, 70);
	effetComm_encours1=effetComm_objSrc.anime({'top':{fin:effetComm_objTaille.hauteur - tailleObj.hauteur}, duree:600,
		fonctionFin:function()
			{
			effetComm_encours1=null;
			effetComm_afficheEnCours=false;
			}});
	objParent.sourisAuDessus(null, effetComm_evenementFin);
	//souris_DepasseObj(objParent, effetComm_evenementFin);
	
	//even_Cree( document, Array('mousemove'), effetComm_evenementCree);
		 
	}

// Arrête les effets en cours	
function effetComm_arreteEffets()
	{
	if (effetComm_encours1!==null)  effetComm_encours1.Termine();
	if (effetComm_encours2!==null)  effetComm_encours2.Termine();
	}


// Disparition	
function effetComm_evenementFin()
	{
	
	effetComm_arreteEffets();
	effetComm_effaceEnCours=true;
	
	if (nonDef(effetComm_objSrc)) return;
	effetComm_encours2=effetComm_objSrc.anime({'fin':{fin:effetComm_objTaille.hauteur}, duree:500,
		fonctionFin:function()
			{
			effetComm_encours2=null;
			}});
		
	effetComm_encours1=effetComm_objSrc.anime({'opacity':{decrementer:true}, duree:300, fonctionFin:function()
		{
		effetComm_encours1=null;
		obj_Cache(effetComm_objSrc);
		effetComm_objSrc=null;
		effetComm_effaceEnCours=false;
		}});
	
	}
	/*
// Vérifie si on sort de l'objet
function effetComm_evenementCree(e)
	{
	var pos=souris_RenvoiePos(e);
	if (!(	pos.x>=effetComm_objPos.gauche && pos.x<=effetComm_objPos.gauche+effetComm_objTaille.largeur &&
			pos.y>=effetComm_objPos.haut && pos.y<=effetComm_objPos.haut+effetComm_objTaille.hauteur))
		{
		even_Suppr( document, Array('mousemove'), effetComm_evenementCree); // supprime l'événement
		effetComm_evenementFin();
		}
	}*/

