Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 1428 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1428 Rev 1461
1
/**-------------------------- Objets globaux -----------------------------------*/
1
/**-------------------------- Objets globaux -----------------------------------*/
2
/*
2
/*
3
 * Les variables suivantes sont ajoutée automatiquement dans le squelette du moteur de
3
 * Les variables suivantes sont ajoutée automatiquement dans le squelette du moteur de
4
 * recherche par php, elles sont commentées ici pour qu'elles n'aient pas l'air 
4
 * recherche par php, elles sont commentées ici pour qu'elles n'aient pas l'air 
5
 * de sortir de la cuisse de Jupiter
5
 * de sortir de la cuisse de Jupiter
6
 * 
6
 * 
7
 * var AUTOCOMPLETION_ELEMENTS_NBRE : indique le nombre d'éléments à afficher dans la liste d'autocomplétion.
7
 * var AUTOCOMPLETION_ELEMENTS_NBRE : indique le nombre d'éléments à afficher dans la liste d'autocomplétion.
8
 * 
8
 * 
9
 * var URL_SERVICE_AUTOCOMPLETION_NOM_SCI : url de base du service de complétion de noms scientifiques
9
 * var URL_SERVICE_AUTOCOMPLETION_NOM_SCI : url de base du service de complétion de noms scientifiques
10
 * pour le projet en cours de consultation. 
10
 * pour le projet en cours de consultation. 
11
 * Exemple : http://localhost/service:eflore:0.1/bdtfx/noms?recherche=etendue&retour.format=min&masque=Ace%mo
11
 * Exemple : http://localhost/service:eflore:0.1/bdtfx/noms?recherche=etendue&retour.format=min&masque=Ace%mo
12
 * 
12
 * 
13
 * var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA : url de base du service de complétion de noms vernaculaires
13
 * var URL_SERVICE_AUTOCOMPLETION_NOM_VERNA : url de base du service de complétion de noms vernaculaires
14
 * pour le projet en cours de consultation. 
14
 * pour le projet en cours de consultation. 
15
 * Exemple : http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires?recherche=etendue&retour.format=oss&masque=aca&masque.lg=fra 
15
 * Exemple : http://localhost/service:eflore:0.1/nvjfl/noms-vernaculaires?recherche=etendue&retour.format=oss&masque=aca&masque.lg=fra 
16
 * 
16
 * 
17
 * var VALEUR_DEFAUT_NOM_SCI : Contient la valeur par défaut affichée dans le formulaire en mode sci
17
 * var VALEUR_DEFAUT_NOM_SCI : Contient la valeur par défaut affichée dans le formulaire en mode sci
18
 * Exemple: Rechercher un nom scientifique
18
 * Exemple: Rechercher un nom scientifique
19
 * 
19
 * 
20
 * var VALEUR_DEFAUT_NOM_VERNA : Contient la valeur par défaut affichée dans le formulaire en mode verna
20
 * var VALEUR_DEFAUT_NOM_VERNA : Contient la valeur par défaut affichée dans le formulaire en mode verna
21
 * Exemple: Recherche un nom commun
21
 * Exemple: Recherche un nom commun
22
 * 
22
 * 
23
 * var URL_BASE_POPUP : url de base pour les popup contenant du code un peu complexe
23
 * var URL_BASE_POPUP : url de base pour les popup contenant du code un peu complexe
24
 */
24
 */
25
 
25
 
26
var champs_ts = ["#au","#and","#anf","#nom","#bib"];
26
var champs_ts = ["#au","#and","#anf","#nom","#bib"];
27
var autocompletionFicheOuverte = false;
27
var autocompletionFicheOuverte = false;
28
var elementAutocompletionSelectionne = null;
28
var elementAutocompletionSelectionne = null;
29
var nomRechercheEnCours = null;
29
var nomRechercheEnCours = null;
30
 
30
 
31
$(document).ready(function() {
31
$(document).ready(function() {
32
	initialiserMoteur();
32
	initialiserMoteur();
33
});
33
});
34
 
