﻿// przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();

// tworzy obiekt XMLHttpRequest
function createXmlHttpRequestObject() 
{
  // przechowa odwoĹ‚anie do obiektu XMLHttpRequest
  var xmlHttp;
  // powinno dziaĹ‚aÄ‡ dla wszystkich przeglÄ…darek z wyjÄ…tkiem IE6 i starszych
  try
  {
    // prĂłbuje stworzyÄ‡ obiekt XMLHttpRequest
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // zakĹ‚adajÄ…c, ĹĽe IE6 lub starsza
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
      "MSXML2.XMLHTTP.5.0",
      "MSXML2.XMLHTTP.4.0",
      "MSXML2.XMLHTTP.3.0",
      "MSXML2.XMLHTTP",
      "Microsoft.XMLHTTP");
    // sprawdza kaĹĽdy prog id aĹĽ ktĂłryĹ› zadziaĹ‚a
 
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // prĂłbuje stworzyÄ‡ obiekt XMLHttpRequest
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca stworzony obiekt albo wyĹ›wietla komunikat o bĹ‚Ä™dzie
  if (!xmlHttp)
    alert("BĹ‚Ä…d podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

// czyta plik z serwera
function process(akcja,id)
{
  // kontynuuje, jeĹ›li obiekt xmlHttp nie jest pusty
  if (xmlHttp)
  {
    // prĂłbuje poĹ‚Ä…czyÄ‡ siÄ™ z serwerem
    try
    {
      // poczÄ…tkuje odczyt pliku z serwera
      xmlHttp.open("GET", "phptest.php?akcja=" + akcja + "&id=" + id, true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);
    }
    // w razie niepowodzenia wyĹ›wietla komunikat o bĹ‚Ä™dzie
    catch (e)
    {
      alert("Nie mogÄ™ poĹ‚Ä…czyÄ‡ siÄ™ z serwerem:\n" + e.toString());
    }
  }
}


// funkcja wywoĹ‚ywana przy zmianie statusu ĹĽÄ…dania HTTP
function handleRequestStateChange() 
{
//pokaz napis loading podczas wczytywania
  if (xmlHttp.readyState == 1) 
  {
  myDiv = document.getElementById("myDivElement01");
  // wyĹ›wietla dane wyjĹ›ciowe w formacie HTML
  myDiv.innerHTML = "<IMG SRC='Obrazki/loader.gif' WIDTH='87' HEIGHT='57' BORDER='0' ALT=''>";
  }

  // kiedy readyState ma wartoĹ›Ä‡ 4, jesteĹ›my gotowi do odebrania odpowiedzi z serwera
  if (xmlHttp.readyState == 4) 
  {
    // kontynuuje tylko, gdy status HTTP ma wartoĹ›Ä‡ "OK"
    if (xmlHttp.status == 200) 
    {
      try
      {
        // przetwarza wiadomoĹ›Ä‡ z serwera
        handleServerResponse();
      }
      catch(e)
      {
        // komunikat o bĹ‚Ä™dzie
        alert("Error reading the response: " + e.toString());
      }
    } 
    else
    {
      // wyĹ›wietla wiadomoĹ›Ä‡ o statusie
      alert("Problem przy pobieraniu danych:\n" + xmlHttp.statusText);
    }
  }
}

// obsĹ‚uguje odpowiedĹş otrzymanÄ… z serwera
function handleServerResponse()
{
  // pobiera odpowiedĹş serwera
  var xmlResponse = xmlHttp.responseXML;
  // wyĹ‚apywanie potencjalnych bĹ‚Ä™dĂłw przez IE i OperÄ™
  if (!xmlResponse || !xmlResponse.documentElement)
    throw("Niepoprawna struktura XML:\n" + xmlHttp.responseText);
  // wyĹ‚apywanie potencjalnych bĹ‚Ä™dĂłw przez Firefox
  var rootNodeName = xmlResponse.documentElement.nodeName;
  if (rootNodeName == "parsererror") throw("Niepoprawna struktura XML");
  // pobiera element document pliku XML
  xmlRoot = xmlResponse.documentElement;  
  // pobiera tablice tytuĹ‚Ăłw i numerĂłw ISBN
  titleArray = xmlRoot.getElementsByTagName("title");
  isbnArray = xmlRoot.getElementsByTagName("isbn");
  // generuje dane wyjĹ›ciowe w formacie HTML
	  var html = "";  
  // iteracja przez elementy tablic i tworzenie struktury HTML
  for (var i=0; i<titleArray.length; i++){
//		html  = isbnArray.item(i).firstChild.data + "<br/> "+ titleArray.item(i).firstChild.data;
		html  = titleArray.item(0).firstChild.data;
	}
  // pobiera element <div> ze strony
  myDiv = document.getElementById("myDivElement01");
  // wyĹ›wietla dane wyjĹ›ciowe w formacie HTML
  myDiv.innerHTML = html;
//  myDiv02.innerHTML = tresc_html;
}


