

/*!
 * \brief cache le champ hideField_id et met la valeur value dans le champ valueField_id
 * sert à supprimer les thèmes et les intervenants dans 
 * \param hideField_id (string) id de l'élément à cacher
 * \param valueField_id (string) id de l'élément auquel on ajoute la valeur value
 * \param value (string) nouvelle valeur de l'élément
 */
function fctRemoveChild(hideField_id,valueField_id,value)
{
	var e=document.getElementById(valueField_id);
	if (e)	e.value=e.value+","+value;

	var e=document.getElementById(hideField_id);
	if (e)	e.style.display="none";

}

/*!
 * \brief active l'objet id2 si la valeur de l'objet id1 est > 0
 * sert à rendre actif le bouton d'ajout de theme ou d'intervenant
 * \param id1 (string)
 * \param id2 (string) id
 */
function fctActiveIfValue(id1, id2)
{
	var e1=document.getElementById(id1)
	var e2=document.getElementById(id2)
	if (! e1)	alert(id1 + " non trouvé");
	if (! e2)	alert(id2 + " non trouvé");

	if ((e1.value>0 || e1.value.length>1) && e2)	
		e2.disabled="";
	else if (e2)
		e2.disabled="disabled";
}
/*!
 * \brief rend visible l'objet id2 si la valeur de l'objet id1 est > 0
 * \param id1 (string)
 * \param id2 (string) id de l'objet que l'on rend visible
 * \param value (string) si renseigné, valeur pour laquelle l'objet id2 doit être visible
 */
function fctSetVisibleIfValue(id1, id2, value)
{
	var e1=document.getElementById(id1)
	var e2=document.getElementById(id2)

	if (! e1)	alert(id1 + " non trouvé");
	if (! e2)	alert(id2 + " non trouvé");

	if (e2)
	{	if (value && e1.value==value)
			var v="visible";
		else if (value)
			var v="hidden";
		else if (e1.value>0 || e1.value.length>1)	
			var v="visible";
		else
			var v="hidden";
			
		fctSetVisibility(e2,v);
	}
}

/*!
 * \brief efface la valeur du field e la premiere fois que la fct est appelée
 * \param e (htmlElement)
 */
function fctEraseOnFirst (e)
{
	if (e.done) ; // deja fait
	else
	{	e.prec = e.value; // stockage de la valeur précédente
		e.value="";
		e.done = true;
	}
}
/*!
 * \brief sortie du champ, restore la valeur initiale si le champ est vide
 * \param e (htmlElement)
 */
function fctRestoreOnQuit(e)
{	if (e.value=="" && e.done)
	{	e.value=e.prec;
		e.done=false;
	}
}
/*!
 * \brief calcule le prix de l'inscription
 */
function fctCalculInscrit()
{	// initialiser les variables
	var publication			= jQuery("#publication");
	if (! publication)	return ; // pas la bonne page
	var px_total			= jQuery("#inscription_px_total");
	var px_colloque_seul	= jQuery("#px_colloque_seul");
	var px_colloque_dej		= jQuery("#px_colloque_dej");
	var px_publication		= jQuery("#px_publication");
	var paiement_chq		= jQuery("#paiement_chq");
	var paiement_cb			= jQuery("#paiement_cb");
	var entree_libre		= jQuery("#entree_libre");
	var mention_dej			= jQuery("#mention_dej");

	if (! px_colloque_seul)	alert("element px_colloque_seul non trouvé");
	if (! px_colloque_dej)	alert("element px_colloque_dej non trouvé");
	if (! px_publication)	alert("element px_publication non trouvé");
	if (! publication)	alert("element publication non trouvé");
	if (! px_total)	alert("element inscription_px_total non trouvé");

	var k = -1;
	var lst_participation=document.getElementsByName("participation");
	for(var i=0;i<lst_participation.length;i++)
	{	if (lst_participation[i].checked)	k=i;
	}

	var px_colloque_seul = parseFloat(px_colloque_seul.attr("value"));
	var px_colloque_dej = parseFloat(px_colloque_dej.attr("value"));
	var px_publication = parseFloat(px_publication.attr("value"));

	// calculer le prix
	var px = 0;
	if (k==1) // déjeuner
	{	px = px_colloque_dej;
		if (px>0)
			mention_dej.css("display","block");
	}
	else if (k==0)
	{	px = px_colloque_seul;
		mention_dej.css("display","none");
	}
		
	if (publication.attr("checked"))	
		px += px_publication;

	if (px) 
	{	if (jQuery(paiement_chq).hasClass('bouton2'))
		{	paiement_chq.css("display","block");
			paiement_cb.css("display","block");
		}
		else
		{	paiement_chq.css("display","inline");
			paiement_cb.css("display","inline");
		}
		if (entree_libre) entree_libre.css("display","none") ;
	}
	else // gratuit
	{	paiement_chq.css("display","none");
		paiement_cb.css("display","none");
		if (entree_libre) entree_libre.css("display","inline") ;
	}
	px = fctMoney(px);
	
	px_total.html(px);
}
// transformer le prix en chaine
function fctMoney(px)
{	{	var i = Math.floor(px);
		var d = px - i;
		var d = Math.round(d*100);

		d=""+d;
		if (d.length<2)	d="0"+d;
		if (d.length<2)	d="0"+d;

		return  ""+i+","+d+" &euro;";
	}
}
/*!
 * \todo décrire
 * \param ulId (string) id de l'élément UL
 * \param liId (string) id de l'élément LI
 * \param frameId (string) id de la frame
 * \param src (string) 
 */
