| 1210 | jpm | 1 | //+---------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 2 | // GÉNÉRAL
 | 
        
           | 1249 | jpm | 3 | $(document).ready(function() {
 | 
        
           |  |  | 4 | 	$(window).on('beforeunload', function(event) {
 | 
        
           | 1493 | aurelien | 5 | 		return 'Êtes vous sûr de vouloir quiter la page?\nLes observations saisies mais non transmises seront perdues.';
 | 
        
           | 1249 | jpm | 6 | 	});
 | 
        
           |  |  | 7 | });
 | 
        
           |  |  | 8 | //+----------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 9 | // FONCTIONS GÉNÉRIQUES
 | 
        
           | 1210 | jpm | 10 | /**
 | 
        
           |  |  | 11 |  * Stope l'évènement courrant quand on clique sur un lien.
 | 
        
           |  |  | 12 |  * Utile pour Chrome, Safari...
 | 
        
           |  |  | 13 |  * @param evenement
 | 
        
           |  |  | 14 |  * @return
 | 
        
           |  |  | 15 |  */
 | 
        
           |  |  | 16 | function arreter(evenement) {
 | 
        
           |  |  | 17 | 	if (evenement.stopPropagation) {
 | 
        
           |  |  | 18 | 		evenement.stopPropagation();
 | 
        
           |  |  | 19 | 	}
 | 
        
           | 1249 | jpm | 20 | 	if (evenement.preventDefault) {
 | 
        
           |  |  | 21 | 		evenement.preventDefault();
 | 
        
           |  |  | 22 | 	}
 | 
        
           | 1210 | jpm | 23 | 	return false;
 | 
        
           |  |  | 24 | }
 | 
        
           |  |  | 25 |   | 
        
           | 1249 | jpm | 26 | function extraireEnteteDebug(jqXHR) {
 | 
        
           |  |  | 27 | 	var msgDebug = '';
 | 
        
           |  |  | 28 | 	if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
 | 
        
           |  |  | 29 | 		var debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
 | 
        
           |  |  | 30 | 		if (debugInfos != null) {
 | 
        
           |  |  | 31 | 			$.each(debugInfos, function (cle, valeur) {
 | 
        
           |  |  | 32 | 				msgDebug += valeur + "\n";
 | 
        
           |  |  | 33 | 			});
 | 
        
           |  |  | 34 | 		}
 | 
        
           |  |  | 35 | 	}
 | 
        
           |  |  | 36 | 	return msgDebug;
 | 
        
           |  |  | 37 | }
 | 
        
           | 1210 | jpm | 38 |   | 
        
           | 1249 | jpm | 39 | function afficherPanneau(selecteur) {
 | 
        
           |  |  | 40 | 	$(selecteur).fadeIn("slow").delay(DUREE_MESSAGE).fadeOut("slow");
 | 
        
           |  |  | 41 | }
 | 
        
           |  |  | 42 |   | 
        
           | 1210 | jpm | 43 | //+----------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 44 | //UPLOAD PHOTO : Traitement de l'image
 | 
        
           | 1249 | jpm | 45 | $(document).ready(function() {
 | 
        
           | 1210 | jpm | 46 |   | 
        
           | 1524 | aurelien | 47 | 	$(".effacer-miniature").click(function () {
 | 
        
           |  |  | 48 | 		supprimerMiniatures($(this));
 | 
        
           | 1210 | jpm | 49 | 	});
 | 
        
           | 1543 | aurelien | 50 |   | 
        
           | 1524 | aurelien | 51 | 	$("#fichier").bind('change', function (e) {
 | 
        
           |  |  | 52 | 		arreter(e);
 | 
        
           |  |  | 53 | 		var options = {
 | 
        
           |  |  | 54 | 			success: afficherMiniature, // post-submit callback
 | 
        
           |  |  | 55 | 			dataType: 'xml', // 'xml', 'script', or 'json' (expected server response type)
 | 
        
           |  |  | 56 | 			resetForm: true // reset the form after successful submit
 | 
        
           |  |  | 57 | 		};
 | 
        
           |  |  | 58 | 		$("#miniature").append('<img id="miniature-chargement" class="miniature" alt="chargement" src="'+CHARGEMENT_IMAGE_URL+'"/>');
 | 
        
           |  |  | 59 | 		$("#ajouter-obs").attr('disabled', 'disabled');
 | 
        
           |  |  | 60 | 		if(verifierFormat($("#fichier").val())) {
 | 
        
           |  |  | 61 | 			$("#form-upload").ajaxSubmit(options);
 | 
        
           |  |  | 62 | 		} else {
 | 
        
           |  |  | 63 | 			window.alert("Le format de fichier n'est pas supporté, les formats acceptés sont "+	$("#fichier").attr("accept"));
 | 
        
           | 1210 | jpm | 64 | 		}
 | 
        
           | 1524 | aurelien | 65 | 		return false;
 | 
        
           |  |  | 66 | 	});
 | 
        
           | 1418 | aurelien | 67 |   | 
        
           |  |  | 68 | 	if(ESPECE_IMPOSEE) {
 | 
        
           |  |  | 69 | 		$("#taxon").attr("disabled", "disabled");
 | 
        
           |  |  | 70 | 		$("#taxon-input-groupe").attr("title","");
 | 
        
           | 1419 | aurelien | 71 | 		var infosAssociee = new Object();
 | 
        
           |  |  | 72 | 		infosAssociee.label = INFOS_ESPECE_IMPOSEE.nom_sci_complet;
 | 
        
           |  |  | 73 | 		infosAssociee.value = INFOS_ESPECE_IMPOSEE.nom_sci_complet;
 | 
        
           |  |  | 74 | 		infosAssociee.nt = INFOS_ESPECE_IMPOSEE.num_taxonomique;
 | 
        
           |  |  | 75 | 		infosAssociee.nomSel = INFOS_ESPECE_IMPOSEE.nom_sci;
 | 
        
           |  |  | 76 | 		infosAssociee.nomSelComplet = INFOS_ESPECE_IMPOSEE.nom_sci_complet;
 | 
        
           |  |  | 77 | 		infosAssociee.numNomSel = INFOS_ESPECE_IMPOSEE.id;
 | 
        
           |  |  | 78 | 		infosAssociee.nomRet = INFOS_ESPECE_IMPOSEE["nom_retenu.libelle"];
 | 
        
           |  |  | 79 | 		infosAssociee.numNomRet = INFOS_ESPECE_IMPOSEE["nom_retenu.id"];
 | 
        
           |  |  | 80 | 		infosAssociee.famille = INFOS_ESPECE_IMPOSEE.famille;
 | 
        
           |  |  | 81 | 		infosAssociee.retenu = (INFOS_ESPECE_IMPOSEE.retenu == 'false') ? false : true;
 | 
        
           |  |  | 82 | 		$("#taxon").data(infosAssociee);
 | 
        
           | 1418 | aurelien | 83 | 	}
 | 
        
           | 1524 | aurelien | 84 |   | 
        
           |  |  | 85 | 	$('.effacer-miniature').live('click', function() {
 | 
        
           |  |  | 86 | 		$(this).parent().remove();
 | 
        
           |  |  | 87 | 	});
 | 
        
           | 1210 | jpm | 88 | });
 | 
        
           | 1249 | jpm | 89 |   | 
        
           | 1524 | aurelien | 90 | function verifierFormat(nom) {
 | 
        
           |  |  | 91 | 	var parts = nom.split('.');
 | 
        
           |  |  | 92 | 	extension = parts[parts.length - 1];
 | 
        
           |  |  | 93 | 	return (extension.toLowerCase() == 'jpeg' || extension.toLowerCase() == 'jpg');
 | 
        
           | 1210 | jpm | 94 | }
 | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 | function afficherMiniature(reponse) {
 | 
        
           |  |  | 97 | 	if (DEBUG) {
 | 
        
           |  |  | 98 | 		var debogage = $("debogage", reponse).text();
 | 
        
           | 1822 | aurelien | 99 | 		//console.log("Débogage upload : "+debogage);
 | 
        
           | 1210 | jpm | 100 | 	}
 | 
        
           |  |  | 101 | 	var message = $("message", reponse).text();
 | 
        
           |  |  | 102 | 	if (message != '') {
 | 
        
           |  |  | 103 | 		$("#miniature-msg").append(message);
 | 
        
           |  |  | 104 | 	} else {
 | 
        
           | 1524 | aurelien | 105 | 		$("#miniatures").append(creerWidgetMiniature(reponse));
 | 
        
           | 1210 | jpm | 106 | 	}
 | 
        
           | 1524 | aurelien | 107 | 	$('#ajouter-obs').removeAttr('disabled');
 | 
        
           | 1210 | jpm | 108 | }
 | 
        
           |  |  | 109 |   | 
        
           | 1524 | aurelien | 110 | function creerWidgetMiniature(reponse) {
 | 
        
           |  |  | 111 | 	var miniatureUrl = $("miniature-url", reponse).text();
 | 
        
           |  |  | 112 | 	var imgNom = $("image-nom", reponse).text();
 | 
        
           |  |  | 113 | 	var html =
 | 
        
           |  |  | 114 | 		'<div class="miniature">'+
 | 
        
           |  |  | 115 | 			'<img class="miniature-img" class="miniature" alt="'+imgNom+'" src="'+miniatureUrl+'"/>'+
 | 
        
           |  |  | 116 | 			'<button class="effacer-miniature" type="button">Effacer</button>'+
 | 
        
           |  |  | 117 | 		'</div>'
 | 
        
           |  |  | 118 | 	return html;
 | 
        
           |  |  | 119 | }
 | 
        
           |  |  | 120 |   | 
        
           |  |  | 121 | function supprimerMiniatures() {
 | 
        
           |  |  | 122 | 	$("#miniatures").empty();
 | 
        
           | 1210 | jpm | 123 | 	$("#miniature-msg").empty();
 | 
        
           |  |  | 124 | }
 | 
        
           |  |  | 125 |   | 
        
           |  |  | 126 | //+----------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 127 | // GOOGLE MAP
 | 
        
           |  |  | 128 | var map;
 | 
        
           |  |  | 129 | var marker;
 | 
        
           |  |  | 130 | var latLng;
 | 
        
           | 1216 | jpm | 131 | var geocoder;
 | 
        
           | 1210 | jpm | 132 |   | 
        
           | 1216 | jpm | 133 | $(document).ready(function() {
 | 
        
           |  |  | 134 | 	initialiserGoogleMap();
 | 
        
           |  |  | 135 |   | 
        
           |  |  | 136 | 	// Autocompletion du champ adresse
 | 
        
           | 1221 | jpm | 137 | 	$("#carte-recherche").on('focus', function() {
 | 
        
           |  |  | 138 | 		$(this).select();
 | 
        
           |  |  | 139 | 	});
 | 
        
           |  |  | 140 | 	$("#carte-recherche").on('mouseup', function(event) {// Pour Safari...
 | 
        
           |  |  | 141 | 		event.preventDefault();
 | 
        
           |  |  | 142 | 	});
 | 
        
           | 1519 | aurelien | 143 |   | 
        
           |  |  | 144 | 	$("#carte-recherche").keypress(function(e) {
 | 
        
           | 1529 | jpm | 145 | 		if (e.which == 13) {
 | 
        
           |  |  | 146 | 			e.preventDefault();
 | 
        
           |  |  | 147 | 		}
 | 
        
           | 1519 | aurelien | 148 | 	});
 | 
        
           |  |  | 149 |   | 
        
           | 1216 | jpm | 150 | 	$("#carte-recherche").autocomplete({
 | 
        
           |  |  | 151 | 		//Cette partie utilise geocoder pour extraire des valeurs d'adresse
 | 
        
           |  |  | 152 | 		source: function(request, response) {
 | 
        
           |  |  | 153 |   | 
        
           |  |  | 154 | 			geocoder.geocode( {'address': request.term+', France', 'region' : 'fr' }, function(results, status) {
 | 
        
           |  |  | 155 | 				if (status == google.maps.GeocoderStatus.OK) {
 | 
        
           |  |  | 156 | 					response($.map(results, function(item) {
 | 
        
           |  |  | 157 | 						var retour = {
 | 
        
           |  |  | 158 | 							label: item.formatted_address,
 | 
        
           |  |  | 159 | 							value: item.formatted_address,
 | 
        
           |  |  | 160 | 							latitude: item.geometry.location.lat(),
 | 
        
           |  |  | 161 | 							longitude: item.geometry.location.lng()
 | 
        
           |  |  | 162 | 						};
 | 
        
           |  |  | 163 | 						return retour;
 | 
        
           |  |  | 164 | 					}));
 | 
        
           |  |  | 165 | 				} else {
 | 
        
           |  |  | 166 | 					afficherErreurGoogleMap(status);
 | 
        
           |  |  | 167 | 				}
 | 
        
           |  |  | 168 | 			});
 | 
        
           |  |  | 169 | 		},
 | 
        
           |  |  | 170 | 		// Cette partie est executee a la selection d'une adresse
 | 
        
           |  |  | 171 | 		select: function(event, ui) {
 | 
        
           |  |  | 172 | 			var latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
 | 
        
           |  |  | 173 | 			deplacerMarker(latLng);
 | 
        
           |  |  | 174 | 		}
 | 
        
           |  |  | 175 | 	});
 | 
        
           |  |  | 176 |   | 
        
           | 1249 | jpm | 177 | 	$("#geolocaliser").on('click', geolocaliser);
 | 
        
           | 1216 | jpm | 178 |   | 
        
           | 1249 | jpm | 179 | 	google.maps.event.addListener(marker, 'dragend', surDeplacementMarker);
 | 
        
           | 1216 | jpm | 180 |   | 
        
           | 1249 | jpm | 181 | 	google.maps.event.addListener(map, 'click', surClickDansCarte);
 | 
        
           | 1216 | jpm | 182 | });
 | 
        
           |  |  | 183 |   | 
        
           | 1576 | jpm | 184 | function afficherErreurGoogleMap(status) {
 | 
        
           |  |  | 185 | 	if (DEBUG) {
 | 
        
           |  |  | 186 | 		$('#dialogue-google-map .contenu').empty().append(
 | 
        
           |  |  | 187 | 			'<pre class="msg-erreur">'+
 | 
        
           |  |  | 188 | 			"Le service de Géocodage de Google Map a échoué à cause de l'erreur : "+status+
 | 
        
           |  |  | 189 | 			'</pre>');
 | 
        
           |  |  | 190 | 		afficherPanneau('#dialogue-google-map');
 | 
        
           |  |  | 191 | 	}
 | 
        
           |  |  | 192 | }
 | 
        
           |  |  | 193 |   | 
        
           | 1249 | jpm | 194 | function surDeplacementMarker() {
 | 
        
           |  |  | 195 | 	trouverCommune(marker.getPosition());
 | 
        
           |  |  | 196 | 	mettreAJourMarkerPosition(marker.getPosition());
 | 
        
           |  |  | 197 | }
 | 
        
           |  |  | 198 |   | 
        
           |  |  | 199 | function surClickDansCarte(event) {
 | 
        
           |  |  | 200 | 	deplacerMarker(event.latLng);
 | 
        
           |  |  | 201 | }
 | 
        
           |  |  | 202 |   | 
        
           |  |  | 203 | function geolocaliser() {
 | 
        
           |  |  | 204 | 	var latitude = $('#latitude').val();
 | 
        
           |  |  | 205 | 	var longitude = $('#longitude').val();
 | 
        
           |  |  | 206 | 	latLng = new google.maps.LatLng(latitude, longitude);
 | 
        
           |  |  | 207 | 	deplacerMarker(latLng);
 | 
        
           |  |  | 208 | }
 | 
        
           |  |  | 209 |   | 
        
           | 1210 | jpm | 210 | function initialiserGoogleMap(){
 | 
        
           |  |  | 211 | 	// Carte
 | 
        
           | 1476 | aurelien | 212 | 	if(REFERENTIEL_IMPOSE && NOM_SCI_PROJET == 'bdtxa') {
 | 
        
           |  |  | 213 | 		var latLng = new google.maps.LatLng(14.6, -61.08334);// Fort-De-France
 | 
        
           |  |  | 214 | 		var zoomDefaut = 8;
 | 
        
           | 1620 | aurelien | 215 | 	} else if(REFERENTIEL_IMPOSE && NOM_SCI_PROJET == 'isfan') {
 | 
        
           |  |  | 216 | 		var latLng = new google.maps.LatLng(29.28358, 10.21884);// Afrique du Nord
 | 
        
           |  |  | 217 | 		var zoomDefaut = 4;
 | 
        
           | 1476 | aurelien | 218 | 	} else {
 | 
        
           | 1485 | aurelien | 219 | 		var latLng = new google.maps.LatLng(46.30871, 2.54395);// Centre de la France
 | 
        
           |  |  | 220 | 		var zoomDefaut = 5;
 | 
        
           | 1476 | aurelien | 221 | 	}
 | 
        
           | 1485 | aurelien | 222 |   | 
        
           | 1210 | jpm | 223 | 	var options = {
 | 
        
           | 1476 | aurelien | 224 | 		zoom: zoomDefaut,
 | 
        
           | 1210 | jpm | 225 | 		center: latLng,
 | 
        
           |  |  | 226 | 		mapTypeId: google.maps.MapTypeId.HYBRID,
 | 
        
           |  |  | 227 | 		mapTypeControlOptions: {
 | 
        
           |  |  | 228 | 			mapTypeIds: ['OSM', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN]}
 | 
        
           |  |  | 229 | 	};
 | 
        
           |  |  | 230 |   | 
        
           |  |  | 231 | 	// Ajout de la couche OSM à la carte
 | 
        
           |  |  | 232 | 	osmMapType = new google.maps.ImageMapType({
 | 
        
           |  |  | 233 | 		getTileUrl: function(coord, zoom) {
 | 
        
           |  |  | 234 | 			return "http://tile.openstreetmap.org/" +
 | 
        
           |  |  | 235 | 			zoom + "/" + coord.x + "/" + coord.y + ".png";
 | 
        
           |  |  | 236 | 		},
 | 
        
           |  |  | 237 | 		tileSize: new google.maps.Size(256, 256),
 | 
        
           |  |  | 238 | 		isPng: true,
 | 
        
           |  |  | 239 | 		alt: 'OpenStreetMap',
 | 
        
           |  |  | 240 | 		name: 'OSM',
 | 
        
           |  |  | 241 | 		maxZoom: 19
 | 
        
           |  |  | 242 | 	});
 | 
        
           |  |  | 243 |   | 
        
           |  |  | 244 | 	// Création de la carte Google
 | 
        
           |  |  | 245 | 	map = new google.maps.Map(document.getElementById('map-canvas'), options); //affiche la google map dans la div map_canvas
 | 
        
           |  |  | 246 | 	map.mapTypes.set('OSM', osmMapType);
 | 
        
           |  |  | 247 |   | 
        
           | 1216 | jpm | 248 | 	// Création du Geocoder
 | 
        
           |  |  | 249 | 	geocoder = new google.maps.Geocoder();
 | 
        
           |  |  | 250 |   | 
        
           | 1210 | jpm | 251 | 	// Marqueur google draggable
 | 
        
           |  |  | 252 | 	marker = new google.maps.Marker({
 | 
        
           |  |  | 253 | 		map: map,
 | 
        
           |  |  | 254 | 		draggable: true,
 | 
        
           |  |  | 255 | 		title: 'Ma station',
 | 
        
           |  |  | 256 | 		icon: GOOGLE_MAP_MARQUEUR_URL,
 | 
        
           |  |  | 257 | 		position: latLng
 | 
        
           |  |  | 258 | 	});
 | 
        
           |  |  | 259 |   | 
        
           | 1485 | aurelien | 260 | 	initialiserMarker(latLng);
 | 
        
           | 1210 | jpm | 261 |   | 
        
           |  |  | 262 | 	// Tentative de geocalisation
 | 
        
           |  |  | 263 | 	if (navigator.geolocation) {
 | 
        
           |  |  | 264 | 		navigator.geolocation.getCurrentPosition(function(position) {
 | 
        
           |  |  | 265 | 			var latitude = position.coords.latitude;
 | 
        
           |  |  | 266 | 			var longitude = position.coords.longitude;
 | 
        
           |  |  | 267 | 			latLng = new google.maps.LatLng(latitude, longitude);
 | 
        
           |  |  | 268 | 			deplacerMarker(latLng);
 | 
        
           |  |  | 269 | 		});
 | 
        
           |  |  | 270 | 	}
 | 
        
           |  |  | 271 | }
 | 
        
           |  |  | 272 |   | 
        
           | 1485 | aurelien | 273 | function initialiserMarker(latLng) {
 | 
        
           |  |  | 274 | 	if (marker != undefined) {
 | 
        
           |  |  | 275 | 		marker.setPosition(latLng);
 | 
        
           |  |  | 276 | 		map.setCenter(latLng);
 | 
        
           |  |  | 277 | 	}
 | 
        
           |  |  | 278 | }
 | 
        
           |  |  | 279 |   | 
        
           | 1210 | jpm | 280 | function deplacerMarker(latLng) {
 | 
        
           |  |  | 281 | 	if (marker != undefined) {
 | 
        
           |  |  | 282 | 		marker.setPosition(latLng);
 | 
        
           |  |  | 283 | 		map.setCenter(latLng);
 | 
        
           |  |  | 284 | 		mettreAJourMarkerPosition(latLng);
 | 
        
           |  |  | 285 | 		trouverCommune(latLng);
 | 
        
           |  |  | 286 | 	}
 | 
        
           |  |  | 287 | }
 | 
        
           |  |  | 288 |   | 
        
           |  |  | 289 | function mettreAJourMarkerPosition(latLng) {
 | 
        
           |  |  | 290 | 	var lat = latLng.lat().toFixed(5);
 | 
        
           |  |  | 291 | 	var lng = latLng.lng().toFixed(5);
 | 
        
           |  |  | 292 | 	remplirChampLatitude(lat);
 | 
        
           |  |  | 293 | 	remplirChampLongitude(lng);
 | 
        
           |  |  | 294 | }
 | 
        
           |  |  | 295 |   | 
        
           |  |  | 296 | function remplirChampLatitude(latDecimale) {
 | 
        
           |  |  | 297 | 	var lat = Math.round(latDecimale * 100000) / 100000;
 | 
        
           |  |  | 298 | 	$('#latitude').val(lat);
 | 
        
           |  |  | 299 | }
 | 
        
           |  |  | 300 |   | 
        
           |  |  | 301 | function remplirChampLongitude(lngDecimale) {
 | 
        
           |  |  | 302 | 	var lng = Math.round(lngDecimale * 100000) / 100000;
 | 
        
           |  |  | 303 | 	$('#longitude').val(lng);
 | 
        
           |  |  | 304 | }
 | 
        
           |  |  | 305 |   | 
        
           |  |  | 306 | function trouverCommune(pos) {
 | 
        
           |  |  | 307 | 	$(function() {
 | 
        
           | 1476 | aurelien | 308 |   | 
        
           |  |  | 309 | 		var url_service = SERVICE_NOM_COMMUNE_URL;
 | 
        
           |  |  | 310 |   | 
        
           |  |  | 311 | 		var urlNomCommuneFormatee = url_service.replace('{lat}', pos.lat()).replace('{lon}', pos.lng());
 | 
        
           | 1210 | jpm | 312 | 		$.ajax({
 | 
        
           |  |  | 313 | 			url : urlNomCommuneFormatee,
 | 
        
           |  |  | 314 | 			type : "GET",
 | 
        
           |  |  | 315 | 			dataType : "jsonp",
 | 
        
           |  |  | 316 | 			beforeSend : function() {
 | 
        
           |  |  | 317 | 				$(".commune-info").empty();
 | 
        
           | 1220 | jpm | 318 | 				$("#dialogue-erreur .alert-txt").empty();
 | 
        
           | 1210 | jpm | 319 | 			},
 | 
        
           |  |  | 320 | 			success : function(data, textStatus, jqXHR) {
 | 
        
           |  |  | 321 | 				$(".commune-info").empty();
 | 
        
           |  |  | 322 | 				$("#commune-nom").append(data.nom);
 | 
        
           |  |  | 323 | 				$("#commune-code-insee").append(data.codeINSEE);
 | 
        
           |  |  | 324 | 				$("#marqueur-commune").data('commune', {'nom' : data.nom, 'codeInsee' : data.codeINSEE});
 | 
        
           |  |  | 325 | 			},
 | 
        
           |  |  | 326 | 			statusCode : {
 | 
        
           |  |  | 327 | 			    500 : function(jqXHR, textStatus, errorThrown) {
 | 
        
           |  |  | 328 | 					if (DEBUG) {
 | 
        
           | 1220 | jpm | 329 | 						$("#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>');
 | 
        
           | 1210 | jpm | 330 | 						reponse = jQuery.parseJSON(jqXHR.responseText);
 | 
        
           |  |  | 331 | 						var erreurMsg = "";
 | 
        
           |  |  | 332 | 						if (reponse != null) {
 | 
        
           |  |  | 333 | 							$.each(reponse, function (cle, valeur) {
 | 
        
           |  |  | 334 | 								erreurMsg += valeur + "<br />";
 | 
        
           |  |  | 335 | 							});
 | 
        
           |  |  | 336 | 						}
 | 
        
           |  |  | 337 |   | 
        
           | 1220 | jpm | 338 | 						$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur 500 : '+errorThrown+"<br />"+erreurMsg+'</p>');
 | 
        
           | 1210 | jpm | 339 | 					}
 | 
        
           |  |  | 340 | 			    }
 | 
        
           |  |  | 341 | 			},
 | 
        
           |  |  | 342 | 			error : function(jqXHR, textStatus, errorThrown) {
 | 
        
           |  |  | 343 | 				if (DEBUG) {
 | 
        
           | 1220 | jpm | 344 | 					$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la transmission de vos observations.</p>');
 | 
        
           | 1210 | jpm | 345 | 					reponse = jQuery.parseJSON(jqXHR.responseText);
 | 
        
           |  |  | 346 | 					var erreurMsg = "";
 | 
        
           |  |  | 347 | 					if (reponse != null) {
 | 
        
           |  |  | 348 | 						$.each(reponse, function (cle, valeur) {
 | 
        
           |  |  | 349 | 							erreurMsg += valeur + "<br />";
 | 
        
           |  |  | 350 | 						});
 | 
        
           |  |  | 351 | 					}
 | 
        
           |  |  | 352 |   | 
        
           | 1220 | jpm | 353 | 					$("#dialogue-erreur .alert-txt").append('<p class="msg-erreur">Erreur Ajax : '+errorThrown+' (type : '+textStatus+') <br />'+erreurMsg+'</p>');
 | 
        
           | 1210 | jpm | 354 | 				}
 | 
        
           |  |  | 355 | 			},
 | 
        
           |  |  | 356 | 			complete : function(jqXHR, textStatus) {
 | 
        
           | 1249 | jpm | 357 | 				var debugMsg = extraireEnteteDebug(jqXHR);
 | 
        
           |  |  | 358 | 				if (debugMsg != '') {
 | 
        
           |  |  | 359 | 					if (DEBUG) {
 | 
        
           | 1220 | jpm | 360 | 						$("#dialogue-erreur .alert-txt").append('<pre class="msg-debug msg">Débogage : '+debugMsg+'</pre>');
 | 
        
           | 1210 | jpm | 361 | 					}
 | 
        
           |  |  | 362 | 				}
 | 
        
           |  |  | 363 | 				if ($("#dialogue-erreur .msg").length > 0) {
 | 
        
           | 1220 | jpm | 364 | 					$("#dialogue-erreur").show();
 | 
        
           | 1210 | jpm | 365 | 				}
 | 
        
           |  |  | 366 | 			}
 | 
        
           |  |  | 367 | 		});
 | 
        
           |  |  | 368 | 	});
 | 
        
           |  |  | 369 | }
 | 
        
           | 1241 | jpm | 370 | //+---------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 371 | // IDENTITÉ
 | 
        
           |  |  | 372 | $(document).ready(function() {
 | 
        
           | 1249 | jpm | 373 | 	$("#courriel").on('blur', requeterIdentite);
 | 
        
           |  |  | 374 | 	$("#courriel").on('keypress', testerLancementRequeteIdentite);
 | 
        
           |  |  | 375 | });
 | 
        
           |  |  | 376 |   | 
        
           |  |  | 377 | function testerLancementRequeteIdentite(event) {
 | 
        
           |  |  | 378 | 	if (event.which == 13) {
 | 
        
           |  |  | 379 | 		requeterIdentite();
 | 
        
           |  |  | 380 | 		event.preventDefault();
 | 
        
           |  |  | 381 | 		event.stopPropagation();
 | 
        
           |  |  | 382 | 	}
 | 
        
           |  |  | 383 | }
 | 
        
           |  |  | 384 |   | 
        
           |  |  | 385 | function requeterIdentite() {
 | 
        
           |  |  | 386 | 	var courriel = $("#courriel").val();
 | 
        
           | 1356 | aurelien | 387 | 	//TODO: mettre ceci en paramètre de config
 | 
        
           | 1985 | jpm | 388 | 	var urlAnnuaire = "http://www.tela-botanica.org/service:annuaire:utilisateur/identite-par-courriel/"+courriel;//http://localhost/applications/annuaire/jrest/
 | 
        
           | 1249 | jpm | 389 | 	$.ajax({
 | 
        
           |  |  | 390 | 		url : urlAnnuaire,
 | 
        
           |  |  | 391 | 		type : "GET",
 | 
        
           |  |  | 392 | 		success : function(data, textStatus, jqXHR) {
 | 
        
           | 1822 | aurelien | 393 | 			//console.log('SUCCESS:'+textStatus);
 | 
        
           | 1249 | jpm | 394 | 			if (data != undefined && data[courriel] != undefined) {
 | 
        
           |  |  | 395 | 				var infos = data[courriel];
 | 
        
           | 1352 | aurelien | 396 | 				$("#id_utilisateur").val(infos.id);
 | 
        
           | 1249 | jpm | 397 | 				$("#prenom").val(infos.prenom);
 | 
        
           |  |  | 398 | 				$("#nom").val(infos.nom);
 | 
        
           |  |  | 399 | 				$("#courriel_confirmation").val(courriel);
 | 
        
           |  |  | 400 | 				$("#prenom, #nom, #courriel_confirmation").attr('disabled', 'disabled');
 | 
        
           |  |  | 401 | 				$("#date").focus();
 | 
        
           |  |  | 402 | 			} else {
 | 
        
           |  |  | 403 | 				surErreurCompletionCourriel();
 | 
        
           | 1241 | jpm | 404 | 			}
 | 
        
           | 1249 | jpm | 405 | 		},
 | 
        
           |  |  | 406 | 		error : function(jqXHR, textStatus, errorThrown) {
 | 
        
           | 1822 | aurelien | 407 | 			//console.log('ERREUR :'+textStatus);
 | 
        
           | 1249 | jpm | 408 | 			surErreurCompletionCourriel();
 | 
        
           |  |  | 409 | 		},
 | 
        
           |  |  | 410 | 		complete : function(jqXHR, textStatus) {
 | 
        
           | 1822 | aurelien | 411 | 			//console.log('COMPLETE :'+textStatus);
 | 
        
           | 1249 | jpm | 412 | 			$("#zone-prenom-nom").removeClass("hidden");
 | 
        
           |  |  | 413 | 			$("#zone-courriel-confirmation").removeClass("hidden");
 | 
        
           |  |  | 414 | 		}
 | 
        
           | 1241 | jpm | 415 | 	});
 | 
        
           | 1249 | jpm | 416 | }
 | 
        
           | 1210 | jpm | 417 |   | 
        
           | 1249 | jpm | 418 | function surErreurCompletionCourriel() {
 | 
        
           |  |  | 419 | 	$("#prenom, #nom, #courriel_confirmation").val('');
 | 
        
           |  |  | 420 | 	$("#prenom, #nom, #courriel_confirmation").removeAttr('disabled');
 | 
        
           |  |  | 421 | 	afficherPanneau("#dialogue-courriel-introuvable");
 | 
        
           |  |  | 422 | }
 | 
        
           | 1210 | jpm | 423 | //+---------------------------------------------------------------------------------------------------------+
 | 
        
           | 1249 | jpm | 424 | //FORMULAIRE VALIDATION
 | 
        
           |  |  | 425 | $(document).ready(function() {
 | 
        
           |  |  | 426 |   | 
        
           |  |  | 427 |   | 
        
           |  |  | 428 | });
 | 
        
           |  |  | 429 | //+---------------------------------------------------------------------------------------------------------+
 | 
        
           | 1210 | jpm | 430 | // FORMULAIRE
 | 
        
           | 1215 | jpm | 431 | var obsNbre = 0;
 | 
        
           |  |  | 432 |   | 
        
           | 1210 | jpm | 433 | $(document).ready(function() {
 | 
        
           | 1249 | jpm | 434 | 	$(".alert .close").on('click', fermerPanneauAlert);
 | 
        
           | 1220 | jpm | 435 |   | 
        
           | 1253 | jpm | 436 | 	$("[rel=tooltip]").tooltip('enable');
 | 
        
           | 1249 | jpm | 437 | 	$("#btn-aide").on('click', basculerAffichageAide);
 | 
        
           | 1218 | jpm | 438 |   | 
        
           | 1249 | jpm | 439 | 	$("#prenom").on("change", formaterPrenom);
 | 
        
           | 1218 | jpm | 440 |   | 
        
           | 1249 | jpm | 441 | 	$("#nom").on("change", formaterNom);
 | 
        
           | 1210 | jpm | 442 |   | 
        
           | 1249 | jpm | 443 | 	configurerDatePicker();
 | 
        
           | 1210 | jpm | 444 |   | 
        
           |  |  | 445 | 	ajouterAutocompletionNoms();
 | 
        
           |  |  | 446 |   | 
        
           | 1249 | jpm | 447 | 	configurerFormValidator();
 | 
        
           |  |  | 448 | 	definirReglesFormValidator();
 | 
        
           |  |  | 449 |   | 
        
           |  |  | 450 | 	$("#courriel_confirmation").on('paste', bloquerCopierCollerCourriel);
 | 
        
           |  |  | 451 |   | 
        
           |  |  | 452 | 	$("a.afficher-coord").on('click', basculerAffichageCoord);
 | 
        
           |  |  | 453 |   | 
        
           |  |  | 454 | 	$("#ajouter-obs").on('click', ajouterObs);
 | 
        
           |  |  | 455 |   | 
        
           |  |  | 456 | 	$(".obs-nbre").on('changement', surChangementNbreObs);
 | 
        
           |  |  | 457 |   | 
        
           |  |  | 458 | 	$("body").on('click', ".supprimer-obs", supprimerObs);
 | 
        
           |  |  | 459 |   | 
        
           |  |  | 460 | 	$("#transmettre-obs").on('click', transmettreObs);
 | 
        
           | 1476 | aurelien | 461 |   | 
        
           |  |  | 462 | 	$("#referentiel").on('change', surChangementReferentiel);
 | 
        
           | 1524 | aurelien | 463 |   | 
        
           |  |  | 464 | 	$("body").on('click', ".defilement-miniatures-gauche", function(event) {
 | 
        
           |  |  | 465 | 			event.preventDefault();
 | 
        
           |  |  | 466 | 			defilerMiniatures($(this));
 | 
        
           |  |  | 467 | 	});
 | 
        
           |  |  | 468 |   | 
        
           |  |  | 469 | 	$("body").on('click', ".defilement-miniatures-droite", function(event) {
 | 
        
           |  |  | 470 | 		event.preventDefault();
 | 
        
           |  |  | 471 | 		defilerMiniatures($(this));
 | 
        
           |  |  | 472 | 	});
 | 
        
           | 1249 | jpm | 473 | });
 | 
        
           |  |  | 474 |   | 
        
           |  |  | 475 | function configurerFormValidator() {
 | 
        
           | 1210 | jpm | 476 | 	$.validator.addMethod(
 | 
        
           |  |  | 477 | 		"dateCel",
 | 
        
           |  |  | 478 | 		function (value, element) {
 | 
        
           | 1485 | aurelien | 479 | 			return value == "" || (/^[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{4}$/.test(value));
 | 
        
           | 1213 | jpm | 480 | 		},
 | 
        
           |  |  | 481 | 		"Format : jj/mm/aaaa. Date incomplète, utiliser 0, exemple : 00/12/2011.");
 | 
        
           | 1210 | jpm | 482 | 	$.extend($.validator.defaults, {
 | 
        
           |  |  | 483 | 		errorClass: "control-group error",
 | 
        
           |  |  | 484 | 		validClass: "control-group success",
 | 
        
           |  |  | 485 | 		errorElement: "span",
 | 
        
           | 1213 | jpm | 486 | 		highlight: function(element, errorClass, validClass) {
 | 
        
           | 1210 | jpm | 487 | 			if (element.type === 'radio') {
 | 
        
           |  |  | 488 | 				this.findByName(element.name).parent("div").parent("div").removeClass(validClass).addClass(errorClass);
 | 
        
           |  |  | 489 | 			} else {
 | 
        
           |  |  | 490 | 				$(element).parent("div").parent("div").removeClass(validClass).addClass(errorClass);
 | 
        
           |  |  | 491 | 			}
 | 
        
           |  |  | 492 | 		},
 | 
        
           | 1213 | jpm | 493 | 		unhighlight: function(element, errorClass, validClass) {
 | 
        
           | 1210 | jpm | 494 | 			if (element.type === 'radio') {
 | 
        
           |  |  | 495 | 				this.findByName(element.name).parent("div").parent("div").removeClass(errorClass).addClass(validClass);
 | 
        
           |  |  | 496 | 			} else {
 | 
        
           | 1213 | jpm | 497 | 				if ($(element).attr('id') == 'taxon') {
 | 
        
           | 1493 | aurelien | 498 | 					if ($("#taxon").val() != '') {
 | 
        
           |  |  | 499 | 						// Si le taxon n'est pas lié au référentiel, on vide le data associé
 | 
        
           |  |  | 500 | 						if($("#taxon").data("value") != $("#taxon").val()) {
 | 
        
           |  |  | 501 | 							$("#taxon").data("numNomSel","");
 | 
        
           |  |  | 502 | 							$("#taxon").data("nomRet","");
 | 
        
           |  |  | 503 | 							$("#taxon").data("numNomRet","");
 | 
        
           |  |  | 504 | 							$("#taxon").data("nt","");
 | 
        
           |  |  | 505 | 							$("#taxon").data("famille","");
 | 
        
           | 1213 | jpm | 506 | 						}
 | 
        
           | 1493 | aurelien | 507 | 						$("#taxon-input-groupe").removeClass(errorClass).addClass(validClass);
 | 
        
           |  |  | 508 | 						$(element).next(" span.help-inline").remove();
 | 
        
           | 1213 | jpm | 509 | 					}
 | 
        
           |  |  | 510 | 				} else {
 | 
        
           |  |  | 511 | 					$(element).parent("div").parent("div").removeClass(errorClass).addClass(validClass);
 | 
        
           |  |  | 512 | 					$(element).next(" span.help-inline").remove();
 | 
        
           |  |  | 513 | 				}
 | 
        
           | 1210 | jpm | 514 | 			}
 | 
        
           |  |  | 515 | 		}
 | 
        
           |  |  | 516 | 	});
 | 
        
           | 1249 | jpm | 517 | }
 | 
        
           |  |  | 518 |   | 
        
           |  |  | 519 | function definirReglesFormValidator() {
 | 
        
           | 1210 | jpm | 520 | 	$("#form-observateur").validate({
 | 
        
           |  |  | 521 | 		rules: {
 | 
        
           |  |  | 522 | 			courriel : {
 | 
        
           |  |  | 523 | 				required : true,
 | 
        
           |  |  | 524 | 				email : true},
 | 
        
           |  |  | 525 | 			courriel_confirmation : {
 | 
        
           |  |  | 526 | 				required : true,
 | 
        
           |  |  | 527 | 				equalTo: "#courriel"}
 | 
        
           |  |  | 528 | 		}
 | 
        
           |  |  | 529 | 	});
 | 
        
           |  |  | 530 | 	$("#form-station").validate({
 | 
        
           |  |  | 531 | 		rules: {
 | 
        
           |  |  | 532 | 			latitude : {
 | 
        
           |  |  | 533 | 				range: [-90, 90]},
 | 
        
           |  |  | 534 | 			longitude : {
 | 
        
           |  |  | 535 | 				range: [-180, 180]}
 | 
        
           |  |  | 536 | 		}
 | 
        
           |  |  | 537 | 	});
 | 
        
           |  |  | 538 | 	$("#form-obs").validate({
 | 
        
           |  |  | 539 | 		rules: {
 | 
        
           | 1213 | jpm | 540 | 			date : "dateCel",
 | 
        
           | 1210 | jpm | 541 | 			taxon : "required"
 | 
        
           |  |  | 542 | 		}
 | 
        
           |  |  | 543 | 	});
 | 
        
           | 1249 | jpm | 544 | }
 | 
        
           |  |  | 545 |   | 
        
           |  |  | 546 | function configurerDatePicker() {
 | 
        
           |  |  | 547 | 	$.datepicker.setDefaults($.datepicker.regional["fr"]);
 | 
        
           |  |  | 548 | 	$("#date").datepicker({
 | 
        
           | 1987 | jpm | 549 | 		dateFormat: "dd/mm/yy",
 | 
        
           |  |  | 550 | 		maxDate: new Date,
 | 
        
           | 1249 | jpm | 551 | 		showOn: "button",
 | 
        
           | 1987 | jpm | 552 | 		buttonImageOnly: true,
 | 
        
           | 1249 | jpm | 553 | 		buttonImage: CALENDRIER_ICONE_URL,
 | 
        
           |  |  | 554 | 		buttonText: "Afficher le calendrier pour saisir la date.",
 | 
        
           |  |  | 555 | 		showButtonPanel: true
 | 
        
           | 1210 | jpm | 556 | 	});
 | 
        
           | 1249 | jpm | 557 | 	$("img.ui-datepicker-trigger").appendTo("#date-icone");
 | 
        
           |  |  | 558 | }
 | 
        
           |  |  | 559 |   | 
        
           |  |  | 560 | function fermerPanneauAlert() {
 | 
        
           |  |  | 561 | 	$(this).parentsUntil(".zone-alerte", ".alert").hide();
 | 
        
           |  |  | 562 | }
 | 
        
           |  |  | 563 |   | 
        
           |  |  | 564 | function formaterNom() {
 | 
        
           |  |  | 565 | 	$(this).val($(this).val().toUpperCase());
 | 
        
           |  |  | 566 | }
 | 
        
           |  |  | 567 |   | 
        
           |  |  | 568 | function formaterPrenom() {
 | 
        
           |  |  | 569 | 	var prenom = new Array();
 | 
        
           |  |  | 570 | 	var mots = $(this).val().split(' ');
 | 
        
           |  |  | 571 | 	for (var i = 0; i < mots.length; i++) {
 | 
        
           |  |  | 572 | 		var mot = mots[i];
 | 
        
           |  |  | 573 | 		if (mot.indexOf('-') >= 0) {
 | 
        
           |  |  | 574 | 			var prenomCompose = new Array();
 | 
        
           |  |  | 575 | 			var motsComposes = mot.split('-');
 | 
        
           |  |  | 576 | 		    for (var j = 0; j < motsComposes.length; j++) {
 | 
        
           |  |  | 577 | 		    	var motSimple = motsComposes[j];
 | 
        
           |  |  | 578 | 		    	var motMajuscule = motSimple.charAt(0).toUpperCase() + motSimple.slice(1);
 | 
        
           |  |  | 579 | 		    	prenomCompose.push(motMajuscule);
 | 
        
           |  |  | 580 | 		    }
 | 
        
           |  |  | 581 | 		    prenom.push(prenomCompose.join('-'));
 | 
        
           |  |  | 582 | 		} else {
 | 
        
           |  |  | 583 | 			var motMajuscule = mot.charAt(0).toUpperCase() + mot.slice(1);
 | 
        
           |  |  | 584 | 			prenom.push(motMajuscule);
 | 
        
           |  |  | 585 | 		}
 | 
        
           |  |  | 586 | 	}
 | 
        
           |  |  | 587 | 	$(this).val(prenom.join(' '));
 | 
        
           |  |  | 588 | }
 | 
        
           |  |  | 589 |   | 
        
           |  |  | 590 | function basculerAffichageAide()  {
 | 
        
           |  |  | 591 | 	if ($(this).hasClass('btn-warning')) {
 | 
        
           |  |  | 592 | 		$("[rel=tooltip]").tooltip('enable');
 | 
        
           |  |  | 593 | 		$(this).removeClass('btn-warning').addClass('btn-success');
 | 
        
           |  |  | 594 | 		$('#btn-aide-txt', this).text("Désactiver l'aide");
 | 
        
           |  |  | 595 | 	} else {
 | 
        
           |  |  | 596 | 		$("[rel=tooltip]").tooltip('disable');
 | 
        
           |  |  | 597 | 		$(this).removeClass('btn-success').addClass('btn-warning');
 | 
        
           |  |  | 598 | 		$('#btn-aide-txt', this).text("Activer l'aide");
 | 
        
           |  |  | 599 | 	}
 | 
        
           |  |  | 600 | }
 | 
        
           |  |  | 601 |   | 
        
           |  |  | 602 | function bloquerCopierCollerCourriel() {
 | 
        
           | 1251 | jpm | 603 | 	afficherPanneau("#dialogue-bloquer-copier-coller");
 | 
        
           | 1249 | jpm | 604 | 	return false;
 | 
        
           |  |  | 605 | }
 | 
        
           |  |  | 606 |   | 
        
           |  |  | 607 | function basculerAffichageCoord() {
 | 
        
           |  |  | 608 | 	$("a.afficher-coord").toggle();
 | 
        
           |  |  | 609 | 	$("#coordonnees-geo").toggle('slow');
 | 
        
           |  |  | 610 | 	//valeur false pour que le lien ne soit pas suivi
 | 
        
           |  |  | 611 | 	return false;
 | 
        
           |  |  | 612 | }
 | 
        
           |  |  | 613 |   | 
        
           |  |  | 614 | function ajouterObs() {
 | 
        
           |  |  | 615 | 	if (validerFormulaire() == true) {
 | 
        
           |  |  | 616 | 		obsNbre = obsNbre + 1;
 | 
        
           |  |  | 617 | 		$(".obs-nbre").text(obsNbre);
 | 
        
           |  |  | 618 | 		$(".obs-nbre").triggerHandler('changement');
 | 
        
           |  |  | 619 | 		afficherObs();
 | 
        
           |  |  | 620 | 		stockerObsData();
 | 
        
           | 1524 | aurelien | 621 | 		supprimerMiniatures();
 | 
        
           | 1856 | aurelien | 622 | 		if(!ESPECE_IMPOSEE) {
 | 
        
           |  |  | 623 | 			$("#taxon").val("");
 | 
        
           |  |  | 624 | 			$("#taxon").data("numNomSel",undefined);
 | 
        
           |  |  | 625 | 		}
 | 
        
           | 1249 | jpm | 626 | 	} else {
 | 
        
           |  |  | 627 | 		afficherPanneau('#dialogue-form-invalide');
 | 
        
           |  |  | 628 | 	}
 | 
        
           |  |  | 629 | }
 | 
        
           |  |  | 630 |   | 
        
           |  |  | 631 | function afficherObs() {
 | 
        
           |  |  | 632 | 	$("#liste-obs").prepend(
 | 
        
           |  |  | 633 | 		'<div id="obs'+obsNbre+'" class="row-fluid obs obs'+obsNbre+'">'+
 | 
        
           |  |  | 634 | 			'<div class="span12">'+
 | 
        
           | 1253 | jpm | 635 | 				'<div class="well">'+
 | 
        
           |  |  | 636 | 					'<div class="obs-action pull-right" rel="tooltip" data-placement="bottom" '+
 | 
        
           |  |  | 637 | 						'title="Supprimer cette observation de la liste à transmettre">'+
 | 
        
           | 1249 | jpm | 638 | 						'<button class="btn btn-danger supprimer-obs" value="'+obsNbre+'" title="'+obsNbre+'">'+
 | 
        
           |  |  | 639 | 							'<i class="icon-trash icon-white"></i>'+
 | 
        
           |  |  | 640 | 						'</button>'+
 | 
        
           |  |  | 641 | 					'</div> '+
 | 
        
           |  |  | 642 | 					'<div class="row-fluid">'+
 | 
        
           |  |  | 643 | 						'<div class="thumbnail span2">'+
 | 
        
           |  |  | 644 | 							ajouterImgMiniatureAuTransfert()+
 | 
        
           | 1240 | jpm | 645 | 						'</div>'+
 | 
        
           | 1249 | jpm | 646 | 						'<div class="span9">'+
 | 
        
           |  |  | 647 | 							'<ul class="unstyled">'+
 | 
        
           |  |  | 648 | 								'<li>'+
 | 
        
           |  |  | 649 | 									'<span class="nom-sci">'+$("#taxon").val()+'</span> '+
 | 
        
           | 1485 | aurelien | 650 | 									ajouterNumNomSel()+'<span class="referentiel-obs">'+
 | 
        
           |  |  | 651 | 									($("#taxon").data("numNomSel") == undefined ? '' : '['+NOM_SCI_PROJET+']')+'</span>'+
 | 
        
           | 1249 | jpm | 652 | 									' observé à '+
 | 
        
           |  |  | 653 | 									'<span class="commune">'+$('#commune-nom').text()+'</span> '+
 | 
        
           |  |  | 654 | 									'('+$('#commune-code-insee').text()+') ['+$("#latitude").val()+' / '+$("#longitude").val()+']'+
 | 
        
           |  |  | 655 | 									' le '+
 | 
        
           |  |  | 656 | 									'<span class="date">'+$("#date").val()+'</span>'+
 | 
        
           |  |  | 657 | 								'</li>'+
 | 
        
           |  |  | 658 | 								'<li>'+
 | 
        
           |  |  | 659 | 									'<span>Lieu-dit :</span> '+$('#lieudit').val()+' '+
 | 
        
           |  |  | 660 | 									'<span>Station :</span> '+$('#station').val()+' '+
 | 
        
           |  |  | 661 | 									'<span>Milieu :</span> '+$('#milieu').val()+' '+
 | 
        
           |  |  | 662 | 								'</li>'+
 | 
        
           |  |  | 663 | 								'<li>'+
 | 
        
           |  |  | 664 | 									'Commentaires : <span class="discretion">'+$("#notes").val()+'</span>'+
 | 
        
           |  |  | 665 | 								'</li>'+
 | 
        
           |  |  | 666 | 							'</ul>'+
 | 
        
           |  |  | 667 | 						'</div>'+
 | 
        
           | 1237 | jpm | 668 | 					'</div>'+
 | 
        
           | 1249 | jpm | 669 | 				'</div>'+
 | 
        
           |  |  | 670 | 			'</div>'+
 | 
        
           |  |  | 671 | 		'</div>');
 | 
        
           |  |  | 672 | }
 | 
        
           |  |  | 673 |   | 
        
           |  |  | 674 | function stockerObsData() {
 | 
        
           |  |  | 675 | 	$("#liste-obs").data('obsId'+obsNbre, {
 | 
        
           |  |  | 676 | 		'date' : $("#date").val(),
 | 
        
           |  |  | 677 | 		'notes' : $("#notes").val(),
 | 
        
           |  |  | 678 |   | 
        
           |  |  | 679 | 		'nom_sel' : $("#taxon").val(),
 | 
        
           |  |  | 680 | 		'num_nom_sel' : $("#taxon").data("numNomSel"),
 | 
        
           |  |  | 681 | 		'nom_ret' : $("#taxon").data("nomRet"),
 | 
        
           |  |  | 682 | 		'num_nom_ret' : $("#taxon").data("numNomRet"),
 | 
        
           |  |  | 683 | 		'num_taxon' : $("#taxon").data("nt"),
 | 
        
           |  |  | 684 | 		'famille' : $("#taxon").data("famille"),
 | 
        
           |  |  | 685 | 		'referentiel' : ($("#taxon").data("numNomSel") == undefined ? '' : NOM_SCI_REFERENTIEL),
 | 
        
           |  |  | 686 |   | 
        
           |  |  | 687 | 		'latitude' : $("#latitude").val(),
 | 
        
           |  |  | 688 | 		'longitude' : $("#longitude").val(),
 | 
        
           |  |  | 689 | 		'commune_nom' : $("#commune-nom").text(),
 | 
        
           |  |  | 690 | 		'commune_code_insee' : $("#commune-code-insee").text(),
 | 
        
           | 1251 | jpm | 691 | 		'lieudit' : $("#lieudit").val(),
 | 
        
           | 1249 | jpm | 692 | 		'station' : $("#station").val(),
 | 
        
           |  |  | 693 | 		'milieu' : $("#milieu").val(),
 | 
        
           |  |  | 694 |   | 
        
           |  |  | 695 | 		//Ajout des champs images
 | 
        
           | 1524 | aurelien | 696 | 		'image_nom' : getNomsImgsOriginales(),
 | 
        
           |  |  | 697 | 		'image_b64' : getB64ImgsOriginales()
 | 
        
           | 1210 | jpm | 698 | 	});
 | 
        
           | 1249 | jpm | 699 | }
 | 
        
           |  |  | 700 |   | 
        
           | 1476 | aurelien | 701 | function surChangementReferentiel() {
 | 
        
           |  |  | 702 | 	NOM_SCI_PROJET = $('#referentiel').val();
 | 
        
           |  |  | 703 | 	NOM_SCI_REFERENTIEL = NOM_SCI_PROJET+':'+PROJETS_VERSIONS[NOM_SCI_PROJET];
 | 
        
           |  |  | 704 | 	$('#taxon').val('');
 | 
        
           |  |  | 705 | }
 | 
        
           |  |  | 706 |   | 
        
           | 1249 | jpm | 707 | function surChangementNbreObs() {
 | 
        
           |  |  | 708 | 	if (obsNbre == 0) {
 | 
        
           |  |  | 709 | 		$("#transmettre-obs").attr('disabled', 'disabled');
 | 
        
           |  |  | 710 | 		$("#ajouter-obs").removeAttr('disabled');
 | 
        
           |  |  | 711 | 	} else if (obsNbre > 0 && obsNbre < OBS_MAX_NBRE) {
 | 
        
           |  |  | 712 | 		$("#transmettre-obs").removeAttr('disabled');
 | 
        
           |  |  | 713 | 		$("#ajouter-obs").removeAttr('disabled');
 | 
        
           |  |  | 714 | 	} else if (obsNbre >= OBS_MAX_NBRE) {
 | 
        
           |  |  | 715 | 		$("#ajouter-obs").attr('disabled', 'disabled');
 | 
        
           |  |  | 716 | 		afficherPanneau("#dialogue-bloquer-creer-obs");
 | 
        
           |  |  | 717 | 	}
 | 
        
           |  |  | 718 | }
 | 
        
           |  |  | 719 |   | 
        
           |  |  | 720 | function transmettreObs() {
 | 
        
           |  |  | 721 | 	var observations = $("#liste-obs").data();
 | 
        
           | 1822 | aurelien | 722 | 	//console.log(observations);
 | 
        
           | 1210 | jpm | 723 |   | 
        
           | 1249 | jpm | 724 | 	if (observations == undefined || jQuery.isEmptyObject(observations)) {
 | 
        
           |  |  | 725 | 		afficherPanneau("#dialogue-zero-obs");
 | 
        
           |  |  | 726 | 	} else {
 | 
        
           |  |  | 727 | 		observations['projet'] = TAG_PROJET;
 | 
        
           |  |  | 728 | 		observations['tag-obs'] = TAG_OBS;
 | 
        
           |  |  | 729 | 		observations['tag-img'] = TAG_IMG;
 | 
        
           | 1210 | jpm | 730 |   | 
        
           | 1249 | jpm | 731 | 		var utilisateur = new Object();
 | 
        
           | 1352 | aurelien | 732 | 		utilisateur.id_utilisateur = $("#id_utilisateur").val();
 | 
        
           | 1249 | jpm | 733 | 		utilisateur.prenom = $("#prenom").val();
 | 
        
           |  |  | 734 | 		utilisateur.nom = $("#nom").val();
 | 
        
           |  |  | 735 | 		utilisateur.courriel = $("#courriel").val();
 | 
        
           |  |  | 736 | 		observations['utilisateur'] = utilisateur;
 | 
        
           |  |  | 737 | 		envoyerObsAuCel(observations);
 | 
        
           |  |  | 738 | 	}
 | 
        
           |  |  | 739 | 	return false;
 | 
        
           |  |  | 740 | }
 | 
        
           |  |  | 741 |   | 
        
           |  |  | 742 | function envoyerObsAuCel(observations) {
 | 
        
           |  |  | 743 | 	var erreurMsg = "";
 | 
        
           |  |  | 744 | 	$.ajax({
 | 
        
           |  |  | 745 | 		url : SERVICE_SAISIE_URL,
 | 
        
           |  |  | 746 | 		type : "POST",
 | 
        
           |  |  | 747 | 		data : observations,
 | 
        
           |  |  | 748 | 		dataType : "json",
 | 
        
           |  |  | 749 | 		beforeSend : function() {
 | 
        
           | 1251 | jpm | 750 | 			$("#dialogue-obs-transaction-ko").hide();
 | 
        
           |  |  | 751 | 			$("#dialogue-obs-transaction-ok").hide();
 | 
        
           | 1249 | jpm | 752 | 			$(".alert-txt .msg").remove();
 | 
        
           |  |  | 753 | 			$(".alert-txt .msg-erreur").remove();
 | 
        
           |  |  | 754 | 			$(".alert-txt .msg-debug").remove();
 | 
        
           |  |  | 755 | 			$("#chargement").show();
 | 
        
           |  |  | 756 | 		},
 | 
        
           |  |  | 757 | 		success : function(data, textStatus, jqXHR) {
 | 
        
           |  |  | 758 | 			$('#dialogue-obs-transaction-ok .alert-txt').append($("#tpl-transmission-ok").clone().html());
 | 
        
           | 1524 | aurelien | 759 | 			supprimerMiniatures();
 | 
        
           | 1249 | jpm | 760 | 		},
 | 
        
           |  |  | 761 | 		statusCode : {
 | 
        
           |  |  | 762 | 			500 : function(jqXHR, textStatus, errorThrown) {
 | 
        
           |  |  | 763 | 				erreurMsg += "Erreur 500 :\ntype : "+textStatus+' '+errorThrown+"\n";
 | 
        
           |  |  | 764 | 		    }
 | 
        
           |  |  | 765 | 		},
 | 
        
           |  |  | 766 | 		error : function(jqXHR, textStatus, errorThrown) {
 | 
        
           |  |  | 767 | 			erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
 | 
        
           |  |  | 768 | 			try {
 | 
        
           |  |  | 769 | 				reponse = jQuery.parseJSON(jqXHR.responseText);
 | 
        
           |  |  | 770 | 				if (reponse != null) {
 | 
        
           |  |  | 771 | 					$.each(reponse, function (cle, valeur) {
 | 
        
           |  |  | 772 | 						erreurMsg += valeur + "\n";
 | 
        
           |  |  | 773 | 					});
 | 
        
           |  |  | 774 | 				}
 | 
        
           |  |  | 775 | 			} catch(e) {
 | 
        
           |  |  | 776 | 				erreurMsg += "L'erreur n'était pas en JSON.";
 | 
        
           |  |  | 777 | 			}
 | 
        
           |  |  | 778 | 		},
 | 
        
           |  |  | 779 | 		complete : function(jqXHR, textStatus) {
 | 
        
           |  |  | 780 | 			$("#chargement").hide();
 | 
        
           |  |  | 781 | 			var debugMsg = extraireEnteteDebug(jqXHR);
 | 
        
           | 1210 | jpm | 782 |   | 
        
           | 1249 | jpm | 783 | 			if (erreurMsg != '') {
 | 
        
           |  |  | 784 | 				if (DEBUG) {
 | 
        
           |  |  | 785 | 					$("#dialogue-obs-transaction-ko .alert-txt").append('<pre class="msg-erreur">'+erreurMsg+'</pre>');
 | 
        
           |  |  | 786 | 					$("#dialogue-obs-transaction-ko .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
 | 
        
           | 1210 | jpm | 787 | 				}
 | 
        
           | 1901 | mathias | 788 | 				var hrefCourriel = "mailto:cel_remarques@tela-botanica.org?"+
 | 
        
           |  |  | 789 | 					"subject=Dysfonctionnement du widget de saisie "+TAG_PROJET+
 | 
        
           | 1902 | mathias | 790 | 					"&body="+erreurMsg+"%0D%0ADébogage :%0D%0A"+debugMsg;
 | 
        
           | 1249 | jpm | 791 |   | 
        
           |  |  | 792 | 				$('#dialogue-obs-transaction-ko .alert-txt').append($("#tpl-transmission-ko").clone()
 | 
        
           |  |  | 793 | 					.find('.courriel-erreur')
 | 
        
           |  |  | 794 | 					.attr('href', hrefCourriel)
 | 
        
           |  |  | 795 | 					.end()
 | 
        
           |  |  | 796 | 					.html());
 | 
        
           |  |  | 797 | 				$("#dialogue-obs-transaction-ko").show();
 | 
        
           |  |  | 798 | 			} else {
 | 
        
           |  |  | 799 | 				if (DEBUG) {
 | 
        
           |  |  | 800 | 					$("#dialogue-obs-transaction-ok .alert-txt").append('<pre class="msg-debug">Débogage : '+debugMsg+'</pre>');
 | 
        
           |  |  | 801 | 				}
 | 
        
           |  |  | 802 | 				$("#dialogue-obs-transaction-ok").show();
 | 
        
           | 1251 | jpm | 803 | 			}
 | 
        
           |  |  | 804 | 			initialiserObs();
 | 
        
           | 1210 | jpm | 805 | 		}
 | 
        
           |  |  | 806 | 	});
 | 
        
           | 1249 | jpm | 807 | }
 | 
        
           | 1210 | jpm | 808 |   | 
        
           |  |  | 809 | function validerFormulaire() {
 | 
        
           |  |  | 810 | 	$observateur = $("#form-observateur").valid();
 | 
        
           |  |  | 811 | 	$station = $("#form-station").valid();
 | 
        
           |  |  | 812 | 	$obs = $("#form-obs").valid();
 | 
        
           |  |  | 813 | 	return ($observateur == true && $station == true && $obs == true) ? true : false;
 | 
        
           |  |  | 814 | }
 | 
        
           |  |  | 815 |   | 
        
           | 1524 | aurelien | 816 | function getNomsImgsOriginales() {
 | 
        
           |  |  | 817 | 	var noms = new Array();
 | 
        
           |  |  | 818 | 	$(".miniature-img").each(function() {
 | 
        
           |  |  | 819 | 		noms.push($(this).attr('alt'));
 | 
        
           |  |  | 820 | 	});
 | 
        
           |  |  | 821 | 	return noms;
 | 
        
           |  |  | 822 | }
 | 
        
           |  |  | 823 |   | 
        
           |  |  | 824 | function getB64ImgsOriginales() {
 | 
        
           |  |  | 825 | 	var b64 = new Array();
 | 
        
           |  |  | 826 | 	$(".miniature-img").each(function() {
 | 
        
           |  |  | 827 | 		if ($(this).hasClass('b64')) {
 | 
        
           |  |  | 828 | 			b64.push($(this).attr('src'));
 | 
        
           |  |  | 829 | 		} else if ($(this).hasClass('b64-canvas')) {
 | 
        
           |  |  | 830 | 			b64.push($(this).data('b64'));
 | 
        
           |  |  | 831 | 		}
 | 
        
           |  |  | 832 | 	});
 | 
        
           |  |  | 833 |   | 
        
           | 1210 | jpm | 834 | 	return b64;
 | 
        
           |  |  | 835 | }
 | 
        
           |  |  | 836 |   | 
        
           |  |  | 837 | function supprimerObs() {
 | 
        
           |  |  | 838 | 	var obsId = $(this).val();
 | 
        
           |  |  | 839 | 	// Problème avec IE 6 et 7
 | 
        
           |  |  | 840 | 	if (obsId == "Supprimer") {
 | 
        
           |  |  | 841 | 		obsId = $(this).attr("title");
 | 
        
           |  |  | 842 | 	}
 | 
        
           | 1215 | jpm | 843 | 	obsNbre = obsNbre - 1;
 | 
        
           |  |  | 844 | 	$(".obs-nbre").text(obsNbre);
 | 
        
           | 1237 | jpm | 845 | 	$(".obs-nbre").triggerHandler('changement');
 | 
        
           | 1210 | jpm | 846 |   | 
        
           | 1215 | jpm | 847 | 	$('.obs'+obsId).remove();
 | 
        
           | 1210 | jpm | 848 | 	$("#liste-obs").removeData('obsId'+obsId);
 | 
        
           |  |  | 849 | }
 | 
        
           |  |  | 850 |   | 
        
           | 1249 | jpm | 851 | function initialiserObs() {
 | 
        
           | 1231 | jpm | 852 | 	obsNbre = 0;
 | 
        
           |  |  | 853 | 	$(".obs-nbre").text(obsNbre);
 | 
        
           | 1249 | jpm | 854 | 	$(".obs-nbre").triggerHandler('changement');
 | 
        
           |  |  | 855 | 	$("#liste-obs").removeData();
 | 
        
           |  |  | 856 | 	$('.obs').remove();
 | 
        
           |  |  | 857 | 	$("#dialogue-bloquer-creer-obs").hide();
 | 
        
           | 1231 | jpm | 858 | }
 | 
        
           |  |  | 859 |   | 
        
           | 1210 | jpm | 860 | function ajouterImgMiniatureAuTransfert() {
 | 
        
           | 1524 | aurelien | 861 | 	var html = '';
 | 
        
           |  |  | 862 | 	var miniatures = '';
 | 
        
           |  |  | 863 | 	var premiere = true;
 | 
        
           |  |  | 864 | 	if ($("#miniatures img").length >= 1) {
 | 
        
           |  |  | 865 | 		$("#miniatures img").each(function() {
 | 
        
           |  |  | 866 | 			var visible = premiere ? 'miniature-selectionnee' : 'miniature-cachee';
 | 
        
           |  |  | 867 | 			premiere = false;
 | 
        
           |  |  | 868 | 			var css = $(this).hasClass('b64') ? 'miniature b64' : 'miniature';
 | 
        
           |  |  | 869 | 			var src = $(this).attr("src");
 | 
        
           |  |  | 870 | 			var alt = $(this).attr("alt");
 | 
        
           |  |  | 871 | 			miniature = '<img class="'+css+' '+visible+'"  alt="'+alt+'"src="'+src+'" />';
 | 
        
           |  |  | 872 | 			miniatures += miniature;
 | 
        
           |  |  | 873 | 		});
 | 
        
           |  |  | 874 | 		visible = ($("#miniatures img").length > 1) ? '' : 'defilement-miniatures-cache';
 | 
        
           |  |  | 875 | 		var html =
 | 
        
           |  |  | 876 | 			'<div class="defilement-miniatures">'+
 | 
        
           |  |  | 877 | 				'<a href="#" class="defilement-miniatures-gauche '+visible+'"><</a>'+
 | 
        
           |  |  | 878 | 				miniatures+
 | 
        
           |  |  | 879 | 				'<a href="#" class="defilement-miniatures-droite '+visible+'">></a>'+
 | 
        
           |  |  | 880 | 			'</div>';
 | 
        
           | 1237 | jpm | 881 | 	} else {
 | 
        
           | 1524 | aurelien | 882 | 		html = '<img class="miniature" alt="Aucune photo"src="'+PAS_DE_PHOTO_ICONE_URL+'" />';
 | 
        
           | 1210 | jpm | 883 | 	}
 | 
        
           | 1524 | aurelien | 884 | 	return html;
 | 
        
           | 1210 | jpm | 885 | }
 | 
        
           |  |  | 886 |   | 
        
           | 1524 | aurelien | 887 | function defilerMiniatures(element) {
 | 
        
           |  |  | 888 |   | 
        
           |  |  | 889 | 	var miniatureSelectionne = element.siblings("img.miniature-selectionnee");
 | 
        
           |  |  | 890 | 	miniatureSelectionne.removeClass('miniature-selectionnee');
 | 
        
           |  |  | 891 | 	miniatureSelectionne.addClass('miniature-cachee');
 | 
        
           |  |  | 892 | 	var miniatureAffichee = miniatureSelectionne;
 | 
        
           |  |  | 893 |   | 
        
           |  |  | 894 | 	if(element.hasClass('defilement-miniatures-gauche')) {
 | 
        
           |  |  | 895 | 		if(miniatureSelectionne.prev('.miniature').length != 0) {
 | 
        
           |  |  | 896 | 			miniatureAffichee = miniatureSelectionne.prev('.miniature');
 | 
        
           |  |  | 897 | 		} else {
 | 
        
           |  |  | 898 | 			miniatureAffichee = miniatureSelectionne.siblings(".miniature").last();
 | 
        
           |  |  | 899 | 		}
 | 
        
           |  |  | 900 | 	} else {
 | 
        
           |  |  | 901 | 		if(miniatureSelectionne.next('.miniature').length != 0) {
 | 
        
           |  |  | 902 | 			miniatureAffichee = miniatureSelectionne.next('.miniature');
 | 
        
           |  |  | 903 | 		} else {
 | 
        
           |  |  | 904 | 			miniatureAffichee = miniatureSelectionne.siblings(".miniature").first();
 | 
        
           |  |  | 905 | 		}
 | 
        
           |  |  | 906 | 	}
 | 
        
           | 1822 | aurelien | 907 | 	//console.log(miniatureAffichee);
 | 
        
           | 1524 | aurelien | 908 | 	miniatureAffichee.addClass('miniature-selectionnee');
 | 
        
           |  |  | 909 | 	miniatureAffichee.removeClass('miniature-cachee');
 | 
        
           |  |  | 910 | }
 | 
        
           |  |  | 911 |   | 
        
           | 1240 | jpm | 912 | function ajouterNumNomSel() {
 | 
        
           |  |  | 913 | 	var nn = '';
 | 
        
           |  |  | 914 | 	if ($("#taxon").data("numNomSel") == undefined) {
 | 
        
           |  |  | 915 | 		nn = '<span class="alert-error">[non lié au référentiel]</span>';
 | 
        
           |  |  | 916 | 	} else {
 | 
        
           |  |  | 917 | 		nn = '<span class="nn">[nn'+$("#taxon").data("numNomSel")+']</span>';
 | 
        
           |  |  | 918 | 	}
 | 
        
           |  |  | 919 | 	return nn;
 | 
        
           |  |  | 920 | }
 | 
        
           |  |  | 921 |   | 
        
           | 1210 | jpm | 922 | //+---------------------------------------------------------------------------------------------------------+
 | 
        
           |  |  | 923 | // AUTO-COMPLÉTION Noms Scientifiques
 | 
        
           |  |  | 924 |   | 
        
           |  |  | 925 | function ajouterAutocompletionNoms() {
 | 
        
           |  |  | 926 | 	$('#taxon').autocomplete({
 | 
        
           |  |  | 927 | 		source: function(requete, add){
 | 
        
           |  |  | 928 | 			// la variable de requête doit être vidée car sinon le parametre "term" est ajouté
 | 
        
           |  |  | 929 | 			requete = "";
 | 
        
           | 1215 | jpm | 930 | 			var url = getUrlAutocompletionNomsSci();
 | 
        
           |  |  | 931 | 			$.getJSON(url, requete, function(data) {
 | 
        
           | 1210 | jpm | 932 | 				var suggestions = traiterRetourNomsSci(data);
 | 
        
           |  |  | 933 | 				add(suggestions);
 | 
        
           |  |  | 934 |             });
 | 
        
           |  |  | 935 |         },
 | 
        
           |  |  | 936 |         html: true
 | 
        
           |  |  | 937 | 	});
 | 
        
           | 1215 | jpm | 938 |   | 
        
           | 1213 | jpm | 939 | 	$( "#taxon" ).bind("autocompleteselect", function(event, ui) {
 | 
        
           | 1215 | jpm | 940 | 		$("#taxon").data(ui.item);
 | 
        
           |  |  | 941 | 		if (ui.item.retenu == true) {
 | 
        
           |  |  | 942 | 			$("#taxon").addClass('ns-retenu');
 | 
        
           |  |  | 943 | 		} else {
 | 
        
           |  |  | 944 | 			$("#taxon").removeClass('ns-retenu');
 | 
        
           |  |  | 945 | 		}
 | 
        
           | 1213 | jpm | 946 | 	});
 | 
        
           | 1210 | jpm | 947 | }
 | 
        
           |  |  | 948 |   | 
        
           | 1215 | jpm | 949 | function getUrlAutocompletionNomsSci() {
 | 
        
           |  |  | 950 | 	var mots = $('#taxon').val();
 | 
        
           | 1476 | aurelien | 951 | 	var url = SERVICE_AUTOCOMPLETION_NOM_SCI_URL_TPL.replace('{referentiel}',NOM_SCI_PROJET);
 | 
        
           |  |  | 952 | 	url = url.replace('{masque}', mots);
 | 
        
           | 1210 | jpm | 953 | 	return url;
 | 
        
           |  |  | 954 | }
 | 
        
           |  |  | 955 |   | 
        
           |  |  | 956 | function traiterRetourNomsSci(data) {
 | 
        
           |  |  | 957 | 	var suggestions = [];
 | 
        
           |  |  | 958 | 	if (data.resultat != undefined) {
 | 
        
           |  |  | 959 | 		$.each(data.resultat, function(i, val) {
 | 
        
           |  |  | 960 | 			val.nn = i;
 | 
        
           | 1215 | jpm | 961 | 			var nom = {label : '', value : '', nt : '', nomSel : '', nomSelComplet : '', numNomSel : '',
 | 
        
           |  |  | 962 | 				nomRet : '', numNomRet : '', famille : '', retenu : false
 | 
        
           |  |  | 963 | 			};
 | 
        
           |  |  | 964 | 			if (suggestions.length >= AUTOCOMPLETION_ELEMENTS_NBRE) {
 | 
        
           | 1213 | jpm | 965 | 				nom.label = "...";
 | 
        
           |  |  | 966 | 				nom.value = $('#taxon').val();
 | 
        
           |  |  | 967 | 				suggestions.push(nom);
 | 
        
           |  |  | 968 | 				return false;
 | 
        
           |  |  | 969 | 			} else {
 | 
        
           | 1231 | jpm | 970 | 				nom.label = val.nom_sci_complet;
 | 
        
           |  |  | 971 | 				nom.value = val.nom_sci_complet;
 | 
        
           | 1215 | jpm | 972 | 				nom.nt = val.num_taxonomique;
 | 
        
           |  |  | 973 | 				nom.nomSel = val.nom_sci;
 | 
        
           |  |  | 974 | 				nom.nomSelComplet = val.nom_sci_complet;
 | 
        
           |  |  | 975 | 				nom.numNomSel = val.nn;
 | 
        
           | 1237 | jpm | 976 | 				nom.nomRet = val.nom_retenu_complet;
 | 
        
           | 1220 | jpm | 977 | 				nom.numNomRet = val["nom_retenu.id"];
 | 
        
           | 1231 | jpm | 978 | 				nom.famille = val.famille;
 | 
        
           | 1215 | jpm | 979 | 				nom.retenu = (val.retenu == 'false') ? false : true;
 | 
        
           |  |  | 980 |   | 
        
           | 1213 | jpm | 981 | 				suggestions.push(nom);
 | 
        
           |  |  | 982 | 			}
 | 
        
           | 1210 | jpm | 983 | 		});
 | 
        
           |  |  | 984 | 	}
 | 
        
           | 1213 | jpm | 985 |   | 
        
           | 1210 | jpm | 986 | 	return suggestions;
 | 
        
           |  |  | 987 | }
 | 
        
           |  |  | 988 |   | 
        
           |  |  | 989 | /*
 | 
        
           |  |  | 990 |  * jQuery UI Autocomplete HTML Extension
 | 
        
           |  |  | 991 |  *
 | 
        
           |  |  | 992 |  * Copyright 2010, Scott González (http://scottgonzalez.com)
 | 
        
           |  |  | 993 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 | 
        
           |  |  | 994 |  *
 | 
        
           |  |  | 995 |  * http://github.com/scottgonzalez/jquery-ui-extensions
 | 
        
           |  |  | 996 |  *
 | 
        
           |  |  | 997 |  * Adaptation par Aurélien Peronnet pour la mise en gras des noms de taxons valides
 | 
        
           |  |  | 998 |  */
 | 
        
           |  |  | 999 | (function( $ ) {
 | 
        
           | 1215 | jpm | 1000 | 	var proto = $.ui.autocomplete.prototype,
 | 
        
           |  |  | 1001 | 		initSource = proto._initSource;
 | 
        
           |  |  | 1002 |   | 
        
           |  |  | 1003 | 	function filter( array, term ) {
 | 
        
           |  |  | 1004 | 		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
 | 
        
           |  |  | 1005 | 		return $.grep( array, function(value) {
 | 
        
           |  |  | 1006 | 			return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
 | 
        
           |  |  | 1007 | 		});
 | 
        
           |  |  | 1008 | 	}
 | 
        
           |  |  | 1009 |   | 
        
           |  |  | 1010 | 	$.extend( proto, {
 | 
        
           |  |  | 1011 | 		_initSource: function() {
 | 
        
           |  |  | 1012 | 			if ( this.options.html && $.isArray(this.options.source) ) {
 | 
        
           |  |  | 1013 | 				this.source = function( request, response ) {
 | 
        
           |  |  | 1014 | 					response( filter( this.options.source, request.term ) );
 | 
        
           |  |  | 1015 | 				};
 | 
        
           |  |  | 1016 | 			} else {
 | 
        
           |  |  | 1017 | 				initSource.call( this );
 | 
        
           |  |  | 1018 | 			}
 | 
        
           |  |  | 1019 | 		},
 | 
        
           |  |  | 1020 | 		_renderItem: function( ul, item) {
 | 
        
           |  |  | 1021 | 			if (item.retenu == true) {
 | 
        
           |  |  | 1022 | 				item.label = "<strong>"+item.label+"</strong>";
 | 
        
           |  |  | 1023 | 			}
 | 
        
           |  |  | 1024 |   | 
        
           |  |  | 1025 | 			return $( "<li></li>" )
 | 
        
           |  |  | 1026 | 				.data( "item.autocomplete", item )
 | 
        
           |  |  | 1027 | 				.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
 | 
        
           |  |  | 1028 | 				.appendTo( ul );
 | 
        
           |  |  | 1029 | 		}
 | 
        
           | 1210 | jpm | 1030 | 	});
 | 
        
           |  |  | 1031 | })( jQuery );
 |