34
 
35
function initialiserMoteur() {
35
function initialiserMoteur() {
36
	ajouterAutocompletion();
36
	ajouterAutocompletion();
37
	gererAffichageValeursParDefaut();
37
	gererAffichageValeursParDefaut();
38
	gererAccesFicheFlecheDroite();
38
	gererAccesFicheFlecheDroite();
39
	gererClicIllustrationsResultats();
39
	gererClicIllustrationsResultats();
40
	gererAccesFicheBouton();
40
	gererAccesFicheBouton();
41
}
41
}
42
 
42
 
43
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/
43
/**------------------- Fonctions de gestion de l'autocompletion ---------------------------------*/
44
function ajouterAutocompletion(){
44
function ajouterAutocompletion(){
45
	ajouterAutocompletionNoms();
45
	ajouterAutocompletionNoms();
46
	$('.champ_autocomplete').each(function(index) {
46
	$('.champ_autocomplete').each(function(index) {
47
		ajouterAutocompletionAvancee($(this));
47
		ajouterAutocompletionAvancee($(this));
48
	});
48
	});
49
}
49
}
50
 
50
 
51
function ajouterAutocompletionAvancee(champs){
51
function ajouterAutocompletionAvancee(champs){
52
	champs.autocomplete({			
52
	champs.autocomplete({			
53
		source: function(requete, add){  
53
		source: function(requete, add){  
54
		// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
54
		// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
55
			requete = "";
55
			requete = "";
56
			var id = champs.attr('id');
56
			var id = champs.attr('id');
57
			var url = encodeURI(getUrlAutocompletionAvancee(id));
57
			var url = encodeURI(getUrlAutocompletionAvancee(id));
58
				$.getJSON(url, requete, function(data) { 
58
				$.getJSON(url, requete, function(data) { 
59
			var suggestions = [];
59
			var suggestions = [];
60
			suggestions = traiterRetourAvance(data,champs);
60
			suggestions = traiterRetourAvance(data,champs);
61
			add(suggestions);  
61
			add(suggestions);  
62
			});
62
			});
63
		},
63
		},
64
    	html: true
64
    	html: true
65
	});
65
	});
66
}
66
}
67
 
67
 
68
function ajouterAutocompletionNoms() {
68
function ajouterAutocompletionNoms() {
69
	$('#nom').autocomplete({
69
	$('#nom').autocomplete({
70
		source: function(requete, add){  
70
		source: function(requete, add){  
71
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
71
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
72
			requete = "";
72
			requete = "";
73
			var url = encodeURI(getUrlAppelCompletion());
73
			var url = encodeURI(getUrlAppelCompletion());
74
			$.getJSON(url, requete, function(data) {
74
			$.getJSON(url, requete, function(data) {
75
				var suggestions = [];
75
				var suggestions = [];
76
				if (nomVernaculaireEstDemande()) {
76
				if (nomVernaculaireEstDemande()) {
77
					suggestions = traiterRetourNomsVerna(data);
77
					suggestions = traiterRetourNomsVerna(data);
78
				} else if (nomSciEstDemande()) {
78
				} else if (nomSciEstDemande()) {
79
					suggestions = traiterRetourNomsSci(data);
79
					suggestions = traiterRetourNomsSci(data);
80
				}
80
				}
81
				add(suggestions);  
81
				add(suggestions);  
82
            });
82
            });
83
        },
83
        },
84
        search: function(event, ui) {
84
        search: function(event, ui) {
85
        	nomRechercheEnCours = 'nom_sci';
85
        	nomRechercheEnCours = 'nom_sci';
86
        },
86
        },
87
        focus: function(event, ui) {
87
        focus: function(event, ui) {
88
        	elementAutocompletionSelectionne = ui.item;
88
        	elementAutocompletionSelectionne = ui.item;
89
        },
89
        },
90
        open: function(event, ui) { 
90
        open: function(event, ui) { 
91
        	autocompletionFicheOuverte = true;
91
        	autocompletionFicheOuverte = true;
92
        	var parent = $('.autocompletion_nom.ui-menu-item').parent();
92
        	var parent = $('.autocompletion_nom.ui-menu-item').parent();
93
        	parent.width(parent.width() + 10);
93
        	parent.width(parent.width() + 10);
94
        },
94
        },
95
        close: function(event, ui) {
95
        close: function(event, ui) {
96
        	autocompletionFicheFermee = false;
96
        	autocompletionFicheFermee = false;
97
        	nomRechercheEnCours = null;
97
        	nomRechercheEnCours = null;
98
        },
98
        },
99
        html: true
99
        html: true
100
	});
100
	});
101
	
101
	
102
	$("#nom").bind("autocompleteselect", function(event, ui) {
102
	$("#nom").bind("autocompleteselect", function(event, ui) {
103
		if (ui.item.retenu == true) {
103
		if (ui.item.retenu == true) {
104
			$("#nom").addClass('ns-retenu');
104
			$("#nom").addClass('ns-retenu');
105
		} else {
105
		} else {
106
			$("#nom").removeClass('ns-retenu');
106
			$("#nom").removeClass('ns-retenu');
107
		}
107
		}
108
	});
108
	});
109
}
109
}
110
 