function fctOnClickAdd(selectId,ulId,liId,innerHTML)
{	var e=document.getElementById(selectId);
	if (e && e.value)
	{	var id=e.value; 
		options=options+id;
	}
	if (! e)
		alert("not found "+selectId);
	fctAddLi(ulId,liId,innerHTML);
	return false;
}
/*!
 * \brief ajoute une ligne LI dans la liste UL
 * \param ulId (string) id de l'élément UL
 * \param liId (string) id de l'élément LI
 * \param frameId (string) id de la frame
 * \param src (string) 
 */
function fctAddLi(ulId,liId,innerHTML)
{
	var ul=document.getElementById(ulId);
	var li=document.getElementById(liId);
//	var frame=document.getElementById(frameId);
	
	if (! ul)	alert("not found "+ulId);
	if (! li)	alert("not found "+liId);

	if (ul && li)
	{	var e = document.createElement('LI');		
		e.innerHTML = innerHTML;
		ul.insertBefore(e,li) ;
	}
	return false;
}

/*!
 * \brief supprime la ligne LI qui contient l'élément e
 * \param liId (htmlElement) id de l'élément contenu dans un LI
 */
function fctRemoveLi(ulId,e)
{	
	while(e && e.tagName!="LI")
		var e=e.parentNode;
	var ul=e.parentNode;
	ul.removeChild(e);

	return false;
}
/*! 
 * \brief retourne la liste des valeur des champs dont le nom set name
 * \param name (string)
 * \return (string) liste des valeurs sous la forme ,val1,val2,...
 */
function fctGetLstId(name)
{	var r	= new Array(); /* valeur de retour */
	if (name)
	{	var lst = document.getElementsByName(name);
		var count = 0;
		for (var i=0;i<lst.length;i++)
		{	if (lst[i])	r[count++] = lst[i].value;
		}
	}
	return r;
}

/*! 
 * \brief affiche sous l'element e la liste des correspondants
 * \param e (htmlElement)
 * \param lstId (string) id de l'élément qui contient les valeurs
 * \param id2 (string) id de l'élément à créer
 * \param keyId (string) id de l'élément censé contenir la valeur de key
 * \param id3 (string) id de l'élément à afficher
 */
