httpAjax =
{
  inform : function (msg)
    {
    alert(msg);
    },
  request : function(url , extra) {
        var httpRequest;
        if(extra.method)
          var method = extra.method ;
          else
          var method = 'GET' ;
        if(extra.sync)
          extra.sync = true
          else
          extra.sync = false

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType && extra.type) {
                httpRequest.overrideMimeType(extra.type);
                // See note below about this line
            }
        }
        else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {}
            }
        }

        if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
//        callback = extar.callback ;
        if(extra.sync != true)
        if(extra.onSuccess)
          httpRequest.onreadystatechange = function(){httpAjax.requestHandler(httpRequest,extra)}
          else
          httpRequest.onreadystatechange = function(){extra.callback(httpRequest,extra)}

        httpRequest.open(method, url, !extra.sync);
        if(method == 'POST')
          {
          httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
          httpRequest.send(extra.data);
          }else{
          httpRequest.send("") ;
          }
    return httpRequest ;
    },
  requestParseQuery : function(q)
    {
    var out = '' ;
    for(i in q)
      {
      out+=i+'='+q[i]+'&' ;
      }
    return out ;
    },
  requestHandler : function(httpRequest,extra)
    {
       if (httpRequest.readyState == 4) {
            if (httpRequest.status == 200) {
              extra.onSuccess(httpRequest,extra)
            } else {
                httpAjax.inform('There was a problem with the request.');
            }
        }
    }
}

