Subversion Repositories eFlore/Applications.cel

Rev

Rev 3046 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3046 Rev 3047
1
// Héritage !!
1
// Héritage !!
2
function WidgetSaisieBellesdemarue() {
2
function WidgetSaisieBellesdemarue() {
3
	this.markerDeb = undefined;
3
	this.markerDeb = undefined;
4
	this.latLngDeb = undefined;
4
	this.latLngDeb = undefined;
5
	this.markerFin = undefined;
5
	this.markerFin = undefined;
6
	this.latLngCentre = undefined;
6
	this.latLngCentre = undefined;
7
	this.latLngFin = undefined;
7
	this.latLngFin = undefined;
8
	this.ligneRue = undefined;
8
	this.ligneRue = undefined;
9
	this.premierDeplacement = true;
9
	this.premierDeplacement = true;
10
	this.valeurChamp = "";
10
	this.valeurChamp = "";
11
	this.avertissementDeuxPhotosAffiche = false;
11
	this.avertissementDeuxPhotosAffiche = false;
12
	this.googleMapMarqueurDebutUrl = null;
12
	this.googleMapMarqueurDebutUrl = null;
13
	this.googleMapMarqueurFinUrl = null;
13
	this.googleMapMarqueurFinUrl = null;
14
	this.ville = null;
14
	this.ville = null;
15
	this.supprimerIconeUrl = null;
15
	this.supprimerIconeUrl = null;
16
	this.serviceTraceRueUrl = null;
16
	this.serviceTraceRueUrl = null;
17
	this.taxons = {};
17
	this.taxons = {};
18
	this.listeRues = {};
18
	this.listeRues = {};
19
	this.indexRueSelectionnee = 0;
19
	this.indexRueSelectionnee = 0;
20
	this.requeteRechercheRue = null;
20
	this.requeteRechercheRue = null;
21
	this.aucuneRueSelectionnee = "Aucune rue sélectionnée";
21
	this.aucuneRueSelectionnee = "Aucune rue sélectionnée";
22
	this.nomDeRueInconnue = "Nom de rue inconnu";
22
	this.nomDeRueInconnue = "Nom de rue inconnu";
23
	this.zoneGeo = null;
23
	this.zoneGeo = null;
24
	this.groupeZonesGeo = null;
24
	this.groupeZonesGeo = null;
25
	this.serviceCoordSearchUrl = "";
25
	this.serviceCoordSearchUrl = "";
26
}
26
}
27
WidgetSaisieBellesdemarue.prototype = new WidgetSaisie();
27
WidgetSaisieBellesdemarue.prototype = new WidgetSaisie();
28
 
28
 
29
//surcharge
29
//surcharge
30
WidgetSaisieBellesdemarue.prototype.initialiserGoogleMap = function() {
30
WidgetSaisieBellesdemarue.prototype.initialiserGoogleMap = function() {
31
	// centrage
31
	// centrage
32
	this.latLng = new google.maps.LatLng(50.8504500, 4.3487800);// Bruxelles par défaut
32
	this.latLng = new google.maps.LatLng(50.8504500, 4.3487800);// Bruxelles par défaut
33
	
33
	
34
	var options = {
34
	var options = {
35
			zoom: 11, // avant : 16
35
			zoom: 11, // avant : 16
36
			center: this.latLng,
36
			center: this.latLng,
37
			mapTypeId: google.maps.MapTypeId.HYBRID,
37
			mapTypeId: google.maps.MapTypeId.HYBRID,
38
			mapTypeControlOptions: {
38
			mapTypeControlOptions: {
39
				mapTypeIds: ['OSM',
39
				mapTypeIds: ['OSM',
40
					google.maps.MapTypeId.ROADMAP,
40
					google.maps.MapTypeId.ROADMAP,
41
					google.maps.MapTypeId.HYBRID,
41
					google.maps.MapTypeId.HYBRID,
42
					google.maps.MapTypeId.SATELLITE,
42
					google.maps.MapTypeId.SATELLITE,
43
					google.maps.MapTypeId.TERRAIN]}
43
					google.maps.MapTypeId.TERRAIN]}
44
		};
44
		};
45
 
45
 
46
	// Ajout de la couche OSM à la carte
46
	// Ajout de la couche OSM à la carte
47
	osmMapType = new google.maps.ImageMapType({
47
	osmMapType = new google.maps.ImageMapType({
48
		getTileUrl: function(coord, zoom) {
48
		getTileUrl: function(coord, zoom) {
49
			return 'http://tile.openstreetmap.org/' + zoom + '/' + coord.x + '/' + coord.y + '.png';
49
			return 'http://tile.openstreetmap.org/' + zoom + '/' + coord.x + '/' + coord.y + '.png';
50
		},
50
		},
51
		tileSize: new google.maps.Size(256, 256),
51
		tileSize: new google.maps.Size(256, 256),
52
		isPng: true,
52
		isPng: true,
53
		alt: 'OpenStreetMap',
53
		alt: 'OpenStreetMap',
54
		name: 'OSM',
54
		name: 'OSM',
55
		maxZoom: 19
55
		maxZoom: 19
56
	});
56
	});
57
 
57
 
58
	// Création de la carte Google
58
	// Création de la carte Google
59
	this.map = new google.maps.Map(document.getElementById('map-canvas'), options); //affiche la google map dans la div map_canvas
59
	this.map = new google.maps.Map(document.getElementById('map-canvas'), options); //affiche la google map dans la div map_canvas
60
	this.map.mapTypes.set('OSM', osmMapType);
60
	this.map.mapTypes.set('OSM', osmMapType);
61
	
61
	
62
	// Création du Geocoder
62
	// Création du Geocoder
63
	this.geocoder = new google.maps.Geocoder();
63
	this.geocoder = new google.maps.Geocoder();
64
 
64
 
65
	// Marqueur google draggable
65
	// Marqueur google draggable
66
	this.marker = new google.maps.Marker({
66
	this.marker = new google.maps.Marker({
67
		map: this.map,
67
		map: this.map,
68
		draggable: true,
68
		draggable: true,
69
		title: 'Ma station',
69
		title: 'Ma station',
70
		icon: this.googleMapMarqueurUrl,
70
		icon: this.googleMapMarqueurUrl,
71
		position: this.latLng
71
		position: this.latLng
72
	});
72
	});
73
 
73
 
74
	this.initialiserMarker(this.latLng);
74
	this.initialiserMarker(this.latLng);
75
 
75
 
76
	// intéraction carte
76
	// intéraction carte
77
	$("#geolocaliser").on('click', this.geolocaliser.bind(this));
77
	$("#geolocaliser").on('click', this.geolocaliser.bind(this));
78
	google.maps.event.addListener(this.marker, 'dragend', this.surDeplacementMarker.bind(this));
78
	google.maps.event.addListener(this.marker, 'dragend', this.surDeplacementMarker.bind(this));
79
	google.maps.event.addListener(this.map, 'click', this.surClickDansCarte.bind(this));
79
	google.maps.event.addListener(this.map, 'click', this.surClickDansCarte.bind(this));
80
};
80
};
81
 