function fctAutocompletion(e,lstId,id2,keyId,id3,name)
{	var maxCount = 20; // nombre de lignes maxi
	var lst=document.getElementById(lstId);
	var u = e.value.toUpperCase();
	var r = e.parentNode;
	if (lst)
	{	if (id3)
		{	var e3 = document.getElementById(id3);
			if (e3)	fctSetVisibility(e3,"hidden");
		}
		// supprimer l'élément s'il existe
		var ul=document.getElementById(id2);
		if (ul)	ul.parentNode.removeChild(ul);
		// créer l'élément
		ul = document.createElement('UL');
		ul.id = id2;
		r.appendChild(ul);
		// positionner l'élément
		var top = getTop(e)+e.offsetHeight;
		ul.className = "autocompletion";
		ul.style.left = getLeft(e)+"px";
		ul.style.top = top+"px";
		ul.id = id2;
		// permet de refermer l'élément lorsque l'on quitte le champ de saisie
		jQuery(e).blur = setTimeout(function(){fctAutocompletionBlur;},50);
		e.child = ul;
		
		// remplir l'élément
		var s = lst.value;
		dta = eval(s);
		
		if (name)
		{	var ids = fctGetLstId(name); /* valeurs deja attribuees */
		}
		else var ids = new Array();
		ids = ","+ids.join(",")+",";

		var count=0
		if (u)
		{	for(var i=0;i<dta.length;i++)
			{	var cpl = dta[i];
				if (cpl && cpl.value)
				{	var s = cpl.value;
					var s2 = cpl.value2;
					if (ids.indexOf(","+cpl.key+",")<0 && (s.toUpperCase().indexOf(u)==0 || s2.toUpperCase().indexOf(u)==0 || u=="*"))
					{	var li=document.createElement("li");
						var a=document.createElement("a");
						a.key = cpl.key;
						a.innerHTML = s;
						a.className = "element" ;
						if (a.addEventListener)
							a.addEventListener('click',fctAutocompletionClick,false);
						else
							a.onclick = fctAutocompletionClick;
						a.destValue = e; // element destinataire de la valeur
						a.destKey = document.getElementById(keyId); // element destinataire du click
						a.destKeyId2 = id3;
						a.father = ul;
						li.appendChild(a);
						ul.appendChild(li);
						count=count+1;
					}
				}
			}
		}
	}
	return true;
}
/*! 
 * \brief 
 * \param e (htmlElement)
 */
function fctAutocompletionClick(event)
{	if (this.destValue)	this.destValue.value = this.innerHTML;
	if (this.destKey)
	{	this.destKey.value = this.key;
		if (this.destKeyId2)
			fctSetVisibleIfValue(this.destKey.id,this.destKeyId2);
	}
	this.father.parentNode.removeChild(this.father);
	fctStop(event);
}
/*! 
 * \brief 
 * \param e (htmlElement)
 */
function fctAutocompletionBlur()
{	setTimeout("fctDeleteObjet('"+this.child.id+"')",100);
}
function fctDeleteObjet(id)
{	var e = document.getElementById(id);
	if (e)
		e.parentNode.removeChild(e);
}

function getTop(e)
{	return fctGetOffset(e,"offsetTop");
}
function getLeft(e)
{	return fctGetOffset(e,"offsetLeft");
}

function fctGetOffset(r,attribut)
{	var offset = 0;
	while(r)
	{	offset += r[attribut];
	 	r = r.offsetParent;
	}
	return offset;
}


/*!
 * \brief Gère la demande d'effacement d'un fichier
 * \param e (html element) élément déclencheur de l'action, doit disparaître
 * \param id1 (string) id de l'élément qui 
 */
function fctClearFile(e,id1,id2)
{	var e1 = document.getElementById(id1); 
	var e2 = document.getElementById(id2); 
	if (e1)	e1.innerHTML="";  /* modifier le contenu du champ id1 */
	if (e2)	e2.value=1;  /* modifier la valeur du champ caché id2 */
	fctSetVisibility(e,false); /* masquer l'élément déclancheur */
}

var first = true;

function fctHideShow()
{	jQuery(tagElement).each(function(i)
	{	if (i == currentHead)
		{	jQuery(this).show(first ? "" : "normal");
		}
		else
		{	jQuery(this).hide(first ? "" : "normal");
		}
	});
	jQuery(tagToggle).each(function(i)
	{	var bg = jQuery(this).css("background-image"); 
		if (i == currentHead)
			bg=bg.replace("_off","_on");
		else
			bg=bg.replace("_on","_off");
		jQuery(this).css("background-image",bg);
	});
	first = false;
}

