// 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 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;
}

var ddomena;
var dext;
var dlang;
// wywołana do odczytania pliku z serwera
function process(domena, ext, lang, captcha)
{
	ddomena = domena;
	dext = ext;
	dlang = lang;
  // kontynuuje tylko jeśli obiekt xmlHttp istnieje
  if (xmlHttp)
  { 
  		
	var url = '';
    // próbuje połączyć się z serwerem
    try
    {
	 	//alert ("Domena "+domena+", ext = "+ext);
	   if (domena != '' && ext != '') {
		url = '/check_domain_new.php?domain='+domena+"&ext="+ext+"&lang="+lang+"&captcha="+captcha;
      // 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. \nProszę sprawdzić czy nie zostało zainstalowane oprogramowanie blokujące (np. Adblock)");
    }
  }
  else
  {
  	alert('Brak obiektu');	
	}		
}

// funkcja wywoływana przy zmianie statusu HTTP
function handleRequestStateChange(domena, ext, lang) 
{
  // 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)
      {
			//no to jeszcze raz... 
			setTimeout('process(\''+ddomena+'\', \''+dext+'\', \''+dlang+'\')', 100);
        // wyświetla komunikat o błędzie
//        alert("Błąd odczytu odpowiedzi: " + e.toString());
      }
    } 
  }
}

 
// obsługuje odpowiedź otrzymaną z serwera
function handleServerResponse()
{
  var xmlResponse = xmlHttp.responseXML;
  xmlRoot = xmlResponse.documentElement;  

  nameArray = xmlRoot.getElementsByTagName("domain");
  extArray = xmlRoot.getElementsByTagName("ext");	
  resultArray = xmlRoot.getElementsByTagName("result");
  priceArray = xmlRoot.getElementsByTagName("price");
  messageplArray = xmlRoot.getElementsByTagName("messagepl");	

  if (messageplArray && messageplArray.item(0) && messageplArray.item(0).firstChild != null)
  	var message = messageplArray.item(0).firstChild.data;
  else
  	var message = '';	
  

  wyswietlwynik(nameArray.item(0).firstChild.data, extArray.item(0).firstChild.data, resultArray.item(0).firstChild.data, priceArray.item(0).firstChild.data, message);
	
  pobierzDane();	
	
}

function zaznacz_check(elem, el)
{
	var element = document.getElementById(elem);
	

	if (element)
	{
		if (element.checked == false)
			element.checked = true;
		else
			element.checked = false;
	}

}

