$(document).ready(function() {                               // fonction lancée au chargement de la page
    var gaugeOptions = {                                        // la config générale des jauges
        chart: {                                                    // le type de chart, 
                type'gauge',
                plotBackgroundColornull,
                plotBackgroundImagenull,
                plotBorderWidth0,
                plotShadowfalse,
                backgroundColor'black',
            },
        titlenull,                                                // le titre (nul car défini pour chaque jauge)
        tooltip: {                                                  // la légende
            enabledfalse
        },
        credits: {                                                  // le crédit
            enabledfalse
        },
        pane: {                                                     // l'aiguille
            startAngle: -140,
            endAngle140,
            background: [{
                backgroundColor: {
                    linearGradient: { x10y10x20y2},
                    stops: [
                        [0'#FFF'],
                        [1'#333']
                    ]
                },
                borderWidth0,
                outerRadius'109%'
            }, {
                backgroundColor: {
                    linearGradient: { x10y10x20y2},
                    stops: [
                        [0'#333'],
                        [1'#FFF']
                    ]
                },
                borderWidth1,
                outerRadius'107%'
            }, {
                // default background
            }, {
                backgroundColor'#DDD',
                borderWidth0,
                outerRadius'105%',
                innerRadius'103%'
            }]
        }
    };
    
    // jauge pour la température
    var gaugeTemp Highcharts.chart('gaugeTemp'Highcharts.merge(gaugeOptions, {  // se dessine dans la div qui a l'ID gaugeTemp avec la config générale 
            yAxis: {                                                                // axe Y 
                title: {                                                                // le titre
                    text'Température',                                                       // le texte du titre
                    y90,                                                                  // sa position en y
                    style: {                                                                // le style du titre
                        color'black',                                                         // la couleur du titre
                        fontSize'1.2em',                                                      // la taille du titre
                        fontWeight'bold'                                                      // en gras
                    }
                },
                
                min0,                                                                 // le min de l'axe Y
                max50,                                                                // le max de l'axe Y

                minorTickInterval'auto',                                              // les intervalles mineur ( de 1 en 1 ) 
                minorTickWidth1,
                minorTickLength10,
                minorTickPosition'inside',
                minorTickColor'gray',

                tickPixelInterval30,                                                  // les intervalles majeure ( de 5 en 5 )
                tickWidth2,
                tickPosition'inside',
                tickLength10,
                tickColor'black',
                
                labels: {                                                               // les chiffres du cadran                                     
                    step2,
                    rotation'auto',
                    style: {
                        color'black',
                        fontSize'1em'
                    }
                },

                plotBands: [{                                                           // le découpage du cadran avec des couleurs  
                    from0to5color'rgba(0,0,255,0.6'
                }, {
                    from5to10color'rgba(0,128,255,0.6)'
                }, {
                    from10to15color'rgba(0,255,255,0.6)'
                }, {
                    from15to20color'rgba(0,255,128,0.6)'
                }, {
                    from20to25color'rgba(0,255,0,0.6)'
                }, {
                    from25to30color'rgba(128,255,0,0.6)'
                }, {
                    from30to35color'rgba(255,255,0,0.6)'
                }, {
                    from35to40color'rgba(255,128,0,0.6)'
                }, {
                    from40to45color'rgba(255,64,0,0.6)'
                }, {
                    from45to50color'rgba(255,0,0,1'
                }]
            },
            
            plotOptions: {                                                              // les datas affichés dans la jauge
                series: {
                    dataLabels: {
                        enabledtrue,
                        format'{y} °C',
                        y80,
                        style: {
                            color'black',
                            fontSize'1.2em',
                            fontWeight'bold'
                        }
                    }
                }
            },
            
            series: [{                                                                  // la série qui contient les datas et place l'aiguille
                name'Température',
                y100,
                data: [0]
            }]
    }));
    
    // jauge pour l'humidité
    var gaugeHumi Highcharts.chart('gaugeHumi'Highcharts.merge(gaugeOptions, {  // se dessine dans la div qui a l'ID gaugeHumi avec la config générale 
            yAxis: {                                                                // axe Y 
                title: {                                                                // le titre
                    text'Humidité',                                                      // le texte du titre
                    y90,                                                                  // sa position en y
                    style: {                                                                // le style du titre
                        color'black',                                                         // la couleur du titre
                        fontSize'1.2em',                                                      // la taille du titre
                        fontWeight'bold'                                                      // en gras
                    }
                },
                
                min0,                                                                 // le min de l'axe Y
                max100,                                                               // le max de l'axe Y
                
                minorTickInterval'auto',                                              // les intervalles mineur ( de 1 en 1 ) 
                minorTickWidth1,
                minorTickLength10,
                minorTickPosition'inside',
                minorTickColor'gray',

                tickPixelInterval30,                                                  // les intervalles majeur ( de 5 en 5 ) 
                tickWidth2,
                tickPosition'inside',
                tickLength10,
                tickColor'black',
                
                labels: {                                                               // les chiffres du cadran
                    step2,
                    rotation'auto',
                    style: {
                        color'black',
                        fontSize'1em'
                    }
                },

                plotBands: [{                                                           // le découpage du cadran avec des couleurs
                    from0to10color'rgba(255,0,0,1'
                }, {
                    from10to20color'rgba(255,128,0,0.6)'
                }, {
                    from20to30color'rgba(255,128,0,0.6)'
                }, {
                    from30to40color'rgba(255,255,0,0.6)'
                }, {
                    from40to50color'rgba(128,255,0,0.6)'
                }, {
                    from50to60color'rgba(0,255,0,0.6)'
                }, {
                    from60to70color'rgba(0,255,128,0.6)'
                }, {
                    from70to80color'rgba(0,255,255,0.6)'
                }, {
                    from80to90color'rgba(0,128,255,0.6)'
                }, {
                    from90to100color'rgba(0,0,255,0.6)'
                }]
            },
            
            plotOptions: {                                                              // les datas affichés dans la jauge
            series: {
                dataLabels: {
                    enabledtrue,
                    format'{y} %',
                    y80,
                    style: {
                        color'black',
                        fontSize'1.2em',
                        fontWeight'bold'
                    }
                }
            }
        },
        
        series: [{                                                                      // la série qui contient les datas et place l'aiguille
            name'Humidité',
            y100,
            data: [0]
        }]
    }));
    
    // fonction qui récup les datas et met à jour les jauges et les infos
    function recup() {
        $.getJSON('lastdata.php'function (data) {                     // on récupère les infos json de la page lastdata.php
            
            var pointnewVal;                                          // on déclare deux variables : point et newVal
            
            if (gaugeTemp) {                                            // si gaugeTemp existe
                point gaugeTemp.series[0].points[0];                  // la variable point correspond au point 0 de notre série
                newVal data[1];                                       // la variable newVal vaut le champs 1 du json (temp)
                point.update(newVal);                                   // on met à jour la série avec la nouvelle valeur
            }
            
            if (gaugeHumi) {                                            // si gaugeHumi existe
                point gaugeHumi.series[0].points[0];                  // la variable point correspond au point 0 de notre série
                newVal data[2];                                       // la variable newVal vaut le champs 2 du json (humi)
                point.update(newVal);                                   // on met à jour la série avec la nouvelle valeur
            }

            var moment data[0];                                       // on déclare la variable moment qui vaut le champs 0 du json (date_heure)
            document.getElementById("date").innerHTML moment;         // on met à jour la balise qui a l'ID date avec le contenu de moment

        });
    }
    
    // On lance la récupération de data au chargement de la page
    recup();
    
    // fonction qui relance la récupération des datas toutes les 10s
    setInterval(function () {
        recup();
    }, 10000);
});