function fctOnLoadColloque() 
{	jQuery(tagToggle).each(function(i)
	{	jQuery(this).mousedown( function() 
    	{	if (currentHead == i)
	    		currentHead = -1;
	    	else
	    		currentHead = i;
    		fctHideShow();
    	} );
    });
    fctHideShow();
	return; 
	var display = 0; /* le premier onglet est ouvert par défaut */
	if (_display)	display = _display; /* la valeur a été définie ailleurs dans le code */
	
	//create our Accordion instance
	var root = document.getElementById(id1);
	if (! root)
		alert('element ' + id1 + " introuvable");
	else
		myAccordion = new Accordion(root, tagToggle, tagElement, {
			opacity: false,
			display: display,
			onActive: function(toggler, element)
			{	var bg = toggler.getStyle('background-image');
				bg=bg.replace("_off","_on");
				toggler.setStyle('background-image',bg);
			},
			onBackground: function(toggler, element)
			{	var bg = toggler.getStyle('background-image');
				bg=bg.replace("_on","_off");
				toggler.setStyle('background-image',bg);
			}
		});
}

/*!
 * \brief Gère le post du formulaire d'inscription
 * \param formId (string) id de la form
 * \param paiementId (string) id du champ caché mode de paiement 
 * \param modePaiement (string) valeur du mode de paiement (chq ou cb) 
 */

function fctClickPaiement(formId,paiementId,modePaiement)
{	var e1 = document.getElementById(formId);
	var e2 = document.getElementById(paiementId);
	if (! e1) 	alert("element non trouvé, id="+formId);
	if (! e2) 	alert("element non trouvé, id="+paiementId);
	
	if (e1 && e2)
	{	e2.value = modePaiement;
		e1.submit();
	}

	return false;
}

/*!
 * \brief Gère le post du formulaire de colloque, notamment les champs WYMeditor
 * \param formId (string) id de la form
 */

function fctSubmitMyEdit(id)
{	/* mettre à jour chaque champ WYMeditor */
	var i=0;

	while (jQuery.wymeditors(i)) 
	{	jQuery.wymeditors(i++).update();
	}
	var e=document.getElementById(id);
	if (e)	e.submit();
	else	alert("element "+id+" non trouvé");
	
	return false;
}


/*!
 * \brief 
 * \param formId (string) id de la form
 */

function fctClickAjouterTheme(e,selectId,ulId,liId,id1,id2)
{	var select = document.getElementById(selectId);
	if (! select)
		alert("element "+selectId+" introuvable");
	else
	{	var indx = select.selectedIndex;
		var option = select.options[indx];

		if (option.value==="new_record")
			var id=id2;
		else
			var id=id1;
		var f = document.getElementById(id);
		if (! f)
			alert("element "+id+" introuvable");
		else
		{	var s = f.value;
			s = s.replace("*text*",option.text);
			s = s.replace("*key*",option.value);
		}
		fctAddLi(ulId,liId,s); /* insérer la ligne */

		fctSetVisibility(e,'hidden'); /* masquer le bouton */

		/* masquer la ligne insérée */
		var lstChild = select.options;
		for(var i=0;i<lstChild.length;i++)
			if (lstChild[i].selected)	g=lstChild[i];
		
		if (g) 
		{	g.selected = false; /* désélectionner */
			if (g.value != "new_record")	
				select.removeChild(g); /* supprimer */
		}
		lstChild[0].selected = true;
	}
	return ;
}


/*!
 * \brief 
 * \param formId (string) id de la form
 */

function fctClickAjouterIntervenant(e,lstId,keyFieldId,ulId,liId,id1,inputId)
{	var e = document.getElementById(keyFieldId);

	if (e)	var key=e.value;
	else	alert("element "+keyFieldId+" introuvable");

	var input = document.getElementById(inputId);
	if (input)	input.value = '';
	else	alert(inputId+" non trouvé");

	var lstElt=document.getElementById(lstId);
	if (lstElt)
	{	var s = lstElt.value;
		dta = eval(s);
		for(var i=0;i<dta.length;i++)
		{	var cpl = dta[i];
			if (cpl.key == key)
				var text=cpl.value;
		}
	}
	if(key)
	{	if (key==="new_record")
			var id = id2;
		else
			var id = id1;
		
		var ul = document.getElementById(ulId);
		var nbLig = 0;
		if (ul)
		{	var lstChild = ul.childNodes;
			for(var i=0;i<lstChild.length;i++)
				if (lstChild[i].tagName=="LI")
					nbLig++;
		}
		var e = document.getElementById(id);
		if (! e)
			alert("element "+id+" introuvable");
		else
		{	var s = e.value;
			s = s.replaceAll("*text*",text);
			s = s.replaceAll("*key*",key);
			s = s.replaceAll("*nbLig*",nbLig);
		}
		fctAddLi(ulId,liId,s);
	}

	return false;
}


