function Ajax() {}

Ajax.makeRequestSynchroneText = function(url, parameters) {
   var http_request = null;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
         http_request.overrideMimeType('text/xml');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!http_request) {
      alert('Cannot create XMLHTTP instance');
      return null;
   }

   http_request.open('GET', url + '?' + parameters, false);
   http_request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
   http_request.send(null);

   return http_request.responseText;
}

Ajax.makeRequestSynchroneJson = function(url, parameters) {
    var res = Ajax.makeRequestSynchroneText(url, parameters);
    //alert(res);
    return Ajax.jsonDecode(res);
}

Ajax.jsonDecode = function(json) {
    //alert(json);
    try {
	eval('var a = ' + json);
	
	if (a['reponse']==null) {
	    alert("Le serveur n'a pas envoyé son code de réponse");
	    return null; 
	}
	
	if (a['reponse']!=1) {
	    if (a['error']==null) {
		alert("Le serveur a rencontré une erreur, mais n'a pas fourni le message correspondant");
		return null;
	    }
	    alert(a['error']);
	    return null;
	}
	
	return a;
	
    } catch(ex) {
	alert("La réponse du serveur au format JSON n'a pas pu être évaluée");
	return null;
    }
    
    return null;
}
