/* stop la propagation de l'évenement */
function fctStop(event)
{	if (! event && window.event)
		event = window.event;

	if (event && event.stopPropagation) event.stopPropagation();
	if (event)	event.cancelBubble = true;

	if (event && event.preventDefault)  event.preventDefault();
	if (event)	event.returnValue = false;
}
/*!
 * \brief remet les champs du formulaire formId à zéro et soumet le formulaire
 * \param selector (string)
 */
function fctClearCriterea2(selector)
{	jQuery(selector).find('input').each(function()
	{	if (jQuery(this).attr('type')=='checkbox' || jQuery(this).attr('type')=='radio')
			jQuery(this).attr('checked',false);
		else if (jQuery(this).attr('type')=='button' || jQuery(this).attr('type')=='submit')
			;
		else
			jQuery(this).attr('value','');
	});
	jQuery(selector).find('select').each(function()
	{	jQuery(this).find('option').attr('selected',false);
	});
}
/*!
 * \brief remet les champs du formulaire formId à zéro et soumet le formulaire
 * \param formId (string)
 */
function fctClearCriterea(formId,specialKeyName)
{
	var e=document.getElementById(formId);
	if (e)
	{	fctClearInputFields(e,specialKeyName);
		e.submit();
	}
}
/*!
 * \brief remet les champs de saisie de l'élément e à zéro, récursif
 * \param e (html_element) référence à un élément HTML
 */
function fctClearInputFields(e,specialKeyName)
{	
	if (! specialKeyName)	specialKeyName = "specialKey";
	if (e.tagName=="OPTION")
	{	//if (e.checked)	e.checked = false;
		if (e.selected)
		{	e.selected = false;
		alert(e.tagName + " " + (e.selected ? "yes" : "no") +" " + e.value);
		}
	}
	else if (e.tagName=="INPUT"
	|| e.tagName=="TEXTAREA"
	|| e.tagName=="CHECKBOX"
	)
	{	
		if (e.type!="submit"
		&&	e.type!="button"
		&&	e.name!=specialKeyName)
		{	e.type="hidden";
			e.value="";
		}
	}
	else if (e.tagName=="SELECT")
	{	var nb=e.options.length;
		for(var i = nb - 1;i >= 0 ; i--)
		{	e.options[i].selected = (i==0);
		}
	}
	else
	{	var nb=e.childNodes.length;
		for(var i = 0;i < nb ; i++)
			fctClearInputFields(e.childNodes[i],specialKeyName);
	}
}
/*!
 * \brief si e est coché, l'élement dont l'id est id prend pour valeur 1, sinon il prend pour valeur 0
 * \param e (html_element) element checkbox
 * \param id (string) id de l'élément input correspondant
 */
function fctClickCheckBox(e,id)
{	var e2 = document.getElementById(id);
	
	if (! e2)	alert(id+" non trouvé");
	if(e && e2)
	{	if (e.checked)	e2.value="1";
		else	e2.value="0";
	}
}
function fctWriteCookie(name, valeur, expires) 
{
	document.cookie=name+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()));
}

function fctGetArgumentCookie(offset)
{
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr)); 
}
function fctReadCookie(name) 
{
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg)	 return fctGetArgumentCookie(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return ""; 
}
/*
 * \brief Soumet le formulaire formId s'il existe
 * \param formId (string
 */
function fctSubmit(formId)
{	var e = document.getElementById(formId);
	
	if (! e)	alert(id+" non trouvé");
	if(e)		e.submit();
	return false;
}

/*!
 * \brief il faut appeler cette fonction au chargement de la page (onLoad) pour utiliser HTML_EDITOR
 */
function fctHtmlEditor()
{	jQuery('.wymeditor').wymeditor();
}