/*!
 * \brief 
 * \param formId (string) id de la form
 */

function fctClickAjouterPartenaire(modeleId,ulId,liId,id1)
{	var e = document.getElementById(modeleId);

	if (e)	var s=e.innerHTML;
	else	alert("element "+keyFieldId+" introuvable");

	s = s.replaceAll("&gt;",">");
	s = s.replaceAll("&lt;","<");
	
	fctAddLi(ulId,liId,s);

	return false;
}

/*!
 * modifie l'apparence de l'image de l'élément e
 * si inside remplace _off. par _on.
 * sinon remplace _on. par _off.
 */
function fctMnuMouse(e,inside)
{	var a = "_on." ;
	var b = "_off." ;
	if (inside)
	{	c = a;
		a = b;
		b = c;
	}
	e.src = e.src.replace(a,b);
}
/*
 * rend le contenu du champ e éditable
 * cela suppose que le parent de e contienne un champ de type input
 */
function fctEdit(e)
{	if (e.tagName=="TD")
	{	var lst = e.getElementsByTagName("span");
		var e=lst[0]; /* champ span correspondant */
	}
	if (e && ! e.editing)
	{	e.editing = true;
		e.style.display = "none";
		var p = e.parentNode;
		var lst = p.getElementsByTagName("input");
		var f = lst[0]; /* champ input correspondant */
		f.type = "text";
		setTimeout(function(){f.focus();}, 1);
	}
}
/*
 * sortie du champ de saisie
 */
function fctBlur(e)
{	if (e.parentNode)
	{	var value = e.value;
		e.type = "hidden";

		var p = e.parentNode;
		var lst = p.getElementsByTagName("span");
		var f=lst[0]; /* champ span correspondant */
		f.style.display = "inline";

		if (f.innerHTML != value) /* la valeur a changé */
		{	p.className = "modified";
			var b = document.getElementById("div_save")
			if (b)	b.style.visibility = "visible"; /* faire apparaître le bouton d'enregistrement */

			var lst = p.getElementsByTagName("input");
			lst[1].value="1";
		}
		f.innerHTML = value;
		f.editing = false;
	}
}
/*
 * entrée dans champ de saisie
 * efface le contenu si s'est la première fois que l'on y entre
 */
function fctClearOnFocus(e)
{	if (e.modified)
		;
	else
	{	e.valuePrev = e.value;
		e.value="";
	}
}
/*
 * sortie d'un champ de saisie
 * restaure le contenu si le champ est vide
 */
function fctRestoreOnBlur(e)
{	if (e.value=="")
		e.value = e.valuePrev;
}

/*
 * clique sur le bouton radio président
 */
function fctClickRadioPresident(e,id)
{	var f = document.getElementById(id);
	f.value = e.value;
}

/*
 * clique un intevenant
 */
function fctClickIntervenant(e,id,divId)
{	var imgSrc = null;
	if (jsonIntervenant[id].photo)
		imgSrc = const_IMG_PATH + jsonIntervenant[id].photo;
	var text = jsonIntervenant[id].texte;
	var prenom = jsonIntervenant[id].prenom;
	var nom = jsonIntervenant[id].nom;
	
	var selector = "#" + divId;
	
	jQuery(selector).show();
	if (imgSrc)
		jQuery(selector).find('img').show().attr('src',imgSrc);
	else
		jQuery(selector).find('img').hide().attr('src','');
	jQuery(selector).find('h2').html(prenom+" "+nom);
	jQuery(selector).find('div').html(text);
	
	var lstA = e.parentNode.getElementsByTagName(e.tagName);
	for(var i=0;i<lstA.length;i++)
	{	lstA[i].className = (lstA[i].id == e.id) ? "current" : "";
	}
}

var timer = false;
var sliderTimeOut = 40;
var DeltaMax = 10; // limite d'inversion de sens
var comportement = "boucle"; 

