You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
242 lines
9.7 KiB
242 lines
9.7 KiB
/*
|
|
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 = "<img src='images/Cartes/Afrique.bmp' usemap='#afrique'/>";
|
|
var imageEurasie = "<img src='images/Cartes/Eurasie.bmp' usemap='#eurasie'/>";
|
|
var imageOceanie = "<img src='images/Cartes/Oceanie.bmp' usemap='#oceanie'/>";
|
|
var imageAmeriqueNord = "<img src='images/Cartes/AmeriqueNord.bmp' usemap='#ameriqueNord'/>";
|
|
var imageAmeriqueSud = "<img src='images/Cartes/AmeriqueSud.bmp' usemap='#ameriqueSud'/>";
|
|
var imageEurope = "<img src='images/Cartes/EuropeOuest.bmp' usemap='#europe'/>";
|
|
var imageEurope2 = "<img src='images/Cartes/Eurasie2.bmp' usemap='#eurasie'/>";
|
|
var imageAsie2 = "<img src='images/Cartes/EuropeOuestAsie.bmp' usemap='#europe'/>";
|
|
|
|
// 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 = ("<b>Pays:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("pays")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Nom:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nomPays")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Capitale:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("capitale")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Forme:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("forme")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Adjectif:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("adjectif")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Monnaie ISO:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieIso")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Monnaie:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaie")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Monnaie centime:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieSubDiv")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Plus grande ville:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("plusGrandeVille")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Nbr habitants:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nbrHabitant")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Langues officielles:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("langueOfficielle")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Système gouvernemental:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("politique")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Remarques:</b> " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("remarques")[0].getText()
|
|
+ "<br/>"
|
|
+ "<b>Devise:</b> " + 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)
|
|
{
|
|
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)
|
|
{
|
|
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+20
|
|
}
|
|
|