// A activer si il n'y a pas d'autre window.onload chargé ailleurs dans la page. // window.onload = function () { // geo(); // } function geo() { // Vérification du support par le navigateur if (!document.getElementsByTagName) return false; // Initialise ROT13 si besoin if (rot13) var map = rot13init(); // Récupère toutes les ancres var links = document.getElementsByTagName('a'); // Fonction pour recompser l'adresse originale function geo_decode(anchor) { var href = anchor.getAttribute('href'); var address = href.replace(/.*contact\/([a-z0-9._%-]+)\+([a-z0-9._%-]+)\+([a-z.]+)/i, '$1' + '@' + '$2' + '.' + '$3'); var linktext = anchor.innerHTML; // IE Fix if (href != address) { anchor.setAttribute('href','mailto:' + (rot13 ? str_rot13(address,map) : address)); // Rajoute le mailto au lien anchor.innerHTML = linktext; // IE Fix } } // Boucle sur les ancres for (var l = 0 ; l < links.length ; l++) { // Décode les liens lors du click sur eux links[l].onclick = function() { geo_decode(this); } // Décode les liens lors du passage souris sur eux links[l].onmouseover = function() { geo_decode(this); } // Décode les liens lors du passage clavier sur eux links[l].onfocus = function() { geo_decode(this); } } } // Fonction de décryptage ROT13 var rot13 = 1; function rot13init() { var map = new Array(); var s = "abcdefghijklmnopqrstuvwxyz"; for (var i = 0 ; i < s.length ; i++) map[s.charAt(i)] = s.charAt((i+13)%26); for (var i = 0 ; i < s.length ; i++) map[s.charAt(i).toUpperCase()] = s.charAt((i+13)%26).toUpperCase(); return map; } function str_rot13(a,map) { var s = ""; for (var i = 0 ; i < a.length ; i++) { var b = a.charAt(i); s += (b>='A' && b<='Z' || b>='a' && b<='z' ? map[b] : b); } return s; }