81
 
82
//surcharge
82
//surcharge
83
WidgetSaisieBellesdemarue.prototype.initForm = function() {
83
WidgetSaisieBellesdemarue.prototype.initForm = function() {
84
	// super() à la main - toute autre manière de faire est über-komplex
84
	// super() à la main - toute autre manière de faire est über-komplex
85
	WidgetSaisie.prototype.initForm.call(this);
85
	WidgetSaisie.prototype.initForm.call(this);
86
 
86
 
87
	this.surChangementTaxonListe();
87
	this.surChangementTaxonListe();
88
	$('#taxon-liste').on('change', this.surChangementTaxonListe);
88
	$('#taxon-liste').on('change', this.surChangementTaxonListe);
89
	if (this.debug) {
89
	if (this.debug) {
90
		console.log('Selected taxon:'+$('#taxon-liste option:selected').val());
90
		console.log('Selected taxon:'+$('#taxon-liste option:selected').val());
91
	}
91
	}
92
	$('#taxon-liste').on('blur', this.surChangementValeurTaxon);
92
	$('#taxon-liste').on('blur', this.surChangementValeurTaxon);
93
	$('#taxon').on('blur', this.surChangementValeurTaxon);
93
	$('#taxon').on('blur', this.surChangementValeurTaxon);
94
 
94
 
95
	this.surChangementMilieuListe();
95
	this.surChangementMilieuListe();
96
	$('#milieu').on('change', this.surChangementMilieuListe);
96
	$('#milieu').on('change', this.surChangementMilieuListe);
97
};
97
};
98
 
98
 
99
//surcharge
99
//surcharge
100
WidgetSaisieBellesdemarue.prototype.initEvts = function() {
100
WidgetSaisieBellesdemarue.prototype.initEvts = function() {
101
	var lthis = this;
101
	var lthis = this;
102
	// super() à la main - toute autre manière de faire est über-komplex
102
	// super() à la main - toute autre manière de faire est über-komplex
103
	WidgetSaisie.prototype.initEvts.call(this);
103
	WidgetSaisie.prototype.initEvts.call(this);
104
 
104
 
105
	$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
105
	$('.dropdown-menu input, .dropdown-menu label').on('click', function(event) {
106
		event.stopPropagation();
106
		event.stopPropagation();
107
	});
107
	});
108
	$('#fichier').off(); // elever l'écouteur d'événements de base
108
	$('#fichier').off(); // elever l'écouteur d'événements de base
109
	$('#fichier').on('click change', function(event) {
109
	$('#fichier').on('click change', function(event) {
110
		
-
 
111
		if($("#photos-conteneur #miniatures .miniature").length == 1 && ! lthis.avertissementDeuxPhotosAffiche) {
-
 
112
			messageAvertissement = "Attention: \n"+
-
 
113
			"Sélectionnez uniquement les photos correspondantes à une seule plante \n"+
-
 
114
			"(c'est à dire correspondant à un seul individu d'une espèce donnée) \n"+
-
 
115
			"vue dans le tronçon de rue inventoriée ";
-
 
116
			if(window.confirm(messageAvertissement)) {
-
 
117
				lthis.avertissementDeuxPhotosAffiche = true;
-
 
118
				return true;
-
 
119
			} else {
-
 
120
				return false;
-
 
121
			}
-
 
122
		}
-
 
123
		if ($(this).val().length > 0) {
110
		if ($(this).val().length > 0) {
124
			arreter(event);
111
			arreter(event);
125
			var options = {
112
			var options = {
126
				success: lthis.afficherMiniature.bind(lthis), // post-submit callback
113
				success: lthis.afficherMiniature.bind(lthis), // post-submit callback
127
				dataType: 'xml', // 'xml', 'script', or 'json' (expected server response type)
114
				dataType: 'xml', // 'xml', 'script', or 'json' (expected server response type)
128
				resetForm: true // reset the form after successful submit
115
				resetForm: true // reset the form after successful submit
129
			};
116
			};
130
			$('#miniature').append(
117
			$('#miniature').append(
131
				'<img id="miniature-chargement" class="miniature" alt="chargement" src="'+ this.chargementImageIconeUrl +'"/>');
118
				'<img id="miniature-chargement" class="miniature" alt="chargement" src="'+ this.chargementImageIconeUrl +'"/>');
132
			$('#ajouter-obs').attr('disabled', 'disabled');
119
			$('#ajouter-obs').attr('disabled', 'disabled');
133
			if (lthis.verifierFormat($(this).val())) {
120
			if (lthis.verifierFormat($(this).val())) {
134
				$('#form-upload').ajaxSubmit(options);
121
				$('#form-upload').ajaxSubmit(options);
135
			} else {
122
			} else {
136
				$('#form-upload')[0].reset();
123
				$('#form-upload')[0].reset();
137
				window.alert("Le format de fichier n'est pas supporté, les formats acceptés sont "+	$('#fichier').attr('accept'));
124
				window.alert("Le format de fichier n'est pas supporté, les formats acceptés sont "+	$('#fichier').attr('accept'));
138
			}
125
			}
139
			return false;
126
			return false;
140
		}
127
		}
141
	});
128
	});
142
 
129
 
143
	$('.cb-milieux').on('click', function(event) {
130
	$('.cb-milieux').on('click', function(event) {
144
		$(this).valid();
131
		$(this).valid();
145
		event.stopPropagation();
132
		event.stopPropagation();
146
	});
133
	});
147
 
134
 
148
	// Défilement des photos
135
	// Défilement des photos
149
	$('body').on('click', '.defilement-control-zone', function(event) {
136
	$('body').on('click', '.defilement-control-zone', function(event) {
150
		lthis.defilerMiniatures($(this));
137
		lthis.defilerMiniatures($(this));
151
	});
138
	});
152
	$('body').on('mouseover', '.defilement-control-zone', function(event) {
139
	$('body').on('mouseover', '.defilement-control-zone', function(event) {
153
		$('.defilement-control', this).removeClass('hidden');
140
		$('.defilement-control', this).removeClass('hidden');
154
	});
141
	});
155
	$('body').on('mouseout', '.defilement-control-zone', function(event) {
142
	$('body').on('mouseout', '.defilement-control-zone', function(event) {
156
		$('.defilement-control', this).addClass('hidden');
143
		$('.defilement-control', this).addClass('hidden');
157
	});
144
	});
158
 
145
 
159
	$('#photo-placeholder').click(function(event) {
146
	$('#photo-placeholder').click(function(event) {
160
		$('#fichier').click();
147
		$('#fichier').click();
161
	});
148
	});
162
	$('#geolocaliser').on('click', this.geolocaliser.bind(this));
149
	$('#geolocaliser').on('click', this.geolocaliser.bind(this));
163
 
150
 
164
};
151
};
165
 
152
 
166
/**
153
/**
167
 * AUTO-COMPLÉTION Noms Scientifiques => OK
154
 * AUTO-COMPLÉTION Noms Scientifiques => OK
168
 * sélectionne un nom et puis qu'on le remplacer par un nom non valide
155
 * sélectionne un nom et puis qu'on le remplacer par un nom non valide
169
 * Garder la trace de la valeur permet de vider le nn lorsqu'on
156
 * Garder la trace de la valeur permet de vider le nn lorsqu'on
170
 */
157
 */
171
/*
158
/*
172
WidgetSaisieBellesdemarue.prototype.ajouterAutocompletionNoms = function() {
159
WidgetSaisieBellesdemarue.prototype.ajouterAutocompletionNoms = function() {
173
	var lthis = this;
160
	var lthis = this;
174
	$('#taxon').autocomplete({
161
	$('#taxon').autocomplete({
175
		source: function(requete, add){
162
		source: function(requete, add){
176
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
163
			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
177
 
164
 
178
			var url = lthis.getUrlAutocompletionNomsSci();
165
			var url = lthis.getUrlAutocompletionNomsSci();
179
			$.getJSON(url, function(data) {
166
			$.getJSON(url, function(data) {
180
				var suggestions = lthis.traiterRetourNomsSci(data);
167
				var suggestions = lthis.traiterRetourNomsSci(data);
181
				add(suggestions);
168
				add(suggestions);
182
			});
169
			});
183
		},
170
		},
184
		html: true
171
		html: true
185
	});
172
	});
186
 
173
 
187
	$('#taxon').bind('autocompleteselect', function(event, ui) {
174
	$('#taxon').bind('autocompleteselect', function(event, ui) {
188
		$('#taxon').data(ui.item);
175
		$('#taxon').data(ui.item);
189
		lthis.valeurChamp = $('#taxon').val();
176
		lthis.valeurChamp = $('#taxon').val();
190
		if (ui.item.retenu == true) {
177
		if (ui.item.retenu == true) {
191
			$('#taxon').addClass('ns-retenu');
178
			$('#taxon').addClass('ns-retenu');
192
		} else {
179
		} else {
193
			$('#taxon').removeClass('ns-retenu');
180
			$('#taxon').removeClass('ns-retenu');
194
		}
181
		}
195
	});
182
	});
196
	
183
	
197
	$('#taxon').bind('keypress', function() {
184
	$('#taxon').bind('keypress', function() {
198
		if(lthis.valeurChamp != $('#taxon').val()) {
185
		if(lthis.valeurChamp != $('#taxon').val()) {
199
			$('#taxon').data('numNomSel', '');
186
			$('#taxon').data('numNomSel', '');
200
		}
187
		}
201
		lthis.valeurChamp = $('#taxon').val();
188
		lthis.valeurChamp = $('#taxon').val();
202
	});
189
	});
203
};
190
};
204
 
191
 
205
*/
192
*/
206
 
193
 