function fctSlider(divId,delta)
{	timer = true;
	fctSliderSuite(divId,delta);
}
function fctSliderSuite(divId,delta)
{	var div = document.getElementById(divId);

	if (timer && div)
	{	var top = div.style.top;
		if (top)
			top = top.replace("px","");
		else
			top = "115px";
		top = parseInt(top,10);
		top += delta;
		
		// si tout en haut, remettre tout en bas
		if (comportement == "boucle")
		{
			if (delta < 0 && top < 0 && (-top) > (div.offsetHeight - 65)) 
			{	var top2 = div.parentNode.offsetHeight - 40;
				top = null;
				jQuery(div.parentNode).fadeOut(750,function()
				{	jQuery(this).fadeIn(500);
					jQuery(div).css('top',top2);
				});
			}
			else if (delta > 0 && top > DeltaMax  && top < div.offsetHeight) 
			{	alert("cas non géré");
			}
		}
		else if (comportement == "oscillation")
		{
			// inverser le sens si necessaire
			if (delta < 0 && top < 0 && (-top) > div.offsetHeight) 
				delta = -delta;
			else if (delta > 0 && top > DeltaMax  && top < div.offsetHeight) 
				delta = -delta;
		}
		if (top !== null)
			div.style.top = ""+top+"px";
		setTimeout(function(){fctSliderSuite(divId,delta);},sliderTimeOut);
	}
}
function fctMouseOut(e)
{	e.className = e.className.replace(' on',''); 
	timer=false;
}

function fctClickPresident(e)
{	var url = http_root + "index.php?ajax=getIntervenant&id=" + jQuery(e).attr('_id');

	var popinPresident = jQuery("#popinPresident");
	jQuery(popinPresident).find(".photo").attr('src','').hide();
	jQuery(popinPresident).find(".prenom_nom").html('');
	jQuery(popinPresident).find(".texte").html('');

	var left = 400 ;
	var top = 100 ;
	jQuery.getJSON(url,
		function(json)
		{	jQuery(popinPresident).css('left',left).css('top',top).show(1000);
			if (json.photo)
				jQuery(popinPresident).find(".photo").attr('src',http_root+img_path+json.photo).show();
			jQuery(popinPresident).find(".prenom_nom").html(json.prenom+" "+json.nom);
			jQuery(popinPresident).find(".texte").html(json.texte);
			jQuery(window).scrollTop(0);
		}
	);
}

function fctClickAjouterFavoris(e)
{	var liModele = jQuery(e).parent().prev();
	var url = jQuery(e).siblings('input.url').attr('value');
	var title = jQuery(e).siblings('input.title').attr('value');
	if (! title)	title = url;
	
	if (url)
		jQuery(liModele).clone().each(function()
		{	jQuery(this).insertAfter(liModele);
			jQuery(this).find('a.favoris').attr('href',url).html(title);
			jQuery(this).find('input.url').attr('value',url);
			jQuery(this).find('input.title').attr('value',title);
		});
}


/* spec. BO */

function fctShowPaymentOptions()
{
	var px_colloque_seul = parseFloat(jQuery("#px_colloque_seul").attr("value"));
	var px_colloque_dej = parseFloat(jQuery("#px_colloque_dej").attr("value"));
	var px_publication = parseFloat(jQuery("#px_publication").attr("value"));
	
	var px_total = parseFloat("0");
	var checked = false;
	
	if (jQuery("#publication").attr('checked'))
	{	px_total += px_publication;
		checked = true;
	}
	if (jQuery("#participation0").attr('checked'))
	{	px_total += px_colloque_seul;
		checked = true;
	}
	else if (jQuery("#participation1").attr('checked'))
	{	px_total += px_colloque_dej;
		checked = true;
	}

	jQuery("#px_total").html(fctMoney(px_total))
	
	var td_mode_paiement = jQuery("#td_mode_paiement");
	if (px_colloque_seul == 0 && px_colloque_dej == 0)
	{	jQuery(td_mode_paiement).find("li").hide();
		jQuery(td_mode_paiement).find("#mode_paiement_free").parents('li').show();
	}
	else
	{	jQuery(td_mode_paiement).find("li").show();
		jQuery(td_mode_paiement).find("#mode_paiement_free").parents('li').hide();
	}
}
function fctRotation(e, right)
{	var img = jQuery(e).siblings("img:first");
	var src = jQuery(img).attr('src');

	var td = jQuery(e).parents("td:first");
	var _colloque_id = jQuery(td).attr('_colloque_id');
	var _subDir = jQuery(td).attr('_dirname');
	var _filename = jQuery(td).attr('_filename');
	if (src)
	{	//jQuery(img).hide(400);
		var url = "index.php?ajax=rotationImg";
		url += "&colloque_id="+_colloque_id;
		url += "&subDir="+_subDir;
		url += "&filename="+_filename;
		if (right)	url += "&right=1";
		url += "&" + Math.random();
		jQuery.ajax({url:url, success: function()
		{	jQuery(img).attr('src',src+"?"+Math.random()).show(200); // recharger l'image
			// rotation de l'image intermédiaire
			//jQuery.ajax({url:url+"&path="+_medium});
		}});
	}
}

