Subversion Repositories Sites.tela-botanica.org

Rev

Rev 478 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
536 jpm 1
// cette fonction peut déjà être présente
2
if (typeof(addListener) != 'function') {
3
	// fonction portable d'ajout de listeners
4
	function addListener(element, baseName, handler)
5
	{
6
		if (element.addEventListener) {
7
			element.addEventListener(baseName, handler, false) ;
8
		} else if (element.attachEvent) {
9
			element.attachEvent('on'+baseName, handler) ;
10
		}
11
	}
12
}
13
 
142 jpm 14
// Fonction déclanchant l'ouverture d'une fenêtre externe pour les liens possédant la classe "lien_ext"
4 david 15
function open_ext_link()
16
{
142 jpm 17
	var liens = document.getElementsByTagName('a');
18
	// On récupère tous les liens (<a>) du document dans une variable (un array), ici liens.
19
	// Une boucle qui parcourt le tableau (array) liens du début à la fin.
20
	for (var i = 0 ; i < liens.length ; ++i)  {
465 jpm 21
		// Si les liens ont un nom de class contenant lien_ext ou img_ext, alors on agit.
22
		var expression = /lien_ext|img_ext/;
23
		if (expression.exec(liens[i].className))  {
142 jpm 24
			liens[i].title = 'S\'ouvre dans une nouvelle fenêtre';
25
			// Au clique de la souris.
26
			liens[i].onclick = function()  {
27
				window.open(this.href);
28
				return false; // On ouvre une nouvelle page ayant pour URL le href du lien cliqué et on inhibe le lien réel.
29
			};
30
		}
31
	}
4 david 32
}
142 jpm 33
 
34
// Fonction cachant le bouton ok du sélecteur de site de Papyrus
35
function cacher_btn_ok_selecteur_site()
36
{
37
	if (document.getElementById('sesi_ok')) {
438 jpm 38
		document.getElementById('sesi_ok').style.display = 'none';
142 jpm 39
	}
40
}
41
 
348 jpm 42
// Fonction aggrandissant ou diminuant la taille d'un champ
43
// Provient du site https://addons.mozilla.org/
44
function basculerTaille(id, grand)
45
{
46
	var sb = document.getElementById(id);
47
	if (grand) {
478 jpm 48
		sb.style.width = '20em';
348 jpm 49
	} else {
478 jpm 50
		sb.style.width = '10em';
348 jpm 51
	}
52
}
53
 
54
// Fonction nettoyant un champ de formulaire d'une chaine donnée...
55
function nettoyerChamp(id, chaine)
56
{
57
	var sb = document.getElementById(id);
58
	var valeur = sb.value;
59
	if (valeur == chaine) {
60
		sb.value = '';
61
	}
62
	if (valeur == '') {
63
		sb.value = chaine;
64
	}
65
}
467 jpm 66
 
67
/** Cacher la légende : fonctions et code provenant de Média Wiki
68
* Modifié pour pouvoir gérer des listes ul ou dl...
69
*/
70
function changeText(el, newText) {
71
	// Safari work around
72
	if (el.innerText) {
73
		el.innerText = newText;
74
	} else if (el.firstChild && el.firstChild.nodeValue) {
75
		el.firstChild.nodeValue = newText;
76
	}
77
}
78
 
79
function toggleToc(id, type_liste) {
80
	var toc = document.getElementById(id).getElementsByTagName(type_liste)[0];
81
	var toggleLink = document.getElementById('togglelink');
82
 
83
	if (toc && toggleLink && toc.style.display == 'none') {
84
		changeText(toggleLink, tocHideText);
85
		toc.style.display = 'block';
86
		document.cookie = "hidetoc=0";
87
	} else {
88
		changeText(toggleLink, tocShowText);
89
		toc.style.display = 'none';
90
		document.cookie = "hidetoc=1";
91
	}
92
}
93
 
94
/** Pour utiliser cette fonction rajouter dans les pages web :
95
 * <script type="text/javascript">
96
 *   // Le système de masquage des sommaires
97
 *   if (window.showTocToggle) {
98
 *     var tocShowText = "afficher";
99
 *     var tocHideText = "masquer";
100
 *     showTocToggle('faq_sommaire_titre', 'faq_sommaire', 'ul');
101
 *   }
102
 * </script>
103
 * Pour id_titre mettre l'identifiant du titre où afficher le texte "masquer"/"afficher"
104
 * Pour l'id_div mettre l'identifiant de la div contenant la liste à masquer
105
 * Pour le type de liste indiquer "ul" ou "dl" en fonction du type de liste.
106
 */
107
function showTocToggle(id_titre, id_div, type_liste) {
108
	if (document.createTextNode) {
109
		// Uses DOM calls to avoid document.write + XHTML issues
110
 
111
		var linkHolder = document.getElementById(id_titre);
112
		if (!linkHolder) {
113
			return;
114
		}
115
 
116
		var outerSpan = document.createElement('span');
117
		outerSpan.className = 'toctoggle';
118
 
119
		var toggleLink = document.createElement('a');
120
		toggleLink.id = 'togglelink';
121
		toggleLink.className = 'internal';
122
		toggleLink.href = 'javascript:toggleToc(\''+id_div+'\', \''+type_liste+'\')';
123
		toggleLink.appendChild(document.createTextNode(tocHideText));
124
 
125
		outerSpan.appendChild(document.createTextNode('['));
126
		outerSpan.appendChild(toggleLink);
127
		outerSpan.appendChild(document.createTextNode(']'));
128
 
129
		linkHolder.appendChild(document.createTextNode(' '));
130
		linkHolder.appendChild(outerSpan);
131
 
132
		var cookiePos = document.cookie.indexOf("hidetoc=");
133
		if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) {
134
			toggleToc(id_div, type_liste);
135
		}
136
	}
137
}
138
 
142 jpm 139
// Fonction initialisant d'autres fonctions
140
function initialiser()
141
{
142
	cacher_btn_ok_selecteur_site();// Doit être avant les lien_ext
536 jpm 143
	// s'il existe une carte dans la page
144
	/*if(typeof isMap != "undefined") {
145
		loadMap() ;
146
	}*/
142 jpm 147
	open_ext_link();
148
}
467 jpm 149
 
142 jpm 150
// Au chargement de la page, on appelle la fonction d'initialisation :
536 jpm 151
addListener(window, 'load', initialiser) ;