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();