// przechowuje odwoÅ‚anie do obiektu XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject(); 

// zwraca obiekt XMLHttpRequest
function createXmlHttpRequestObject() 
{
  // przechowa odwoÅ‚anie do obiektu XMLHttpRequest
  var xmlHttp;
  // jeÅ›li uruchomiony jest Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // jeÅ›li uruchomiona jest Mozilla lub inne przeglÄ…darki
  else
  {
    try 
    {
      xmlHttp = new XMLHttpRequest();
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // zwraca utworzony obiekt lub wyÅ›wietla komunikat o bÅ‚Ä™dzie
  if (!xmlHttp)
    alert("BÅ‚Ä…d podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

// wysyÅ‚a asynchroniczne Å¼Ä…danie protokoÅ‚em HTTP korzystajÄ…c z obiektu XMLHttpRequest
function wyslij_zapytanie(waluta, rodzaj, wartosc, wklad, okres, raty, wiek, rodzina, zrodlo, dochod, imie, tel, email, link)
{
  // kontynuuje jedynie jeÅ›li obiekt xmlHttp nie jest zajÄ™ty
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    
    
    // wykonuje stronÄ™ quickstart.php na serwerze
    url = '/includes/kredyty_ajax.php';
     url = url + "?waluta="+encodeURIComponent(waluta)
            	+"&rodzaj="+encodeURIComponent(rodzaj)
            	+"&wartosc="+encodeURIComponent(wartosc)
            	+"&wklad="+encodeURIComponent(wklad)
            	+"&okres="+encodeURIComponent(okres)
            	+"&raty="+encodeURIComponent(raty)
            	+"&wiek="+encodeURIComponent(wiek)
            	+"&rodzina="+encodeURIComponent(rodzina)
            	+"&zrodlo="+encodeURIComponent(zrodlo)
            	+"&dochod="+encodeURIComponent(dochod)
            	+"&imie="+encodeURIComponent(imie)
            	+"&tel="+encodeURIComponent(tel)
            	+"&email="+encodeURIComponent(email)
            	+"&link="+encodeURIComponent(link);
    
    xmlHttp.open("GET", url, true);  
    // definiuje metodÄ™ obsÅ‚ugi odpowiedzi serwera
    xmlHttp.onreadystatechange = handleServerResponse;
    // wysyÅ‚a Å¼Ä…danie do serwera
    xmlHttp.send(null);
  }
  else
    // jeÅ›li poÅ‚Ä…czenie jest zajÄ™te, ponawia prÃ³bÄ™ po 1 sekundzie
    setTimeout('wyslij_zapytanie('+ waluta, rodzaj, wartosc, wklad, okres, raty, wiek, rodzina, zrodlo, dochod, imie, tel, email, link + ')',1000);
}

// wykonywana automatycznie po otrzymaniu odpowiedzi z serwera
function handleServerResponse() 
{
  // kontynuuje jedynie jeÅ›li transakcja zostaÅ‚a zakoÅ„czona
  if (xmlHttp.readyState == 4) 
  { 
    // status 200 oznacza pomyÅ›lne ukoÅ„czenie transakcji
    if (xmlHttp.status == 200) 
    { 
       // wyodrÄ™bnia wiadomoÅ›Ä‡ XML wysÅ‚anÄ… z serwera
      xmlResponse = xmlHttp.responseXML;
      // pobiera element nadrzÄ™dny ze struktury pliku XML
      xmlDocumentElement = xmlResponse.documentElement;
      // pobiera wiadomoÅ›Ä‡ tekstowÄ… pierwszego potomka elementu document
      helloMessage = xmlDocumentElement.firstChild.data;
      // aktualizuje dane wyÅ›wietlane klientowi informacjami otrzymanymi z serwera
      document.getElementById("divMessage").innerHTML = helloMessage;
    } 
    // dla statusu protokoÅ‚u HTTP innego niÅ¼ 200 zgÅ‚asza bÅ‚Ä…d
    else 
    {
      alert("Wyst±pi³ b³±d podczas uzyskiwania dostêpu do serwera: " + xmlHttp.statusText);
    }
  }
  else {
  	document.getElementById("divMessage").innerHTML = "Wysy³am, proszê o cierpliwo¶æ...";
  }
}


