/**** initialise request ****/
var request = null;
try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			request = null;
		}
	}
}

if (request == null) {
	alert("There was an error with the web technology. This may happen because of a temporary error on our website or if you are using a very outdated browser.");
}

/**** TEXT FUNCTIONS ****/

function replaceText(e, text) {
	if (e != null) {
		clearText(e);
		var newNode = document.createTextNode(text);
		e.appendChild(newNode);
	}
}

function appendText(e, text) {
	if (e != null) {
		var newNode = document.createTextNode(text);
		e.appendChild(newNode);
	}
}

function toggleText(e, text1, text2) {
	if (e != null) {
		oldText = getText(e);
		if (oldText == text1) { newText = text2; }
		if (oldText == text2) { newText = text1; }
		clearText(e);
		var newNode = document.createTextNode(newText);
		e.appendChild(newNode);
	}
}

function clearText(e) {
	if (e != null) {
		if (e.childNodes) {
			for (var i = 0; i < e.childNodes.length; i++) {
				var childNode = e.childNodes[i];
				e.removeChild(childNode);
			}
		}
	}
}

function getText(e) {
	var text = "";
	if (e != null) {
		if (e.childNodes) {
			for (var i = 0; i < e.childNodes.length; i++) {
				var childNode = e.childNodes[i];
				if (childNode.nodeValue != null) {
					text = text + childNode.nodeValue;
				}
			}
		}
	}
	return text;
}

/**** EVERY PAGE FUNCTIONS ****/

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function toggle_display(id) {
	if ($(id).style.display == "block") {
		$(id).style.display = "none";
	} else {
		$(id).style.display = "block";
	}
}	

function login() {
	var un = $("login_username").value;
	var pw = $("login_password").value;
	if (un != "" && pw != "") {
		var url = "/include/scripts/login?username=" + un + "&password=" + pw;
		request.open("GET", url, true);
		request.onreadystatechange = loginResponse;
		request.send(null);
	}
}
	
function loginResponse() {
	if (request.readyState == 4) {
		var response = request.responseText;
		if (response == "login") {
			replaceText($("login_error"), "");
			$("login_error").style.display = "none";
			window.location.reload();
		} else {
			var parsedResponse = response.split(":");
			if (parsedResponse[0] == "username") {
				$("login_username").focus();
			} else if (parsedResponse[0] == "password") {
				$("login_password").focus();
				$("login_password").select();
			}
			replaceText($("login_error"), parsedResponse[1]);
			$("login_error").style.display = "block";
		}
	}
}

function logout() {
	var url = "/include/scripts/logout.php";
	request.open("GET", url, true);
	request.onreadystatechange = logoutResponse;
	request.send(null);
}
	
function logoutResponse() {
	if (request.readyState == 4) {
		window.location.reload();
	}
}