110
 
111
// gére l'acces direct à une fiche par l'appui sur droite
111
// gére l'acces direct à une fiche par l'appui sur droite
112
// dans la liste d'autocompletion des noms scientifiques
112
// dans la liste d'autocompletion des noms scientifiques
113
function gererAccesFicheFlecheDroite() {
113
function gererAccesFicheFlecheDroite() {
114
	$(document).keypress(function(event) {
114
	$(document).keypress(function(event) {
115
		// flèche droite
115
		// flèche droite
116
		if(event.keyCode == 39) {
116
		if(event.keyCode == 39) {
117
			if(autocompletionFicheOuverte && elementAutocompletionSelectionne != null && nomSciEstDemande()) {
117
			if(autocompletionFicheOuverte && elementAutocompletionSelectionne != null && nomSciEstDemande()) {
118
				$('#nom').val(elementAutocompletionSelectionne.value);
118
				$('#nom').val(elementAutocompletionSelectionne.value);
119
				if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) {
119
				if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) {
120
					var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn);
120
					var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn);
121
					window.location.href = url_fiche_taxon; 
121
					window.location.href = url_fiche_taxon; 
122
				}
122
				}
123
				$('#nom').autocomplete( "disable" );
123
				$('#nom').autocomplete( "disable" );
124
				//TODO : ajout d'un message de chargement ?
124
				//TODO : ajout d'un message de chargement ?
125
			}
125
			}
126
		}
126
		}
127
		
127
		
128
		if(event.keyCode == 13) {
128
		if(event.keyCode == 13) {
129
			if(autocompletionFicheOuverte && elementAutocompletionSelectionne == null && $('#nom').is(":focus")) {
129
			if(autocompletionFicheOuverte && elementAutocompletionSelectionne == null && $('#nom').is(":focus")) {
130
				$('#eflore_nomenclature_submit').click();
130
				$('#eflore_nomenclature_submit').click();
131
			}
131
			}
132
		}
132
		}
133
	});
133
	});
134
}
134
}
135
 
135
 
136
function gererAccesFicheBouton() {
136
function gererAccesFicheBouton() {
137
	$('#eflore_nomenclature_fiche').click(function(event) {
137
	$('#eflore_nomenclature_fiche').click(function(event) {
138
		if(elementAutocompletionSelectionne != null && nomSciEstDemande()) {
138
		if(elementAutocompletionSelectionne != null && nomSciEstDemande()) {
139
			$('#nom').val(elementAutocompletionSelectionne.value);
139
			$('#nom').val(elementAutocompletionSelectionne.value);
140
			if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) {
140
			if(elementAutocompletionSelectionne.nn != undefined && elementAutocompletionSelectionne.nn != null) {
141
				var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn);
141
				var url_fiche_taxon = URL_BASE_FICHE_TAXON.replace('{num_taxon}',elementAutocompletionSelectionne.nn);
142
				window.location.href = url_fiche_taxon; 
142
				window.location.href = url_fiche_taxon; 
143
			}
143
			}
144
			event.preventDefault();
144
			event.preventDefault();
145
		}
145
		}
146
	});
146
	});
