var req = false;
var okFunction = "", koFunction = "", errFunction = "";
function newXMLHttpRequest() {
	if (window.XMLHttpRequest) { // Create XMLHttpRequest object in non-Microsoft browsers
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // Create XMLHttpRequest via MS ActiveX
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {}
		}
	}
}
function sendRequest(type, action, url, async, okFunc, koFunc, errFunc) {
	okFunction = okFunc, koFunction = koFunc, errFunction = errFunc;
	newXMLHttpRequest();
	if (type == "POST") {
		req.open(type, action, async);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8;");
	} else {
		req.open(type, action+"?"+url, async);
		url = null;
	}

	if (action.indexOf('/moodle/') < 0) {
		req.onreadystatechange = getReadyStateHandler;
		req.send(url);
	} else {	// moodle login
		req.onreadystatechange = getMoodleReadyStateHandler;
		req.send(url);
	}
}
function getReadyStateHandler() {
	if (req.readyState == 4) {
		if (req.status == 200) {
//alert(req.responseText);
			if (req.responseText.indexOf("<result>ok</result>") >= 0) {
				eval(okFunction);
			} else {
				eval(koFunction);
			}
		} else {
			eval(errFunction);
		}
	}
}
function getMoodleReadyStateHandler() {
	if (req.readyState == 4) {
		if (req.status == 200) {
//alert(req.responseText);
			if (req.responseText.indexOf('>No es correcto, por favor int') < 0 &&
				req.responseText.indexOf('>Invalid login, please try again<') < 0) {
				eval(okFunction);
			} else {
				eval(koFunction);
			}
		} else {
			eval(errFunction);
		}
	}
}
