Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 206 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

var map = null;
var tableau_marqueurs = new Array();
var infowindow = new google.maps.InfoWindow();
var infos_observations = new Array();

var type_espece = '0';
var espece = '0';
var evenement = '0';
var annee = '0';
var mois = '1';
var departement = '0';

function getUrlBaseJrest() {
        
        url_page_courante = document.URL;
        
        if(url_page_courante.indexOf('http://www.') != -1) {
                return urlBaseJrest;
        } else {
                return urlBaseJrest.replace('http://www.','http://');
        }
}

function traiterParametresUrl() {

        var vars = [], hash;
        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];
        }
        
        if(vars['type_espece'] != null) {
                type_espece = vars['type_espece'];
                $('#selecteur_liste_types_especes').val(type_espece);
        }
        
        if(vars['espece'] != null) {
                if(type_espece != '0') {
                        modifierTableauEspeces();
                }
                espece = vars['espece'];
                $('#selecteur_especes').val(espece);
                
        }
        
        if(vars['evenement'] != null) {
                if(espece != 0) {
                        modifierTableauEvenement()
                }
                evenement = vars['evenement'];
                $('#selecteur_evenements').val(evenement);
        }
        
        if(vars['annee'] != null) {
                annee = vars['annee'];
                $('#selecteur_liste_annees').val(annee);
        } else {
                date = new Date()
                annee = date.getFullYear();
                $('#selecteur_liste_annees').val(annee);
        }
        
        if(vars['mois'] != null) {
                mois = vars['mois'];
        } else {
                date = new Date()
                mois = date.getMonth() + 1;
        }
        
        if(vars['departement'] != null) {
                departement = vars['departement'];
        }
        
        if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {
                $(".criteres").hide();
        }
}

function obtenirCodeWidget() {
        
        var UrlBase = window.location;
        UrlBase += '?';
        if(type_espece != '0') UrlBase += "type_espece="+type_espece;
        if(espece != '0') UrlBase += "&espece="+espece;
        if(evenement != '0') UrlBase += "&evenement="+evenement;
        if(annee != '0') UrlBase += "&annee="+annee;
        if(mois != '0') UrlBase += "&mois="+mois;
        UrlBase += "&cacher_criteres=1";
        
        code_widget = '<iframe src="'+UrlBase+'" width="375px" height="470px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'
        
        return code_widget;
}

$('#lien_cette_recherche').ready(function() {
        $('#lien_cette_recherche').click(function() {
                window.alert(obtenirCodeWidget());
                return false;
        });
});

$(document).ready(function() {
        traiterParametresUrl();
});

/** 
************************************************************************************************
************************************************************************************************

    Fonctions concernant les gestion des filtres sur la carte

************************************************************************************************
************************************************************************************************
**/ 

