Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 210 | Rev 240 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 210 Rev 237
Line 5... Line 5...
5
 
5
 
6
var type_espece = '0';
6
var type_espece = '0';
7
var espece = '0';
7
var espece = '0';
8
var evenement = '0';
8
var evenement = '0';
9
var annee = '0';
9
var annee = '0';
-
 
10
var mois = '0';
10
var mois = '1';
11
var jour = '0';
Line -... Line 12...
-
 
12
var departement = '0';
-
 
13
 
-
 
14
var tableau_couleurs = new Array("#A9582B", "#8DC7B8","#ED9355","#A7BD5B",
-
 
15
		"#FFC730","#0000FF","#CC4369","#9CA6A2",
-
 
16
		"#F7E4A2","#DC574E","#3F6CA9","#DC6C4B",
-
 
17
		"#E8A794","#9B5F95","#E78EDE","#45808A",
-
 
18
		"#168F47","#C9A838","#F2EAD8","#1A5561",
-
 
19
		"#6D883A");
-
 
20
 
-
 
21
liste_mois = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
-
 
22
 
-
 
23
evenements_debut_annee = new Array("")
-
 
24
 
-
 
25
var tableau_couleurs_en_cours = new Array();
-
 
26
 
11
var departement = '0';
27
var timerSlider = null;
12
 
-
 
13
function getUrlBaseJrest() {
-
 
14
	
-
 
15
	url_page_courante = document.URL;
-
 
16
	
28
 
17
	if(url_page_courante.indexOf('http://www.') != -1) {
-
 
18
		return urlBaseJrest;
-
 
19
	} else {
-
 
20
		return urlBaseJrest.replace('http://www.','http://');
29
function getUrlBaseJrest() {
Line 21... Line 30...
21
	}
30
	return urlBaseJrest;
Line 22... Line 31...
22
}
31
}
Line 65... Line 74...
65
	
74
	
66
	if(vars['mois'] != null) {
75
	if(vars['mois'] != null) {
67
		mois = vars['mois'];
76
		mois = vars['mois'];
68
	} else {
77
	} else {
69
		date = new Date()
-
 
70
		mois = date.getMonth() + 1;
78
		date = new Date()
Line 71... Line 79...
71
	}
79
	}
72
	
80
	
