function ajaxFunction() {
	var ajax;
	try {
		ajax = new XMLHttpRequest();
	} catch (e) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return ajax;
}

function postComment(start) {
	ajax = ajaxFunction();
	var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
	ajax.onreadystatechange = function () { postComment_stateChanged(start); };
	var url = base_url+ "includes/ajax-comments.php";
	var comment = start.comment.value;
	var name = start.nickname.value;
	var id = start.id.value;
	if (start.verifycode) {
		var verifyverifycode = start.verifycode.value;
	} else {
		var verifyverifycode = 0;
	}
	
	// Bad words
	var badWords = "fucking,fuking,fucing,fuckin,fucken,fukin,fucin,fuken,fucen,fuck,fukkin,fukken,fukking,fukker,fuk,shit,bitch,biotch,beotch,fucker,fuker,fucer,ass,asshole,ass hole,asswhole,ass whole,penis,pussy,vagina,cum,sex,nigger,nigga,cunt,dike,fag,faggot,faggoty,cock,dyke,retard,retarded,douche,bollox,basterd,bastard,wanka,wank,whore,hore";
	var badWords2 = badWords.split(",");
	
	// Remove bad words
	for (i=0;i<badWords2.length;i++) {
		var badWordRegEx = new RegExp(badWords2[i], "gi");
		name = name.replace(badWordRegEx,"");
	}
	name = name.replace(/\s+/g," ");
	
	if (name == "" || name == " ") {
		alert("Your name is empty after taking out all the bad words.");
		return;
	}
	
	// Disable HTML
	name = name.replace(/&/g,'&amp;');
	name = name.replace(/>/g,'&gt;');
	name = name.replace(/</g,'&lt;');
	name = name.replace(/"/g,'&quot;');
	
	// Remove bad words
	for (i=0;i<badWords2.length;i++) {
		var badWordRegEx = new RegExp(badWords2[i], "gi");
		comment = comment.replace(badWordRegEx,"");
	}
	comment = comment.replace(/\s+/g," ");
	
	if (comment == "" || comment == " ") {
		alert("Your comment is empty after taking out all the bad words.");
		return;
	}
	
	// Disable HTML
	comment = comment.replace(/&/g,'&amp;');
	comment = comment.replace(/>/g,'&gt;');
	comment = comment.replace(/</g,'&lt;');
	comment = comment.replace(/"/g,'&quot;');
	
	// Check for words longer than 26 characters
	var words = comment.split(" ");
	for (i=0;i<words.length;i++) {
		if (words[i].length > 25) {
			alert("One or more words in your comment exceed 26 characters. Please edit\n\n" +words[i]+ "\n\nso that it has no more than 26 characters. This includes symbols such as .!?, etc.");
			return;
		}
	}
	
	var query = "comment=" + escape(encodeURI(comment));
	query = query+ "&nickname=" + escape(encodeURI(name));
	query = query+ "&id=" + escape(id);
	query = query+ "&verifycode=" + escape(encodeURI(verifyverifycode));
	ajax.open("POST", url, true);
	ajax.setRequestHeader("Content-Type", contentType);
	ajax.send(query);
}
/*
function postComment_stateChanged(start) { 
	var allCommentsBox = document.getElementById('allCommentsBox');
	if (ajax.readyState == 4) {
		if (ajax.responseText != 0) {
			allCommentsBox.innerHTML = ajax.responseText;
			start.nickname.value = "";
			start.comment.value = "";
			start.verifycode.value = "";
			alert("Thanks. Your comment has been added below.");
		} else {
			alert("Security code was incorrect.");
		}
	}
	
}
*/
function postComment_stateChanged(start) { 
	var tag = document.getElementById('allCommentsBox');
	if (ajax.readyState == 4) {
		if (ajax.responseText == 0) {
			alert("An unknown error occurred while trying to submit your comment.");
		} else if (ajax.responseText == "ERROR:1") {
			alert("You must be logged in to comment.");
		} else if (ajax.responseText == "ERROR:2") {
			//alert("You have already posted that comment on this game.");
		} else if (ajax.responseText == "ERROR:2") {
			alert("Security code was incorrect.");
		} else {
			tag.innerHTML = ajax.responseText;
			start.nickname.value = "";
			start.comment.value = "";
			start.verifycode.value = "";
			alert("Thanks. Your comment has been added below.");
		}
	}
}

function validateComment(start) {
	var name = start.nickname.value;
	var comment = start.comment.value;
	var verifycode = start.verifycode.value;
	if (name == "") {
		alert("Please enter a nick name.");
		return false;
	} else if (comment == "") {
		alert("Please enter your comment.");
		return false;
	} else if (verifycode == "") {
		alert("Please enter the security code.");
		return false;
	} else if (comment.match("<a") != null || comment.match("< a") != null || comment.match(/\[url/) != null || comment.match(/\[ url/) != null || comment.match("<A") != null || comment.match("< A") != null || comment.match(/\[URL/) != null || comment.match(/\[ URL/) != null) {
		alert("Link code was found in your comment. Please remove it.");
		return false;
	}
	
	return true;
}

function commentPages(gameid,page) {
	ajax = ajaxFunction();
	ajax.onreadystatechange = function () { commentPages_stateChanged(); };
	var url = base_url+ "includes/comment-pages.php";
	url = url+ "?g=" +gameid;
	url = url+ "&p=" +page;
	ajax.open("GET",url,true);
	ajax.send(null);
}
/*
function commentPages_stateChanged() { 
	var allCommentsBox = document.getElementById('allCommentsBox');
	if (ajax.readyState == 4) {allCommentsBox.innerHTML = ajax.responseText;}
}
*/
function commentPages_stateChanged() { 
	var allCommentsBox = document.getElementById('allCommentsBox');
	if (ajax.readyState == 4) {
		allCommentsBox.innerHTML = ajax.responseText;}
}

function ajaxContact(start) {
	ajax = ajaxFunction();
	var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
	ajax.onreadystatechange = function () { ajaxContact_stateChanged(); };
	var url = base_url+ "includes/contact.php";
	var query = "name=" +escape(encodeURI(start.name.value));
	query = query+ "&email=" +escape(encodeURI(start.email.value));
	query = query+ "&subject=" +escape(encodeURI(start.subject.value));
	query = query+ "&message=" +escape(encodeURI(start.message.value));
	query = query+ "&verifycode=" +escape(encodeURI(start.verifycode.value));
	ajax.open("POST",url,true);
	ajax.setRequestHeader("Content-Type", contentType);
	ajax.send(query);
}

function ajaxContact_stateChanged() { 
	if (ajax.readyState == 4) {
		if (ajax.responseText == '1') {
			alert("Your message has been sent.");
		} else {
			alert("Security code was entered wrong. Please try again.");
		}
	}
}

function validateContact(start) {
	if (start.name.value == "") {
		alert("Please enter your name.");
		return false;
	}
	if (start.email.value == "") {
		alert("Please enter your email address.");
		return false;
	}
	if (start.message.value == "") {
		alert("Please enter your message.");
		return false;
	}
	if (start.verifycode.value == "") {
		alert("Please enter the security code.");
		return false;
	}
	
	return true;
}