// przechowuje obiekt XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
var xmlHttp2 = createXmlHttpRequestObject2();
var xmlHttp3 = createXmlHttpRequestObject3();
var xmlHttp4 = createXmlHttpRequestObject4();

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

// 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 utworzyć obiekt XMLHttpRequest
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // w przypadku, gdy przeglądarką jest IE6 lub starszy
    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 identyfikator programu, aż jeden zadziała
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
 
      { 
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

// wywołana do odczytania pliku z serwera
function process(url1)
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  { var url = '';
    // próbuje połączyć się z serwerem
    try
    {
	   if (url1 != '') {
		url = '/check_domain_multi.php'+url1;
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttp.open("GET", url,true);
      xmlHttp.onreadystatechange = handleRequestStateChange;
      xmlHttp.send(null);
    }}
    // w przypadku 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 HTTP
function handleRequestStateChange() 
{
  // kiedy readyState ma wartość 4, zaczynamy odczyt odpowiedzi serwera
  if (xmlHttp.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp.status == 200) 
    {
//      try
//      {
        // obsługuje odpowiedź z serwera
        handleServerResponse();
//      }
//      catch(e)
//      {
        // wyświetla komunikat o błędzie
//        alert("Błąd odczytu odpowiedzi: " + e.toString());
//      }
    } 
  }
}

 
// obsługuje odpowiedź otrzymaną z serwera
function handleServerResponse()
{
  // odczyt wiadomości z serwera
  var xmlResponse = xmlHttp.responseXML;
  // pobranie obiektu dokumentu pliku XML
  xmlRoot = xmlResponse.documentElement;  
  // pobranie tablic z tytułami książek i numerami ISBN
  nameArray = xmlRoot.getElementsByTagName("name");
  resultArray = xmlRoot.getElementsByTagName("result");
  priceArray = xmlRoot.getElementsByTagName("cena");
  messageArray = 	xmlRoot.getElementsByTagName("messagepl");
  // wygenerowanie danych wyjściowych w postaci pliku HTML
  var html = "";  
  // iteracyjne przejście przez tablice i tworzenie struktury HTML
  for (var i=0; i<nameArray.length; i++)
  // pobranie referencji do elementu <div> na stronie
{
  // wyświetlenie danych wyjściowych w postaci pliku HTML
  try {
	wynik = priceArray.item(i).firstChild.data;
	}	
	catch(e)
	{
	wynik = '0';
	}
  wyswietlwynik(nameArray.item(i).firstChild.data, resultArray.item(i).firstChild.data, wynik, messageArray.item(i).firstChild.data);
}
}









// ----------- OBIEKT2
function createXmlHttpRequestObject3() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp3;
  // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
  try
  {
    // próbuje utworzyć obiekt XMLHttpRequest
    xmlHttp3 = new XMLHttpRequest();
  }
  catch(e)
  {
    // w przypadku, gdy przeglądarką jest IE6 lub starszy
    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 identyfikator programu, aż jeden zadziała
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp3; i++) 
    {
      try 
 
      { 
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp3 = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp3)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp3;
}

// wywołana do odczytania pliku z serwera
function process3(urla2)
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp3)
  { var url2 = '';
    // próbuje połączyć się z serwerem
    try
    {
	   if (urla2 != ''){ url2 = '/check_domain_multi.php'+urla2;
      		 
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttp3.open("GET", url2,true);
      xmlHttp3.onreadystatechange = handleRequestStateChange3;
      xmlHttp3.send(null);
    }}
    // w przypadku 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 HTTP
function handleRequestStateChange3() 
{
  // kiedy readyState ma wartość 4, zaczynamy odczyt odpowiedzi serwera
  if (xmlHttp3.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp3.status == 200) 
    {
 //     try
 //     {
        // obsługuje odpowiedź z serwera
        handleServerResponse3();
//      }
//      catch(e)
//      {
        // wyświetla komunikat o błędzie
//        alert("Błąd odczytu odpowiedzi: " + e.toString());
//      }
    } 

  }
}

 
// obsługuje odpowiedź otrzymaną z serwera
function handleServerResponse3()
{
  // odczyt wiadomości z serwera
  var xmlResponse3 = xmlHttp3.responseXML;
  // pobranie obiektu dokumentu pliku XML
  xmlRoot3 = xmlResponse3.documentElement;  
  // pobranie tablic z tytułami książek i numerami ISBN
  nameArray3 = xmlRoot3.getElementsByTagName("name");
  resultArray3 = xmlRoot3.getElementsByTagName("result");
  priceArray3 = xmlRoot3.getElementsByTagName("cena");
  messageArray3 = 	xmlRoot3.getElementsByTagName("messagepl");
  // wygenerowanie danych wyjściowych w postaci pliku HTML
  var html3 = "";  
  // iteracyjne przejście przez tablice i tworzenie struktury HTML
  for (var i=0; i<nameArray3.length; i++)
  // pobranie referencji do elementu <div> na stronie
{
  // wyświetlenie danych wyjściowych w postaci pliku HTML
  try {
	wynik2 = priceArray3.item(i).firstChild.data;
	}	
	catch(e)
	{
	wynik2 = '0';
	}
  wyswietlwynik(nameArray3.item(i).firstChild.data, resultArray3.item(i).firstChild.data, wynik2, messageArray3.item(i).firstChild.data);
}
}



//----------------------- OBIEKT3

function createXmlHttpRequestObject2() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp2;
  // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
  try
  {
    // próbuje utworzyć obiekt XMLHttpRequest
    xmlHttp2 = new XMLHttpRequest();
  }
  catch(e)
  {
    // w przypadku, gdy przeglądarką jest IE6 lub starszy
    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 identyfikator programu, aż jeden zadziała
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp2; i++) 
    {
      try 
 
      { 
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp2 = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp2)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp2;
}

