// $Id: ajax.js,v 1.1 2007/05/31 20:52:01 jyu Exp $
////////////////////////////////////////////////////////////


// Set up params
function getPOSTParams(theForm)
{
	var params = '';
	for (var x = 0; x < theForm.elements.length; x++)
	{
		if (theForm.elements[x].type == 'radio' || theForm.elements[x].type == 'checkbox') {
			if (theForm.elements[x].checked) {
				params += theForm.elements[x].name+'='+encodeURIComponent(theForm.elements[x].value)+'&';
			}
		}
		else {
			params += theForm.elements[x].name+'='+encodeURIComponent(theForm.elements[x].value)+'&';
		}
	}
	params += 'ajax=1';
	return params;
}


////////////////////////////////////////////////////////////
// Core Ajax Functions
////////////////////////////////////////////////////////////

function callAjax(url, params, pageElement, formAction, callMessage, errorMessage) {
	var method = formAction ? formAction : 'GET';
	if (callMessage)
		document.getElementById(pageElement).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() {responseAjax(pageElement, errorMessage);};
	url = method == 'GET' ? url+'?'+params : url;
	req.open(method,url,true);
	if (method == 'POST') {
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length", params.length);
		req.setRequestHeader("Connection", "close");
		req.send(params);
	} else {
		req.send(null);
	}
}

function responseAjax(pageElement, errorMessage) {
	var output = '';
	if(req.readyState == 4) {
		if(req.status == 200) {
			output = req.responseText;
			document.getElementById(pageElement).innerHTML = output;
		} else {
			if (errorMessage)
				document.getElementById(pageElement).innerHTML = errorMessage+"\n"+output;
		}
	}
}

