function TAjax(ns) {

	var handler=ns;
	
	this.postingForm=postingForm;
	this.parseParams=parseParams;
	this.request=request;
	
	function postingForm(url, modul, process, param, id, dForm) {
		request(url, modul, process, param, id, parseParams(dForm));
		}
		
	function parseParams(dForm) {
		var params=Array();
		for (i=0; i<dForm.length; i++) {
			var dObj=dForm.elements[i];
			if (dObj.type!= undefined ) {
				if (((dObj.type=="checkbox") || (dObj.type=="radio")) && (dObj.checked==true)) params[params.length]=dObj.name+"="+encodeURIComponent(dObj.value);
				else if ((dObj.type=="checkbox") && (dObj.checked==false)) params[params.length]=dObj.name+"=";
				else if ((dObj.type!="checkbox") && (dObj.type!="radio")) params[params.length]=dObj.name+"="+encodeURIComponent(dObj.value);
				}
			}
		return params.join("&");
		}
	
	function request(url, modul, process, param, id, parameters) {
		//alert(url);
		//alert("url --> "+url+"\nmodul --> "+modul+"\nprocess --> "+process+"\nparam --> "+param+"\nid --> "+"\nparameters --> "+parameters);
        var httpObj;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
			httpObj=new XMLHttpRequest();
			if (httpObj.overrideMimeType) {
				httpObj.overrideMimeType("text/html");
				}
			}
		else if (window.ActiveXObject) { // IE
			try { httpObj=new ActiveXObject("Msxml2.XMLHTTP"); }
			catch (e) {
				try { httpObj=new ActiveXObject("Microsoft.XMLHTTP"); } 
				catch (e) {}
				}
			}
		if (!httpObj) {
			alert("TAjax :: Cannot create XMLHTTP instance!");
			return false;
			}
		//httpObj.onreadystatechange=httpObj.onload=httpObj.onerror=httpObj.onabort=function() { onResponse(httpObj); }; 
		httpObj.onreadystatechange=function() { onResponse(httpObj); };
		httpObj.open("POST", url, true);
		httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpObj.setRequestHeader("Content-length", parameters.length);
		httpObj.setRequestHeader("Connection", "close");
		if (modul>"") httpObj.setRequestHeader("AJAX_MODUL", modul);
		if (process>"") httpObj.setRequestHeader("AJAX_PROCESS", process);
		if (param>"") httpObj.setRequestHeader("AJAX_PARAM", param);
		if (id>"") httpObj.setRequestHeader("AJAX_VALUE", id);
		httpObj.send(parameters);
		}
	
	function onResponse(httpObj) {
		if (httpObj.readyState==4) {
			if (httpObj.status==200) {
				var alertStr=httpObj.getResponseHeader("AJAX_ALERT");
				var target=httpObj.getResponseHeader("AJAX_TARGET");
				var method=httpObj.getResponseHeader("AJAX_METHOD");
				// ----
				if (alertStr==".") alertPopup(httpObj.responseText); else if (alertStr>"") alertPopup(alertStr);
				if (target>"") { 
					obj=document.getElementById(target); 
					obj.innerHTML=httpObj.responseText; 
					}
				if (method==".") eval(httpObj.responseText); else if (method>"") eval(method);
				}
			else {
				// alert("TAjax :: HTTP response error: #"+httpObj.status/*+"\n"+httpObj.statusText*/);
				}
			}
		}

	}
