1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
/*
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'/>";
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);
sankore.showMessage(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);
sankore.showMessage(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)
{
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 = "<div id='customCursor' class='customCursor'></div>" + 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;
}