function makeAjax() {
	http_request = false;

	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml; charset=UTF-8');
		}
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) return false;
		else return http_request;
}

function onSubmitAjax(url, elementId) {
	parameters = new Object();
	queryString = "";
	form = document.getElementById('SPXForm');
	with (form) {
		for (var nr = 0; nr < elements.length; nr++) {
			var e = elements[nr];
			if (e.disabled)
				continue;
			switch (e.type) {
				case "text":
				case "password":
				case "hidden":
				case "textarea":
					addParameter(parameters, e.name, e.value);
					break;
				case "select-one":
					if (e.selectedIndex >= 0)
						addParameter(parameters, e.name, e.options[e.selectedIndex].value);
					break;
				case "select-multiple":
					for (var nr2 = 0; nr2 < e.options.length; nr2++)
						if (e.options[nr2].selected)
							addParameter(parameters, e.name, e.options[nr2].value);
					break;
				case "checkbox":
				case "radio":
					if (e.checked)
						addParameter(parameters, e.name, e.value);
					break;
			}
		}
	}

	addParameter(parameters, "noHeaders", "true");

            for (var a in parameters) {
                if (queryString.length > 0)
                    queryString += "&";
                if (typeof parameters[a] != "object")
                    queryString += encodeURIComponent(a) + "=" + encodeURIComponent(parameters[a]); else {
                    for (var i = 0; i < parameters[a].length; i++)
                        queryString += encodeURIComponent(a) + "=" + encodeURIComponent(parameters[a][i]) + "&";
                    queryString = queryString.slice(0, -1);
                }
            }

	http_request = makeAjax();
	http_request.onreadystatechange = function() { actionAjax(http_request, elementId); };
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

	http_request.send(queryString);
}

function addParameter(parameters, name, value) {
	if (typeof parameters[name] == "undefined")
		parameters[name] = value; else
	if (typeof parameters[name] != "object")
		parameters[name] = [ parameters[name], value ]; else
	parameters[name][parameters[name].length] = value;
}

function makeAjaxUrl(url, elementId) {
	http_request = makeAjax();

	http_request.onreadystatechange = function() { actionAjax(http_request, elementId); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

function actionAjax(http_request, elementId) {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById(elementId).innerHTML = http_request.responseText;
		}
	}

}