function httpGetAsync(theUrl, callback) { var xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4) { callback(xmlHttp.responseText, xmlHttp.status); } } xmlHttp.open("GET", theUrl, true); xmlHttp.send(null); } function putWaitNetworkScreen() { outputDiv.innerHTML = "Récupération des informations auprès du serveur..."; } function salleInfosToHtml(salle) { titres = ((salle.aliaz.length!=0)?("

"+salle.aliaz.join("

ou

")+"

"):"Aucun alias connu."); locataires = salle.locataires.join(", "); return titres + ((salle.description!=null)?("\n
\n" + salle.description):"") + ((salle.locataires.length!=0)?("\n
\nLocataires: " + locataires):""); } function initSvgSupport() { var plan = document.getElementById('plan'); svgPanZoom(plan, {zoomEnabled: true, controlIconsEnabled: true}); var salles = plan.contentDocument.getElementsByClassName('svg-salle'); var outputDiv = document.getElementById('selectedSalleInfos'); function selectSalle(e) { if(document.lastSelectedSalle != null) { document.lastSelectedSalle.classList.remove('current-room'); } document.lastSelectedSalle = e.target; window.clearTimeout(document.wnsTimeout); document.wnsTimeout = window.setTimeout(putWaitNetworkScreen, 400); httpGetAsync("api/salles.php?salle="+e.target.id.substring("path-salle-".length), function (s,errcode){ window.clearTimeout(document.wnsTimeout); try{ if (s=="404") { outputDiv.innerHTML = "Aucune information disponible pour cette salle. Si vous en avez, indiquez-les à l'adresse samy.avrillon@ens-lyon.fr en indiquant l'identifiant de la salle : "+document.lastSelectedSalle.id.substring("path-salle-".length); return; } ss = JSON.parse(s) if (document.lastSelectedSalle.id==("path-salle-"+ss["id"])) { if (errcode==200) { outputDiv.innerHTML = salleInfosToHtml(ss); } else { outputDiv.innerHTML = "Erreur lors de l'appel à l'interface php: ERREUR "+errcode; } } } catch(err) { console.error("Les données récupéréés de cette salle ne sont pas valides."); console.error(err); } }); e.target.classList.add('current-room'); } for (var i = 0; i < salles.length; i++) { salles[i].addEventListener('click', selectSalle); } } // Initialisation du svg. var plan = document.getElementById('plan'); if(plan.contentDocument==null) plan.addEventListener('load', initSvgSupport); else initSvgSupport();