73
	if(vars['departement'] != null) {
81
	if(vars['departement'] != null) {
Line 114... Line 122...
114
 
122
 
115
************************************************************************************************
123
************************************************************************************************
116
************************************************************************************************
124
************************************************************************************************
Line 117... Line 125...
117
**/ 
125
**/ 
-
 
126
 
-
 
127
function setDateSlider() {	
-
 
128
	numeroJour = $("#slider_date").slider("value");
Line -... Line 129...
-
 
129
	dateObs = new Date(annee,0,0);
-
 
130
	dateObs.setDate(dateObs.getDate()+numeroJour);
-
 
131
	
-
 
132
	mois = dateObs.getMonth();
-
 
133
	jour = dateObs.getDay();
-
 
134
	afficherObservations();	
-
 
135
}
-
 
136
 
-
 
137
function InitialiserIntervalleDateSlider() {
-
 
138
	
118
 
139
}
-
 
140
 
-
 
141
/*function est une anneeBissextile(	
-
 
142
		return eval(an%4)==0 && !(eval(an%100)== 0 && eval(an%400)==0));
-
 
143
}*/
-
 
144
 
-
 
145
function initialiserSliderDates() {
Line 119... Line 146...
119
function initialiserSliderDates() {
146
		
120
	
147
	date_min = 1;
121
	dates = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
148
	date_max = 365;
122
	
149
	
123
	$("#slider_date").slider({
150
	$("#slider_date").slider({
Line 124... Line 151...
124
								min: 1,
151
								min: date_min,
Line 125... Line 152...
125
								max: 13,
152
								max: date_max,
Line 126... Line 153...
126
								value: mois
153
								value: mois
127
							});
154
							});
128
	
155
	
Line 129... Line 156...
129
	taille_criteres = Math.round($("#slider_date").width()/(dates.length));
156
	taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
Line 130... Line 157...
130
	
157
	
Line 131... Line 158...
131
	valeurs_slider = '<table id="table_dates"><tbody><tr>';
158
	valeurs_slider = '<table id="table_dates"><tbody><tr>';
Line 132... Line 159...
132
	
159
	
133
	for (i in dates) {
-
 
134
		valeurs_slider += '<td class="conteneur_date">'+dates[i]+'</td>';
-
 
135
	}
160
	for (i in liste_mois) {
136
	
161
		valeurs_slider += '<td class="conteneur_date">'+liste_mois[i]+'</td>';
137
	valeurs_slider += '</tr></tbody></table>';
162
	}
Line 138... Line 163...
138
	
163
	
139
	$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
164
	valeurs_slider += '</tr></tbody></table>';
140
	
165
	
141
	$("#valeurs_date").html(valeurs_slider);
166
	$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
142
		
167
	
143
	$("#slider_date").bind("slide", function(event, ui) {
168
	$("#valeurs_date").html(valeurs_slider);
Line 144... Line 169...
144
		
169
		
Line 165... Line 190...
165
 
190
 
Line 166... Line 191...
166
function modifierTableauEspeces() {
191
function modifierTableauEspeces() {
Line 167... Line 192...
167
 
192
 
-
 
193
	id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
-
 
194
	
Line 168... Line 195...
168
	id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
195
	elements_liste = tableau_especes[id_type_espece];
169
	
-
 
170
	$elements_liste = tableau_especes[id_type_espece];
196
	
-
 
197
	var nb_couleur = 0;
171
 
198
 
172
	chaine_elements_liste = '';
199
	chaine_elements_liste = '';
-
 
200
	for(i in elements_liste) { 
-
 
201
		chaine_elements_liste += '<span class="legende" style="background-color:'+tableau_couleurs[nb_couleur]+'"></span><input class="selecteur_espece" type="checkbox" id="espece_numero_'+i+'" name="selecteur_especes" value="'+i+'" />';
173
	chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> toutes les esp&egrave;ces </option>';
202
		chaine_elements_liste += '<label for="espece_numero_'+i+'">'+elements_liste[i]+'</label><br />';
174
	for(i in $elements_liste) { 
203
		
175
		chaine_elements_liste += '<option value='+i+'>'+$elements_liste[i]+'</option>';
204
		tableau_couleurs_en_cours[i] = tableau_couleurs[nb_couleur];
Line 176... Line 205...
176
	}
205
		nb_couleur++;
Line 177... Line 206...
177
	
206
	}	
178
	$('#selecteur_especes').html(chaine_elements_liste);	
-
 
179
}
207
	$('#conteneur_selecteur_liste_especes').html(chaine_elements_liste);	
180
 
208
}
181
function initialiserListeEspeces() {
209
 
182
	
210
function initialiserListeEspeces() {
Line -... Line 211...
-
 
211
	
-
 
212
	$('.selecteur_espece').live('change', function() {
-
 
213
		modifierTableauEvenements();
-
 
214
		obtenirObservations();	
-
 
215
	});
-
 
216
}
-
 
217
 
-
 
218
function getEspecesSelectionnees() {
-
 
219
	
-
 
220
	especes_selectionnees = $('.selecteur_espece');
-
 
221
	tab_id_especes = new Array();
-
 
222
	
-
 
223
	especes_selectionnees.each(function (index, espece) {
-
 
224
		if($(espece).attr('checked') == true) {
183
	$('#selecteur_especes').change(function() {
225
			tab_id_especes.push($(espece).val());
-
 
226
		}
-
 
227
	});
-
 
228
	
-
 
229
	return tab_id_especes;
-
 
230
}
-
 
231
 
-
 
232
function modifierTableauEvenements() {
-
 
233
	
-
 
234
	especes_selectionnees = getEspecesSelectionnees();
-
 
235
	
-
 
236
	elements_liste = new Array();
Line 184... Line -...
184
		espece = $('select#selecteur_especes option:selected').val();
-
 
Line -... Line 237...
-
 
237
	
185
		modifierTableauEvenements();
238
	if(especes_selectionnees.length > 0) {
186
		obtenirObservations();	
239
		espece = especes_selectionnees.concat(',');
-
 
240
		espece = espece.slice(0, -1);
-
 
241
	} else {
-
 
242
		espece = '0';
-
 
243
	}
Line 187... Line 244...
187
	});
244
 
188
}
245
	
189
 
246
	for(i in especes_selectionnees) {
190
function modifierTableauEvenements() {
247
		evenements_especes = tableau_evenements_especes[especes_selectionnees[i]];
191
 
248
		liste_evenements_cette_espece = evenements_especes.split(',');
Line 192... Line 249...
192
	id_espece = $('select#selecteur_especes option:selected').val();
249
		for(j in liste_evenements_cette_espece) {
193
	
250
			elements_liste[j] = liste_evenements_cette_espece[j];
Line 217... Line 274...
217
		annee = $('select#selecteur_liste_annees option:selected').val();
274
		annee = $('select#selecteur_liste_annees option:selected').val();
218
		obtenirObservations();	
275
		obtenirObservations();	
219
	});
276
	});
220
}
277
}
Line -... Line 278...
-
 
278
 
-
 
279
function incrementerValeurSlider() {
-
 
280
	var valeur_en_cours = $('#slider_date').slider("value");
-
 
281
	if($('#slider_date').slider("value") < $('#slider_date').slider("option", "max")) {
-
 
282
		valeur_en_cours++;
-
 
283
		$('#slider_date').slider("value",valeur_en_cours);
-
 
284
		setDateSlider();
-
 
285
	} else {
-
 
286
		clearInterval(timerSlider);
-
 
287
		$('#demarrer_slider').removeAttr('disabled');
-
 
288
	}
-
 
289
}
-
 
290
 
-
 
291
function initialiserBoutonsSlider() {
-
 
292
	
-
 
293
	$('#demarrer_slider').click(function() {
-
 
294
		
-
 
295
		if($('#slider_date').slider("value") == $('#slider_date').slider("option","max")) {
-
 
296
			min_slider = $('#slider_date').slider("option","min");
-
 
297
			$('#slider_date').slider("value",min_slider);
-
 
298
		}
-
 
299
		
-
 
300
		timerSlider = setInterval("incrementerValeurSlider()",150);
-
 
301
		$('#demarrer_slider').attr('disabled', 'disabled');
-
 
302
	});
-
 
303
	
-
 
304
	$('#arreter_slider').click(function() {
-
 
305
		if(timerSlider != null) {
-
 
306
			clearInterval(timerSlider);
-
 
307
			$('#demarrer_slider').removeAttr('disabled');
-
 
308
		}
-
 
309
	});
-
 
310
	
-
 
311
}
-
 
312
 
-
 
313
function initialiserValeursParDefaut() {
-
 
314
	id_type_espece = $('select#selecteur_liste_types_especes').val("2");
-
 
315
	modifierTableauEspeces();
-
 
316
	obtenirObservations();
-
 
317
}
221
 
318
 
222
$('#slider_date').ready(function() {
319
$('#slider_date').ready(function() {
-
 
320
	initialiserSliderDates();
223
	initialiserSliderDates();
321
	initialiserBoutonsSlider();
224
	initialiserListeTypesEspeces();
322
	initialiserListeTypesEspeces();
225
	initialiserListeEspeces();
323
	initialiserListeEspeces();
226
	initialiserListeEvenements();
324
	initialiserListeEvenements();
227
	initialiserListeAnnees();
325
	initialiserListeAnnees();
228
	obtenirObservations();
326
	initialiserValeursParDefaut();
Line 229... Line 327...
229
});
327
});
230
 
328
 
Line 257... Line 355...
257
	
355
	
258
	marker = new google.maps.Marker({
356
	marker = new google.maps.Marker({
259
	      position: latlng,
357
	      position: latlng,
260
	      title:""
358
	      title:""
-
 
359
	});
-
 
360
	
-
 
361
	$('.lien_vers_profil').live('click', function(event) {
-
 
362
		event.preventDefault();
-
 
363
		window.open($(this).attr('href'));
-
 
364
		return false;
261
	});
365
	});
Line 262... Line 366...
262
}
366
}
Line 263... Line 367...
263
 
367
 
Line 264... Line 368...
264
function obtenirObservations() {
368
function obtenirObservations() {
265
		
369
		
266
	requete = '?annee='+annee+'&mois='+mois;
370
	requete = '?annee='+annee;
Line 290... Line 394...
290
		}
394
		}
Line 291... Line 395...
291
		
395
		
292
		for(i in infos_observations) {
396
		for(i in infos_observations) {
293
			creerEtAjouterMarqueur(i, infos_observations[i]);
397
			creerEtAjouterMarqueur(i, infos_observations[i]);
-
 
398
		}
-
 
399
		
294
		}
400
		afficherObservations();
295
	});
