function ajaxRequest(onSuccessFunc, onErrorFunc) {
	var ajaxReqObj   = undefined;
	var activeXModes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
	
	// Retreive object
	if (window.ActiveXObject){
		for (var i=0; i<activeXModes.length; i++){
			try {
				ajaxReqObj = new ActiveXObject(activeXModes[i]);
				break;
			} catch(e) {
			}
  		}
 	} else 
 	if (window.XMLHttpRequest) {
		ajaxReqObj = new XMLHttpRequest();
	}
	
	if (ajaxReqObj == undefined)
		return undefined;
		
	// Initialize request
	ajaxReqObj.onreadystatechange = function() {
		if (ajaxReqObj.readyState == 4) {
			if (ajaxReqObj.status == 200 || window.location.href.indexOf("http") == -1) {
				onSuccessFunc();
			} else {
				onErrorFunc(ajaxReqObj.status);
			}
		}
	}
	

	return ajaxReqObj;
}

function formToQueryString(form) {
	var result = "";
	
	if (form != undefined) {
		for (var i=0; i<form.elements.length; i++) {
			var key = form.elements[i].name;
			var val = escape(form.elements[i].value);
			
			if (result.length > 0)
				result += "&";
				
			result += key + "=" + val;
		}
	}
	
	return result;
}