147
}
147
}
148
 
148
 
149
function traiterRetourNomsSci(data) {
149
function traiterRetourNomsSci(data) {
150
	var suggestions = [];  
150
	var suggestions = [];  
151
	if (data.resultat != undefined) {
151
	if (data.resultat != undefined) {
152
		$.each(data.resultat, function(i, val) {
152
		$.each(data.resultat, function(i, val) {
153
			val.nn = i;
-
 
154
			var nom = {label : '', value : '', retenu : false};
153
			var nom = {label : '', value : '', retenu : false};
155
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
154
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
156
				nom.label = "...";
155
				nom.label = "...";
157
				nom.value = $('#nom').val();
156
				nom.value = $('#nom').val();
158
				suggestions.push(nom);
157
				suggestions.push(nom);
159
				return false;
158
				return false;
160
			} else {
159
			} else {
161
				nom.label = val.nom_sci_complet;
160
				nom.label = val.nom_sci_complet;
162
				nom.value = val.nom_sci;
161
				nom.value = val.nom_sci;
163
				nom.nn = val.nn;
162
				nom.nn = val.num_nom;
164
				if(val.retenu != "absent") {
163
				if(val.retenu != "absent") {
165
					nom.retenu = (val.retenu == 'true') ? true : false;
164
					nom.retenu = (val.retenu == 'true') ? true : false;
166
					suggestions.push(nom);
165
					suggestions.push(nom);
167
				}
166
				}
168
			}
167
			}
169
		});
168
		});
170
	}
169
	}
171
	return suggestions;
170
	return suggestions;
172
}
171
}
173
 
172
 
174
 
173
 
175
function traiterRetourAvance(data, champs) {
174
function traiterRetourAvance(data, champs) {
176
	var suggestions = [];  
175
	var suggestions = [];  
177
	if (jQuery.type(data) == "array") { 
176
	if (jQuery.type(data) == "array") { 
178
		$.each(data[1], function(i, val) {
177
		$.each(data[1], function(i, val) {
179
			var ch = {label : '', value : ''};
178
			var ch = {label : '', value : ''};
180
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
179
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
181
				ch.label = "...";
180
				ch.label = "...";
182
				ch.value = champs.val();
181
				ch.value = champs.val();
183
				suggestions.push(ch);
182
				suggestions.push(ch);
184
				return false;
183
				return false;
185
			} else {
184
			} else {
186
				ch.label = val;
185
				ch.label = val;
187
				ch.value = val;
186
				ch.value = val;
188
				suggestions.push(ch);
187
				suggestions.push(ch);
189
			}
188
			}
190
		});
189
		});
191
	}
190
	}
192
	return suggestions;
191
	return suggestions;
193
}
192
}
194
 
193
 
195
function traiterRetourNomsVerna(data) {
194
function traiterRetourNomsVerna(data) {
196
	var suggestions = [];
195
	var suggestions = [];
197
	if (jQuery.type(data) == "array") {
196
	if (jQuery.type(data) == "array") {
198
		$.each(data[1], function(i, val){
197
		$.each(data[1], function(i, val){
199
			var nom = {label : '', value : ''};
198
			var nom = {label : '', value : ''};
200
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
199
			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
201
				nom.label = "...";
200
				nom.label = "...";
202
				nom.value = $('#nom').val();
201
				nom.value = $('#nom').val();
203
				suggestions.push(nom);
202
				suggestions.push(nom);
204
				return false;
203
				return false;
205
			} else {
204
			} else {
206
				nom.label = val;
205
				nom.label = val;
207
				nom.value = val;
206
				nom.value = val;
208
				suggestions.push(val);
207
				suggestions.push(val);
209
			}
208
			}
210
		});
209
		});
211
	}
210
	}
