Rev 1169 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*+--------------------------------------------------------------------------------------------------------+*/// PARAMÊTRES et CONSTANTES// Mettre à true pour afficher les messages de débogagevar DEBUG = false;/*** Indication de certaines variables ajoutée par php* var communeImageUrl ;* var pointImageUrl ;* var groupeImageUrlTpl ;*/var pointsOrigine = null;var boundsOrigine = null;var markerClusterer = null;var map = null;var infoBulle = new google.maps.InfoWindow();var stations = null;var pointClique = null;var carteCentre = new google.maps.LatLng(25, 10);var carteOptions = {zoom: 3,center:carteCentre,mapTypeId: google.maps.MapTypeId.ROADMAP,mapTypeControlOptions: {mapTypeIds: ['OSM',google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.HYBRID,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.TERRAIN]}};var osmMapType = new google.maps.ImageMapType({getTileUrl: function(coord, zoom) {return "http://tile.openstreetmap.org/" +zoom + "/" + coord.x + "/" + coord.y + ".png";},tileSize: new google.maps.Size(256, 256),isPng: true,alt: "OpenStreetMap",name: "OSM",maxZoom: 19});var ctaLayer = null;var pagineur = {'limite':50, 'start':0, 'total':0, 'stationId':null, 'format':'tableau'};var station = {'commune':'', 'obsNbre':0};var obsStation = new Array();var obsPage = new Array();var taxonsCarte = new Array();var mgr = null;var marqueursCache = new Array();var zonesCache = new Array();var requeteChargementPoints;var urlVars = null;/*+--------------------------------------------------------------------------------------------------------+*/// INITIALISATION DU CODE//Déclenchement d'actions quand JQuery et le document HTML sont OK$(document).ready(function() {initialiserWidget();});function initialiserWidget() {urlVars = getUrlVars();definirTailleTitre();initialiserAffichageCarte();initialiserAffichagePanneauLateral();initialiserCarte();initialiserGestionnaireMarqueurs()initialiserInfoBulle();initialiserFormulaireContact();chargerLimitesCommunales();attribuerListenerCarte();programmerRafraichissementCarte();}function getUrlVars(){var vars = [], hash;if(window.location.href.indexOf('?') != -1) {var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');for(var i = 0; i < hashes.length; i++){hash = hashes[i].split('=');vars.push(hash[0]);vars[hash[0]] = hash[1];}}return vars;}/*+--------------------------------------------------------------------------------------------------------+*/// AFFICHAGE GÉNÉRALfunction afficherTitreCarte() {if (stations != null && taxonsCarte.length > 0) {var obsNbre = stations.stats.observations;var obsNbreFormate = obsNbre;if(obsNbre != 0) {obsNbreFormate = stations.stats.observations.formaterNombre();}var plteNbre = taxonsCarte.length;var plteNbreFormate = plteNbre;if(plteNbre != 0) {plteNbreFormate = taxonsCarte.length.formaterNombre();}var communeNbre = stations.stats.communes;var communeNbreFormate = communeNbre;if(communeNbre != 0) {communeNbreFormate = stations.stats.communes.formaterNombre();}var stationNbre = stations.stats.stations;var stationNbreFormate = stationNbre;if(stationNbre != 0) {stationNbreFormate = stations.stats.stations.formaterNombre();}var titre = obsNbreFormate+' observation';titre += (obsNbre > 1) ? 's' : '' ;if (nt == '*') {titre += ' de '+plteNbreFormate+' plante';titre += (plteNbre > 1) ? 's' : '' ;} else {if (taxonsCarte[0]) {var taxon = taxonsCarte[0];titre += ' pour '+taxon.nom;}}titre += ' sur '+communeNbreFormate+' commune';titre += (communeNbre > 1) ? 's' : '' ;titre += ' et '+stationNbre+' station';titre += (stationNbre > 1) ? 's' : '' ;$('#carte-titre-infos').text(titre);}}function definirTailleTitre() {var largeurViewPort = $(window).width();var taille = null;if (largeurViewPort < 400) {taille = '0.8';} else if (largeurViewPort >= 400 && largeurViewPort < 800) {taille = '1.0';} else if (largeurViewPort >= 800) {taille = '1.6';}$("#carte-titre").css('font-size', taille+'em');}/*+--------------------------------------------------------------------------------------------------------+*/// CARTEfunction initialiserAffichageCarte() {$('#carte').height($(window).height() - 35);$('#carte').width($(window).width() - 24);if (nt != '*') {$('#carte').css('left', 0);}}function initialiserCarte() {map = new google.maps.Map(document.getElementById('carte'), carteOptions);// Ajout de la couche OSM à la cartemap.mapTypes.set('OSM', osmMapType);}function initialiserGestionnaireMarqueurs() {mgr = new MarkerManager(map);}function chargerLimitesCommunales() {if (urlsLimitesCommunales != null) {for (urlId in urlsLimitesCommunales) {var url = urlsLimitesCommunales[urlId];ctaLayer = new google.maps.KmlLayer(url, {preserveViewport: true});ctaLayer.setMap(map);}}}var listener = null;var timer = null;function attribuerListenerCarte() {listener = google.maps.event.addListener(map, 'bounds_changed', function(){programmerRafraichissementCarte();});listener = google.maps.event.addListener(map, 'zoom_changed', function(){programmerRafraichissementCarte();});}function programmerRafraichissementCarte() {if(timer != null) {window.clearTimeout(timer);}if(requeteChargementPoints != null) {requeteChargementPoints.abort();}timer = window.setTimeout(function() {var zoom = map.getZoom();var NELatLng = (map.getBounds().getNorthEast().lat())+'|'+(map.getBounds().getNorthEast().lng());var SWLatLng = (map.getBounds().getSouthWest().lat())+'|'+(map.getBounds().getSouthWest().lng());chargerMarqueurs(zoom, NELatLng, SWLatLng);}, 400);}var marqueurs = new Array();function chargerMarqueurs(zoom, NELatLng, SWLatLng) {var url = stationsUrl+'&zoom='+zoom+'&ne='+NELatLng+'&sw='+SWLatLng;if(infoBulleOuverte) {return;}if(requeteChargementPoints != null) {requeteChargementPoints.abort();cacherMessageChargementPoints();}afficherMessageChargementPoints();requeteChargementPoints = $.getJSON(url, function(data) {rafraichirMarqueurs(data);cacherMessageChargementPoints();});}function afficherMessageChargementPoints() {$('#zone-chargement-point').css('display','block');}function cacherMessageChargementPoints() {$('#zone-chargement-point').css('display','none');}premierChargement = true;function doitCentrerCarte() {return premierChargement && urlVars != null && urlVars.length > 0;}function rafraichirMarqueurs(data) {$.each(marqueurs, function(index, marqueur) {marqueur.setMap(null);});marqueurs = new Array();stations = data;afficherTitreCarte();$.each(stations.points, function (index, station) {if(station != null) {var nouveauMarqueur = creerMarqueur(station);marqueurs.push(nouveauMarqueur);}});if(doitCentrerCarte()) {premierChargement = false;var bounds = new google.maps.LatLngBounds();var latMax = new google.maps.LatLng(data.stats.coordmax.latMax, data.stats.coordmax.lngMax);var latMin = new google.maps.LatLng(data.stats.coordmax.latMin, data.stats.coordmax.lngMin);bounds.extend(latMax);bounds.extend(latMin);rendrePointsVisibles(bounds);}}function creerMarqueur(station) {var titre = '';if(station.nbreMarqueur) {titre = station.nbreMarqueur+' points renseignés';} else {if(station.nom) {titre = station.nom;}}//var titre = station['nbreMarqueur'];var icone = attribuerImageMarqueur(station['id'], station['nbreMarqueur']);var latLng = new google.maps.LatLng(station['lat'], station['lng']);var marqueur = new google.maps.Marker({position: latLng,icon: icone,title: ''+titre,map: map,stationInfos: station});attribuerListenerClick(marqueur, station['id']);marqueur.setMap(map);return marqueur;}function rendrePointsVisibles(bounds) {map.setCenter(bounds.getCenter());map.fitBounds(bounds);map.panToBounds(bounds);}function attribuerImageMarqueur(id, nbreMarqueur) {var marqueurImage = null;if (etreMarqueurCommune(id)) {marqueurImage = new google.maps.MarkerImage(communeImageUrl, new google.maps.Size(24, 32));} else if (etreMarqueurStation(id)) {marqueurImage = new google.maps.MarkerImage(pointImageUrl, new google.maps.Size(16, 16));} else if (etreMarqueurGroupe(id)) {var type = 0;var largeur = 0;var hauteur = 0;if (nbreMarqueur != null) {if (nbreMarqueur >= 2 && nbreMarqueur < 100 ) {type = '1';largeur = 53;hauteur = 52;} else if (nbreMarqueur >= 100 && nbreMarqueur < 1000 ) {type = '2';largeur = 56;hauteur = 55;} else if (nbreMarqueur >= 1000 && nbreMarqueur < 10000 ) {type = '3';largeur = 66;hauteur = 65;} else if (nbreMarqueur >= 10000 && nbreMarqueur < 20000 ) {type = '4';largeur = 78;hauteur = 77;} else if (nbreMarqueur >= 20000) {type = '5';largeur = 66;hauteur = 65;}}groupeImageUrl = groupeImageUrlTpl.replace(/\{type\}/, type);groupeImageUrl = groupeImageUrl.replace(/\{nbre\}/, nbreMarqueur);marqueurImage = new google.maps.MarkerImage(groupeImageUrl, new google.maps.Size(largeur, hauteur));}return marqueurImage}function attribuerListenerClick(marqueur, id) {if (etreMarqueurCommune(id) || etreMarqueurStation(id)) {google.maps.event.addListener(marqueur, 'click', surClickMarqueur);} else if (etreMarqueurGroupe(id)) {google.maps.event.addListener(marqueur, 'click', surClickGroupe);}}function surClickMarqueur(event) {if(infoBulleOuverte) {infoBulle.close();}pointClique = this;infoBulle.open(map, this);actualiserPagineur();var limites = map.getBounds();var centre = limites.getCenter();var nordEst = limites.getNorthEast();var centreSudLatLng = new google.maps.LatLng(nordEst.lat(), centre.lng());map.panTo(centreSudLatLng);afficherInfoBulle();}function surClickGroupe() {map.setCenter(this.getPosition());var nouveauZoom = map.getZoom() + 2;map.setZoom(nouveauZoom);mgr.clearMarkers();}function etreMarqueurGroupe(id) {var groupe = false;var motif = /^GROUPE/;if (motif.test(id)) {groupe = true;}return groupe;}function etreMarqueurCommune(id) {var commune = false;var motif = /^COMMUNE:/;if (motif.test(id)) {commune = true;}return commune;}function etreMarqueurStation(id) {var station = false;var motif = /^STATION:/;if (motif.test(id)) {station = true;}return station;}function deplacerCarteSurPointClique() {map.panTo(pointClique.position);}function executerMarkerClusterer(points, bounds) {if (markerClusterer) {markerClusterer.clearMarkers();}markerClusterer = new MarkerClusterer(map, points, {gridSize: 50, maxZoom: 18});map.fitBounds(bounds);}/*+--------------------------------------------------------------------------------------------------------+*/// INFO BULLEvar infoBulleOuverte = false;function initialiserInfoBulle() {google.maps.event.addListener(infoBulle, 'domready', initialiserContenuInfoBulle);google.maps.event.addListener(infoBulle, 'closeclick', surFermetureInfoBulle);google.maps.event.addListener(infoBulle, 'content_changed', definirLargeurInfoBulle);}function surFermetureInfoBulle() {infoBulleOuverte = false;programmerRafraichissementCarte();}function centrerInfoBulle() {var limites = map.getBounds();var centre = limites.getCenter();var nordEst = limites.getNorthEast();var centreSudLatLng = new google.maps.LatLng(nordEst.lat(), centre.lng());map.panTo(centreSudLatLng);}function afficherInfoBulle() {var obsHtml = $("#tpl-obs").html();var largeur = definirLargeurInfoBulle();obsHtml = obsHtml.replace(/\{largeur\}/, largeur);infoBulle.setContent(obsHtml);chargerObs(0, 0);infoBulleOuverte = true;}function definirLargeurInfoBulle() {var largeurViewPort = $(window).width();var lageurInfoBulle = null;if (largeurViewPort < 800) {largeurInfoBulle = 400;} else if (largeurViewPort >= 800 && largeurViewPort < 1200) {largeurInfoBulle = 500;} else if (largeurViewPort >= 1200) {largeurInfoBulle = 600;}return largeurInfoBulle;}function afficherMessageChargement(element) {if ($('#chargement').get() == '') {$('#tpl-chargement').tmpl().appendTo(element);}}function afficherMessageChargementTitreInfoBulle() {$("#obs-station-titre").text("Chargement des observations");}function supprimerMessageChargement() {$('#chargement').remove();}function chargerObs(depart, total) {if (depart == 0 || depart < total) {var limite = 300;if (depart == 0) {viderTableauObs();}var urlObs = observationsUrl+'&start={start}&limit='+limite;urlObs = urlObs.replace(/\{stationId\}/g, encodeURIComponent(pointClique.stationInfos.id));if (pointClique.stationInfos.type_emplacement == 'communes') {urlObs = urlObs.replace(/commune=%2A/g, 'commune='+encodeURIComponent(pointClique.stationInfos.nom));}urlObs = urlObs.replace(/\{nt\}/g, nt);urlObs = urlObs.replace(/\{start\}/g, depart);$.getJSON(urlObs, function(observations){surRetourChargementObs(observations, depart, total);chargerObs(depart+limite, observations.total);});}}function viderTableauObs() {obsStation = new Array();surClicPagePagination(0, null);}function surRetourChargementObs(observations, depart, total) {obsStation = obsStation.concat(observations.observations);if (depart == 0) {actualiserInfosStation(observations);creerTitreInfoBulle();surClicPagePagination(0, null);}afficherPagination();actualiserPagineur();selectionnerOnglet("#obs-vue-"+pagineur.format);}function actualiserInfosStation(infos) {pointClique.stationInfos.commune = infos.commune;pointClique.stationInfos.obsNbre = infos.total;}function creerTitreInfoBulle() {$("#obs-total").text(station.obsNbre);$("#obs-commune").text(station.commune);var titre = '';titre += pointClique.stationInfos.obsNbre+' observation';titre += (pointClique.stationInfos.obsNbre > 1) ? 's': '' ;titre += ' pour ';if (etreMarqueurCommune(pointClique.stationInfos.id)) {nomStation = 'la commune : ';} else {nomStation = 'la station : ';}titre += pointClique.stationInfos.nom;$("#obs-station-titre").text(titre);}function actualiserPagineur() {pagineur.stationId = pointClique.stationInfos.id;pagineur.total = pointClique.stationInfos.obsNbre;if (pagineur.total > 4) {pagineur.format = 'tableau';} else {pagineur.format = 'liste';}}function afficherPagination(observations) {$(".navigation").pagination(pagineur.total, {items_per_page:pagineur.limite,callback:surClicPagePagination,next_text:'Suivant',prev_text:'Précédent',prev_show_always:false,num_edge_entries:1,num_display_entries:4,load_first_page:true});}function surClicPagePagination(pageIndex, paginationConteneur) {var index = pageIndex * pagineur.limite;var indexMax = index + pagineur.limite;pagineur.depart = index;obsPage = new Array();for(index; index < indexMax; index++) {obsPage.push(obsStation[index]);}supprimerMessageChargement();mettreAJourObservations();return false;}function mettreAJourObservations() {$("#obs-"+pagineur.format+"-lignes").empty();$("#obs-vue-"+pagineur.format).css('display', 'block');$(".obs-conteneur").css('counter-reset', 'item '+pagineur.depart);$("#tpl-obs-"+pagineur.format).tmpl(obsPage).appendTo("#obs-"+pagineur.format+"-lignes");// Actualisation de FancyboxajouterFomulaireContact("a.contact");if (pagineur.format == 'liste') {ajouterGaleriePhoto("a.cel-img");}}function initialiserContenuInfoBulle() {afficherMessageChargement('#observations');cacherContenuOnglets();afficherOnglets();ajouterTableauTriable("#obs-tableau");afficherTextStationId();corrigerLargeurInfoWindow();}function cacherContenuOnglets() {$("#obs-vue-tableau").css("display", "none");$("#obs-vue-liste").css("display", "none");}function afficherOnglets() {var $tabs = $('#obs').tabs();$('#obs').bind('tabsselect', function(event, ui) {if (ui.panel.id == 'obs-vue-tableau') {surClicAffichageTableau();} else if (ui.panel.id == 'obs-vue-liste') {surClicAffichageListe();}});if (pointClique.stationInfos.nbre > 4) {$tabs.tabs('select', "#obs-vue-tableau");} else {$tabs.tabs('select', "#obs-vue-liste");}}function selectionnerOnglet(onglet) {$(onglet).css('display', 'block');$('#obs').tabs('select', onglet);}function afficherTextStationId() {$('#obs-station-id').text(pointClique.stationInfos.id);}function corrigerLargeurInfoWindow() {$("#info-bulle").width($("#info-bulle").width() - 17);}function surClicAffichageTableau(event) {pagineur.format = 'tableau';mettreAJourObservations();mettreAJourTableauTriable("#obs-tableau");}function surClicAffichageListe(event) {pagineur.format = 'liste';mettreAJourObservations();ajouterGaleriePhoto("a.cel-img");}function ajouterTableauTriable(element) {// add parser through the tablesorter addParser method$.tablesorter.addParser({// Définition d'un id unique pour ce parsseurid: 'date_cel',is: function(s) {// doit retourner false si le parsseur n'est pas autodétectéreturn /^\s*\d{2}[\/-]\d{2}[\/-]\d{4}\s*$/.test(s);},format: function(date) {// Transformation date jj/mm/aaaa en aaaa/mm/jjdate = date.replace(/^\s*(\d{2})[\/-](\d{2})[\/-](\d{4})\s*$/, "$3/$2/$1");// Remplace la date par un nombre de millisecondes pour trier numériquementreturn $.tablesorter.formatFloat(new Date(date).getTime());},// set type, either numeric or texttype: 'numeric'});$(element).tablesorter({headers: {1: {sorter:'date_cel'}}});}function mettreAJourTableauTriable(element) {$(element).trigger('update');}function ajouterGaleriePhoto(element) {$(element).fancybox({transitionIn:'elastic',transitionOut:'elastic',speedIn :600,speedOut:200,overlayShow:true,titleShow:true,titlePosition:'inside',titleFormat:function (titre, currentArray, currentIndex, currentOpts) {var motif = /urn:lsid:tela-botanica[.]org:cel:img([0-9]+)$/;motif.exec(titre);var id = RegExp.$1;var info = $('#cel-info-'+id).clone().html();var tpl ='<div class="cel-legende">'+'<p class="cel-legende-vei">'+'Image n°' + (currentIndex + 1) + ' sur ' + currentArray.length +'<\/p>'+(titre && titre.length ? '<p>'+info+'<\/p>' : '' )+'<\/div>';return tpl;}}).live('click', function(e) {if (e.stopPropagation) {e.stopPropagation();}return false;});}function ajouterFomulaireContact(element) {$(element).fancybox({transitionIn:'elastic',transitionOut:'elastic',speedIn :600,speedOut:200,scrolling: 'no',titleShow: false,onStart: function(selectedArray, selectedIndex, selectedOpts) {var element = selectedArray[selectedIndex];var motif = / contributeur-([0-9]+)$/;motif.exec($(element).attr('class'));var id = RegExp.$1;//console.log('Destinataire id : '+id);$("#fc_destinataire_id").attr('value', id);var motif = / obs-([0-9]+) /;motif.exec($(element).attr('class'));var id = RegExp.$1;//console.log('Obs id : '+id);chargerInfoObsPourMessage(id);},onCleanup: function() {//console.log('Avant fermeture fancybox');$("#fc_destinataire_id").attr('value', '');$("#fc_sujet").attr('value', '');$("#fc_message").text('');},onClosed: function(e) {//console.log('Fermeture fancybox');if (e.stopPropagation) {e.stopPropagation();}return false;}});}function chargerInfoObsPourMessage(idObs) {var nomSci = jQuery.trim($(".cel-obs-"+idObs+" .nom-sci:eq(0)").text());var date = jQuery.trim($(".cel-obs-"+idObs+" .date:eq(0)").text());var lieu = jQuery.trim($(".cel-obs-"+idObs+" .lieu:eq(0)").text());var sujet = "Observation #"+idObs+" de "+nomSci;var message = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de \""+nomSci+'" du "'+date+'" au lieu "'+lieu+'".';$("#fc_sujet").attr('value', sujet);$("#fc_message").text(message);}function initialiserFormulaireContact() {//console.log('Initialisation du form contact');$("#form-contact").validate({rules: {fc_sujet : "required",fc_message : "required",fc_utilisateur_courriel : {required : true,email : true}}});$("#form-contact").bind("submit", envoyerCourriel);$("#fc_annuler").bind("click", function() {$.fancybox.close();});}function envoyerCourriel() {//console.log('Formulaire soumis');if ($("#form-contact").valid()) {//console.log('Formulaire valide');//$.fancybox.showActivity();var destinataireId = $("#fc_destinataire_id").attr('value');var urlMessage = "http://www.tela-botanica.org/service:annuaire:Utilisateur/"+destinataireId+"/message"var erreurMsg = "";var donnees = new Array();$.each($(this).serializeArray(), function (index, champ) {var cle = champ.name;cle = cle.replace(/^fc_/, '');if (cle == 'sujet') {champ.value += " - Carnet en ligne - Tela Botanica";}if (cle == 'message') {champ.value += "\n--\n"+"Ce message vous est envoyé par l'intermédiaire du widget carto "+"du Carnet en Ligne du réseau Tela Botanica.\n"+"http://www.tela-botanica.org/widget:cel:carto";}donnees[index] = {'name':cle,'value':champ.value};});$.ajax({type : "POST",cache : false,url : urlMessage,data : donnees,beforeSend : function() {$(".msg").remove();},success : function(data) {$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');},error : function(jqXHR, textStatus, errorThrown) {erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";reponse = jQuery.parseJSON(jqXHR.responseText);if (reponse != null) {$.each(reponse, function (cle, valeur) {erreurMsg += valeur + "\n";});}},complete : function(jqXHR, textStatus) {var debugMsg = '';if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));if (debugInfos != null) {$.each(debugInfos, function (cle, valeur) {debugMsg += valeur + "\n";});}}if (erreurMsg != '') {$("#fc-zone-dialogue").append('<p class="msg">'+'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+'Vous pouvez signaler le disfonctionnement à <a href="'+'mailto:cel@tela-botanica.org'+'?'+'subject=Disfonctionnement du widget carto'+"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+'">cel@tela-botanica.org</a>.'+'</p>');}if (DEBUG) {console.log('Débogage : '+debugMsg);}//console.log('Débogage : '+debugMsg);//console.log('Erreur : '+erreurMsg);}});}return false;}/*+--------------------------------------------------------------------------------------------------------+*/// PANNEAU LATÉRALfunction initialiserAffichagePanneauLateral() {$('#panneau-lateral').height($(window).height() - 35);if (nt == '*') {$('#pl-ouverture').bind('click', afficherPanneauLateral);$('#pl-fermeture').bind('click', cacherPanneauLateral);}chargerTaxons(0, 0);}function chargerTaxons(depart, total) {if (depart == 0 || depart < total) {var limite = 7000;//console.log("Chargement des taxons de "+depart+" à "+(depart+limite));var urlTax = taxonsUrl+'&start={start}&limit='+limite;urlTax = urlTax.replace(/\{start\}/g, depart);$.getJSON(urlTax, function(infos) {taxonsCarte = taxonsCarte.concat(infos.taxons);//console.log("Nbre taxons :"+taxonsCarte.length);chargerTaxons(depart+limite, infos.total);});} else {if (nt == '*') {afficherTaxons();}afficherTitreCarte();}}function afficherTaxons() {$(".plantes-nbre").text(taxonsCarte.length);$("#tpl-taxons-liste").tmpl({'taxons':taxonsCarte}).appendTo("#pl-corps");$('.taxon').live('click', filtrerParTaxon);}function afficherPanneauLateral() {$('#panneau-lateral').width(300);$('#pl-contenu').css('display', 'block');$('#pl-ouverture').css('display', 'none');$('#pl-fermeture').css('display', 'block');$('#carte').css('left', '300px');google.maps.event.trigger(map, 'resize');};function cacherPanneauLateral() {$('#panneau-lateral').width(24);$('#pl-contenu').css('display', 'none');$('#pl-ouverture').css('display', 'block');$('#pl-fermeture').css('display', 'none');$('#carte').css('left', '24px');google.maps.event.trigger(map, 'resize');};function filtrerParTaxon() {var ntAFiltrer = $('.nt', this).text();infoBulle.close();var zoom = map.getZoom();var NELatLng = map.getBounds().getNorthEast().lat()+'|'+map.getBounds().getNorthEast().lng();var SWLatLng = map.getBounds().getSouthWest().lat()+'|'+map.getBounds().getSouthWest().lng();$('#taxon-'+nt).removeClass('taxon-actif');if (nt == ntAFiltrer) {nt = '*';stationsUrl = stationsUrl.replace(/num_taxon=[*0-9]+/, 'num_taxon='+nt);chargerMarqueurs(zoom, NELatLng, SWLatLng);} else {stationsUrl = stationsUrl.replace(/num_taxon=[*0-9]+/, 'num_taxon='+ntAFiltrer);url = stationsUrl;url += '&zoom='+zoom+'&ne='+NELatLng+'&sw='+SWLatLng;requeteChargementPoints = $.getJSON(url, function (stationsFiltrees) {stations = stationsFiltrees;nt = ntAFiltrer;$('#taxon-'+nt).addClass('taxon-actif');rafraichirMarqueurs(stations);});}};/*+--------------------------------------------------------------------------------------------------------+*/// FONCTIONS UTILITAIRESfunction ouvrirPopUp(element, nomPopUp, event) {var options ='width=650,'+'height=600,'+'scrollbars=yes,'+'directories=no,'+'location=no,'+'menubar=no,'+'status=no,'+'toolbar=no';var popUp = window.open(element.href, nomPopUp, options);if (window.focus) {popUp.focus();}return arreter(event);};function ouvrirNouvelleFenetre(element, event) {window.open(element.href);return arreter(event);}function arreter(event) {if (event.stopPropagation) {event.stopPropagation();} else if (window.event) {window.event.cancelBubble = true;}if (event.preventDefault) {event.preventDefault();}event.returnValue = false;return false;}/*** +-------------------------------------+* Number.prototype.formaterNombre* +-------------------------------------+* Params (facultatifs):* - Int decimales: nombre de decimales (exemple: 2)* - String signe: le signe precedent les decimales (exemple: "," ou ".")* - String separateurMilliers: comme son nom l'indique* Returns:* - String chaine formatee* @author ::mastahbenus::* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> : ajout détection auto entier/flotant* @souce http://www.javascriptfr.com/codes/FORMATER-NOMBRE-FACON-NUMBER-FORMAT-PHP_40060.aspx*/Number.prototype.formaterNombre = function (decimales, signe, separateurMilliers) {var _sNombre = String(this), i, _sRetour = "", _sDecimales = "";function is_int(nbre) {nbre = nbre.replace(',', '.');return !(parseFloat(nbre)-parseInt(nbre) > 0);}if (decimales == undefined) {if (is_int(_sNombre)) {decimales = 0;} else {decimales = 2;}}if (signe == undefined) {if (is_int(_sNombre)) {signe = '';} else {signe = '.';}}if (separateurMilliers == undefined) {separateurMilliers = ' ';}function separeMilliers (sNombre) {var sRetour = "";while (sNombre.length % 3 != 0) {sNombre = "0"+sNombre;}for (i = 0; i < sNombre.length; i += 3) {if (i == sNombre.length-1) separateurMilliers = '';sRetour += sNombre.substr(i, 3) + separateurMilliers;}while (sRetour.substr(0, 1) == "0") {sRetour = sRetour.substr(1);}return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));}if (_sNombre.indexOf('.') == -1) {for (i = 0; i < decimales; i++) {_sDecimales += "0";}_sRetour = separeMilliers(_sNombre) + signe + _sDecimales;} else {var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));if (sDecimalesTmp.length > decimales) {var nDecimalesManquantes = sDecimalesTmp.length - decimales;var nDiv = 1;for (i = 0; i < nDecimalesManquantes; i++) {nDiv *= 10;}_sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);}_sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;}return _sRetour;}function debug(objet) {var msg = '';if (objet != null) {$.each(objet, function (cle, valeur) {msg += cle+":"+valeur + "\n";});} else {msg = "La variable vaut null.";}console.log(msg);}