/* Script utilisé par GeoInfo. Copyright (C) 2010 Baptiste Sottas — Tous droits réservés. Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la “GNU General Public License” telle que publiée par la Free Software Foundation : soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure. Ce programme est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale Publique GNU pour plus de détails. Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec ce programme ; si ce n’est pas le cas, consultez : http://www.gnu.org/licenses baptiste.sottas@bluewin.ch */ // variables diverses var coords = "" var opacity = 0 var divInfo = true; var imageAfrique = ""; var imageEurasie = ""; var imageOceanie = ""; var imageAmeriqueNord = ""; var imageAmeriqueSud = ""; var imageEurope = ""; var imageEurope2 = ""; var imageAsie2 = ""; var lang = ""; //locale language if(window.sankore){ try{ lang = sankore.locale().substr(0,2); sankoreLang[lang].europe; } catch(e){ lang = "en"; } } else lang = "en"; // adresse du serveur var url = "http://bapsot.dyndns.org/GeoInfo-GeoInfoServer/GeoInfoService"; // variables pour la gestion de la comparaison des pays var currentInfo = 0; var compareActive = false; // permet d'effacer le contenu des divs 2 à 5 si on ne désire pas comparer function vide() { // regarder si la case est cochée compareActive = document.getElementById('compare').checked; // si elle ne l'est pas vider les divs 2 à 5 if (!compareActive) { for (i = 2; i < 6; i++) { var element = document.getElementById("info" + i); element.innerHTML = ""; element.style.display = "none"; } // remettre la grandeur initiale à la première div document.getElementById("info1").style.width = 654 + 'px'; // initialiser le compteur currentInfo = 1; } } // permet de créer et remplir les divs d'informations function popupInfo(text) { // regarder si on désire comparer les pays entre eux compareActive = document.getElementById('compare').checked; // si oui mettre l'info dans une nouvelle div, autrement mettre dans la div 1 if (compareActive) currentInfo += 1; else currentInfo = 1; // max 5 comparaisons possibles, si plus on réécrit dans la dernière if (currentInfo > 5) currentInfo = 5; // obtenir la div à modifier var info = document.getElementById("info" + currentInfo); // la rendre visible et mettre le texte info.style.display = "block"; info.innerHTML = text; // met la bonne grandeur à chaque div for (i = 1; i <= currentInfo; i++) document.getElementById("info" + i).style.width = (654/currentInfo) + 'px'; } // affiche le text de l'erreur en cas de problème function erreur(texteErreur) { alert(texteErreur); } // permet d'appeller la fonction pour recevoir les statistiques du serveur function recevoirStats() { var pl = new SOAPClientParameters(); // appel de la fonction getInfos du serveur SOAPClient.invoke(url, "getInfos", pl, true, recevoirStatsReponse); } // permet de recevoir les statistiques du serveur et les afficher function recevoirStatsReponse(resultat, soapResponse) { var objDom = new XMLDoc(((new XMLSerializer()).serializeToString(soapResponse)), erreur); var objDomTree = objDom.docNode; // prepare le texte à afficher à partir de la réponse var stats = ("Nombre d'accès total: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("accesTotal")[0].getText() + "\n" + "Dernier accès le: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("dernierAcces")[0].getText() + "\n" + "Adresse pour des questions/remarques: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("email")[0].getText() + "\n" + "Microinformations sous: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("twitter")[0].getText() + "\n" + "Version de l'application: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("version")[0].getText()); alert(stats); } // permet d'appeller la fonction pour recevoir les informations du pays function recevoirPays(id) { // prépare le paramètre avec l'id du pays var pl = new SOAPClientParameters(); pl.add("id",id); // appel de la fonction find du serveur SOAPClient.invoke(url, "find", pl, true, recevoirPaysReponse); } // permet de recevoir les informations du pays du serveur et les afficher function recevoirPaysReponse(resultat, soapResponse) { var objDom = new XMLDoc(((new XMLSerializer()).serializeToString(soapResponse)), erreur); var objDomTree = objDom.docNode; // prepare le texte à afficher à partir de la réponse var informations = ("Pays: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("pays")[0].getText() + "
" + "Nom: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nomPays")[0].getText() + "
" + "Capitale: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("capitale")[0].getText() + "
" + "Forme: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("forme")[0].getText() + "
" + "Adjectif: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("adjectif")[0].getText() + "
" + "Monnaie ISO: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieIso")[0].getText() + "
" + "Monnaie: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaie")[0].getText() + "
" + "Monnaie centime: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieSubDiv")[0].getText() + "
" + "Plus grande ville: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("plusGrandeVille")[0].getText() + "
" + "Nbr habitants: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nbrHabitant")[0].getText() + "
" + "Langues officielles: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("langueOfficielle")[0].getText() + "
" + "Système gouvernemental: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("politique")[0].getText() + "
" + "Remarques: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("remarques")[0].getText() + "
" + "Devise: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("devise")[0].getText()); // appelle la fonction popupInfo qui affiche les informations dans les divs popupInfo(informations); } // permet l'affichage de la description lors du passage de la souris function writeText(txt) { switch(txt){ case "North America": txt = sankoreLang[lang].north_america; break; case "Eurasia": txt = sankoreLang[lang].eurasia; break; case "South America": txt = sankoreLang[lang].south_america; break; case "Africa": txt = sankoreLang[lang].africa; break; case "Oceania": txt = sankoreLang[lang].oceania; break; default: break; } document.getElementById("description").innerHTML = txt; } // permet l'effaçage de la description lors du passage de la souris function effaceTexte() { document.getElementById("description").innerHTML = ""; } // apparition de la div contenant une carte d'un continent + carte de retour function apparition(carte) { document.getElementById(carte).style.display = 'block' i = setInterval('fondu("'+carte+'")', 25) document.getElementById("retour").style.display = 'block' document.getElementById("retour").style.opacity = 1 } // permet de recharger la page function disparition() { window.location.reload() } // permet de faire apparaître la carte d'un continent en fondu function fondu(carte) { opacity = opacity + 0.05 document.getElementById(carte).style.opacity = opacity; if (opacity > 1) { clearInterval(i) } } // permet de faire apparaître les infos du pays dans la petite fenêtre function afficheInfoPays(pays) { $("#" + pays + " .nomPays").html(sankoreLang[lang][pays].country); $("#" + pays + " .capitalePays").html(sankoreLang[lang].capital + ": " + sankoreLang[lang][pays].city); document.getElementById("infoPays").innerHTML = "
" + document.getElementById(pays).innerHTML; } // permet de cacher la petite fenêtre function cacherInfoPays() { document.getElementById("infoPays").style.display = 'none'; } // permet à la petite fenêtre de suivre la souris function deplacerInfo(event) { document.getElementById("infoPays").style.display = 'block'; document.getElementById("infoPays").style.top = event.clientY; document.getElementById("infoPays").style.left = event.clientX+40; }