// cette fonction peut déjà être présente
if (typeof(addListener) != 'function') {
	// fonction portable d'ajout de listeners
	function addListener(element, baseName, handler)
	{
		if (element.addEventListener) {
			element.addEventListener(baseName, handler, false) ;
		} else if (element.attachEvent) {
			element.attachEvent('on'+baseName, handler) ;
		}
	}
}

// Fonction déclanchant l'ouverture d'une fenêtre externe pour les liens possédant la classe "lien_ext"
function open_ext_link()
{
	var liens = document.getElementsByTagName('a');
	// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
	// Une boucle qui parcourt le tableau (array) liens du début Ã  la fin.
	for (var i = 0 ; i < liens.length ; ++i)  {
		// Si les liens ont un nom de class contenant lien_ext ou img_ext, alors on agit.
		var expression = /lien_ext|img_ext/;
		if (expression.exec(liens[i].className))  {
			liens[i].title = 'S\'ouvre dans une nouvelle fenêtre';
			// Au clique de la souris.
			liens[i].onclick = function()  {
				window.open(this.href);
				return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
			};
		}
	}
}

// Fonction cachant le bouton ok du sélecteur de site de Papyrus
function cacher_btn_ok_selecteur_site()
{
	if (document.getElementById('sesi_ok')) {
		document.getElementById('sesi_ok').style.display = 'none';
	}
}

// Fonction aggrandissant ou diminuant la taille d'un champ
// Provient du site https://addons.mozilla.org/
function basculerTaille(id, grand)
{
	var sb = document.getElementById(id);
	if (grand) {
		sb.style.width = '20em';
	} else {
		sb.style.width = '10em';
	}
}

// Fonction nettoyant un champ de formulaire d'une chaine donnée...
function nettoyerChamp(id, chaine)
{
	var sb = document.getElementById(id);
	var valeur = sb.value;
	if (valeur == chaine) {
		sb.value = '';
	}
	if (valeur == '') {
		sb.value = chaine;
	}
}

/** Cacher la légende : fonctions et code provenant de Média Wiki
* Modifié pour pouvoir gérer des listes ul ou dl...
*/
function changeText(el, newText) {
	// Safari work around
	if (el.innerText) {
		el.innerText = newText;
	} else if (el.firstChild && el.firstChild.nodeValue) {
		el.firstChild.nodeValue = newText;
	}
}

function toggleToc(id, type_liste) {
	var toc = document.getElementById(id).getElementsByTagName(type_liste)[0];
	var toggleLink = document.getElementById('togglelink');

	if (toc && toggleLink && toc.style.display == 'none') {
		changeText(toggleLink, tocHideText);
		toc.style.display = 'block';
		document.cookie = "hidetoc=0";
	} else {
		changeText(toggleLink, tocShowText);
		toc.style.display = 'none';
		document.cookie = "hidetoc=1";
	}
}

/** Pour utiliser cette fonction rajouter dans les pages web :
 * <script type="text/javascript">
 *   // Le système de masquage des sommaires
 *   if (window.showTocToggle) {
 *     var tocShowText = "afficher";
 *     var tocHideText = "masquer";
 *     showTocToggle('faq_sommaire_titre', 'faq_sommaire', 'ul');
 *   }
 * </script>
 * Pour id_titre mettre l'identifiant du titre où afficher le texte "masquer"/"afficher"
 * Pour l'id_div mettre l'identifiant de la div contenant la liste à masquer
 * Pour le type de liste indiquer "ul" ou "dl" en fonction du type de liste.
 */
function showTocToggle(id_titre, id_div, type_liste) {
	if (document.createTextNode) {
		// Uses DOM calls to avoid document.write + XHTML issues

		var linkHolder = document.getElementById(id_titre);
		if (!linkHolder) {
			return;
		}

		var outerSpan = document.createElement('span');
		outerSpan.className = 'toctoggle';

		var toggleLink = document.createElement('a');
		toggleLink.id = 'togglelink';
		toggleLink.className = 'internal';
		toggleLink.href = 'javascript:toggleToc(\''+id_div+'\', \''+type_liste+'\')';
		toggleLink.appendChild(document.createTextNode(tocHideText));

		outerSpan.appendChild(document.createTextNode('['));
		outerSpan.appendChild(toggleLink);
		outerSpan.appendChild(document.createTextNode(']'));

		linkHolder.appendChild(document.createTextNode(' '));
		linkHolder.appendChild(outerSpan);

		var cookiePos = document.cookie.indexOf("hidetoc=");
		if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) {
			toggleToc(id_div, type_liste);
		}
	}
}

// Fonction initialisant d'autres fonctions
function initialiser()
{
	cacher_btn_ok_selecteur_site();// Doit être avant les lien_ext
	// s'il existe une carte dans la page
	/*if(typeof isMap != "undefined") {	
		loadMap() ;
	}*/
	open_ext_link();
}
	
// Au chargement de la page, on appelle la fonction d'initialisation :
addListener(window, 'load', initialiser) ;