//Biblioteka funkcji obs³uguj¹cych AJAX do ksi¹¿ki
//"AJAX. 101 praktycznyc skryptów"
//autor Marcin Lis, Wydawnictwo Helion, Gliwice 2008
// tworzy obiekt XMLHttpRequest
function getXMLHttpRequestObject() 
{
  // 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();
	xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=utf-8');
  }
  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³ad podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}
//------------------------------
function startGETRequest(url, onComplete, onEnd)
{
  var XMLHttpRequestObject = getXMLHttpRequestObject();

  if(XMLHttpRequestObject){
	  XMLHttpRequestObject.open("GET", url);
		XMLHttpRequestObject.onreadystatechange = function()
	    {
		  if (XMLHttpRequestObject.readyState == 4){
					//document.getElementById('pulpit').innerHTML= "Proszê czekaæ....";
					if(XMLHttpRequestObject.status == 200){
					  var responseXML = XMLHttpRequestObject.responseXML;
					  var responseText = XMLHttpRequestObject.responseText;
					  onComplete(responseText, responseXML);
					  }
	    delete XMLHttpRequestObject;
        onEnd();
		  }
    }
    XMLHttpRequestObject.send(null);
  }
}