function initialiserSliderDates() {
        
        dates = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
        
        $("#slider_date").slider({
                                                                min: 1,
                                                                max: 13,
                                                                value: mois
                                                        });
        
        taille_criteres = Math.round($("#slider_date").width()/(dates.length));
        
        valeurs_slider = '<table id="table_dates"><tbody><tr>';
        
        for (i in dates) {
                valeurs_slider += '<td class="conteneur_date">'+dates[i]+'</td>';
        }
        
        valeurs_slider += '</tr></tbody></table>';
        
        $("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
        
        $("#valeurs_date").html(valeurs_slider);
                
        $("#slider_date").bind("slide", function(event, ui) {
                
                mois = $("#slider_date").slider("value");
                obtenirObservations();  
                return true;
        });
        
        $(window).bind("resize", resizeWindow);
        function resizeWindow( e ) {
                taille_criteres = Math.round($("#slider_date").width()/(dates.length));
                $("#css_slider").html(".conteneur_date{ width:"+taille_criteres+"px;}");
        }
}

function initialiserListeTypesEspeces() {
        
        $('#selecteur_liste_types_especes').change(function() {
                type_espece = $('select#selecteur_liste_types_especes option:selected').val();
                modifierTableauEspeces();
                obtenirObservations();  
        });
}

function modifierTableauEspeces() {

        id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
        
        $elements_liste = tableau_especes[id_type_espece];

        chaine_elements_liste = '';
        chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> toutes les esp&egrave;ces </option>';
        for(i in $elements_liste) { 
                chaine_elements_liste += '<option value='+i+'>'+$elements_liste[i]+'</option>';
        }
        
        $('#selecteur_especes').html(chaine_elements_liste);    
}

function initialiserListeEspeces() {
        
        $('#selecteur_especes').change(function() {
                espece = $('select#selecteur_especes option:selected').val();
                modifierTableauEvenements();
                obtenirObservations();  
        });
}

function modifierTableauEvenements() {

        id_espece = $('select#selecteur_especes option:selected').val();
        
        $elements_liste = tableau_evenements_especes[id_espece];
        $elements_liste = $elements_liste.split(',');
        
        chaine_elements_liste = '';
        chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>';
        for(i in $elements_liste) { 
                chaine_elements_liste += '<option value='+$elements_liste[i]+'>'+tableau_evenements[$elements_liste[i]]+'</option>';
        }
        
        $('#selecteur_evenements').html(chaine_elements_liste); 
}

function initialiserListeEvenements() {
        
        $('#selecteur_evenements').change(function() {          
                evenement = $('select#selecteur_evenements option:selected').val();
                obtenirObservations();  
        });
}

function initialiserListeAnnees() {
        
        $('#selecteur_liste_annees').change(function() {
                annee = $('select#selecteur_liste_annees option:selected').val();
                obtenirObservations();  
        });
}

$('#slider_date').ready(function() {
        initialiserSliderDates();
        initialiserListeTypesEspeces();
        initialiserListeEspeces();
        initialiserListeEvenements();
        initialiserListeAnnees();
        obtenirObservations();
});


/** 
        ************************************************************************************************
        ************************************************************************************************
        
            Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
        
        ************************************************************************************************
        ************************************************************************************************
**/ 

function initialiserCarte() {

        if($('#map_canvas').length == 0) {
                return;
        }

        var latlng = new google.maps.LatLng(47.0504, 2.2347);
        var myOptions = {
                zoom: 5,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.HYBRID
        };

        map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
        
        marker = new google.maps.Marker({
              position: latlng,
              title:""
        });
}

function obtenirObservations() {
                
        requete = '?annee='+annee+'&mois='+mois;
        
        if(type_espece != '0' && espece == '0') { 
                requete += '&type_espece='+type_espece; 
        }
        
        if(espece != '0') { 
                requete += '&espece='+espece; 
        }
        
        if(evenement != '0') { 
                requete += '&evenement='+evenement;
        }
        
        if(departement != '0') { 
                requete += '&departement='+departement;
        }
        
        $.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {    
                                
                infos_observations = jQuery.parseJSON(data);
                
                if(tableau_marqueurs.length > 0) {
                        viderMarqueurs();
                }
                
                for(i in infos_observations) {
                        creerEtAjouterMarqueur(i, infos_observations[i]);
                }
        });
}

function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
        
        latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
        
        tableau_marqueurs[id_marqueur] = new google.maps.Marker({
              position: latlng,
              title:infos_obs.evenenement
        });
                
        google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
                
                contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
                infowindow.close();
                infowindow.content = contenu_fenetre;
                infowindow.open(map,this);
        });
        
        tableau_marqueurs[id_marqueur].setDraggable(false);
        tableau_marqueurs[id_marqueur].setClickable(true);
                
        tableau_marqueurs[id_marqueur].setMap(map); 

}

function viderMarqueurs() {
        
        infowindow.close();
        for(i in tableau_marqueurs) {
                tableau_marqueurs[i].setMap(null);
        }
        
        tableau_marqueurs = new Array();
}

function formaterContenuFenetre(infos_obs) {
        
        contenu_fenetre = '';
        
        for(i in infos_obs) {   
                
                nom_stade ='';
                if(infos_obs[i].code_bbch != '') {
                        nom_stade = ' stade '+infos_obs[i].code_bbch;
                }
                
                contenu_fenetre += '<div class="fenetre_infos">';
                contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
                contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
                contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
                contenu_fenetre += '</div><br />';
        }
        
        return contenu_fenetre;
}
        

$('#map_canvas').ready(function() {
        initialiserCarte();
});