Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Démo venant de : http://www.sillonalpinsud.fr/Carte-nord.php
- ////////////////////
- // rAthur Maps v1 //
- ////////////////////
- //////////////////////////////////
- // Initialisation des variables //
- //////////////////////////////////
- /////////
- // Map //
- /////////
- largeur_cadre_map = 440; // Largeur de la zone d'affichage de la map en pixels.
- hauteur_cadre_map = 725; // Hauteur de la zone d'affichage de la map en pixels.
- id_cadre_map = "conteneur_map"; // ID de la zone dans laquelle sera affichée la map.
- authoriser_centre = 0; // "0" ou "1", demander au dev pour les explications, c'est chiant à écrire ;)
- nom_fichier_image_map = "map_<X>_<Y>.jpg"; // Nom d'un fichier d'image en remplacant la colone par "<X>", la ligne par "<Y>", et eventuellement le niveau de zoom par "<Z>".
- dossier_zoom_ = new Array();
- largeur_totale_zoom_ = new Array();
- hauteur_totale_zoom_ = new Array();
- largeur_images_zoom_ = new Array();
- hauteur_images_zoom_ = new Array();
- dossier_zoom_[0] = "cartes/map_nord/0/"; // Dossier du zoom avec un "/" à la fin.
- largeur_totale_zoom_[0] = 440; // Largeur totale du zoom.
- hauteur_totale_zoom_[0] = 725; // Hauteur totale du zoom.
- largeur_images_zoom_[0] = 440; // Largeur d'une image.
- hauteur_images_zoom_[0] = 725; // Hauteur d'une image.
- dossier_zoom_[1] = "cartes/map_nord/1/"; // Dossier du zoom avec un "/" à la fin.
- largeur_totale_zoom_[1] = 607; // Largeur totale du zoom.
- hauteur_totale_zoom_[1] = 1000; // Hauteur totale du zoom.
- largeur_images_zoom_[1] = 200; // Largeur d'une image.
- hauteur_images_zoom_[1] = 200; // Hauteur d'une image.
- dossier_zoom_[2] = "cartes/map_nord/2/"; // Dossier du zoom avec un "/" à la fin.
- largeur_totale_zoom_[2] = 1760; // Largeur totale du zoom.
- hauteur_totale_zoom_[2] = 2900; // Hauteur totale du zoom.
- largeur_images_zoom_[2] = 200; // Largeur d'une image.
- hauteur_images_zoom_[2] = 200; // Hauteur d'une image.
- dossier_zoom_[3] = "cartes/map_nord/3/"; // Dossier du zoom avec un "/" à la fin.
- largeur_totale_zoom_[3] = 3216; // Largeur totale du zoom.
- hauteur_totale_zoom_[3] = 5300; // Hauteur totale du zoom.
- largeur_images_zoom_[3] = 200; // Largeur d'une image.
- hauteur_images_zoom_[3] = 200; // Hauteur d'une image.
- dossier_zoom_[4] = "cartes/map_nord/4/"; // Dossier du zoom avec un "/" à la fin.
- largeur_totale_zoom_[4] = 6159; // Largeur totale du zoom.
- hauteur_totale_zoom_[4] = 10149; // Hauteur totale du zoom.
- largeur_images_zoom_[4] = 200; // Largeur d'une image.
- hauteur_images_zoom_[4] = 200; // Hauteur d'une image.
- ///////////////
- // Miniature //
- ///////////////
- largeur_cadre_miniature = 90; // Largeur de la zone d'affichage de la miniature en pixels.
- hauteur_cadre_miniature = 150; // Hauteur de la zone d'affichage de la miniature en pixels.
- id_cadre_miniature = "conteneur_miniature"; // ID de la zone dans laquelle sera affichée la miniature.
- couleur_cadre_zone_miniature = "#ff0000"; // Couleur du petit cadre représentant la zone vue sur la miniature.
- ///////////////
- // Surcouche //
- ///////////////
- affichage_surcouche_par_defaut = "block" // "block" pour afficher la surcouche au chargement et "none" pour la masquer.
- nom_fichier_image_surcouche = "trace_<X>_<Y>.gif"; // Nom d'un fichier d'image en remplacant la colone par "<X>", la ligne par "<Y>", et eventuellement le niveau de zoom par "<Z>".
- ////////////
- // Pictos //
- ////////////
- dossier_pictos = "cartes/map_nord/icones/"; // Dossier dans lequel se trouvent les images des pictos.
- affichage_pictos_par_defaut = "block"; // "block" pour afficher les pictos au chargement et "none" pour les masquer.
- picto = new Array();
- nbpicto = 0;
- // Ci-après infos sur les pictos, 0=groupe, 1=fichier_image, 2=ratio_gauche, 3=ratio_haut, 4=décalage_gauche, 5=décalage_haut. En option, 6=lien, 7=title.
- picto[nbpicto] = Array("patelins","montmelian.png",0.9277,0.0387,-40,-8); nbpicto++;
- picto[nbpicto] = Array("patelins","cheylas.png",0.8005,0.3918,-29,-6); nbpicto++;
- picto[nbpicto] = Array("patelins","tencin.png",0.7134,0.5553,-20,-7); nbpicto++;
- picto[nbpicto] = Array("patelins","froges.png",0.6159,0.6525,-24,-7); nbpicto++;
- picto[nbpicto] = Array("patelins","brignoud.png",0.5736,0.681,-32,-7); nbpicto++;
- picto[nbpicto] = Array("patelins","villard.png",0.4723,0.7334,-30,-15); nbpicto++;
- picto[nbpicto] = Array("patelins","domene.png",0.3842,0.8381,-36,-8); nbpicto++;
- picto[nbpicto] = Array("patelins","gieres.png",0.2326,0.8939,-36,-8); nbpicto++;
- picto[nbpicto] = Array("patelins","martin.png",0.1593,0.9362,-36,-15); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.9116,0.1108,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.9032,0.1252,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.8812,0.1522,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.8674,0.1692,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.8458,0.1954,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.825,0.2836,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.7987,0.3315,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.7716,0.3815,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.7641,0.3947,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.7488,0.4396,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.7206,0.491,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.6976,0.5285,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.6461,0.5867,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.6268,0.6016,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.619,0.608,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.5038,0.7054,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.4447,0.7676,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.4122,0.7867,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.392,0.7985,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.3557,0.8198,-10,-10); nbpicto++;
- picto[nbpicto] = Array("passages_modifies","secu.png",0.2901,0.8579,-10,-10); nbpicto++;
- picto[nbpicto] = Array("patelins","chambery.png",0.8468,0.0315,-34,-8); nbpicto++;
- picto[nbpicto] = Array("patelins","dirnordest.png",0.9632,0.0299,-29,-22); nbpicto++;
- picto[nbpicto] = Array("electricite","elec1.png",0.8972,0.1434,-11,-11); nbpicto++;
- picto[nbpicto] = Array("remplacements","remp1.png",0.8225,0.2277,-124,-12); nbpicto++;
- picto[nbpicto] = Array("corridors","corr1.png",0.8084,0.3139,-81,-29); nbpicto++;
- picto[nbpicto] = Array("remplacements","remp2.png",0.8028,0.3237,-138,-13); nbpicto++;
- picto[nbpicto] = Array("ponts","pont1.png",0.6809,0.5543,-102,-17); nbpicto++;
- picto[nbpicto] = Array("abaissements","abaiss1.png",0.6847,0.5498,-98,-44); nbpicto++;
- picto[nbpicto] = Array("suppressions","suppr1.png",0.3163,0.8428,-148,-12); nbpicto++;
- picto[nbpicto] = Array("gares_modif","gare_goncelin_modif.png",0.737,0.4665,-149,-17); nbpicto++;
- picto[nbpicto] = Array("gares_modif","gare_lancey_modif.png",0.4734,0.751,-87,-27); nbpicto++;
- picto[nbpicto] = Array("gares","gare_montmelian.png",0.9178,0.0455,-209,-10); nbpicto++;
- picto[nbpicto] = Array("gares","gare_cheylas.png",0.8006,0.329,-124,-10); nbpicto++;
- picto[nbpicto] = Array("gares","gare_goncelin.png",0.737,0.4665,-149,-17); nbpicto++;
- picto[nbpicto] = Array("remplacements","remp3.png",0.7339,0.4718,-16,-11); nbpicto++;
- picto[nbpicto] = Array("gares","gare_pontcharra.png",0.8239,0.2227,-143,-29); nbpicto++;
- picto[nbpicto] = Array("gares","gare_tencin.png",0.6753,0.5629,-8,-9); nbpicto++;
- picto[nbpicto] = Array("gares","gare_brignoud.png",0.5296,0.6776,-125,-9); nbpicto++;
- picto[nbpicto] = Array("gares","gare_lancey.png",0.4734,0.751,-87,-27); nbpicto++;
- picto[nbpicto] = Array("patelins","lancey.png",0.4825,0.7564,-22,-6); nbpicto++;
- picto[nbpicto] = Array("patelins","versoud.png",0.4396,0.8004,-33,-7); nbpicto++;
- picto[nbpicto] = Array("abaissements","abaiss2.png",0.3357,0.8317,-77,-58); nbpicto++;
- picto[nbpicto] = Array("gares","gare_domene.png",0.3227,0.8394,-12,-12); nbpicto++;
- picto[nbpicto] = Array("ponts","pont2.png",0.3286,0.8357,-94,-28); nbpicto++;
- picto[nbpicto] = Array("gares","gare_gieres.png",0.1921,0.8848,-62,-11); nbpicto++;
- picto[nbpicto] = Array("patelins","grenoble.png",0.0298,0.8829,-47,-11); nbpicto++;
- picto[nbpicto] = Array("patelins","dirsudouest.png",0.1054,0.9442,-30,-21); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.6795,0.5573,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.5328,0.676,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.4757,0.7493,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.2771,0.8654,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.2595,0.8759,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.2346,0.8821,-5,-5); nbpicto++;
- picto[nbpicto] = Array("passages","pass.png",0.2071,0.8815,-5,-5); nbpicto++;
- ///////////////
- // Fonctions //
- ///////////////
- function zoom_mini() // Se déclenche quand on arrive au zoom minimum.
- {
- document.getElementById("bouton_zoom_moins").disabled = "disabled";
- }
- function zoom_maxi() // Se déclenche quand on arrive au zoom maximum.
- {
- document.getElementById("bouton_zoom_plus").disabled = "disabled";
- }
- function zoom_intermediaire() // Se déclenche quand on est sur un zoom entre le mini et le maxi.
- {
- document.getElementById("bouton_zoom_plus").disabled = "";
- document.getElementById("bouton_zoom_moins").disabled = "";
- }
- function maj_niveau_zoom() // Se déclenche quand le niveau de zoom est modifié, quel qu'il soit.
- {
- document.getElementById("niveau_zoom").innerHTML = "Niveau zoom : "+niveau_zoom+"/"+(zoom.length-1);
- document.getElementsByClassName("blocZoom")[0].id = "niv_"+niveau_zoom;
- }
- //////////////////////////////////////////////////
- // A partir d'ici ne rien toucher sans le dev ! //
- //////////////////////////////////////////////////
- niveau_zoom = 0;
- initcoords_map = 0;
- function init_map()
- {
- ////////////////////
- // Génération map //
- ////////////////////
- rathurmap = document.createElement("div");
- rathurmap.id = "rathurmap";
- rathurmap.style.position = "relative";
- rathurmap.style.overflow = "hidden";
- rathurmap.style.width = largeur_cadre_map+"px";
- rathurmap.style.height = hauteur_cadre_map+"px";
- rathurmap.style.backgroundImage = "url(images/c.jpg)";
- rathurmap.style.cursor = "move";
- rathurmap.onmouseover = function() { autorisation_zoom_roulette = 1; imgcrosshair.style.display = "none"; };
- rathurmap.onmouseout = function() { autorisation_zoom_roulette = 0; imgcrosshair.style.display = "block"; };
- document.getElementById(id_cadre_map).appendChild(rathurmap);
- generer_zoom(0);
- generer_zoom(1);
- generer_zoom(2);
- generer_zoom(3);
- generer_zoom(4);
- zoom[0].style.display = "block";
- restant = document.createElement("img");
- restant.id = "images_restantes_a_charger";
- restant.src = "images/loading.gif";
- restant.style.position = "absolute";
- restant.style.left = "50%";
- restant.style.top = "50%";
- restant.style.marginLeft = "-25px";
- restant.style.marginTop = "-25px";
- restant.style.display = "none";
- restant.style.zIndex = "1003";
- document.getElementById("rathurmap").appendChild(restant);
- affichage_prct = document.createElement("div");
- affichage_prct.id = "affichage_prct";
- affichage_prct.style.position = "absolute";
- affichage_prct.style.left = "0";
- affichage_prct.style.top = "50%";
- affichage_prct.style.marginLeft = "0";
- affichage_prct.style.marginTop = "25px";
- affichage_prct.style.display = "none";
- affichage_prct.style.textAlign = "center";
- affichage_prct.style.width = "100%";
- affichage_prct.style.fontSize = "11px";
- affichage_prct.style.fontFamily = "arial";
- affichage_prct.style.fontWeight = "normal";
- affichage_prct.style.textShadow = "0 0 1px #fff";
- affichage_prct.style.zIndex = "1003";
- document.getElementById("rathurmap").appendChild(affichage_prct);
- imgcrosshair = document.createElement("img");
- imgcrosshair.src = "images/crosshair.gif";
- imgcrosshair.style.position = "absolute";
- imgcrosshair.style.zIndex = "1003";
- imgcrosshair.style.left = (Math.abs(largeur_cadre_map/2-9))+"px";
- imgcrosshair.style.top = (Math.abs(hauteur_cadre_map/2-9))+"px";
- document.getElementById("rathurmap").appendChild(imgcrosshair);
- gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gotoleft = gotoleft_ancien;
- gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- gototop = gototop_ancien;
- coords_map = "0,0,0";
- if (window.location.hash.split('#')[1])
- {
- initcoords_map = 1;
- coords_map = window.location.hash.split('#')[1].split(';');
- }
- maj_images();
- divdrag_map = document.createElement("div");
- divdrag_map.style.position = "absolute";
- divdrag_map.style.left = "0";
- divdrag_map.style.top = "0";
- divdrag_map.style.width = largeur_cadre_map+"px";
- divdrag_map.style.height = hauteur_cadre_map+"px";
- divdrag_map.style.backgroundImage = "url(images/spacer.gif)";
- divdrag_map.style.backgroundRepeat = "repeat";
- divdrag_map.style.zIndex = "1007";
- divdrag_map.onmousedown = function() { init_drag_map(); return false; };
- divdrag_map.onmouseup = function() { end_drag_map(); };
- divdrag_map.ondblclick = function() { zoom_de(1); };
- document.getElementById("rathurmap").appendChild(divdrag_map);
- //////////////////////////
- // Génération miniature //
- //////////////////////////
- zoom_miniature = 0;
- rathurmapminiature = document.createElement("div");
- rathurmapminiature.id = "rathurmapminiature";
- rathurmapminiature.style.position = "relative";
- rathurmapminiature.style.overflow = "hidden";
- rathurmapminiature.style.width = largeur_cadre_miniature+"px";
- rathurmapminiature.style.height = hauteur_cadre_miniature+"px";
- rathurmapminiature.style.backgroundImage = "url(images/c.jpg)";
- rathurmapminiature.style.cursor = "default";
- rathurmapminiature.onmouseover = function() { zoom_miniature = 1; autorisation_zoom_roulette = 1; };
- rathurmapminiature.onmouseout = function() { zoom_miniature = 0; autorisation_zoom_roulette = 0; };
- document.getElementById(id_cadre_miniature).appendChild(rathurmapminiature);
- imgminiature = document.createElement("img");
- imgminiature.src = dossier_zoom_[0]+nom_fichier_image_map.replace("<X>","1").replace("<Y>","1").replace("<Z>","0");
- imgminiature.style.position = "absolute";
- imgminiature.style.left = "0";
- imgminiature.style.top = "0";
- imgminiature.style.width = largeur_cadre_miniature+"px";
- imgminiature.style.height = hauteur_cadre_miniature+"px";
- document.getElementById("rathurmapminiature").appendChild(imgminiature);
- cadreminiature = document.createElement("div");
- cadreminiature.style.position = "absolute";
- cadreminiature.style.left = "0";
- cadreminiature.style.top = "0";
- cadreminiature.style.border = "1px solid "+couleur_cadre_zone_miniature;
- cadreminiature.style.width = (largeur_cadre_miniature-diff_border)+"px";
- cadreminiature.style.height = (hauteur_cadre_miniature-diff_border)+"px";
- cadreminiature.style.cursor = "move";
- cadreminiature.style.boxShadow = "0 0 5px #000";
- cadreminiature.style.backgroundImage = "url(images/spacer.gif)";
- cadreminiature.style.backgroundRepeat = "repeat";
- cadreminiature.onmousedown = function() { init_drag_miniature(); return false; };
- cadreminiature.onmouseup = function() { end_drag_miniature(); };
- document.getElementById("rathurmapminiature").appendChild(cadreminiature);
- nomajmap = 0;
- if (coords_map[0])
- {
- nomajmap = 1;
- for (i=0; i<coords_map[0]*1; i++)
- zoom_de(1);
- nomajmap = 0;
- zoom[coords_map[0]*1].style.left = coords_map[1]*1+"px";
- zoom[coords_map[0]*1].style.top = coords_map[2]*1+"px";
- gotoleft_ancien = coords_map[1]*1;
- gotoleft = gotoleft_ancien;
- gototop_ancien = coords_map[2]*1;
- gototop = gototop_ancien;
- verif_pas_trop_loin();
- ajustement_cadre_miniature();
- maj_images();
- }
- epurer();
- }
- onload = function() { init_map(); };
- nav = navigator.appName;
- if (nav=="Microsoft Internet Explorer")
- diff_border = 0;
- else
- diff_border = 2;
- zoom = new Array();
- autorisation_zoom_roulette = 0;
- imgbg = new Array();
- zoom_surcouche = new Array();
- couche_pcto = new Array();
- function generer_zoom(nb)
- {
- zoom[nb] = document.createElement("div");
- zoom[nb].id = "zoom"+nb;
- zoom[nb].style.display = "none";
- zoom[nb].style.position = "absolute";
- zoom[nb].style.width = largeur_totale_zoom_[nb]+"px";
- zoom[nb].style.height = hauteur_totale_zoom_[nb]+"px";
- zoom[nb].style.left = (largeur_cadre_map - largeur_totale_zoom_[nb])/2+"px";
- zoom[nb].style.top = (hauteur_cadre_map - hauteur_totale_zoom_[nb])/2+"px";
- imgbg[nb] = document.createElement("img");
- imgbg[nb].src = dossier_zoom_[0]+nom_fichier_image_map.replace("<X>","1").replace("<Y>","1").replace("<Z>","0");
- imgbg[nb].style.position = "absolute";
- imgbg[nb].style.left = "0";
- imgbg[nb].style.top = "0";
- imgbg[nb].style.width = largeur_totale_zoom_[nb]+"px";
- imgbg[nb].style.height = hauteur_totale_zoom_[nb]+"px";
- zoom[nb].appendChild(imgbg[nb]);
- document.getElementById("rathurmap").appendChild(zoom[nb]);
- zoom_surcouche[nb] = document.createElement("div");
- zoom_surcouche[nb].id = "zoom_surcouche"+nb;
- zoom_surcouche[nb].style.display = affichage_surcouche_par_defaut;
- zoom_surcouche[nb].style.position = "absolute";
- zoom_surcouche[nb].style.width = largeur_totale_zoom_[nb]+"px";
- zoom_surcouche[nb].style.height = hauteur_totale_zoom_[nb]+"px";
- zoom_surcouche[nb].style.left = "0";
- zoom_surcouche[nb].style.top = "0";
- zoom_surcouche[nb].style.zIndex = "1000";
- document.getElementById("zoom"+nb).appendChild(zoom_surcouche[nb]);
- for (i=0; i<picto.length; i++)
- {
- if (!couche_pcto[picto[i][0]])
- couche_pcto[picto[i][0]] = new Array();
- if (!couche_pcto[picto[i][0]][nb])
- {
- couche_pcto[picto[i][0]][nb] = document.createElement("div");
- couche_pcto[picto[i][0]][nb].style.position = "absolute";
- couche_pcto[picto[i][0]][nb].style.zIndex = "1001"; // "1002" pour passer les pictos au dessus du cache de drag, sinon "1001".
- couche_pcto[picto[i][0]][nb].style.display = affichage_pictos_par_defaut;
- document.getElementById("zoom"+nb).appendChild(couche_pcto[picto[i][0]][nb]);
- }
- a = document.createElement("a");
- if (picto[i][6])
- {
- a.href = picto[i][6];
- a.className = "lien_oui";
- a.style.cursor = "pointer";
- if (picto[i][7])
- {
- a.title = picto[i][7];
- a.alt = picto[i][7];
- }
- }
- else
- {
- a.className = "lien_non";
- a.style.cursor = "default";
- }
- pcto = document.createElement("img");
- pcto.src = dossier_pictos+picto[i][1];
- pcto.style.position = "absolute";
- pcto.style.left = Math.round(picto[i][2]*largeur_totale_zoom_[nb]+picto[i][4])+"px";
- pcto.style.top = Math.round(picto[i][3]*hauteur_totale_zoom_[nb]+picto[i][5])+"px";
- if (picto[i][6])
- pcto.className = "imglien_oui";
- else
- pcto.className = "imglien_non";
- if (picto[i][7])
- {
- pcto.title = picto[i][7];
- pcto.alt = picto[i][7];
- }
- pcto.onload = function() { };
- pcto.onerror = function() { };
- a.appendChild(pcto);
- couche_pcto[picto[i][0]][nb].appendChild(a);
- }
- }
- onmouseup = function() { end_drag_map(); end_drag_miniature(); };
- function init_drag_map()
- {
- x_curseur_debut = x_curseur;
- y_curseur_debut = y_curseur;
- x_map_debut = zoom[niveau_zoom].style.left.replace("px","")*1;
- y_map_debut = zoom[niveau_zoom].style.top.replace("px","")*1;
- autorisation_drag_map = 1;
- drag_map();
- return false;
- }
- function drag_map()
- {
- if (autorisation_drag_map == 1 && pas_trop_loin == 1)
- {
- difference_x = x_curseur-x_curseur_debut;
- difference_y = y_curseur-y_curseur_debut;
- zoom[niveau_zoom].style.left = x_map_debut+difference_x+"px";
- zoom[niveau_zoom].style.top = y_map_debut+difference_y+"px";
- verif_pas_trop_loin();
- ajustement_cadre_miniature();
- setTimeout("drag_map()",100);
- }
- }
- function end_drag_map()
- {
- if (autorisation_drag_map == 1)
- {
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- autorisation_drag_map = 0;
- maj_images();
- }
- autorisation_drag_map = 0;
- }
- function init_drag_miniature()
- {
- x_curseur_debut = x_curseur;
- y_curseur_debut = y_curseur;
- x_map_debut = zoom[niveau_zoom].style.left.replace("px","")*1;
- y_map_debut = zoom[niveau_zoom].style.top.replace("px","")*1;
- autorisation_drag_map = 1;
- drag_miniature();
- return false;
- }
- function drag_miniature()
- {
- if (autorisation_drag_map == 1 && pas_trop_loin == 1)
- {
- difference_x = x_curseur-x_curseur_debut;
- difference_y = y_curseur-y_curseur_debut;
- zoom[niveau_zoom].style.left = x_map_debut-difference_x/(ratio_largeur_map*ratio_largeur_miniature)+"px";
- zoom[niveau_zoom].style.top = y_map_debut-difference_y/(ratio_hauteur_map*ratio_hauteur_miniature)+"px";
- verif_pas_trop_loin();
- ajustement_cadre_miniature();
- setTimeout("drag_miniature()",100);
- }
- }
- function end_drag_miniature()
- {
- if (autorisation_drag_map == 1)
- {
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- autorisation_drag_map = 0;
- maj_images();
- }
- autorisation_drag_map = 0;
- }
- function position(e)
- {
- x_curseur = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x;
- y_curseur = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y;
- }
- if(navigator.appName.substring(0,3) == "Net")
- document.captureEvents(Event.MOUSEMOVE);
- document.onmousemove = position;
- function zoom_de(nb)
- {
- if (dossier_zoom_[niveau_zoom+nb])
- {
- zoom[niveau_zoom].style.display = "none";
- if (autorisation_zoom_roulette == 1 && zoom_miniature == 0)
- {
- position_absolute_map_x = recuperer_position(document.getElementById("rathurmap"))[0];
- position_absolute_map_y = recuperer_position(document.getElementById("rathurmap"))[1];
- position_curseur_sur_map_x = x_curseur-position_absolute_map_x;
- position_curseur_sur_map_y = y_curseur-position_absolute_map_y;
- position_curseur_sur_map_x_par_rapport_milieu = largeur_cadre_map/2-position_curseur_sur_map_x;
- position_curseur_sur_map_y_par_rapport_milieu = hauteur_cadre_map/2-position_curseur_sur_map_y;
- }
- else
- {
- position_curseur_sur_map_x_par_rapport_milieu = 0;
- position_curseur_sur_map_y_par_rapport_milieu = 0;
- }
- gauche_ancien = zoom[niveau_zoom].style.left.replace("px","")*1+position_curseur_sur_map_x_par_rapport_milieu;
- haut_ancien = zoom[niveau_zoom].style.top.replace("px","")*1+position_curseur_sur_map_y_par_rapport_milieu;
- largeur_ancien = zoom[niveau_zoom].style.width.replace("px","")*1;
- hauteur_ancien = zoom[niveau_zoom].style.height.replace("px","")*1;
- ratio_gauche_ancien = (-gauche_ancien+(largeur_cadre_map/2))/largeur_ancien;
- ratio_haut_ancien = (-haut_ancien+(hauteur_cadre_map/2))/hauteur_ancien;
- niveau_zoom += nb;
- largeur_nouveau = zoom[niveau_zoom].style.width.replace("px","")*1;
- hauteur_nouveau = zoom[niveau_zoom].style.height.replace("px","")*1;
- zoom[niveau_zoom].style.left = (-largeur_nouveau*ratio_gauche_ancien+largeur_cadre_map/2-position_curseur_sur_map_x_par_rapport_milieu)+"px";
- zoom[niveau_zoom].style.top = (-hauteur_nouveau*ratio_haut_ancien+hauteur_cadre_map/2-position_curseur_sur_map_y_par_rapport_milieu)+"px";
- zoom[niveau_zoom].style.display = "block";
- zoom_intermediaire();
- if (niveau_zoom==0 && authoriser_centre==0)
- rathurmap.style.cursor = "default";
- else
- rathurmap.style.cursor = "move";
- }
- if (!dossier_zoom_[niveau_zoom+nb] && niveau_zoom == 0)
- {
- zoom_mini();
- }
- if (!dossier_zoom_[niveau_zoom+nb] && niveau_zoom > 0)
- {
- zoom_maxi();
- }
- if (nomajmap != 1)
- maj_images();
- verif_pas_trop_loin();
- ajustement_cadre_miniature();
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- maj_niveau_zoom();
- }
- function zoom_vers(nb)
- {
- diff_zoom = nb-niveau_zoom;
- nb_zoom = Math.abs(diff_zoom);
- if (nb_zoom==diff_zoom)
- sens_zoom = 1;
- else
- sens_zoom = -1;
- for (i=0; i<nb_zoom; i++)
- setTimeout("zoom_de("+sens_zoom+")",i*100);
- }
- gotomapencours = 0;
- function go_bouger(xplus,yplus)
- {
- if (autorisation_bouger == 1)
- {
- gotoleft = zoom[niveau_zoom].style.left.replace("px","")*1+xplus*1;
- gototop = zoom[niveau_zoom].style.top.replace("px","")*1+yplus*1;
- gotomapencours = 1;
- gotomap();
- setTimeout("go_bouger("+xplus+","+yplus+")",100);
- }
- }
- function go_bouger_au_curseur()
- {
- position_absolute_map_x = recuperer_position(document.getElementById("rathurmap"))[0];
- position_absolute_map_y = recuperer_position(document.getElementById("rathurmap"))[1];
- position_curseur_sur_map_x = x_curseur-position_absolute_map_x;
- position_curseur_sur_map_y = y_curseur-position_absolute_map_y;
- position_curseur_sur_map_x_par_rapport_milieu = largeur_cadre_map/2-position_curseur_sur_map_x;
- position_curseur_sur_map_y_par_rapport_milieu = hauteur_cadre_map/2-position_curseur_sur_map_y;
- start_bouger(position_curseur_sur_map_x_par_rapport_milieu,position_curseur_sur_map_y_par_rapport_milieu);
- stop_bouger();
- }
- autorisation_bouger = 0;
- function stop_bouger()
- {
- autorisation_bouger = 0;
- }
- function start_bouger(xplus,yplus)
- {
- autorisation_bouger = 1;
- go_bouger(xplus,yplus);
- }
- pas_trop_loin = 1;
- function gotomap()
- {
- if (pas_trop_loin == 1)
- {
- if (Math.abs(Math.round(gotoleft)-Math.round(gotoleft_ancien))>1 || Math.abs(Math.round(gototop)-Math.round(gototop_ancien))>1)
- {
- gotoleft_ancien = Math.round(gotoleft_ancien+(gotoleft-gotoleft_ancien)/3);
- gototop_ancien = Math.round(gototop_ancien+(gototop-gototop_ancien)/3);
- zoom[niveau_zoom].style.left = gotoleft_ancien+"px";
- zoom[niveau_zoom].style.top = gototop_ancien+"px";
- zobgotomap = window.setTimeout("gotomap()",100);
- }
- else
- {
- gotomapencours = 0;
- window.clearTimeout(zobgotomap);
- maj_images();
- }
- verif_pas_trop_loin();
- ajustement_cadre_miniature();
- }
- else
- {
- gotomapencours = 0;
- window.clearTimeout(zobgotomap);
- maj_images();
- }
- }
- function verif_pas_trop_loin()
- {
- if (authoriser_centre == 1)
- {
- if (zoom[niveau_zoom].style.left.replace("px","")*1>largeur_cadre_map/2)
- {
- zoom[niveau_zoom].style.left = (largeur_cadre_map-1)/2+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if ((zoom[niveau_zoom].style.left.replace("px","")*1+zoom[niveau_zoom].style.width.replace("px","")*1)<=(largeur_cadre_map/2))
- {
- zoom[niveau_zoom].style.left = (-zoom[niveau_zoom].style.width.replace("px","")*1+largeur_cadre_map/2+0)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if (zoom[niveau_zoom].style.top.replace("px","")*1>hauteur_cadre_map/2)
- {
- zoom[niveau_zoom].style.top = (hauteur_cadre_map/2-1)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if ((zoom[niveau_zoom].style.top.replace("px","")*1+zoom[niveau_zoom].style.height.replace("px","")*1)<=(hauteur_cadre_map/2))
- {
- zoom[niveau_zoom].style.top = (-zoom[niveau_zoom].style.height.replace("px","")*1+hauteur_cadre_map/2+0)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- }
- else
- {
- if (zoom[niveau_zoom].style.left.replace("px","")*1>0)
- {
- zoom[niveau_zoom].style.left = (0-1)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if ((zoom[niveau_zoom].style.left.replace("px","")*1+zoom[niveau_zoom].style.width.replace("px","")*1)<=(largeur_cadre_map))
- {
- zoom[niveau_zoom].style.left = (-zoom[niveau_zoom].style.width.replace("px","")*1+largeur_cadre_map+0)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if (zoom[niveau_zoom].style.top.replace("px","")*1>0)
- {
- zoom[niveau_zoom].style.top = (0-1)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- if ((zoom[niveau_zoom].style.top.replace("px","")*1+zoom[niveau_zoom].style.height.replace("px","")*1)<=(hauteur_cadre_map))
- {
- zoom[niveau_zoom].style.top = (-zoom[niveau_zoom].style.height.replace("px","")*1+hauteur_cadre_map+0)+"px";
- gotoleft = gotoleft_ancien = zoom[niveau_zoom].style.left.replace("px","")*1;
- gototop = gototop_ancien = zoom[niveau_zoom].style.top.replace("px","")*1;
- }
- }
- }
- ratio_largeur_miniature = largeur_cadre_miniature/largeur_cadre_map;
- ratio_hauteur_miniature = hauteur_cadre_miniature/hauteur_cadre_map;
- function ajustement_cadre_miniature()
- {
- cadreminiature.style.width = (largeur_cadre_miniature*largeur_cadre_map/zoom[niveau_zoom].style.width.replace("px","")*1-diff_border)+"px";
- cadreminiature.style.height = (hauteur_cadre_miniature*hauteur_cadre_map/zoom[niveau_zoom].style.height.replace("px","")*1-diff_border)+"px";
- ratio_largeur_map = largeur_cadre_map/zoom[niveau_zoom].style.width.replace("px","")*1;
- ratio_hauteur_map = hauteur_cadre_map/zoom[niveau_zoom].style.height.replace("px","")*1;
- gauche_map = zoom[niveau_zoom].style.left.replace("px","")*1;
- gauche_zone = -gauche_map*ratio_largeur_miniature*ratio_largeur_map;
- haut_map = zoom[niveau_zoom].style.top.replace("px","")*1;
- haut_zone = -haut_map*ratio_hauteur_miniature*ratio_hauteur_map;
- cadreminiature.style.left = gauche_zone+"px";
- cadreminiature.style.top = haut_zone+"px";
- }
- images_affichees = new Array();
- images_restantes_a_charger = 0;
- images_totales_restantes_a_charger = 0;
- nombre_erreurs_chargement = 0;
- function maj_images()
- {
- gauche = zoom[niveau_zoom].style.left.replace("px","")*1;
- haut = zoom[niveau_zoom].style.top.replace("px","")*1;
- largeur_cadre_map = largeur_cadre_map;
- hauteur_cadre_map = hauteur_cadre_map;
- largeur_images = largeur_images_zoom_[niveau_zoom];
- hauteur_images = hauteur_images_zoom_[niveau_zoom];
- premiere_colone = Math.floor(Math.abs(gauche)/largeur_images)+1;
- premiere_ligne = Math.floor(Math.abs(haut)/hauteur_images)+1;
- nombre_colones = Math.ceil(largeur_cadre_map/largeur_images);
- nombre_lignes = Math.ceil(hauteur_cadre_map/hauteur_images);
- for (x=premiere_colone; x<=(premiere_colone+nombre_colones); x++)
- {
- for (y=premiere_ligne; y<=(premiere_ligne+nombre_lignes); y++)
- {
- imgzone_url = dossier_zoom_[niveau_zoom]+nom_fichier_image_map.replace("<X>",x).replace("<Y>",y).replace("<Z>",niveau_zoom);
- imgsurcouche_url = dossier_zoom_[niveau_zoom]+nom_fichier_image_surcouche.replace("<X>",x).replace("<Y>",y).replace("<Z>",niveau_zoom);
- if (!images_affichees[imgzone_url] && x<=Math.ceil(largeur_totale_zoom_[niveau_zoom]/largeur_images_zoom_[niveau_zoom]) && y<=Math.ceil(hauteur_totale_zoom_[niveau_zoom]/hauteur_images_zoom_[niveau_zoom]))
- {
- imgzone = document.createElement("img");
- imgzone.src = imgzone_url;
- imgzone.style.position = "absolute";
- imgzone.style.left = (x-1)*largeur_images+"px";
- imgzone.style.top = (y-1)*hauteur_images+"px";
- images_restantes_a_charger++;
- images_totales_restantes_a_charger++;
- imgzone.onload = function() { images_restantes_a_charger--; };
- imgzone.onerror = function() { nombre_erreurs_chargement++; images_restantes_a_charger--; };
- zoom[niveau_zoom].appendChild(imgzone);
- images_affichees[imgzone_url] = "zob";
- imgsurcouche = document.createElement("img");
- imgsurcouche.src = imgsurcouche_url;
- imgsurcouche.style.position = "absolute";
- imgsurcouche.style.left = (x-1)*largeur_images+"px";
- imgsurcouche.style.top = (y-1)*hauteur_images+"px";
- if (niveau_zoom > 0)
- {
- imgsurcouche.style.width = "200px";
- imgsurcouche.style.height = "200px";
- }
- images_restantes_a_charger++;
- images_totales_restantes_a_charger++;
- imgsurcouche.onload = function() { images_restantes_a_charger--; };
- imgsurcouche.onerror = function() { nombre_erreurs_chargement++; images_restantes_a_charger--; };
- zoom_surcouche[niveau_zoom].appendChild(imgsurcouche);
- images_affichees[imgsurcouche_url] = "zob";
- if (ie6 == 0){
- document.getElementById("images_restantes_a_charger").style.display = "block";
- document.getElementById("affichage_prct").style.display = "block";
- rathurmap.style.cursor = "wait";
- fonction_images_restantes_a_charger();
- }
- }
- }
- }
- if (initcoords_map == 1)
- initcoords_map = 0;
- else
- document.location.href = document.location.href.split('#')[0]+"#"+niveau_zoom+";"+gauche+";"+haut;
- }
- function fonction_images_restantes_a_charger()
- {
- if (images_restantes_a_charger > 0)
- {
- pourcent_charge = (1-images_restantes_a_charger/(images_totales_restantes_a_charger+0.07))*100;
- document.getElementById("affichage_prct").innerHTML = "Chargement zones<br />"+(images_totales_restantes_a_charger-images_restantes_a_charger)+"/"+images_totales_restantes_a_charger+" ("+Math.round(pourcent_charge*10)/10+"%)";
- setTimeout("fonction_images_restantes_a_charger()",100);
- }
- else
- {
- document.getElementById("images_restantes_a_charger").style.display = "none";
- document.getElementById("affichage_prct").style.display = "none";
- if (niveau_zoom==0 && authoriser_centre==0)
- rathurmap.style.cursor = "default";
- else
- rathurmap.style.cursor = "move";
- images_totales_restantes_a_charger = 0;
- }
- }
- last_position_gauche = 0;
- last_position_haut = 0;
- function recuperer_position(obj)
- {
- position_gauche = 0;
- position_haut = 0;
- nav = navigator.appName;
- while(obj)
- {
- position_gauche += obj.offsetLeft;
- if (obj.offsetLeft>0 && nav=="Microsoft Internet Explorer")
- last_position_gauche = obj.offsetLeft;
- position_haut += obj.offsetTop;
- if (obj.offsetTop>0 && nav=="Microsoft Internet Explorer")
- last_position_haut = obj.offsetTop;
- obj = obj.offsetParent;
- }
- position_array = new Array((position_gauche-last_position_gauche),(position_haut-last_position_haut));
- return position_array;
- }
- function afficher_masquer_surcouche()
- {
- if (zoom_surcouche[niveau_zoom].style.display == "block")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- zoom_surcouche[i].style.display = "none";
- }
- else
- {
- for (i=0; i<dossier_zoom_.length; i++)
- zoom_surcouche[i].style.display = "block";
- }
- }
- function afficher_masquer_pictos(groupe)
- {
- if (couche_pcto[groupe][niveau_zoom].style.display == "block")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- couche_pcto[groupe][i].style.display = "none";
- }
- else
- {
- for (i=0; i<dossier_zoom_.length; i++)
- couche_pcto[groupe][i].style.display = "block";
- }
- }
- function afficher_surcouche()
- {
- if (zoom_surcouche[niveau_zoom].style.display == "none")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- zoom_surcouche[i].style.display = "block";
- }
- }
- function afficher_pictos(groupe)
- {
- if (couche_pcto[groupe][niveau_zoom].style.display == "none")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- couche_pcto[groupe][i].style.display = "block";
- }
- }
- function masquer_surcouche()
- {
- if (zoom_surcouche[niveau_zoom].style.display == "block")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- zoom_surcouche[i].style.display = "none";
- }
- }
- function masquer_pictos(groupe)
- {
- if (couche_pcto[groupe][niveau_zoom].style.display == "block")
- {
- for (i=0; i<dossier_zoom_.length; i++)
- couche_pcto[groupe][i].style.display = "none";
- }
- }
- ////////////////////////////////////////////////////
- // Toute ce bordel c'est pas moi qui l'ai codé =P //
- ////////////////////////////////////////////////////
- /** This is high-level function.
- * It must react to delta being more/less than zero.
- */
- function handle(delta) {
- if (delta < 0)
- zoom_de(-1);
- else
- zoom_de(1);
- }
- /** Event handler for mouse wheel event.
- */
- function wheel(event){
- if (autorisation_zoom_roulette == 1)
- {
- var delta = 0;
- if (!event) /* For IE. */
- event = window.event;
- if (event.wheelDelta) { /* IE/Opera. */
- delta = event.wheelDelta/120;
- /** In Opera 9, delta differs in sign as compared to IE.
- */
- if (window.opera)
- delta = -delta;
- } else if (event.detail) { /** Mozilla case. */
- /** In Mozilla, sign of delta is different than in IE.
- * Also, delta is multiple of 3.
- */
- delta = -event.detail/3;
- }
- /** If delta is nonzero, handle it.
- * Basically, delta is now positive if wheel was scrolled up,
- * and negative, if wheel was scrolled down.
- */
- if (delta)
- handle(delta);
- /** Prevent default actions caused by mouse wheel.
- * That might be ugly, but we handle scrolls somehow
- * anyway, so don't bother here..
- */
- if (event.preventDefault)
- event.preventDefault();
- event.returnValue = false;
- }
- }
- /** Initialization code.
- * If you use your own event management code, change it as required.
- */
- if (window.addEventListener)
- /** DOMMouseScroll is for mozilla. */
- window.addEventListener('DOMMouseScroll', wheel, false);
- /** IE/Opera. */
- window.onmousewheel = document.onmousewheel = wheel;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement