// xmlhttp connector
function openConnection() {
	var connection=false;
	try {
		connection=new XMLHttpRequest();
	} catch(e) {
		try {
			connection=new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				connection=new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				connection=false;
			}
		}
	}
	return connection;
}
// login cod
function login() {
	var connection=openConnection();
	var login=document.getElementById("login").value;
	var passwd=document.getElementById("passwd").value;
	var gamename=document.getElementById("gamename").value;
	var gid=document.getElementById("gameid").value;
	if(connection) {
		connection.open("GET", "/login.php?l="+login+"&p="+passwd+"&gn="+gamename+"&gid="+gid, true);
		connection.onreadystatechange=function() {
			if(connection.readyState==4) {
				document.getElementById("entercomment").innerHTML=connection.responseText;
			}
		}
		connection.send("");
	} else {
		document.getElementById("entercomment").innerHTML+="(Error: Cannot login)";
	}
}
//logout code
function logout() {
	var connection=openConnection();
	var gid=document.getElementById("gameid").value;
	var gn=document.getElementById("gamename").value;
	if(connection) {
		connection.open("GET", "/logout.php?gid="+gid+"&gn="+gn, true);
		connection.onreadystatechange=function() {
			if(connection.readyState==4) {
				document.getElementById("entercomment").innerHTML=connection.responseText;
			}
		}
		connection.send("");
	} else {
		document.getElementById("entercomment").innerHTML+="(Error: Cannot logout)";
	}
}
//posting code
function post() {
	var connection=openConnection();
	var comment=document.getElementById("comment").value;
	comment=trimString(comment);
	if(comment=="") {
		document.getElementById("entercomment").innerHTML+="(Error: Empty post)";
	} else {
		comment=encodeURIComponent(comment);
		var gid=document.getElementById("gameid").value;
		var svars="c=" + comment + "&gid=" + gid;
		if(connection) {
			connection.open("POST", "/post.php", true);
		        connection.setRequestHeader("Method", "POST post.php HTTP/1.1");
	        	connection.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			connection.onreadystatechange=function() {
				if(connection.readyState==4) {
					document.getElementById("entercomment").innerHTML=connection.responseText;
					getcomments(gid);
				}
			}
			connection.send(svars);
		} else {
			document.getElementById("entercomment").innerHTML+="(Error: Cannot post)";
		}
	}
}
//comment retrieval
function getcomments(gid) {
	var connection=openConnection();
	if(connection) {
		connection.open("GET", "/comments.php?gid=" + gid, true);
		connection.onreadystatechange=function() {
			if(connection.readyState==4) {
				document.getElementById("comments").innerHTML=connection.responseText;
			}
		}
		connection.send("");
	}
}
//registration form
function registerform() {
	var gameid=document.getElementById("gameid").value;
	var gamename=document.getElementById("gamename").value;
	document.getElementById("entercomment").innerHTML="<h2>Register:</h2><div class=\"loginl\">User:</div><div class=\"logini\"><input type=\"text\" id=\"login\" size=\"15\" /></div><div class=\"passl\">Password:</div><div class=\"passi\"><input type=\"password\" id=\"passwd\" size=\"15\" /></div><div class=\"passl\">Verify Password:</div><div class=\"passi\"><input type=\"password\" id=\"passwd2\" size=\"15\" /></div><input type=\"hidden\" id=\"gameid\" value=\"" + gameid + "\" /><input type=\"hidden\" id=\"gamename\" value=\"" + gamename + "\" /><input type=\"submit\" value=\"Register\" onclick=\"register()\"><br/>";
}
//process registration
function register() {
	var connection=openConnection();
	var login=document.getElementById("login").value;
	var passwd=document.getElementById("passwd").value;
	var passwd2=document.getElementById("passwd2").value;
	passwd=trimString(passwd);
	passwd2=trimString(passwd2);
	login=trimString(login);
	if(login=="" || passwd=="" || passwd.length<6) {
		registerform();
		document.getElementById("entercomment").innerHTML+="(Error: Login/Password too short.)";
	} else {
		login=encodeURIComponent(login);
		passwd=encodeURIComponent(passwd);
		passwd2=encodeURIComponent(passwd2);
		var gid=encodeURIComponent(document.getElementById("gameid").value);
		var gn=encodeURIComponent(document.getElementById("gamename").value);
		if(passwd==passwd2) {
			var svars="l=" + login + "&p=" + passwd + "&gid=" + gid + "&gn=" + gn;
			if(connection) {
				connection.open("POST", "/register.php", true);
			        connection.setRequestHeader("Method", "POST post.php HTTP/1.1");
		        	connection.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				connection.onreadystatechange=function() {
					if(connection.readyState==4) {
						document.getElementById("entercomment").innerHTML=connection.responseText;
					}
				}
				connection.send(svars);
			} else {
				document.getElementById("entercomment").innerHTML+="(Error: Cannot register)";
			}
		} else {
			registerform();
			document.getElementById("entercomment").innerHTML+="(Error: Passwords don't match)";
		}
	}
}
//trim function
function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
//show all time high scores
function showTop() {
	document.getElementById("hslistings").style.display="none";
	document.getElementById("hslistingstop").style.display="block";
}
//show todays high scores
function showDay() {
	document.getElementById("hslistings").style.display="block";
	document.getElementById("hslistingstop").style.display="none";
}
