var ERR_AJAX_RT=new Array();
ERR_AJAX_RT={
	"bad_form" : "[dForm] parameter is not valid form object"
	};

function TAjax(ns) {

	var handler=ns;

	this.postingForm=postingForm;
	this.request=request;
	
	function postingForm(url, sender, process, param, id, dForm) {
		var parameters="";
		if (true) {
			for (i=0; i<dForm.length; i++) {
				var dObj=dForm.elements[i];
				if (parameters>"") parameters+="&";
				if (((dObj.type=="checkbox") || (dObj.type=="radio")) && (dObj.checked==true))
					parameters+=dObj.name+"="+encodeURIComponent(dObj.value);
				else if ((dObj.type!="checkbox") && (dObj.type!="radio"))
					parameters+=dObj.name+"="+encodeURIComponent(dObj.value);
//				parameters+=dObj.name+"="+dObj.value;
				}
			request(url, sender, process, param, id, parameters);
			}
		else alert(ERR_AJAX_RT["bad_form"]);
		}
	
	function request(url, sender, process, param, id, 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("Cannot create XMLHTTP instance!");
			return false;
			}
		httpObj.onreadystatechange=function() { onResponse(httpObj); };
	//	alert(url);
	//	alert(parameters);
		httpObj.open("POST", url, true);
		httpObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpObj.setRequestHeader("Content-length", parameters.length);
		httpObj.setRequestHeader("Connection", "close");
		httpObj.setRequestHeader("AJAX_SENDER", sender);
		httpObj.setRequestHeader("AJAX_PROCESS", process);
		httpObj.setRequestHeader("AJAX_PARAM", param);
		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(alertStr);
				if (target>"") { 
					obj=document.getElementById(target); 
					obj.innerHTML=httpObj.responseText; 
					}
				if (method>"") eval(method);
				}
			else {
				alert("HTTP response error: #"+httpObj.status+"\n"+httpObj.statusText);
				}
			}
		}

	}