207
// surcharge
194
// surcharge
208
WidgetSaisieBellesdemarue.prototype.configurerFormValidator = function() {
195
WidgetSaisieBellesdemarue.prototype.configurerFormValidator = function() {
209
	$.validator.addMethod(
196
	$.validator.addMethod(
210
		'dateCel',
197
		'dateCel',
211
		function (value, element) {
198
		function (value, element) {
212
			return value == '' || (/^[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{4}$/.test(value));
199
			return value == '' || (/^[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{4}$/.test(value));
213
		},
200
		},
214
		'Format : jj/mm/aaaa. Date incomplète, utiliser 0, exemple : 00/12/2011.');
201
		'Format : jj/mm/aaaa. Date incomplète, utiliser 0, exemple : 00/12/2011.');
215
 
202
 
216
	$.extend($.validator.defaults, {
203
	$.extend($.validator.defaults, {
217
		ignore: [],// Forcer Jquery Validate à examiner les éléments avec en display:none;
204
		ignore: [],// Forcer Jquery Validate à examiner les éléments avec en display:none;
218
		highlight: function(element) {
205
		highlight: function(element) {
219
			$(element).closest('.control-group').removeClass('success').addClass('error');
206
			$(element).closest('.control-group').removeClass('success').addClass('error');
220
		},
207
		},
221
		success: function(element) {
208
		success: function(element) {
222
			element.text('OK!').addClass('valid');
209
			element.text('OK!').addClass('valid');
223
			element.closest('.control-group').removeClass('error').addClass('success');
210
			element.closest('.control-group').removeClass('error').addClass('success');
224
 
211
 
225
			if (element.attr('id') == 'taxon' && $('#taxon').val() != '') {
212
			if (element.attr('id') == 'taxon' && $('#taxon').val() != '') {
226
				// Si le taxon n'est pas lié au référentiel, on vide le data associé
213
				// Si le taxon n'est pas lié au référentiel, on vide le data associé
227
				if ($('#taxon').data('value') != $('#taxon').val()) {
214
				if ($('#taxon').data('value') != $('#taxon').val()) {
228
					$('#taxon').data('numNomSel', '');
215
					$('#taxon').data('numNomSel', '');
229
					$('#taxon').data('nomRet', '');
216
					$('#taxon').data('nomRet', '');
230
					$('#taxon').data('numNomRet', '');
217
					$('#taxon').data('numNomRet', '');
231
					$('#taxon').data('nt', '');
218
					$('#taxon').data('nt', '');
232
					$('#taxon').data('famille', '');
219
					$('#taxon').data('famille', '');
233
				}
220
				}
234
			}
221
			}
235
		}
222
		}
236
	});
223
	});
237
};
224
};
238
 
225
 
239
// surcharge
226
// surcharge
240
WidgetSaisieBellesdemarue.prototype.definirReglesFormValidator = function() {
227
WidgetSaisieBellesdemarue.prototype.definirReglesFormValidator = function() {
241
	$('#form-observateur').validate({
228
	$('#form-observateur').validate({
242
		rules: {
229
		rules: {
243
			courriel: {
230
			courriel: {
244
				required: true,
231
				required: true,
245
				email: true},
232
				email: true},
246
			courriel_confirmation: {
233
			courriel_confirmation: {
247
				equalTo: '#courriel'},
234
				equalTo: '#courriel'},
248
			prenom: {
235
			prenom: {
249
				required: true},
236
				required: true},
250
			nom: {
237
			nom: {
251
				required: true}
238
				required: true}
252
		}
239
		}
253
	});
240
	});
254
	$('#form-obs').validate({
241
	$('#form-obs').validate({
255
		rules: {
242
		rules: {
256
			latitude : {
243
			latitude : {
257
				required: true,
244
				required: true,
258
				range: [-90, 90]
245
				range: [-90, 90]
259
			},
246
			},
260
			longitude: {
247
			longitude: {
261
				required: true,
248
				required: true,
262
				range: [-180, 180]
249
				range: [-180, 180]
263
			},
250
			},
264
			date: {
251
			date: {
265
				required: true,
252
				required: true,
266
				'dateCel' : true
253
				'dateCel' : true
267
			},
254
			},
268
			'taxon-liste': {
255
			'taxon-liste': {
269
				required: true
256
				required: true
270
			},
257
			},
271
			milieu: {
258
			milieu: {
272
				required: true,
259
				required: true,
273
				minlength: 1
260
				minlength: 1
274
			},
261
			},
275
			certitude: {
262
			certitude: {
276
				required: true
263
				required: true
277
			}
264
			}
278
		},
265
		},
279
		errorPlacement: function(error, element) {
266
		errorPlacement: function(error, element) {
280
			if (element.attr('name') == 'date') {
267
			if (element.attr('name') == 'date') {
281
				element.parent('.input-prepend').after(error);
268
				element.parent('.input-prepend').after(error);
282
			/*} else if (element.attr('name') == 'milieux[]') {
-
 
283
				error.insertAfter('#milieux-controls');*/
-
 
284
			} else if (element.attr('name') == 'certitude') {
269
			} else if (element.attr('name') == 'certitude') {
285
				error.insertAfter('#certitude-controls');
270
				error.insertAfter('#certitude-controls');
-
 
271
			} else if (element.attr('name') == 'longitude') { // on ignore "latitude" pour ne pas avoir de double erreur
-
 
272
				error.insertBefore('#info-commune');
286
			} else {
273
			} else {
287
				error.insertAfter(element);
274
				error.insertAfter(element);
288
			}
275
			}
289
		}
276
		}
290
	});
277
	});
291
};
278
};
292
 
279
 
293
WidgetSaisieBellesdemarue.prototype.validerFormulaire = function() {
280
WidgetSaisieBellesdemarue.prototype.validerFormulaire = function() {
294
	$observateur = $("#form-observateur").valid();
281
	$observateur = $("#form-observateur").valid();
295
	$obs = $("#form-obs").valid();
282
	$obs = $("#form-obs").valid();
296
	return ($observateur == true && $obs == true) ? true : false;
283
	return ($observateur == true && $obs == true) ? true : false;
297
};
284
};
298
 
285
 
299
WidgetSaisieBellesdemarue.prototype.surChangementTaxonListe = function() {
286
WidgetSaisieBellesdemarue.prototype.surChangementTaxonListe = function() {
300
	if ($('#taxon-liste').val() === '?') {
287
	if ($('#taxon-liste').val() === '?') {
301
		$('#taxon-input-groupe').removeClass('hidden');
288
		$('#taxon-input-groupe').removeClass('hidden');
302
	} else {
289
	} else {
303
		// $('#milieu-autre').val(''); paraît logique de faire ça mais méfiance
290
		// $('#milieu-autre').val(''); paraît logique de faire ça mais méfiance
304
		$('#taxon-input-groupe').addClass('hidden');
291
		$('#taxon-input-groupe').addClass('hidden');
305
	}
292
	}
306
};
293
};
307
 
294
 
308
WidgetSaisieBellesdemarue.prototype.surChangementMilieuListe = function() {
295
WidgetSaisieBellesdemarue.prototype.surChangementMilieuListe = function() {
309
	if ($('#milieu').val() === 'autres') {
296
	if ($('#milieu').val() === 'autres') {
310
		$('#milieu-autre-input-group').removeClass('hidden');
297
		$('#milieu-autre-input-group').removeClass('hidden');
311
	} else {
298
	} else {
312
		$('#milieu-autre').val('');
299
		$('#milieu-autre').val('');
313
		$('#milieu-autre-input-group').addClass('hidden');
300
		$('#milieu-autre-input-group').addClass('hidden');
314
	}
301
	}
315
};
302
};
-
 
303
 
-
 
304
// trouve la commune (zone géo de niveau 8) sous le pointeur, en mode mondial
316
 
305
// et pas seulement français (service zoneAdmin et non nomCommune)
317
WidgetSaisieBellesdemarue.prototype.trouverCommune = function(pos) {
306
WidgetSaisieBellesdemarue.prototype.trouverCommune = function(pos) {
318
	if (this.latLng == null) { // tentative de protection contre le démon de Prémilhat
307
	if (this.latLng == null) { // tentative de protection contre le démon de Prémilhat
319
		return;
308
		return;
320
	}
309
	}
321
	var lthis = this;
310
	var lthis = this;
322
	$(function() {
311
	$(function() {
323
 
312
 
324
		var url_service = lthis.serviceNomCommuneUrl;
313
		var url_service = lthis.serviceNomCommuneUrl;
325
 
314
 
326
		var urlNomCommuneFormatee = url_service.replace('{lat}', pos.lat()).replace('{lon}', pos.lng());
315
		var urlNomCommuneFormatee = url_service.replace('{lat}', pos.lat()).replace('{lon}', pos.lng());
327
		$.ajax({
316
		$.ajax({
328
			url : urlNomCommuneFormatee,
317
			url : urlNomCommuneFormatee,
329
			type : "GET",
318
			type : "GET",
330
			dataType : "jsonp",
319
			dataType : "jsonp",
331
			beforeSend : function() {
320
			beforeSend : function() {
332
				$(".commune-info").empty();
321
				$(".commune-info").empty();
333
				$("#dialogue-erreur .alert-txt").empty();
322
				$("#dialogue-erreur .alert-txt").empty();
334
			},
323
			},
335
			success : function(data, textStatus, jqXHR) {
324
			success : function(data, textStatus, jqXHR) {
336
				$(".commune-info").empty();
325
				$(".commune-info").empty();
337
				// mode mondial (service zoneAdmin et non nomCommune) :
-
 
338
				// en Belgique et en France, en général 8 = patelin @TODO bancal
326
				// en Belgique et en France, en général 8 = patelin @TODO bancal
339
				if ("8" in data) {
327
				if ("8" in data) {
340
					$("#commune-nom").append(data["8"].intitule);
328
					$("#commune-nom").append(data["8"].intitule);
341
					$("#marqueur-commune").data('commune', {'nom' : data["8"].nom, 'codeInsee' : null});
329
					$("#marqueur-commune").data('commune', {'nom' : data["8"].nom, 'codeInsee' : null});
342
				}
330
				}
343
			},
331
			},
344
			statusCode : {
332
			statusCode : {
345
			    500 : function(jqXHR, textStatus, errorThrown) {
333
			    500 : function(jqXHR, textStatus, errorThrown) {
346
					if (this.debug) {
334
					if (this.debug) {
347
						$("#dialogue-erreur .alert-txt").append('<p id="msg">Un problème est survenu lors de l\'appel au service fournissante le nom des communes.</p>');
335
						$("#dialogue-erreur .alert-txt").append('<p id="msg">Un problème est survenu lors de l\'appel au service fournissante le nom des communes.</p>');
348
						reponse = jQuery.parseJSON(jqXHR.responseText);
336
						reponse = jQuery.parseJSON(jqXHR.responseText);
349
						var erreurMsg = "";
337
						var erreurMsg = "";
350
						if (reponse != null) {
338
						if (reponse != null) {
351
							$.each(reponse, function (cle, valeur) {
339
							$.each(reponse, function (cle, valeur) {
352
								erreurMsg += valeur + "<br />";
340
								erreurMsg += valeur + "<br />";
353
							});
341
							});
354
						}
342
						}
355
 
343
 
356
						$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur 500 : '+errorThrown+"<br />"+erreurMsg+'</p>');
344
						$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur 500 : '+errorThrown+"<br />"+erreurMsg+'</p>');
357
					}
345
					}
358
			    }
346
			    }
359
			},
347
			},
360
			error : function(jqXHR, textStatus, errorThrown) {
348
			error : function(jqXHR, textStatus, errorThrown) {
361
				if (this.debug) {
349
				if (this.debug) {
362
					$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la recherche de la commune.</p>');
350
					$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la recherche de la commune.</p>');
363
					reponse = jQuery.parseJSON(jqXHR.responseText);
351
					reponse = jQuery.parseJSON(jqXHR.responseText);
364
					var erreurMsg = "";
352
					var erreurMsg = "";
365
					if (reponse != null) {
353
					if (reponse != null) {
366
						$.each(reponse, function (cle, valeur) {
354
						$.each(reponse, function (cle, valeur) {
367
							erreurMsg += valeur + "<br />";
355
							erreurMsg += valeur + "<br />";
368
						});
356
						});
369
					}
357
					}
370
 
358
 
371
					$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur Ajax : '+errorThrown+' (type : '+textStatus+') <br />'+erreurMsg+'</p>');
359
					$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur Ajax : '+errorThrown+' (type : '+textStatus+') <br />'+erreurMsg+'</p>');
372
				}
360
				}
373
			},
361
			},
374
			complete : function(jqXHR, textStatus) {
362
			complete : function(jqXHR, textStatus) {
375
				var debugMsg = extraireEnteteDebug(jqXHR);
363
				var debugMsg = extraireEnteteDebug(jqXHR);
376
				if (debugMsg != '') {
364
				if (debugMsg != '') {
377
					if (this.debug) {
365
					if (this.debug) {
378
						$("#dialogue-erreur .alert-txt").append('<pre class="msg-debug msg">Débogage : '+debugMsg+'</pre>');
366
						$("#dialogue-erreur .alert-txt").append('<pre class="msg-debug msg">Débogage : '+debugMsg+'</pre>');
379
					}
367
					}
380
				}
368
				}
381
				if ($("#dialogue-erreur .msg").length > 0) {
369
				if ($("#dialogue-erreur .msg").length > 0) {
382
					$("#dialogue-erreur").show();
370
					$("#dialogue-erreur").show();
383
				}
371
				}
384
			}
372
			}
385
		});
373
		});
386
	});
374
	});
387
};
375
};
388
 
376
 
389
/*
377
/*
390
WidgetSaisieBellesdemarue.prototype.surChangementValeurTaxon = function() {
378
WidgetSaisieBellesdemarue.prototype.surChangementValeurTaxon = function() {
391
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
379
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
392
	var nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special');
380
	var nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special');
393
	var numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
381
	var numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
394
	
382
	
395
	// Un nom non valide entraine automatiquement une certitude "à déterminer"
383
	// Un nom non valide entraine automatiquement une certitude "à déterminer"
396
	if(nomSpecial || !numNomSel) {
384
	if(nomSpecial || !numNomSel) {
397
		$('#certitude-adeterminer').attr('checked', 'checked');
385
		$('#certitude-adeterminer').attr('checked', 'checked');
398
	} else {
386
	} else {
399
		$('#certitude-adeterminer').removeAttr('checked');
387
		$('#certitude-adeterminer').removeAttr('checked');
400
	}
388
	}
401
};
389
};
-
 
390
*/
402
 
391
 
403
// surcharge
392
// surcharge
404
WidgetSaisieBellesdemarue.prototype.ajouterObs = function() {
393
WidgetSaisieBellesdemarue.prototype.ajouterObs = function() {
-
 
394
	// Fermeture automatique des dialogue de transmission de données
-
 
395
	// @WARNING TEST
-
 
396
	$('#dialogue-obs-transaction-ko').hide();
-
 
397
	$('#dialogue-obs-transaction-ok').hide();
-
 
398
 
-
 
399
	// obligation de fournir au moins une image
-
 
400
	var nbImages = $('#miniatures img').length;
-
 
401
	if (nbImages == 0) {
-
 
402
		$('#image-obligatoire').show();
-
 
403
	} else {
-
 
404
		$('#image-obligatoire').hide();
-
 
405
	}
-
 
406
 
405
	if (this.validerFormulaire() == true) {
407
	if (this.validerFormulaire() == true && nbImages == 0) {
-
 
408
		this.masquerPanneau('#dialogue-form-invalide');
406
		this.obsNbre = this.obsNbre + 1;
409
		this.obsNbre = this.obsNbre + 1;
407
		$('.obs-nbre').text(this.obsNbre);
410
		$(".obs-nbre").text(this.obsNbre);
408
		$('.obs-nbre').triggerHandler('changement');
411
		$(".obs-nbre").triggerHandler('changement');
409
		this.afficherObs();
412
		this.afficherObs();
410
		this.stockerObsData();
413
		this.stockerObsData();
411
		this.supprimerMiniatures();
414
		this.supprimerMiniatures();
412
	} else {
-
 
413
		// Affichage de tous les panneau cachés avec champ obligatoire
-
 
414
		var debRue = (this.latLngDeb == undefined || this.latLngDeb == this.latLngFin) ? false : true,
-
 
415
			finRue = (this.latLngFin == undefined || this.latLngDeb == this.latLngFin) ? false : true;
-
 
416
		if (debRue == false || finRue == false) {
415
		if(! this.especeImposee) {
417
			this.afficherPanneau('#dialogue-form-invalide-rue');
416
			$("#taxon").val("");
418
		} else {
-
 
419
			this.afficherPanneau('#dialogue-form-invalide');
417
			$("#taxon").data("numNomSel",undefined);
420
		}
418
		}
-
 
419
		$('#barre-progression-upload').attr('aria-valuemax', this.obsNbre);
-
 
420
		$('#barre-progression-upload .sr-only').text('0/'+this.obsNbre+" observations transmises");
-
 
421
	} else {
421
		this.montrerFormIdentite();
422
		this.afficherPanneau('#dialogue-form-invalide');
422
	}
423
	}
423
};
424
};
-
 
425
 
424
 
426
/*
425
// surcharge
427
// surcharge
426
WidgetSaisieBellesdemarue.prototype.afficherObs = function() {
428
WidgetSaisieBellesdemarue.prototype.afficherObs = function() {
427
	var numNomSel = ($('#taxon-liste').val() == '?') ? $('#taxon').data('numNomSel') : $('#taxon-liste').val(),
429
	var numNomSel = ($('#taxon-liste').val() == '?') ? $('#taxon').data('numNomSel') : $('#taxon-liste').val(),
428
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
430
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
429
		taxon = ($('#taxon-liste').val() == '?') ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
431
		taxon = ($('#taxon-liste').val() == '?') ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
430
		referentiel = (numNomSel == undefined) ? '' : '['+ this.nomSciReferentiel +']',
432
		referentiel = (numNomSel == undefined) ? '' : '['+ this.nomSciReferentiel +']',
431
		commune = $('#commune-nom').text(),
433
		commune = $('#commune-nom').text(),
432
		codeInsee = $('#commune-code-insee').text(),
434
		codeInsee = $('#commune-code-insee').text(),
433
		station = this.getValeurStation(),
435
		station = this.getValeurStation(),
434
		lat = $('input[name="latitude"]').val(),
436
		lat = $('input[name="latitude"]').val(),
435
		lng = $('input[name="longitude"]').val(),
437
		lng = $('input[name="longitude"]').val(),
436
		date = $('#date').val(),
438
		date = $('#date').val(),
437
		milieux = this.getMilieux(),
439
		milieux = this.getMilieux(),
438
		notes = (nomSpecial ? this.taxons[numNomSel]['nom_fr'] + ".<br />" : '') + $('#notes').val();
440
		notes = (nomSpecial ? this.taxons[numNomSel]['nom_fr'] + ".<br />" : '') + $('#notes').val();
439
 
441
 
440
	$('#liste-obs').prepend(
442
	$('#liste-obs').prepend(
441
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">' +
443
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">' +
442
			'<div class="span12">' +
444
			'<div class="span12">' +
443
				'<div class="well">' +
445
				'<div class="well">' +
444
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" ' +
446
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" ' +
445
						'title="Supprimer cette observation de la liste à transmettre">' +
447
						'title="Supprimer cette observation de la liste à transmettre">' +
446
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">' +
448
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">' +
447
							'<i class="icon-trash icon-white"></i>' +
449
							'<i class="icon-trash icon-white"></i>' +
448
						'</button>' +
450
						'</button>' +
449
					'</div> ' +
451
					'</div> ' +
450
					'<div class="row-fluid">' +
452
					'<div class="row-fluid">' +
451
						'<div class="span2 obs-miniatures">' +
453
						'<div class="span2 obs-miniatures">' +
452
						this.ajouterImgMiniatureAuTransfert() +
454
						this.ajouterImgMiniatureAuTransfert() +
453
						'</div>'+
455
						'</div>'+
454
						'<div class="span7">' +
456
						'<div class="span7">' +
455
							'<ul class="unstyled">' +
457
							'<ul class="unstyled">' +
456
								'<li>'+
458
								'<li>'+
457
									'<span class="nom-sci">' + taxon + '</span> ' +
459
									'<span class="nom-sci">' + taxon + '</span> ' +
458
									this.formaterNumNomSel(numNomSel) +
460
									this.formaterNumNomSel(numNomSel) +
459
									' observé à <br />' +
461
									' observé à <br />' +
460
									'<span class="commune">' + commune + '</span> ' +
462
									'<span class="commune">' + commune + '</span> ' +
461
									'(' + codeInsee + '), ' +
463
									'(' + codeInsee + '), ' +
462
									'<span class="station">' + station + '</span><br /> ' +
464
									'<span class="station">' + station + '</span><br /> ' +
463
									' le ' +
465
									' le ' +
464
									'<span class="date">' + date + '</span>' +
466
									'<span class="date">' + date + '</span>' +
465
								'</li>' +
467
								'</li>' +
466
								'<li>' +
468
								'<li>' +
467
									'Milieux : ' + milieux + ' ' + ' ; ' +
469
									'Milieux : ' + milieux + ' ' + ' ; ' +
468
								'</li>' +
470
								'</li>' +
469
								'<li>' +
471
								'<li>' +
470
									'Notes : ' + notes +
472
									'Notes : ' + notes +
471
								'</li>' +
473
								'</li>' +
472
							'</ul>' +
474
							'</ul>' +
473
						'</div>' +
475
						'</div>' +
474
					'</div>' +
476
					'</div>' +
475
				'</div>' +
477
				'</div>' +
476
			'</div>'+
478
			'</div>'+
477
		'</div>');
479
		'</div>');
478
	$('#zone-liste-obs').removeClass("hidden");
480
	$('#zone-liste-obs').removeClass("hidden");
479
};
481
};
480
 
482
 
481
WidgetSaisieBellesdemarue.prototype.getValeurStation = function() { 
483
WidgetSaisieBellesdemarue.prototype.getValeurStation = function() { 
482
	var station = "";
484
	var station = "";
483
	var valeurSelectionnee = $("#indication-nom-rue-nom").text().trim();
485
	var valeurSelectionnee = $("#indication-nom-rue-nom").text().trim();
484
	if(valeurSelectionnee == this.aucuneRueSelectionnee || valeurSelectionnee == this.nomDeRueInconnue) {
486
	if(valeurSelectionnee == this.aucuneRueSelectionnee || valeurSelectionnee == this.nomDeRueInconnue) {
485
		station = $('input[name="adresse"]').val().trim()
487
		station = $('input[name="adresse"]').val().trim()
486
	} else {
488
	} else {
487
		station = $("#indication-nom-rue-nom").text().trim();
489
		station = $("#indication-nom-rue-nom").text().trim();
488
	}
490
	}
489
	
491
	
490
	return station;
492
	return station;
491
}
493
}
492
 
494
 
493
WidgetSaisieBellesdemarue.prototype.ajouterImgMiniatureAuTransfert = function() {
495
WidgetSaisieBellesdemarue.prototype.ajouterImgMiniatureAuTransfert = function() {
494
	var html = '',
496
	var html = '',
495
		miniatures = '',
497
		miniatures = '',
496
		indicateurs = '',
498
		indicateurs = '',
497
		premiere = true,
499
		premiere = true,
498
		numero = 1;
500
		numero = 1;
499
	if ($('#miniatures img').length == 0) {
501
	if ($('#miniatures img').length == 0) {
500
		html = '<img class="miniature" alt="Aucune photo"src="'+ this.pasDePhotoIconeUrl +'" />';
502
		html = '<img class="miniature" alt="Aucune photo"src="'+ this.pasDePhotoIconeUrl +'" />';
501
	} else if ($('#miniatures img').length >= 1) {
503
	} else if ($('#miniatures img').length >= 1) {
502
		$('#miniatures img').each(function() {
504
		$('#miniatures img').each(function() {
503
			var visible = premiere ? 'miniature-selectionnee' : 'miniature-cachee',
505
			var visible = premiere ? 'miniature-selectionnee' : 'miniature-cachee',
504
				css = $(this).hasClass('b64') ? 'miniature b64' : 'miniature',
506
				css = $(this).hasClass('b64') ? 'miniature b64' : 'miniature',
505
				src = $(this).attr('src'),
507
				src = $(this).attr('src'),
506
				alt = $(this).attr('alt');
508
				alt = $(this).attr('alt');
507
 
509
 
508
			var miniature = '<img class="'+css+' '+visible+'"  alt="'+alt+'"src="'+src+'" />';
510
			var miniature = '<img class="'+css+' '+visible+'"  alt="'+alt+'"src="'+src+'" />';
509
			miniatures += miniature;
511
			miniatures += miniature;
510
 
512
 
511
			var indicateurActif = premiere ? 'active' : '';
513
			var indicateurActif = premiere ? 'active' : '';
512
			var indicateur = '<li class="' + indicateurActif + '" data-numero="' + numero++ + '"></li>';
514
			var indicateur = '<li class="' + indicateurActif + '" data-numero="' + numero++ + '"></li>';
513
			indicateurs += indicateur;
515
			indicateurs += indicateur;
514
 
516
 
515
			premiere = false;
517
			premiere = false;
516
		});
518
		});
517
 
519
 
518
		if ($('#miniatures img').length == 1) {
520
		if ($('#miniatures img').length == 1) {
519
			html = miniatures;
521
			html = miniatures;
520
		} else {
522
		} else {
521
			html =
523
			html =
522
				'<div class="defilement">' +
524
				'<div class="defilement">' +
523
					miniatures +
525
					miniatures +
524
					'<a class="defilement-control-zone gauche">' +
526
					'<a class="defilement-control-zone gauche">' +
525
					'	<span class="defilement-control gauche hidden">&#60;</span>' +
527
					'	<span class="defilement-control gauche hidden">&#60;</span>' +
526
					'</a>' +
528
					'</a>' +
527
					'<a class="defilement-control-zone droite">' +
529
					'<a class="defilement-control-zone droite">' +
528
					'	<span class="defilement-control droite hidden">&#62;</span>' +
530
					'	<span class="defilement-control droite hidden">&#62;</span>' +
529
					'</a>' +
531
					'</a>' +
530
					'<ol class="defilement-indicateurs">' + indicateurs + '</ol>' +
532
					'<ol class="defilement-indicateurs">' + indicateurs + '</ol>' +
531
				'</div>';
533
				'</div>';
532
		}
534
		}
533
	}
535
	}
534
	return html;
536
	return html;
535
};
537
};
536
 
538
 
537
WidgetSaisieBellesdemarue.prototype.defilerMiniatures = function(element) {
539
WidgetSaisieBellesdemarue.prototype.defilerMiniatures = function(element) {
538
	var miniatureSelectionne = element.siblings('img.miniature-selectionnee');
540
	var miniatureSelectionne = element.siblings('img.miniature-selectionnee');
539
	miniatureSelectionne.removeClass('miniature-selectionnee').addClass('miniature-cachee');
541
	miniatureSelectionne.removeClass('miniature-selectionnee').addClass('miniature-cachee');
540
	var miniatureAffichee = miniatureSelectionne;
542
	var miniatureAffichee = miniatureSelectionne;
541
 
543
 
542
	var indicateurActif = element.parent().find('.defilement-indicateurs .active');
544
	var indicateurActif = element.parent().find('.defilement-indicateurs .active');
543
	indicateurActif.removeClass('active');
545
	indicateurActif.removeClass('active');
544
 
546
 
545
	if (element.hasClass('defilement-control-zone') && element.hasClass('gauche')) {
547
	if (element.hasClass('defilement-control-zone') && element.hasClass('gauche')) {
546
		if (miniatureSelectionne.prev('.miniature').length != 0) {
548
		if (miniatureSelectionne.prev('.miniature').length != 0) {
547
			miniatureAffichee = miniatureSelectionne.prev('.miniature');
549
			miniatureAffichee = miniatureSelectionne.prev('.miniature');
548
			indicateurActif.prev().addClass('active');
550
			indicateurActif.prev().addClass('active');
549
		} else {
551
		} else {
550
			miniatureAffichee = miniatureSelectionne.siblings('.miniature').last();
552
			miniatureAffichee = miniatureSelectionne.siblings('.miniature').last();
551
			indicateurActif.siblings().last().addClass('active');
553
			indicateurActif.siblings().last().addClass('active');
552
		}
554
		}
553
	} else {
555
	} else {
554
		if (miniatureSelectionne.next('.miniature').length != 0) {
556
		if (miniatureSelectionne.next('.miniature').length != 0) {
555
			miniatureAffichee = miniatureSelectionne.next('.miniature');
557
			miniatureAffichee = miniatureSelectionne.next('.miniature');
556
			indicateurActif.next().addClass('active');
558
			indicateurActif.next().addClass('active');
557
		} else {
559
		} else {
558
			miniatureAffichee = miniatureSelectionne.siblings('.miniature').first();
560
			miniatureAffichee = miniatureSelectionne.siblings('.miniature').first();
559
			indicateurActif.siblings().first().addClass('active');
561
			indicateurActif.siblings().first().addClass('active');
560
		}
562
		}
561
	}
563
	}
562
	miniatureAffichee.addClass('miniature-selectionnee').removeClass('miniature-cachee');
564
	miniatureAffichee.addClass('miniature-selectionnee').removeClass('miniature-cachee');
563
};
565
};
564
 
566
 
565
WidgetSaisieBellesdemarue.prototype.formaterNumNomSel = function(numNomSel) {
567
WidgetSaisieBellesdemarue.prototype.formaterNumNomSel = function(numNomSel) {
566
	var nn = '';
568
	var nn = '';
567
	if (numNomSel == undefined) {
569
	if (numNomSel == undefined) {
568
		nn = '<span class="alert-error">[non lié au référentiel]</span>';
570
		nn = '<span class="alert-error">[non lié au référentiel]</span>';
569
	} else {
571
	} else {
570
		nn = '<span class="nn">[nn'+numNomSel+']</span>';
572
		nn = '<span class="nn">[nn'+numNomSel+']</span>';
571
	}
573
	}
572
	return nn;
574
	return nn;
573
};
575
};
574
 
576
 
575
// surcharge
577
// surcharge
576
WidgetSaisieBellesdemarue.prototype.surChangementReferentiel = function() {
578
WidgetSaisieBellesdemarue.prototype.surChangementReferentiel = function() {
577
	this.nomSciReferentiel = $('#referentiel').val();
579
	this.nomSciReferentiel = $('#referentiel').val();
578
	$('#taxon').val('');
580
	$('#taxon').val('');
579
};
581
};
580
 
582
 
581
// surcharge
583
// surcharge
582
WidgetSaisieBellesdemarue.prototype.stockerObsData = function() {
584
WidgetSaisieBellesdemarue.prototype.stockerObsData = function() {
583
	var lthis = this;
585
	var lthis = this;
584
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
586
	var nomHorsListe = $('#taxon-liste').val() == '?' ? true : false;
585
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
587
		nomSpecial = $('#taxon-liste option:selected').hasClass('nom-special'),
586
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
588
		numNomSel = nomHorsListe ? $('#taxon').data('numNomSel') : $('#taxon-liste').val();
587
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
589
	var nomSel = nomHorsListe ? $('#taxon').val() : $('#taxon-liste option:selected').data('nom-a-sauver'),
588
		nomRet = nomHorsListe ? $('#taxon').data('nomRet') : this.taxons[numNomSel]['nom_ret'],
590
		nomRet = nomHorsListe ? $('#taxon').data('nomRet') : this.taxons[numNomSel]['nom_ret'],
589
		numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : this.taxons[numNomSel]['num_nom_ret'],
591
		numNomRet = nomHorsListe ? $('#taxon').data('numNomRet') : this.taxons[numNomSel]['num_nom_ret'],
590
		numTaxon = nomHorsListe ? $('#taxon').data('nt') : this.taxons[numNomSel]['num_taxon'],
592
		numTaxon = nomHorsListe ? $('#taxon').data('nt') : this.taxons[numNomSel]['num_taxon'],
591
		famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
593
		famille = nomHorsListe ? $('#taxon').data('famille') : this.taxons[numNomSel]['famille'],
592
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
594
		referentiel = (numNomSel == undefined) ? '' : this.nomSciReferentiel,
593
		notes = (nomSpecial ? this.taxons[numNomSel]['nom_fr'] + '. ' : '') + $('#notes').val();
595
		notes = (nomSpecial ? this.taxons[numNomSel]['nom_fr'] + '. ' : '') + $('#notes').val();
594
		
596
		
595
		certitude = $('input[name=certitude]:checked').val();
597
		certitude = $('input[name=certitude]:checked').val();
596
		certitude = (certitude == undefined) ? '' : certitude;
598
		certitude = (certitude == undefined) ? '' : certitude;
597
 
599
 
598
	$('#liste-obs').data('obsId'+this.obsNbre, {
600
	$('#liste-obs').data('obsId'+this.obsNbre, {
599
		'date': $('#date').val(),
601
		'date': $('#date').val(),
600
		'notes': notes,
602
		'notes': notes,
601
 
603
 
602
		'station': this.getValeurStation(),
604
		'station': this.getValeurStation(),
603
		'latitude': $('#latitude').val(),
605
		'latitude': $('#latitude').val(),
604
		'longitude': $('#longitude').val(),
606
		'longitude': $('#longitude').val(),
605
		'commune_nom': $('#commune-nom').text(),
607
		'commune_nom': $('#commune-nom').text(),
606
		'commune_code_insee': $('#commune-code-insee').text(),
608
		'commune_code_insee': $('#commune-code-insee').text(),
607
 
609
 
608
		'nom_sel': nomSel,
610
		'nom_sel': nomSel,
609
		'num_nom_sel': numNomSel,
611
		'num_nom_sel': numNomSel,
610
		'nom_ret': nomRet,
612
		'nom_ret': nomRet,
611
		'num_nom_ret': numNomRet,
613
		'num_nom_ret': numNomRet,
612
		'num_taxon': numTaxon,
614
		'num_taxon': numTaxon,
613
		'famille': famille,
615
		'famille': famille,
614
		'referentiel': referentiel,
616
		'referentiel': referentiel,
615
		'certitude': certitude,
617
		'certitude': certitude,
616
		'milieu': lthis.getMilieux(),
618
		'milieu': lthis.getMilieux(),
617
 
619
 
618
		// Ajout des champs images
620
		// Ajout des champs images
619
		'image_nom': lthis.getNomsImgsOriginales(),
621
		'image_nom': lthis.getNomsImgsOriginales(),
620
 
622
 
621
		// Ajout des champs étendus de l'obs
623
		// Ajout des champs étendus de l'obs
622
		'obs_etendue': lthis.getObsChpEtendus()
624
		'obs_etendue': lthis.getObsChpEtendus()
623
	});
625
	});
624
	if (this.debug) {
626
	if (this.debug) {
625
		console.log($('#liste-obs').data('obsId'+this.obsNbre));
627
		console.log($('#liste-obs').data('obsId'+this.obsNbre));
626
	}
628
	}
627
};
629
};
628
 
630
 
629
WidgetSaisieBellesdemarue.prototype.getObsChpEtendus = function() {
631
WidgetSaisieBellesdemarue.prototype.getObsChpEtendus = function() {
630
	var champs = [];
632
	var champs = [];
631
	if (this.latLngDeb != undefined) {
633
	if (this.latLngDeb != undefined) {
632
		var latitudeDebutRue = {cle: 'latitudeDebutRue', label: 'Latitude du début de la rue', valeur: this.latLngDeb.lat().toFixed(5)};
634
		var latitudeDebutRue = {cle: 'latitudeDebutRue', label: 'Latitude du début de la rue', valeur: this.latLngDeb.lat().toFixed(5)};
633
		champs.push(latitudeDebutRue);
635
		champs.push(latitudeDebutRue);
634
		var longitudeDebutRue = {cle: 'longitudeDebutRue', label: 'Longitude du début de la rue', valeur: this.latLngDeb.lng().toFixed(5)};
636
		var longitudeDebutRue = {cle: 'longitudeDebutRue', label: 'Longitude du début de la rue', valeur: this.latLngDeb.lng().toFixed(5)};
635
		champs.push(longitudeDebutRue);
637
		champs.push(longitudeDebutRue);
636
	}
638
	}
637
	if (this.latLngFin != undefined) {
639
	if (this.latLngFin != undefined) {
638
		var latitudeFinRue = {cle: 'latitudeFinRue', label: 'Latitude de fin de la rue', valeur: this.latLngFin.lat().toFixed(5)};
640
		var latitudeFinRue = {cle: 'latitudeFinRue', label: 'Latitude de fin de la rue', valeur: this.latLngFin.lat().toFixed(5)};
639
		champs.push(latitudeFinRue);
641
		champs.push(latitudeFinRue);
640
		var longitudeFinRue = {cle: 'longitudeFinRue', label: 'Longitude de fin de la rue', valeur: this.latLngFin.lng().toFixed(5)};
642
		var longitudeFinRue = {cle: 'longitudeFinRue', label: 'Longitude de fin de la rue', valeur: this.latLngFin.lng().toFixed(5)};
641
		champs.push(longitudeFinRue);
643
		champs.push(longitudeFinRue);
642
	}
644
	}
643
 
645
 
644
	$('.obs-chp-etendu').each(function() {
646
	$('.obs-chp-etendu').each(function() {
645
		var valeur = $(this).val(),
647
		var valeur = $(this).val(),
646
			cle = $(this).attr('name'),
648
			cle = $(this).attr('name'),
647
			label = $(this).data('label');
649
			label = $(this).data('label');
648
		if (valeur != '') {
650
		if (valeur != '') {
649
			var chpEtendu = {cle: cle, label: label, valeur: valeur};
651
			var chpEtendu = {cle: cle, label: label, valeur: valeur};
650
			champs.push(chpEtendu);
652
			champs.push(chpEtendu);
651
		}
653
		}
652
	});
654
	});
653
	return champs;
655
	return champs;
654
};
656
};
655
*/
657
*/