401
	});
Line 296... Line 402...
296
}
402
}
Line 297... Line 403...
297
 
403
 
Line -... Line 404...
-
 
404
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
-
 
405
	
-
 
406
	latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
-
 
407
	
-
 
408
	var chaine_couleur = '';
-
 
409
	
-
 
410
	for(i in infos_obs.obs) {
-
 
411
		var observation = infos_obs.obs[i];
-
 
412
		
-
 
413
		if(typeof(tableau_couleurs_en_cours[observation.id_espece]) != 'undefined') {		
-
 
414
			chaine_couleur += tableau_couleurs_en_cours[observation.id_espece]+",";
-
 
415
		}
-
 
416
	}
298
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
417
	
299
	
418
	chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
300
	latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
419
    var image = obtenirImagePourChaineCouleur(chaine_couleur);
-
 
420
     
-
 
421
 	tableau_marqueurs[id_marqueur] = new google.maps.Marker({
301
	
422
	      position: latlng,
302
	tableau_marqueurs[id_marqueur] = new google.maps.Marker({
423
	      title:infos_obs.evenenement,
303
	      position: latlng,
424
	      icon:image,
Line 304... Line 425...
304
	      title:infos_obs.evenenement
425
	      optimized: false
305
	});
426
	});
306
		