212
	return suggestions;
211
	return suggestions;
213
}
212
}
214
 
213
 
215
 
214
 
216
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/
215
/**------------ Fonctions de gestion des urls d'autocompletion et des fiches ------------------*/
217
 
216
 
218
function getUrlAutocompletionAvancee(parametre) {
217
function getUrlAutocompletionAvancee(parametre) {
219
	var valeur = getValeurMasque(parametre);
218
	var valeur = getValeurMasque(parametre);
220
	var ns_str = getValeurNsStructure(parametre);
219
	var ns_str = getValeurNsStructure(parametre);
221
	var url = URL_SERVICE_AUTOCOMPLETION_NOM_SCI+"?recherche=etendue&"+
220
	var url = URL_SERVICE_AUTOCOMPLETION_NOM_SCI+"?recherche=etendue&"+
222
	"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE +'&masque.'+parametre+'='+valeur+
221
	"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE +'&masque.'+parametre+'='+valeur+
223
	'&retour.format=oss&distinct=1&ns.structure='+ns_str;
222
	'&retour.format=oss&distinct=1&ns.structure='+ns_str;
224
	return url;
223
	return url;
225
}
224
}
226
 
225
 
227
function getValeurMasque(parametre) {
226
function getValeurMasque(parametre) {
228
	var valeur = $('#'+parametre).val();
227
	var valeur = $('#'+parametre).val();
229
	if (parametre == 'au' ){
228
	if (parametre == 'au' ){
230
		valeur = valeur +',(' + valeur + ')';
229
		valeur = valeur +',(' + valeur + ')';
231
	} else if (parametre == 'bib' ){
230
	} else if (parametre == 'bib' ){
232
		valeur = valeur +', %; ' + valeur ;
231
		valeur = valeur +', %; ' + valeur ;
233
	}
232
	}
234
	return valeur;
233
	return valeur;
235
}
234
}
236
 
235
 
237
function getValeurNsStructure(parametre) {
236
function getValeurNsStructure(parametre) {
238
	var ns = '';
237
	var ns = '';
239
	if (parametre == 'au' || parametre == 'bib'){
238
	if (parametre == 'au' || parametre == 'bib'){
240
		ns = parametre +'_ss';
239
		ns = parametre +'_ss';
241
	} else {
240
	} else {
242
		ns = parametre;
241
		ns = parametre;
243
	}
242
	}
244
	return ns;
243
	return ns;
245
}
244
}
246
 
245
 
247
 
246
 
248
function getUrlAppelCompletion() {
247
function getUrlAppelCompletion() {
249
	var url = '';
248
	var url = '';
250
	var mots = $('#nom').val();
249
	var mots = $('#nom').val();
251
	if (nomSciEstDemande()) {
250
	if (nomSciEstDemande()) {
252
		url = getUrlAutocompletionNomsSci(mots);
251
		url = getUrlAutocompletionNomsSci(mots);
253
	} else if (nomVernaculaireEstDemande()) {
252
	} else if (nomVernaculaireEstDemande()) {
254
		mots = mots.replace('  ',' ');
253
		mots = mots.replace('  ',' ');
255
		mots = mots.replace(' ','_');
254
		mots = mots.replace(' ','_');
256
		url = getUrlAutocompletionNomsVerna(mots);
255
		url = getUrlAutocompletionNomsVerna(mots);
257
	}
256
	}
258
	return url;
257
	return url;
259
}
258
}
260
 
259
 
261
function getUrlAutocompletionNomsSci(requete) {
260
function getUrlAutocompletionNomsSci(requete) {
262
	var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_SCI, requete, 'min')+
261
	var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_SCI, requete, 'min')+
