if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {

	XMLHttpRequest = function () {

		var aSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP"];

		for (var i=0; i < aSignatures.length; i++) {
			try {

				var oRequest = new ActiveXObject(aSignatures[i]);

				return oRequest;

			} catch (oError) {
				// zignorowanie b��du
			}
		}

		throw new Error("Biblioteka MSXML nie jest zainstalowana w systemie.");
	}
}

if(navigator.userAgent.indexOf("MSIE") > -1){
	bIsIE = true;
}else{
	bIsIE = false;
}

function HttpRequest() {
	TempObject = new Object;
	TempObject = {

		sURL : '',
		aParams : new Array(),
		bXmlHttpSupport : typeof XMLHttpRequest == "object" || window.ActiveXObject,

		addParam : function (sParamName, sParamValue) {
			this.aParams.push(new Array(encodeURIComponent(sParamName), encodeURIComponent(sParamValue)));
		},

		getURL : function () {
			sURL = this.sURL;
			sURL += (sURL.indexOf("?") == -1 ? "?" : "&");
			sURL += this.sParamsData();
			return sURL;
		},

		sParamsData : function () {
			if(this.aParams.length ==  0) return '';
			var sData = this.aParams[0][0] + '=' + this.aParams[0][1];
			for(i=1; i < this.aParams.length; i++){
				sData += '&' + this.aParams[i][0] + '=' + this.aParams[i][1];
			}
			return sData;
		},

		setURL : function (sURL) {
			this.sURL = sURL;
		},

		httpPost : function () {

			var oURL = new java.net.URL(this.sURL);
			var oConnection = oURL.openConnection();

			oConnection.setDoInput(true);
			oConnection.setDoOutput(true);
			oConnection.setUseCaches(false);
			oConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

			var oOutput = new java.io.DataOutputStream(oConnection.getOutputStream());
			oOutput.writeBytes(this.SParamsData());
			oOutput.flush();
			oOutput.close();

			var sLine = "", sResponseText = "";

			var oInput = new java.io.DataInputStream(oConnection.getInputStream());
			sLine = oInput.readLine();

			while (sLine != null){
				sResponseText += sLine + "\n";
				sLine = oInput.readLine();
			}

			oInput.close();

			return sResponseText;
		},


		httpGet : function () {
			var sResponseText = "";
			var oURL = new java.net.URL(this.getURL());
			var oStream = oURL.openStream();
			var oReader = new java.io.BufferedReader(new java.io.InputStreamReader(oStream));

			var sLine = oReader.readLine();
			while (sLine != null) {
				sResponseText += sLine + "\n";
				sLine = oReader.readLine();
			}

			oReader.close();
			return sResponseText;
		},


		get : function (onRespons) {

			if ( typeof XMLHttpRequest == "function" || window.ActiveXObject) {

				var oRequest = new XMLHttpRequest();
				oRequest.open("get", this.getURL(), true);
				oRequest.onreadystatechange = function () {
					if (oRequest.readyState == 4) {
						rText = oRequest.responseText
						onRespons(rText);
					}
				}
				oRequest.send(null);

			} else if (navigator.javaEnabled() && typeof java != "undefined" && typeof java.net != "undefined") {

				setTimeout(function () {
					rText = this.httpGet()
					onRespons(rText);
				}, 10);
			} else {
				alert("Przeglądarka nie obsługuje żądań HTTP.");
			}
		},

		post : function (onRespons) {

			if ( typeof XMLHttpRequest == "function" || window.ActiveXObject) {

				var oRequest = new XMLHttpRequest();
				oRequest.open("post", this.sURL, true);
				oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				oRequest.onreadystatechange = function () {
					if (oRequest.readyState == 4) {
						rText = oRequest.responseText
						onRespons(rText);
					}
				}
				oRequest.send(this.sParamsData());

			} else if (navigator.javaEnabled() && typeof java != "undefined"
			&& typeof java.net != "undefined") {

				setTimeout(function () {
					rText = this.httpPost();
					onRespons(rText);
				}, 10);
			} else {
				alert(typeof XMLHttpRequest);
				alert(window.ActiveXObject);
				alert("Przeglądarka nie obsługuje żądań HTTP.");
			}
		}
	}
	return TempObject;
}

function stripXML(t, tag){
	startTag = "<" + tag +">";
	stopTag = "</" + tag + ">";
	startIndex = t.indexOf(startTag) + startTag.length;
	stopIndex = t.indexOf(stopTag);
	return t.substring(startIndex, stopIndex);
}
