var request;
var urlFragment="http://localhost:8080/";

function getAllHeaders(url){
   httpRequest("GET",url,true);
}

// Funkcja dla obsugi zdarzenia onreadystatechange obiektu XMLHttpRequest.
function handleResponse(){
   try{
      if(request.readyState == 4){
         if(request.status == 200){
            /* Wszystkie nagwki s otrzymane jako pojedynczy cig tekstowy. */
            var headers = request.getAllResponseHeaders();
            var div = document.getElementById("msgDisplay");
            div.className="header";
            div.innerHTML="<pre>"+headers+"</pre>";
         } else {
            // Jeeli aplikacja nie jest dostpna, wtedy stan dania wynosi 503,
            // natomiast w przypadku bdu w aplikacji stan dania wynosi 500.
            alert(request.status);
            alert("Wystpi problem z komunikacj midzy obiektem 
            XMLHttpRequest, "+
               "a programem serwera.");
         }
      }// Koniec zewntrznej ptli if.
   } catch (err) {
      alert("Serwer nie jest dostpny "+
         "dla tej aplikacji. Prosz wkrtce sprbowa"+
         " ponownie. \nBd: "+err.message);
   }
}

/* Inicjalizacja obiektu dania, ktry zosta ju skonstruowany. */
function initReq(reqType,url,bool){
   try{
      /* Okrelenie funkcji, ktra bdzie obsugiwaa odpowied HTTP. */
      request.onreadystatechange=handleResponse;
      request.open(reqType,url,bool);
      request.send(null);
   } catch (errv) {
      alert(
         "Aplikacja nie moe w tej chwili nawiza poczenia z serwerem. "+
         "Prosz wkrtce sprbowa ponownie." );
   }
}

/* Funkcja opakowujca do skonstruowania obiektu dania.
Parametry:
   reqType: typ dania HTTP, na przykad GET lub POST.
   url: adres URL programu serwerowego.
   asynch: czy danie bdzie wysane asynchronicznie, czy te nie. */
function httpRequest(reqType,url,asynch){
   // Przegldarki na bazie Mozilli.
   if(window.XMLHttpRequest){
      request = new XMLHttpRequest();
   } else if (window.ActiveXObject){
      request=new ActiveXObject("Msxml2.XMLHTTP");
      if (! request){
         request=new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   // Jeeli nie powioda si nawet inicjalizacja ActiveXObject,
   // wwczas danie wci moe by typu null.
   if(request){
      initReq(reqType,url,asynch);
   } else {
      alert(
         "Uywana przegldarka nie pozwala na wykorzystanie "+
         "wszystkich funkcji tej aplikacji!");
   }
}
