function ajaxRequest() {};

ajaxRequest.prototype.initialize = function() {
	var request;
	try {
		// Mozilla / Safari
		request = new XMLHttpRequest();
		return request;
	} catch (e) {
		// IE
		var ieModels = new Array(
			'MSXML2.XMLHTTP.5.0',
			'MSXML2.XMLHTTP.4.0',
			'MSXML2.XMLHTTP.3.0',
			'MSXML2.XMLHTTP',
			'Microsoft.XMLHTTP'
			);
		var success = false;
		// Try to locate latest XMLRequest available
		for (var i = 0; i < ieModels.length && !success; i++) {
			try {
				request = new ActiveXObject(ieModels[i]);
				success = true;
			} catch (e) { }
		}
		if (!success) {
			return false; // nothing worked
		}
		return request;
	}
}

ajaxRequest.prototype.busy = function(request) {
	// Check to see if request is busy
	currentState = request.readyState;
	return (currentState && (currentState < 4));
}

ajaxRequest.prototype.send = function(url,data,func,funcVals) {
	var request = this.initialize();
	if (request && !this.busy(request)) {
		request.onreadystatechange = function() {
			if (request.readyState == 4 && request.status == 200) { // request is done
				var response = "";
				 if (window.ActiveXObject) { // IE
					response = request.responseText;
					if (response != "") { // only create XML document if given one
						var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async = "true";
						xmlDoc.loadXML(response); // get the response XML document
						if(funcVals != null)
							eval(func + '(xmlDoc, ' + funcVals + ')');
						else
							eval(func + '(xmlDoc)');
					}
				} else if (window.XMLHttpRequest) { // Mozilla, Safari...
					var xmlDoc = document.implementation.createDocument("", "", null);
					response = request.responseText;
					if (response != "") {
						var parser = new DOMParser();
						var domParsed = parser.parseFromString(response, "text/xml");
						if(funcVals != null)
							eval(func + '(domParsed, ' + funcVals + ')');
						else
							eval(func + '(domParsed)');
					}
				}
			}
		}
		request.open("POST",url,true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		request.send(data);
	}
}

function getField(field,dom) {
	return dom.getElementsByTagName(field);
}