function AJAXCreate() {
	var req = null;
		
	try {
		req = new XMLHttpRequest();
	} catch (e){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				req = null;
			}
		}  
	}

	/*if (req == null)
		alert("AJAX Error: Error creating request object!");*/
	
	return req;
}   

function AJAXRequest(url, handler, errorHandler, postParams) {
	if (!enableAjax)
		return;

	var req;

	req = AJAXCreate();
	if (req == null)
		return;
		
	if (postParams != null)
		req.open("POST", url, true);
	else
		req.open("GET", url, true);
		
	if (postParams != null) {
		//Send the proper header information along with the request
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length", postParams.length);
		req.setRequestHeader("Connection", "close");
	}
	
	req.onreadystatechange = function() { 	
		switch(req.readyState) {
			case 4:
				if(req.status==200)
					handler(req);
				else {
					if (errorHandler != null)
						errorHandler(req);
				}
			break;
		
			default:
				return false;
			break;
		}
	}
	
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(postParams);
}  
