

	function system_class()
	{
		this.ver = '1.0';
		
		this.isNN = false;
		this.isIE = false;
		this.isFF = false;
		this.isCH = false;
		this.isSF = false;
		this.isOP = false;
		this.browser = '';
		this.browserVer = '';
		
		this.getBrowserInfo = function()
		{
			var ua = navigator.userAgent;
			var ua_tab = [ 'Netscape', 'Opera', 'Firefox', 'Safari', 'Chrome', 'MSIE' ];
			var pos = -1;
			var ver;
			for (var i = 0;i<ua_tab.length;i++)
			{
				pos = ua.indexOf(ua_tab[i]);
				if (pos>-1)
				{
					this.browser = ua_tab[i];
					this.browserVer = ua.substr(pos + ua_tab[i].length + 1, 3);
				}
			}
			this.isIE = (this.browser == 'MSIE');
			this.isNN = (this.browser == 'Netscape');
			this.isFF = (this.browser == 'Firefox');
			this.isOP = (this.browser == 'Opera');
			this.isCH = (this.browser == 'Chrome');
			this.isSF = (this.browser == 'Safari');
			return this.browser + '/' + this.browserVer;
		}			
	
		this.createRequester = function()
		{
			if(window.XMLHttpRequest) {	requestObject = new XMLHttpRequest(); }	else 
			if(window.ActiveXObject)
			{
				try 
				{	
					requestObject = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e)
				{
					try 
					{
						requestObject = new ActiveXObject("Msxml2.XMLHTTP");
					}
					catch (e)
					{
						alert("Twoja przeglądarka nie obsługuje tej metody");
						return false; 
					}
				}
			}
			else
			{
				return false;
			}
			return requestObject;
		}
		
		this.objToQueryString = function(obj)
		{
			var id;
			var res = '';
			for (id in obj)
				if(typeof(obj[id])!='function')
				{
					if (res!='') res += '&';
					/*if (typeof(obj[id])=='object')
					{ res += id + '=' + this.objToQueryString(obj[id]); } else */
					{ res += id + '=' + encodeURIComponent(obj[id]); }
				}
			return res;
		}
	
		this.send = function(method,url,params,async,obj)
		{
			var oRequest = this.createRequester();			
			
			if (params==undefined) params = null;
			
			if (typeof(params)=='object') params = this.objToQueryString(params);
			
			alert('params: ' + params + "\nasync: " + async);
			
			if ( (method=='GET') && (params!=null) && (params!=undefined) )
			{
				if (url.indexOf('?')!=-1) { url += '&' + params; } else { url += '?' + params; }
				params = null;
			}
			
			oRequest.open(method, url, async);			
			
			if (method=='POST')
			{
				oRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				//oRequest.setRequestHeader("Content-length", params.length);
				oRequest.setRequestHeader("Connection", "close");
			}
			
			if ( (obj!=undefined) && (obj!=null) )
			{
				//alert('metody');
				oRequest.onreadystatechange = function (aEvt) 
				{
					switch(oRequest.readyState)
					{
						case 1: 
						case 2: if (obj["onLoading"]!=undefined) obj.onLoadning(oRequest); break;
						case 4:	switch(oRequest.status)
								{
									case 200: if (obj["onSuccess"]!=undefined) obj.onSuccess(oRequest); alert(oRequest.responseText); break;
									default: if (obj["onError"]!=undefined) obj.onError(oRequest);
								}
								break;
					}
				};
			}
			//params = 'test=test';
			//alert(params);
			oRequest.send(params);
			alert('send: ' + url);
			if (async) return 0;
			
			//return oRequest.responseText;
			
			if (!async) 
			{
				/*alert(oRequest.status);
				if (oRequest.status==200)
				{ return oRequest.responseText; } else
				{ return 'Błąd'; }*/
				//alert(objToString(oRequest));
				//alert(oRequest.responseXml);
				alert(oRequest.responseText);
				return ( oRequest.responseText );
			} else { return 0; }
		}
		
		this.post = function(url,params,async,func)
		{
			alert('post');
			return this.send('POST',url,params,async,func);
		}
		
		this.get = function(url,params,async,func)
		{
			var w = this.send('GET',url,params,async,func); 
			//alert(w);
			return w;
		}
		
		this.getBrowserInfo();
	
		return this;
	}