427
 
Line 327... Line 448...
327
	}
448
	}
Line 328... Line 449...
328
	
449
	
329
	tableau_marqueurs = new Array();
450
	tableau_marqueurs = new Array();
Line -... Line 451...
-
 
451
}
-
 
452
 
-
 
453
function afficherObservations() {
-
 
454
	
-
 
455
	var chaine_couleur = '';
-
 
456
	
-
 
457
	for(i in tableau_marqueurs) {
-
 
458
		id_obs = i;
-
 
459
		obs_associees = infos_observations[id_obs];
-
 
460
		
-
 
461
		afficher_marqueur = false;
-
 
462
		chaine_couleur = '';
-
 
463
		
-
 
464
		for(j in obs_associees.obs) {
-
 
465
			
-
 
466
			date_obs = obs_associees.obs[j].date;
-
 
467
			afficher_marqueur = dateEstDansIntervalle(date_obs);
-
 
468
			
-
 
469
			if(afficher_marqueur) {
-
 
470
				if(typeof(tableau_couleurs_en_cours[obs_associees.obs[j].id_espece]) != 'undefined') {		
-
 
471
					chaine_couleur += tableau_couleurs_en_cours[obs_associees.obs[j].id_espece]+",";
-
 
472
				}
-
 
473
			}
-
 
474
		}
-
 
475
				
-
 
476
		if(afficher_marqueur && chaine_couleur != '') {
-
 
477
			chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
-
 
478
		    var image = obtenirImagePourChaineCouleur(chaine_couleur);
-
 
479
			tableau_marqueurs[i].setIcon(image);
-
 
480
			
-
 
481
			if(!tableau_marqueurs[i].getVisible()) {
-
 
482
				tableau_marqueurs[i].setVisible(true);
-
 
483
			}
-
 
484
		} else {
-
 
485
			tableau_marqueurs[i].setVisible(false);
-
 
486
		}
-
 
487
	}
-
 
488
}
-
 