263
		"&ns.structure=au,an"+
262
		"&ns.structure=au,an"+
264
		// tri "à la mode du CeL"
263
		// tri "à la mode du CeL"
265
		"&retour.tri=alpharet";
264
		"&retour.tri=alpharet"+
-
 
265
		'&retour.structure=liste';
266
	return url;
266
	return url;
267
}
267
}
268
 
268
 
269
function getUrlAutocompletionNomsVerna(requete) {
269
function getUrlAutocompletionNomsVerna(requete) {
270
	var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_VERNA, requete, 'oss');
270
	var url = getUrlAutocompletion(URL_SERVICE_AUTOCOMPLETION_NOM_VERNA, requete, 'oss');
271
	return url;
271
	return url;
272
}
272
}
273
 
273
 
274
function getUrlAutocompletion(baseUrl, requete, format) {
274
function getUrlAutocompletion(baseUrl, requete, format) {
275
	var url = baseUrl+"?"+
275
	var url = baseUrl+"?"+
276
		"masque="+requete+"&"+
276
		"masque="+requete+"&"+
277
		"recherche=etendue&"+
277
		"recherche=etendue&"+
278
		"retour.format="+format+"&"+
278
		"retour.format="+format+"&"+
279
		"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE;
279
		"navigation.limite="+AUTOCOMPLETION_ELEMENTS_NBRE;
280
	return url;
280
	return url;
281
}
281
}
282
 
282
 