// wywołana do odczytania pliku z serwera
function process2(urla1)
{

  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp2)
  { var url3 = '';
    // próbuje połączyć się z serwerem
    try
    {
	   if (urla1 != '') {
		url3 = '/check_domain_multi.php'+urla1;
		 
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttp2.open("GET", url3,true);
      xmlHttp2.onreadystatechange = handleRequestStateChange2;
      xmlHttp2.send(null);
    }}
    // w przypadku 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 HTTP
function handleRequestStateChange2() 
{
  // kiedy readyState ma wartość 4, zaczynamy odczyt odpowiedzi serwera
  if (xmlHttp2.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp2.status == 200) 
    {
 //     try
  //    {
        // obsługuje odpowiedź z serwera
        handleServerResponse2();
  //    }
  //    catch(e)
  //    {
        // wyświetla komunikat o błędzie
  //      alert("Błąd odczytu odpowiedzi: " + e.toString());
  //    }
    } 

  }
}

 
// obsługuje odpowiedź otrzymaną z serwera
function handleServerResponse2()
{
  // odczyt wiadomości z serwera
  var xmlResponse2 = xmlHttp2.responseXML;
  // pobranie obiektu dokumentu pliku XML
  xmlRoot2 = xmlResponse2.documentElement;  
  // pobranie tablic z tytułami książek i numerami ISBN
  nameArray2 = xmlRoot2.getElementsByTagName("name");
  resultArray2 = xmlRoot2.getElementsByTagName("result");
  priceArray2 = xmlRoot2.getElementsByTagName("cena");
  messageArray2 = 	xmlRoot2.getElementsByTagName("messagepl");	
  // wygenerowanie danych wyjściowych w postaci pliku HTML
  var html2 = "";  
  // iteracyjne przejście przez tablice i tworzenie struktury HTML
  for (var i=0; i<nameArray2.length; i++)
  // pobranie referencji do elementu <div> na stronie
{
  // wyświetlenie danych wyjściowych w postaci pliku HTML
  try {
	wynik3 = priceArray2.item(i).firstChild.data;
	}	
	catch(e)
	{
	wynik3 = '0';
	}
  wyswietlwynik(nameArray2.item(i).firstChild.data, resultArray2.item(i).firstChild.data, wynik3, messageArray2.item(i).firstChild.data);
}
}








//OBIEKT 4
// tworzy obiekt XMLHttpRequest
function createXmlHttpRequestObject4() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp4;
  // powinno działać dla wszystkich przeglądarek z wyjątkiem IE6 i starszych
  try
  {
    // próbuje utworzyć obiekt XMLHttpRequest
    xmlHttp4 = new XMLHttpRequest();
  }
  catch(e)
  {
    // w przypadku, gdy przeglądarką jest IE6 lub starszy
    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 identyfikator programu, aż jeden zadziała
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp4; i++) 
    {
      try 
 
      { 
        // próbuje utworzyć obiekt XMLHttpRequest
        xmlHttp4 = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp4)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp4;
}

// wywołana do odczytania pliku z serwera
function process4(urla4)
{
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp4)
  { var url4 = '';
    // próbuje połączyć się z serwerem
    try
    {
	   if (urla4 != '') {
		url4 = '/check_domain_multi.php'+urla4;
      // inicjalizacja odczytu pliku async.txt z serwera
      xmlHttp4.open("GET", url4,true);
      xmlHttp4.onreadystatechange = handleRequestStateChange4;
      xmlHttp4.send(null);
    }}
    // w przypadku 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 HTTP
function handleRequestStateChange4() 
{
  // kiedy readyState ma wartość 4, zaczynamy odczyt odpowiedzi serwera
  if (xmlHttp4.readyState == 4) 
  {
    // kontynuuje tylko, gdy status serwera ma wartość "OK"
    if (xmlHttp4.status == 200) 
    {
//      try
//      {
        // obsługuje odpowiedź z serwera
        handleServerResponse4();
//      }
//      catch(e)
//      {
        // wyświetla komunikat o błędzie
//        alert("Błąd odczytu odpowiedzi: " + e.toString());
//      }
    } 

  }
}

 
// obsługuje odpowiedź otrzymaną z serwera
function handleServerResponse4()
{
  // odczyt wiadomości z serwera
  var xmlResponse4 = xmlHttp4.responseXML;
  // pobranie obiektu dokumentu pliku XML
  xmlRoot4 = xmlResponse4.documentElement;  
  // pobranie tablic z tytułami książek i numerami ISBN
  nameArray4 = xmlRoot4.getElementsByTagName("name");
  resultArray4 = xmlRoot4.getElementsByTagName("result");
  priceArray4 = xmlRoot4.getElementsByTagName("cena");
  messageArray4 = 	xmlRoot4.getElementsByTagName("messagepl");	
  // wygenerowanie danych wyjściowych w postaci pliku HTML
  var html4 = "";  
  // iteracyjne przejście przez tablice i tworzenie struktury HTML
  for (var i=0; i<nameArray4.length; i++)
  // pobranie referencji do elementu <div> na stronie
{
  // wyświetlenie danych wyjściowych w postaci pliku HTML
  try {
	wynik4 = priceArray4.item(i).firstChild.data;
	}	
	catch(e)
	{
	wynik4 = '0';
	}
  wyswietlwynik(nameArray4.item(i).firstChild.data, resultArray4.item(i).firstChild.data, wynik4, messageArray4.item(i).firstChild.data);
}
}
	
