var aRequest = false;
var aChangeFuncCode = false;

function aRequestReset() {
	try {
		aRequest = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			aRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				aRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				aRequest = false;
			}
		}
	}
}

function aRequestGet(aUrl, aChangeFunc) {
	aRequest.open("GET", aUrl, true);
	aChangeFuncCode = aChangeFunc;
	aRequest.onreadystatechange = aRequestChange;
	aRequest.send(null);
}

function aRequestPost(aUrl, aChangeFunc, aNames, aValues) {
	var postList = "";
	var count = 0;

	aRequest.open("POST", aUrl, true);
	aRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
	aChangeFuncCode = aChangeFunc;
	aRequest.onreadystatechange = aRequestChange;
	
	for(count = 0; count < aNames.length; count++) {
		if(postList != "") { postList += "&"; }
		postList += aNames[count] + "=" + URLEncode(aValues[count]);
	}
	aRequest.send(postList);
}

function aRequestAbort() {
	try {
		aRequest.abort();
	} catch (abortFailed) {
	}
	aRequestReset();
}

function aRequestChange() {
	var result = true;
	try {
		if (aRequest.readyState != 4) {
			result = false;
		} else {
			if (aRequest.status != 200) {
				result = false;
			}
		}
	} catch (changeFailed) {
		result = false;
	}
	if(result) {
		aChangeFuncCode(true,aRequest.responseText);
	} else {
		aChangeFuncCode(false);
	}

}

aRequestReset();

