/** affiche la région sur la carte **/
function afficher_region(region)
{
getId('info_region').innerHTML = stripslashes(region);
}
/** Cache la région sur la carte **/
function cacher_region()
{
getId('info_region').innerHTML = '';
}
/** affiche la région sur la carte fullscreen **/
function afficher_region_full(region)
{
getId('info_region_fullscreen').innerHTML = stripslashes(region);
}
/** Cache la région sur la carte fullscreen **/
function cacher_region_full()
{
getId('info_region_fullscreen').innerHTML = '';
}
/** action sur le onmouseover du module de carte **/
function carte_over(pays, region, lib_region)
{
getId('img_carte').src = 'site/media/cartes/' + pays + '/' + region + '.png';
getId('img_carte').style.cursor = 'pointer';
afficher_region(lib_region);
}
/** action sur le onmouseout du module de carte **/
function carte_out(pays)
{
getId('img_carte').src='site/media/cartes/' + pays + '.png';
getId('img_carte').style.cursor='crosshair';
cacher_region();
}
/** fonction pour les hovers de la carte en fullscreen **/
function carte_over_full(pays, region, lib_region)
{
getId('carte_pays').src = 'site/media/cartes/' + pays + '/' + region + '.png';
getId('carte_pays').style.cursor = 'pointer';
afficher_region_full(lib_region);
}
/** fonction pour les hovers de la carte en fullscreen **/
function carte_out_full(pays, region)
{
getId('carte_pays').src = 'site/media/cartes/' + pays + '/' + region + '_active.png';
getId('carte_pays').style.cursor = 'crosshair';
cacher_region_full();
}
/** Fonctions AJAX **/
carte_fullscreen = false;
/** fonction pour l'affichage de la carte région agrandie en plein ecran **/
function afficherCarteFullscreen(pays, region, saison, elem)
{
if(verif_init_marche(elem) == false) return false;
document.getElementsByTagName('html')[0].style.overflow = 'hidden'; // cache la barre de scroll
opacityOn();
window.scrollTo(0, 0);
carte_fullscreen = true;
getId('cartes_fullscreen').style.display = 'block';
// repositionnement du bloc de carte
if(navVersion() == '6' || navVersion() == '7') getId('cartes_fullscreen').style.marginLeft = -((screen.availWidth - findSize('cartes_fullscreen')['X']) / 2 + findSize('cartes_fullscreen')['X'] - 1) + 'px';
else getId('cartes_fullscreen').style.marginLeft = ((document.documentElement.clientWidth - findSize('cartes_fullscreen')['X']) / 2 + 1) + 'px';
// getId('cartes_fullscreen').innerHTML = '

La Carte est en cours de Chargement,
Veuillez patienter...';
getId('cartes_fullscreen').innerHTML = getId('cartes_fullscreen_msg').innerHTML;
var data = 'pays=' + pays + '®ion=' + region + '&saison=' + saison;
var xhr_carte = createRequestObject();
xhr_carte.onreadystatechange = function()
{
if(xhr_carte.readyState == 4)
{
if (xhr_carte.status == 200)
{
var docXML = xhr_carte.responseXML; // Objet permettant de gérer le xml généré dans le script PHP
stations = docXML.getElementsByTagName("station"); // on récupere les informations des stations de la région ainsi que le contenu des infobulles
var html = docXML.getElementsByTagName("template"); // on récupere le template de la page qui affiche la carte
getId('cartes_fullscreen').innerHTML = html[0].firstChild.nodeValue;
getId('img_grande_carte').style.visibility = 'visible';
getId('img_grande_carte').src = 'site/media/cartes/' + pays + '/' + region + '_big.png'; // on affiche la carte correspondante
resize();
}
else alert(xhr_carte.status + " " + xhr_carte.statusText);
}
};
xhr_carte.open("POST", "site/includes/cartes/ajax_cartes_fullscreen.php", true);
xhr_carte.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr_carte.send(data);
}
/** place les points sur la carte en fonction des coordonnées **/
function placerPoints()
{
// on assigne des margin aux images/points représentant les stations; on les positionne
for(var i = 0; i < stations.length; i++)
{
if(browserVersion() == 'Safari' || browserVersion() == 'Chrome') // Dans le cas de Safari et Chrome, on doit décaler les points
{
getId('station_' + stations[i].getAttribute('code')).style.margin = stations[i].getElementsByTagName('coordonnee_y')[0].firstChild.nodeValue + 'px 0px 0px ' + (stations[i].getElementsByTagName('coordonnee_x')[0].firstChild.nodeValue * 1 + getId('img_grande_carte').offsetLeft - 15) + 'px';
}
else getId('station_' + stations[i].getAttribute('code')).style.margin = stations[i].getElementsByTagName('coordonnee_y')[0].firstChild.nodeValue + 'px 0px 0px ' + stations[i].getElementsByTagName('coordonnee_x')[0].firstChild.nodeValue + 'px';
}
}
/** fonction pour l'affichage de la carte région agrandie en plein ecran **/
function cacherCarteFullscreen()
{
opacityOff();
document.getElementsByTagName('html')[0].style.overflow = 'auto';
getId('cartes_fullscreen').style.display = 'none';
carte_fullscreen = false;
}
/** variables globales **/
var manuel = false;
// var visibilite_bulle_carte = false; // La variable visibilite_bulle_carte nous dit si la bulle est visible ou non
/** fonction qui envoie la requette AJAX et affiche le résultat **/
/* function handleAJAXReturn(element_id, xhr) // permet de vérifier si la réponse est arrivée et effectue le résultat
{
if(xhr.readyState == 4) // la réponse est arrivée
{
if(xhr.status == 200) // code qui défini si la requête est OK , prêt à afficher
{
getId(element_id).innerHTML = xhr.responseText; // Utilisation du résultat
}
else alert('Error: returned status code ' + xhr.status + ', ' + xhr.statusText);
}
} */
/** montre l'infobulle lors du survol des points de la carte (plus utilisée) **/
function montre_bulle(element_id, code_station)
{
getId('liste_' + code_station).style.backgroundColor = '#DDEEFC';
manuel = false;
// if(visibilite_bulle_carte == false)
// {
for(var i = 0; i < stations.length; i++)
{
if(stations[i].getAttribute('code') == code_station) getId(element_id).innerHTML = stations[i].getElementsByTagName('infobulle')[0].firstChild.nodeValue;
}
getId(element_id).className = 'bulle_pleine';
// visibilite_bulle_carte = true;
// }
}
/** montre l'infobulle lors du survol de noms de stations de la liste **/
function montre_bulle_liste(element_id, code_station, x, y, img_id, circonstance)
{
manuel = true;
if(circonstance == 'image')
{
getId('liste_' + code_station).style.color = '#0092EB';
getId('liste_' + code_station).style.fontWeight = 'bold';
getId('liste_' + code_station).style.backgroundColor = '#DDEEFC';
}
// if(visibilite_bulle_carte == false)
// {
for(var i = 0; i < stations.length; i++)
{
if(stations[i].getAttribute('code') == code_station) getId(element_id).innerHTML = stations[i].getElementsByTagName('infobulle')[0].firstChild.nodeValue;
}
getId(element_id).className = 'bulle_pleine';
// visibilite_bulle_carte = true;
positionner_infobulle('curseur', x, y, img_id, circonstance);
// }
}
/** cache les infobulles **/
function cache_bulle(element_id, code_station)
{
getId('liste_' + code_station).style.color = '#105AB4';
getId('liste_' + code_station).style.fontWeight = 'normal';
getId('liste_' + code_station).style.backgroundColor = 'transparent';
// if(visibilite_bulle_carte == true)
// {
getId(element_id).className = 'bulle_vide';
getId(element_id).innerHTML = '';
manuel = false;
// visibilite_bulle_carte = false;
// }
}
/** positionne le conteneur de l'infobulle **/
function positionner_infobulle(element_id, X, Y, img_id, circonstance)
{
var position = findPos(img_id);
var taille_carte = findSize(img_id);
var cas = '';
// if(circonstance == 'image')
// {
// X -= position['X'];
// Y -= position['Y'];
// }
if(X > taille_carte['X']/2) cas += 'D';
else cas += 'G';
if(Y > taille_carte['Y']/2) cas += 'B';
else cas += 'H';
var taille_bulle = findSize(element_id);
switch(cas)
{
case 'GH':
var posX = 23;
var posY = -30;
var triangle = 'site/media/cartes/triangle_g.png';
var margin = "25px 0 0 -15px";
break;
case 'DH':
// if(circonstance == 'image') var posX = -248;
// else var posX = -242;
var posX = -242;
var posY = -30;
var triangle = 'site/media/cartes/triangle_d.png';
var margin = "25px 0 0 225px";
break;
case 'GB':
var posX = 23;
var posY = -taille_bulle['Y'] + 30;
var triangle = 'site/media/cartes/triangle_g.png';
var margin = (taille_bulle['Y'] - 35) + "px 0 0 -15px";
break;
case 'DB':
// if(circonstance == 'image') var posX = -248;
// else var posX = -242;
var posX = -242;
var posY = -taille_bulle['Y'] + 30;
var triangle = 'site/media/cartes/triangle_d.png';
var margin = (taille_bulle['Y'] - 35) + "px 0 0 225px";
break;
}
if(navigator.appName != "Microsoft Internet Explorer" || document.documentElement.clientWidth > 0) // Si on est pas sous IExploZer
{
getId(element_id).style.left = position['X'] + X + posX + document.documentElement.scrollLeft + "px";
getId(element_id).style.top = position['Y'] + Y + posY + document.documentElement.scrollTop + "px";
}
else
{
getId(element_id).style.left = posX + position['X'] + X + document.body.scrollLeft + "px";
getId(element_id).style.top = posY + position['Y'] + Y + document.body.scrollTop + "px";
}
if(getId('triangle'))
{
getId('triangle').src = triangle;
getId('triangle').style.margin = margin;
}
}
/** change la position du conteneur de l'infobulle lors du déplacement de la souris **/
function move(e)
{
if(carte_fullscreen == true)
{
if(document.documentElement.scrollTop != 0) window.scrollTo(0, 0); /* document.documentElement.scrollTop = 0; */
if(!manuel)
{
if(navigator.appName != "Microsoft Internet Explorer") positionner_infobulle('curseur', e.pageX, e.pageY, 'img_grande_carte', 'image');
else positionner_infobulle('curseur', event.x, event.y, 'img_grande_carte', 'image');
}
}
}
/** change la taille de la colone de droite lors du redimensionnement de la page **/
function resize()
{
if(carte_fullscreen == true)
{
// alert(findPos('cartes_fullscreen')['X'] + ' - ' + findPos('cartes_fullscreen')['Y']);
// alert(findSize('cartes_fullscreen')['X'] + ' - ' + findSize('cartes_fullscreen')['Y']);
// alert(((document.documentElement.clientWidth - findSize('cartes_fullscreen')['X']) / 2) + 'px');
// on recentre le bloc de carte au milieu de la fenetre du navigateur
// alert(
// "La résolution de votre écran est : " + screen.width + " x " + screen.height + "\n\n" +
// "screen.availWidth = " + screen.availWidth + " px\n" +
// "screen.availHeight = " + screen.availHeight + " px\n" +
// "window.innerWidth = " + window.innerWidth + " px\n" +
// "window.innerHeight = " + window.innerHeight + " px\n" +
// "document.body.offsetWidth = " + document.body.offsetWidth + " px\n" +
// "document.body.offsetHeight = " + document.body.offsetHeight + " px\n" +
// "document.documentElement.clientWidth = " + document.documentElement.clientWidth + " px\n" +
// "document.documentElement.clientHeight = " + document.documentElement.clientHeight + " px\n" +
// "screen.colorDepth = " + screen.colorDepth + " bits"
// );
if(navVersion() == '6' || navVersion() == '7') getId('cartes_fullscreen').style.marginLeft = -((screen.availWidth - findSize('cartes_fullscreen')['X']) / 2 + findSize('cartes_fullscreen')['X'] - 1) + 'px';
else getId('cartes_fullscreen').style.marginLeft = ((document.documentElement.clientWidth - findSize('cartes_fullscreen')['X']) / 2 + 1) + 'px';
// alert(getId('cartes_fullscreen').style.marginLeft);
getId('cartes_fullscreen').style.height = 'auto';
getId('liste_pays').style.height = 'auto';
if(findSize('cartes_fullscreen')['Y'] > document.documentElement.clientHeight - 6) getId('liste_pays').style.height = (document.documentElement.clientHeight - 20) + 'px';
// test debugging
// if(getId('cartes_fullscreen').style.display != 'none') alert("cartes_fullscreen :\nTop : " + getId('cartes_fullscreen').offsetTop + "px\nLeft : " + getId('cartes_fullscreen').offsetLeft + "px\n\nimg_grande_carte :\nTop : " + getId('img_grande_carte').offsetTop + "px\nLeft : " + getId('img_grande_carte').offsetLeft + "px");
// else alert('display: ' + getId('cartes_fullscreen').style.display);
}
}
// document.onmousemove = move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
window.onresize = resize;