283
/**------------ Fonctions de détection de l'état du formulaire ------------------*/
283
/**------------ Fonctions de détection de l'état du formulaire ------------------*/
284
function nomSciEstDemande()  {
284
function nomSciEstDemande()  {
285
	var boutonRadioNomSci = $('#type_nom_scientifique');
285
	var boutonRadioNomSci = $('#type_nom_scientifique');
286
	return (($('#type_nom_vernaculaire').length <= 0) || (boutonRadioNomSci != null && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked"));
286
	return (($('#type_nom_vernaculaire').length <= 0) || (boutonRadioNomSci != null && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked"));
287
}
287
}
288
 
288
 
289
function nomVernaculaireEstDemande()  {
289
function nomVernaculaireEstDemande()  {
290
	var boutonRadioNomSci = $('#type_nom_vernaculaire');
290
	var boutonRadioNomSci = $('#type_nom_vernaculaire');
291
	return (boutonRadioNomSci.length > 0 && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
291
	return (boutonRadioNomSci.length > 0 && boutonRadioNomSci.attr("checked") != "undefined" && boutonRadioNomSci.attr("checked") == "checked");
292
}
292
}
293
 
293
 
294
/**------------ Fonctions de gestion de l'affichage des valeurs par defaut ----------------------*/
294
/**------------ Fonctions de gestion de l'affichage des valeurs par defaut ----------------------*/
295
function gererAffichageValeursParDefaut() {
295
function gererAffichageValeursParDefaut() {
296
		$('input[name="type_nom"]').click(function() {
296
		$('input[name="type_nom"]').click(function() {
297
			changerPlaceHolderNom();
297
			changerPlaceHolderNom();
298
		});
298
		});
299
		changerPlaceHolderNom();
299
		changerPlaceHolderNom();
300
		$('input').click(function() {
300
		$('input').click(function() {
301
			$(this).attr('placeholder', '');			
301
			$(this).attr('placeholder', '');			
302
		});
302
		});
303
}
303
}
304
 
304
 
305
function changerPlaceHolderNom() {
305
function changerPlaceHolderNom() {
306
	if(nomSciEstDemande()) {
306
	if(nomSciEstDemande()) {
307
		$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_SCI);
307
		$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_SCI);
308
	} else {
308
	} else {
309
		$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_VERNA);
309
		$('#nom').attr('placeholder',VALEUR_DEFAUT_NOM_VERNA);
310
	}
310
	}
311
}
311
}
312
 
312
 
313
/**------------ Fonctions de gestion du zoom sur les images affichées dans les résultats de recherche ----------------------*/
313
/**------------ Fonctions de gestion du zoom sur les images affichées dans les résultats de recherche ----------------------*/
314
function gererClicIllustrationsResultats() {
314
function gererClicIllustrationsResultats() {
315
	$('.illustration_resultat_cel').click(function() {
315
	$('.illustration_resultat_cel').click(function() {
316
		var url = $(this).attr('src');
316
		var url = $(this).attr('src');
317
		var titre = trouverNomTaxon($(this));
317
		var titre = trouverNomTaxon($(this));
318
		var url = URL_BASE_POPUP+"?module=popup-galerie&action=fiche&num_nom="+$(this).attr('data-num-nom')+"&titre="+titre+"&referentiel="+REFERENTIEL;
318
		var url = URL_BASE_POPUP+"?module=popup-galerie&action=fiche&num_nom="+$(this).attr('data-num-nom')+"&titre="+titre+"&referentiel="+REFERENTIEL;
319
		window.open(url, '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(700)+', height='+(650));
319
		window.open(url, '', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(700)+', height='+(650));
320
	}); 
320
	}); 
321
	
321
	
322
	$('.illustration_resultat_choro').click(function() {
322
	$('.illustration_resultat_choro').click(function() {
323
		var url = $(this).attr('src').replace('108x101','432x404');
323
		var url = $(this).attr('src').replace('108x101','432x404');
324
		var titre = 'Chorologie du taxon '+trouverNomTaxon($(this));
324
		var titre = 'Chorologie du taxon '+trouverNomTaxon($(this));
325
		ouvrirFenetreIllustrationResultat(url, titre, 432, 404);
325
		ouvrirFenetreIllustrationResultat(url, titre, 432, 404);
326
	}); 
326
	}); 
327
	
327
	
328
	$('.illustration_resultat_coste').click(function() {
328
	$('.illustration_resultat_coste').click(function() {
329
		var url = $(this).attr('src');
329
		var url = $(this).attr('src');
330
		var titre = 'Illustration de Coste du taxon '+trouverNomTaxon($(this));
330
		var titre = 'Illustration de Coste du taxon '+trouverNomTaxon($(this));
331
		ouvrirFenetreIllustrationResultat(url, titre, 400, 400);
331
		ouvrirFenetreIllustrationResultat(url, titre, 400, 400);
332
	}); 
332
	}); 
333
}
333
}
334
 
334
 
335
function trouverNomTaxon(objet) {
335
function trouverNomTaxon(objet) {
336
	nom = "";
336
	nom = "";
337
	if(nomVernaculaireEstDemande()) {
337
	if(nomVernaculaireEstDemande()) {
338
		nom = objet.parent().parent().find('a.lien_fiche_eflore').text();
338
		nom = objet.parent().parent().find('a.lien_fiche_eflore').text();
339
	} else {
339
	} else {
340
		nom = objet.parent().find('.nom-sci a.lien_fiche_eflore').text();
340
		nom = objet.parent().find('.nom-sci a.lien_fiche_eflore').text();
341
	}
341
	}
342
	return nom;
342
	return nom;
343
}
343
}
344
 
344
 
345
function ouvrirFenetreIllustrationResultat(url, titre, hauteur, largeur) {
345
function ouvrirFenetreIllustrationResultat(url, titre, hauteur, largeur) {
346
	var fenetre = window.open('_blank', '','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(largeur+17)+', height='+(hauteur+17));
346
	var fenetre = window.open('_blank', '','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no, width='+(largeur+17)+', height='+(hauteur+17));
347
	var tmp = fenetre.document;
347
	var tmp = fenetre.document;
348
	tmp.write('<html><head><title>'+titre+'</title>');
348
	tmp.write('<html><head><title>'+titre+'</title>');
349
	tmp.write('</head><body>');
349
	tmp.write('</head><body>');
350
	tmp.write('<p style="height='+hauteur+'px;text-align:center;line-height='+hauteur+'px;"><img id="image_agrandie" height="'+hauteur+'" width="'+largeur+'" style="vertical-align:middle;" src="'+url+'" /></p>');
350
	tmp.write('<p style="height='+hauteur+'px;text-align:center;line-height='+hauteur+'px;"><img id="image_agrandie" height="'+hauteur+'" width="'+largeur+'" style="vertical-align:middle;" src="'+url+'" /></p>');
351
	tmp.write('</body></html>');
351
	tmp.write('</body></html>');
352
	tmp.close();
352
	tmp.close();
353
}
353
}
354
 
354
 
355
/*
355
/*
356
 * jQuery UI Autocomplete HTML Extension
356
 * jQuery UI Autocomplete HTML Extension
357
 *
357
 *
358
 * Copyright 2010, Scott González (http://scottgonzalez.com)
358
 * Copyright 2010, Scott González (http://scottgonzalez.com)
359
 * Dual licensed under the MIT or GPL Version 2 licenses.
359
 * Dual licensed under the MIT or GPL Version 2 licenses.
360
 *
360
 *
361
 * http://github.com/scottgonzalez/jquery-ui-extensions
361
 * http://github.com/scottgonzalez/jquery-ui-extensions
362
 * 
362
 * 
363
 * Adaptation par Aurélien Peronnet pour la mise en gras des noms de taxons valides
363
 * Adaptation par Aurélien Peronnet pour la mise en gras des noms de taxons valides
364
 */
364
 */
365
(function( $ ) {
365
(function( $ ) {
366
	var proto = $.ui.autocomplete.prototype,
366
	var proto = $.ui.autocomplete.prototype,
367
		initSource = proto._initSource;
367
		initSource = proto._initSource;
368
	
368
	
369
	function filter( array, term ) {
369
	function filter( array, term ) {
370
		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
370
		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
371
		return $.grep( array, function(value) {
371
		return $.grep( array, function(value) {
372
			return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
372
			return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
373
		});
373
		});
374
	}
374
	}
375
	
375
	
376
	$.extend( proto, {
376
	$.extend( proto, {
377
		_initSource: function() {
377
		_initSource: function() {
378
			if (this.options.html && $.isArray(this.options.source) ) {
378
			if (this.options.html && $.isArray(this.options.source) ) {
379
				this.source = function( request, response ) {
379
				this.source = function( request, response ) {
380
					response( filter( this.options.source, request.term ) );
380
					response( filter( this.options.source, request.term ) );
381
				};
381
				};
382
			} else {
382
			} else {
383
				initSource.call( this );
383
				initSource.call( this );
384
			}
384
			}
385
		},
385
		},
386
		_renderItem: function( ul, item) {
386
		_renderItem: function( ul, item) {
387
			if (item.retenu == true) {
387
			if (item.retenu == true) {
388
				item.label = "<strong>"+item.label+"</strong>";
388
				item.label = "<strong>"+item.label+"</strong>";
389
			}
389
			}
390
			var classe = (nomRechercheEnCours == 'nom_sci' && nomSciEstDemande()) ? 'class="autocompletion_nom"' : '';
390
			var classe = (nomRechercheEnCours == 'nom_sci' && nomSciEstDemande()) ? 'class="autocompletion_nom"' : '';
391
			return $("<li "+classe+"></li>")
391
			return $("<li "+classe+"></li>")
392
				.data("item.autocomplete", item)
392
				.data("item.autocomplete", item)
393
				.append( $("<a></a>")[ this.options.html ? "html" : "text" ](item.label))
393
				.append( $("<a></a>")[ this.options.html ? "html" : "text" ](item.label))
394
				.appendTo(ul);
394
				.appendTo(ul);
395
		}
395
		}
396
	});
396
	});
397
})( jQuery );
397
})( jQuery );