function setContentViaUrl(targetUrl, elementId) {
  var aFn = new AJAXFunctionCall(targetUrl, elementId);
  aFn.doPost();
}


function submitForm(formname, targeturl, callback) {
	var totalUrl = targeturl + getParameterString(formname);
	var ai = new AJAXInteraction(totalUrl, callback);
	ai.doPost();
}

function doAjaxCall(targeturl, callback) {
	var ai = new AJAXInteraction(targeturl, callback);
	ai.doPost();
}

function setContent(elementId, content) {
	document.getElementById(elementId).innerHTML = content;
}

function submitOnEnter(e, method) {
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e) {
		keycode = e.which;
	}
	else {
		return true;
	}

	if (keycode == 13) {
		method();
		return false;
	} else {
		return true;
	}
}


function getParameterString(formname) {
	if (formname != null) {
		var form = document.getElementById(formname);
		var totalString = '?';
		for ( var i = 0; i < form.elements.length; i++) {
			var element = form.elements[i];
			if (element.name.length > 0) {
				if (element.type != "radio" || element.checked) {
					var substring = element.name + '='
							+ encodeURIComponent(element.value);
					if (totalString.length > 1) {
						totalString += '&';
					}
					totalString += substring;
				}
			}
		}
		return totalString;
	} else {
		return "";
	}
}

function AJAXInteraction(url, callback) {

	var req = init();
	req.onreadystatechange = processRequest;

	function init() {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	function processRequest() {
		if (req.readyState == 4) {
			if (req.status == 200) {
				if (callback) {
					callback(req.responseText);
				}
			}
		}
	}

	this.doGet = function() {
		req.open("GET", url, true);
		req.send(null);
	}

	this.doPost = function(body) {
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
		req.send(body);
	}
}

function AJAXFunctionCall(url, elementId) {

	var req = init();
	req.onreadystatechange = processRequest;

	function init() {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	function processRequest() {
		if (req.readyState == 4) {
			if (req.status == 200) {
                                setContent(elementId, req.responseText);
			}
		}
	}

	this.doGet = function() {
		req.open("GET", url, true);
		req.send(null);
	}

	this.doPost = function(body) {
		req.open("POST", url, true);
		req.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
		req.send(body);
	}
}