var timerDiapo = null;
var diapoDelay = 2000;

function runDiapo()
{	stopDiapo(); // permet de supprimer le timer s'il est lancé

	if (jQuery("#runStop").hasClass("run"))
	{	timerDiapo = 
			setTimeout(function()
			{	if (jQuery("#zoom").css("display")=="block" && jQuery("#runStop").hasClass("run"))
				{	var e = jQuery("div.lstPhoto td img.current").parents("td:first").next().find("img");
		
					if(! jQuery(e).length)
						var e = jQuery("div.lstPhoto td img.current").parents("tr:first").next().find("td:first img");
					if(! jQuery(e).length)
					{	var e = jQuery("div.lstPhoto td img.current").parents("table:first").next().find("td:first img");
					}
					if(jQuery(e).length)
					{	fctZoomImg(e,true);
						runDiapo();
					}
				}
			}, diapoDelay);
	}
}

function stopDiapo()
{	if (timerDiapo)
	{	clearTimeout(timerDiapo);
		timerDiapo = null;
	}
}

function fctClickRun(e)
{	if (jQuery(e).hasClass("run"))
	{	jQuery(e).removeClass("run").addClass("stop")
	}
	else
	{	jQuery(e).removeClass("stop").addClass("run")
		runDiapo();
	}
}

function fctZoomImg(e,b)
{	var _medium = jQuery(e).attr('_medium');
	var title = jQuery(e).attr('title');

	jQuery("div.lstPhoto").find("img.current").removeClass('current');
	jQuery(e).addClass('current');

	var td = jQuery(e).parents("td:first");
	var _colloque_id = jQuery(e).attr('_colloque_id');
	var _subDir = jQuery(e).attr('_subDir');
	var _filename = jQuery(e).attr('_filename');
	var href = "#";
	var _href = "#" + _colloque_id + "/" + _subDir;
	var _href = "index.php?page=photo&colloque_id="+_colloque_id+"&subdir="+_subDir+"&filename="+_filename; 
	
	var deltaTop = 10;
	var top = jQuery(e).position().top - deltaTop - 500;
	if (top < 0)	top = 0;

	window.scrollTo(0,top);

	var x = (jQuery("div.lstPhoto").attr("offsetWidth") - 484) / 2;
	var y = deltaTop + top;
	
	
	/*
	var x = parseInt(jQuery(e).attr("offsetWidth"))/2;
	var y = parseInt(jQuery(e).attr("offsetHeight"))/2;
	var p = jQuery(e).position();
	for(i in p)	alert(p[i]);
	return;
	var E = e;
	while(E && jQuery(E).length)
	{	x += parseInt(jQuery(E).attr("offsetLeft"));
		y += parseInt(jQuery(E).attr("offsetTop"));
		E = jQuery(E).parent();
	}
	*/	
	var src = _medium+"?"+Math.random();
	jQuery("#runStop").show();
	jQuery("#zoom").find('iframe').hide();
	jQuery("#zoom").find('div:first').show();
	jQuery("#zoom").find("h3").html(title);
	jQuery("#zoom").find("a.download").attr('href',href).attr('_href',_href);
	jQuery("#zoom").find("img.photo").attr('src',src).attr('title',title).attr('alt',title);
	jQuery("#zoom").css('left',x).css('top',y).show(200,function()
	{
		/*x -= parseInt(jQuery(this).attr('offsetWidth'))/2;
		y -= parseInt(jQuery(this).attr('offsetHeight'))/2;
		*/
		jQuery(this).css('left',x).css('top',y);
	});
	var url = http_root + "index.php?ajax=cronResizeImg";
	jQuery.ajax({url:url, async:true});

	if (b)	; 
	else
		runDiapo();
}
function fctCloseDelay(selector,delay)
{	setTimeout(function(){jQuery(selector).hide();}, delay);
}

