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;
				XMLHttpRequestObject = null;
				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);
	}
}

function getXMLHttpRequestObject(){
	var wersjeMSXML = 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 wersjeMSXML){
			try{
				return new ActiveXObject(wersjeMSXML[indeks]);
			}
			catch(e){
			}
		}
		return null;
	}
}