489
 
-
 
490
function obtenirImagePourChaineCouleur(chaine_couleur) {
-
 
491
					
-
 
492
	chaine_couleur = encodeURIComponent(chaine_couleur);
-
 
493
	var image = getUrlBaseJrest()+"OdsMarqueur/point?couleurs="+chaine_couleur;
-
 
494
    
-
 
495
    return image;
-
 
496
}
-
 
497
 
-
 
498
function convertirDateObsVersJs(chaine_date) {
-
 
499
	
-
 
500
	tableau_date = chaine_date.split('/');
-
 
501
	date_obs = new Date();
-
 
502
	
-
 
503
	date_obs.setDate(tableau_date[0]);
-
 
504
	date_obs.setMonth(tableau_date[1]);
-
 
505
	date_obs.setFullYear(tableau_date[2]);
-
 
506
	
-
 
507
	return date_obs;
-
 
508
}
-
 
509
 
-
 
510
function dateEstDansIntervalle(t_obs) {
-
 
511
	
-
 
512
	date_obs = convertirDateObsVersJs(t_obs);
-
 
513
	
-
 
514
	dans_intervalle = false;
-
 
515
	
-
 
516
	var dateDebutAnnee = new Date();
-
 
517
	dateDebutAnnee.setDate(1);
-
 
518
	dateDebutAnnee.setMonth(1);
-
 
519
	dateDebutAnnee.setFullYear(date_obs.getFullYear());
-
 
520
	var quantieme = (date_obs.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000)+1;
-
 
521
	
-
 
522
	if($('#slider_date').slider("value") >= quantieme) {
-
 
523
		dans_intervalle = true;
-
 
524
	}
-
 
525
		
-
 
526
	return dans_intervalle;
-
 
527
}
-
 
528
	
-
 
529
function comparerDates(date_1, date_2){
-
 
530
	diff = date_1.getTime()-date_2.getTime();
-
 
531
	return (diff==0?diff:diff/Math.abs(diff));
330
}
532
}
Line 331... Line 533...
331
 
533
 
Line 332... Line 534...
332
function obtenirMarqueurPourStade(stade) {
534
function obtenirMarqueurPourStade(stade) {
333
		
535
		
Line 334... Line 536...
334
	iconeStade = '../images/marqueur_'+stade+'.png';
536
	iconeStade = '../images/marqueur_'+stade+'.png';
Line 335... Line 537...
335
 
537
 
-
 
538
	return iconeStade;
Line 336... Line 539...
336
	return iconeStade;
539
}
Line 337... Line -...
337
}
-
 
338
 
-
 
339
function formaterContenuFenetre(infos_obs) {
540
 
340
	
-
 
Line -... Line 541...
-
 
541
function formaterContenuFenetre(infos_obs) {
-
 
542
	
-
 
543
	contenu_fenetre = '';
-
 
544
	date_courante = new Date(annee,mois,jour);
-
 
545
	
-
 
546
	for(i in infos_obs) {
341
	contenu_fenetre = '';
547
		
342
	
548
		t_obs = infos_obs[i].date;
343
	for(i in infos_obs) {	
549
		
344
		
550
		if(dateEstDansIntervalle(t_obs)) {
-
 
551
			nom_stade ='';
345
		nom_stade ='';
552
			if(infos_obs[i].code_bbch != '') {
-
 
553
				nom_stade = ' stade '+infos_obs[i].code_bbch;
346
		if(infos_obs[i].code_bbch != '') {
554
			}
Line 347... Line 555...
347
			nom_stade = ' stade '+infos_obs[i].code_bbch;
555
			
348
		}
556
			contenu_fenetre += '<div class="fenetre_infos">';
-
 
557
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
-
 
558
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
-
 
559
			contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
-
 
560
			contenu_fenetre += construireUrlProfilParticipant(infos_obs[i].participant);
Line 349... Line 561...
349
		
561
			contenu_fenetre += '</div><br />';
350
		contenu_fenetre += '<div class="fenetre_infos">';
562
		}
351
		contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
563
	}
352
		contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
564