function getXMLHttpRequestOject (){
  var vMSXML = new Array ("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
  try{
    return new XMLHttpRequest();
  }
  catch (e){
    for (var indeks in vMSXML){
      try{
	return new ActiveXObject (vMSXML[indeks]);
      }
      catch (e){
      }
    }
    return null;
  }
}

function startGetRequest (url, onComplete, onEnd, par1, par2) {
  var XMLHttpRequestObject = getXMLHttpRequestOject ();
  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, par1 );
	}
	delete XMLHttpRequestObject;
	XMLHttpRequestObject = null;
	onEnd (par2);
      }
    }
    XMLHttpRequestObject.send (null);
  }
}

function startPostRequest (url, params, onComplete, onEnd, par1, par2) {
  var XMLHttpRequestObject = getXMLHttpRequestOject ();
  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open ("POST",url,true);
    XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
    XMLHttpRequestObject.setRequestHeader("Connection", "close");
    XMLHttpRequestObject.onreadystatechange = function () {
      if (XMLHttpRequestObject.readyState == 4) {
	if (XMLHttpRequestObject.status == 200) {
	  var responseXML = XMLHttpRequestObject.responseXML;
	  var responseText = XMLHttpRequestObject.responseText;
	  onComplete (responseText, responseXML, par1);
	}
	delete XMLHttpRequestObject;
	XMLHttpRequestObject = null;
	onEnd (par2);
      }
    }
    XMLHttpRequestObject.send (params);
  }
}

function sleep(ms)
{
	var dt = new Date();
	dt.setTime(dt.getTime() + ms);
	while (new Date().getTime() < dt.getTime());
}
