// przechowuje obiekt XMLHttpRequestvar xmlHttp = createXmlHttpRequestObject();function in_array(v,arr) {	var t = false;	var s = arr.length	for (b=0; b < s; b++){		if (arr[b] == v ) {			t = true;			break;		}	}	return t;}// tworzy obiekt XMLHttpRequestfunction 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 serwerafunction process(cat){	if (cat == 0) return;	if (self.document.calculator2) {		self.document.calculator2.salary_location.disabled = true;		document.getElementById('info_id').innerHTML = '<span style="color: red">Loading...</span>';	}		if (self.document.calculator) {		self.document.calculator.salary_location.disabled = true;		document.getElementById('info_id1').innerHTML = '<span style="color: red">Loading...</span>';	}  // kontynuuje tylko jeĹ›li obiekt xmlHttp istnieje  if (xmlHttp)  {    // prĂłbuje poĹ‚Ä…czyÄ‡ siÄ™ z serwerem    try    {      // inicjalizacja odczytu pliku async.txt z serwera      xmlHttp.open("GET", "tools/ajax/ajax_salary.php?cat=" + cat, 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 HTTPfunction 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("Blad odczytu odpowiedzi: " + e.toString()+"\nlub zwrocono pusty ciag znakow");      }    }     else    {      // wyĹ›wietla statut wiadomoĹ›ci      alert("PojawiĹ‚ siÄ™ problem w uzyskaniu danych:\n" +        xmlHttp.statusText);    }  }} // obsĹ‚uguje odpowiedĹş otrzymanÄ… z serwerafunction handleServerResponse() {  // odczyt wiadomoĹ›ci z serwera  var xmlResponse = xmlHttp.responseXML;  // pobranie obiektu dokumentu pliku XML  xmlRoot = xmlResponse.documentElement;  var errors = xmlRoot.getElementsByTagName("errors");  var count = xmlRoot.getElementsByTagName("count");  var values = xmlRoot.getElementsByTagName("value");	  var labels = xmlRoot.getElementsByTagName("label");    switch (errors.item(0).firstChild.data)	{  		case 1 :				alert("Brak kategorii.");				return false;			break;		case 2 :				alert("Nic nie znaleziono");				return false;			break;		default :				var cValues = count.item(0).firstChild.data;				if (self.document.calculator2) {					for (a=0; a < cValues; a++) {						self.document.calculator2.salary_location.options[(a+1)] = new Option(labels[a].firstChild.data, values[a].firstChild.data)					}					self.document.calculator2.salary_location.disabled = false;				}								if (self.document.calculator) {					for (a=0; a < cValues; a++) {						self.document.calculator.salary_location.options[(a+1)] = new Option(labels[a].firstChild.data, values[a].firstChild.data)					}					self.document.calculator.salary_location.disabled = false;				}												if (document.getElementById('info_id')) {					document.getElementById('info_id').innerHTML = '<span style="color: green">Wybierz kraj</span>';				}				if (document.getElementById('info_id1')) {					document.getElementById('info_id1').innerHTML = '<span style="color: green">Wybierz kraj</span>';				}							break;	  }	  return;}


