

function AHAHrequest(url, target, callMessage, errorMessage, method, parameters) {
	var req = null;
	if (!callMessage)
		callMessage = '';
	if (!errorMessage)
		errorMessage = '';
	if (!parameters)
		parameters = '';
	if (!method)
		method = 'GET';
	else
		method = method.toUpperCase();
	if ((method=='GET') && (parameters!=''))
		url = url + '?' + parameters
	if (callMessage != '') {
		var ele = getObject(target);
		var nn = ele.nodeName;
		if (nn.toUpperCase() == "TEXTAREA" || nn.toUpperCase() == "INPUT") {
			ele.value = callMessage;
		}
		else {
			ele.innerHTML = callMessage;
		}
	}
	try {
		req = new XMLHttpRequest(); /* e.g. Firefox */
	} catch(e) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
			} catch (e) {
				req = false;
			}
		}
	}
	req.onreadystatechange = function() {AHAHresponse(req, target, errorMessage);};
	req.open(method,url,true);
	if (method=='GET') {
		req.send(null);
	}
	else {
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.send(parameters);
	}
}
function AHAHresponse(req, target, errorMessage, scroll) {
	if(req) {
		if (!errorMessage)
			errorMessage = '';
		if (!scroll)
			scroll = 0;
		if(req.readyState == 4) {
			var ele = getObject(target);
			var nn = ele.nodeName;
			if(req.status == 200) {
				if (nn.toUpperCase() == "TEXTAREA" || nn.toUpperCase() == "INPUT") {
					ele.value = req.responseText;
				} else {
					ele.innerHTML = req.responseText;
					ele.scrollTop = scroll;
				}
			}
			else {
				if (nn.toUpperCase() == "TEXTAREA" || nn.toUpperCase() == "INPUT") {
					ele.value = errorMessage+req.responseText;
				} else {
					ele.innerHTML = errorMessage+req.responseText;
				}
			}
		}
	}
}