function getXMLHttpRequestObject()
{
  try{
    return new XMLHttpRequest();
  }
  catch(e){
    try{
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e){
      return false;
    }
  }
}
/*
function getXMLHttpRequestObject()
{

       var xmlHttpB;
       try
        {
          xmlHttpB = new XMLHttpRequest();
        }
       catch (e)
        {
          var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                          "MSXML2.XMLHTTP.5.0",
                                          "MSXML2.XMLHTTP.4.0",
                                          "MSXML2.XMLHTTP.3.0",
                                          "MSXML2.XMLHTTP",
                                          "Microsoft.XMLHTTP");
          for (var i=0;i<XmlHttpVersions.length && !xmlHttpB; i++)
           {
            try
            {
              xmlHttpB = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch (e)
            {

            }
           }

         }

   if (!xmlHttpB)
   alert('Przegladarka nie obsluguje AJAXA');
  else
    return xmlHttpB;
}
*/


function startGETRequest(url, onComplete, onEnd)
{
  var XMLHttpRequestObject = getXMLHttpRequestObject();
  if(XMLHttpRequestObject){
    XMLHttpRequestObject.open("GET", url);
    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4){
        if(XMLHttpRequestObject.status == 200){
          var responseXML = XMLHttpRequestObject.responseXML;
          var responseText = XMLHttpRequestObject.responseText;
          onComplete(responseText, responseXML);
        }
        delete XMLHttpRequestObject;
        onEnd();
      }
    }
    XMLHttpRequestObject.send(null);
  }
}

function startPOSTRequest(url, params, onComplete, onEnd)
{
  var XMLHttpRequestObject = getXMLHttpRequestObject();
  if(XMLHttpRequestObject){
    XMLHttpRequestObject.open("POST", url);
    XMLHttpRequestObject.setRequestHeader(
      'Content-Type', 'application/x-www-form-urlencoded');
    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4){
        if(XMLHttpRequestObject.status == 200){
          var responseXML = XMLHttpRequestObject.responseXML;
          var responseText = XMLHttpRequestObject.responseText;
          onComplete(responseText, responseXML);
        }
        delete XMLHttpRequestObject;
        onEnd();
      }
    }
    XMLHttpRequestObject.send(params);
  }
}
