var reqMeteo;

function maj_meteo(ajax_meteo) {
    var urlWeather = ajax_meteo;
    if ( window.XMLHttpRequest) {
        reqMeteo = new XMLHttpRequest();
    } else if ( window.ActiveXObject) {
        reqMeteo = new ActiveXObject("Microsoft.XMLHTTP");
    }
    reqMeteo.open("GET", urlWeather, true);
    reqMeteo.onreadystatechange = callbackWeather;
    reqMeteo.send(null);

    setTimeout("maj_meteo('" + ajax_meteo + "')", 200000);
}

function callbackWeather() {
    if (reqMeteo.readyState == 4) {
        if (reqMeteo.status == 200) {
            parseMetar();
        }
    }
}

function parseMetar() {
    var vents = reqMeteo.responseXML.getElementsByTagName("vent");
    var variationVents = reqMeteo.responseXML.getElementsByTagName("variationVent");
    var ciels = reqMeteo.responseXML.getElementsByTagName("ciel");
    var temperatures = reqMeteo.responseXML.getElementsByTagName("temperature");
    var meteos = reqMeteo.responseXML.getElementsByTagName("meteo");
    var icone = reqMeteo.responseXML.getElementsByTagName("icone");
    var meteoDescript = reqMeteo.responseXML.getElementsByTagName("meteoDescript");

        //On traite les données
        //petit tutorial
        // pour un nouveau type de donnée
        // rajouter les lignes suivantes
        //              var NouveauElementXML = req.responseXML.getElementsByTagName("NouveauElementXML");
        //              traiteDonnee(NouveauElementXML,new Array("NomDesFilsXML",...,""));
        // Attention vueillez bien respecter les nom des balises.
        // Mettre les mêmes noms dans les balises div de vodre code HTML sinon ça marche pas !
        // si c'est un element qui n'a pas de fils utiliser la fonction elementSansFils

                traiteDonnee(vents,new Array("direction","vitesse","unite"));
                traiteDonnee(variationVents,new Array("variationA","variationB"));
                elementSansFils(temperatures,"temperature");
                elementSansFils(icone,"icone");
                elementSansFils(meteoDescript,"meteoDescript");
}

function traiteDonnee(donnees,lib) {

    for (var i = 0; i < donnees.length; i++) {
        var item = donnees.item(i);

        if ( item != null ) {
                for (var j =0; j<lib.length; j++) {
                        recupDonnee(item,lib[j]);
                }
        }
   }
}

function elementSansFils(donnees,lib) {
        setMetar(donnees.item(0).childNodes[0].nodeValue,lib);
}

function recupDonnee(donnee,lib) {
        var temp = donnee.getElementsByTagName(lib)[0];

        if ( temp != null && temp.childNodes.length > 0 ) {
                setMetar(temp.childNodes[0].nodeValue, lib);
        } else {
                setMetar("", lib);
        }
}

function setMetar(a_lib, a_idcol) {
    var userLibElement = document.getElementById(a_idcol);
    if(userLibElement  != null) {
                if ((a_lib.toLowerCase().indexOf(".gif") != -1) || (a_lib.toLowerCase().indexOf(".jpg") != -1) || (a_lib.toLowerCase().indexOf(".png") != -1)) {
                        userLibElement.innerHTML = '<img src="'+a_lib+'" alt="'+a_lib+'"/>';
                }else {
                        userLibElement.innerHTML = a_lib;
                }
        }
}

