function submitenter(e, who) {
	var keycode;
	if(window.event) {
		keycode = window.event.keyCode;
	} else if(e) {
		keycode = e.which;
	} else {
		return true;
	}
	if (keycode == 13) {
		if(who == "login") {
			login();
		} else if(who == "chat") {
			send_message();
		}
		return false;
	}
	else {
   		return true;
	}
}

function show_login() {
	document.getElementById('login_field').innerHTML = "Username: <input onKeyPress='return submitenter(event)' id='login_username' value='' type='text' size='10' style='font-size:10px;' /> &nbsp;Password: <input id='login_password' value='' type='password' onKeyPress='return submitenter(event, \"login\")' size='10' style='font-size:10px;' /> &nbsp;Remember Me? <input id='login_remember' type='checkbox' onKeyPress='return submitenter(event, \"login\")' /> &nbsp;<input onclick='login()' type='button' style='font-size:10px;' value='Sign In' />&nbsp;&nbsp;&nbsp;<a href='loginhelp'>Help</a>";
}

function login() {
	var username = document.getElementById('login_username').value;
	var password = document.getElementById('login_password').value;
	var remember = document.getElementById('login_remember').checked;
	document.getElementById('login_field').innerHTML = "<img src='images/small_loader.gif' alt='loading...' />";
	if(!remember) {
		remember = "";
	} else {
		remember = "&remember=1";
	}
	var str = "username="+username+"&password="+password+remember;
	connect("login", str, "login", true);
}

function logout() {
	document.getElementById('login_field').innerHTML = "<img src='images/small_loader.gif' alt='loading...' />";
	connect("logout", "", "logout", true);
}

var ajax = false;
function connect(url, str, called, xml_out) {
	ajax = false;
	if(window.XMLHttpRequest) {
		ajax = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {}
		}
	}
	if (!ajax) {
		alert('Cannot create XMLHTTP instance!');
		return false;
	}
	ajax.onreadystatechange = function() {
		if(ajax.readyState == 4) {
			if(ajax.status == 200) {
				var result;
				if(xml_out) {
					result = ajax.responseXML;
				} else {
					result = ajax.responseText;
				}
				if(called == "login") {
					act_login(result, true);
				} else if(called == "logout") {
					act_logout(result, true);
				} else if(called == "chat_list") {
					act_chat_list(result, true);
				} else if(called == "comment_preview" || called == "comment_final") {
					act_comment(result, called, true);
				} else {
					act(result, called, true);
				}
			} else {
				if(called == "login") {
					act_login("", false);
				} else if(called == "logout") {
					act_logout("", false);
				} else if(called == "chat_list") {
					act_chat_list("", false);
				} else if(called == "comment_preview" || called == "comment_final") {
					act_comment(result, called, false);
				} else {
					act("", called, false);
				}
			}
		}
	}
	ajax.open("POST", url, true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", str.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(str);
}

function act_login(xmldoc, success) {
	if(success) {
		var foo = xmldoc.getElementsByTagName("code")[0].childNodes[0].nodeValue;
		if(foo == 0) {
			document.getElementById('login_field').innerHTML = "Success!";
			location.reload();
		} else {
			document.getElementById('login_field').innerHTML = "<span class='error_msg'>Invalid username and/or password!</span>&nbsp;&nbsp;&nbsp;<a href='javascript:show_login()'>Try Again</a>&nbsp;&nbsp;&nbsp;<a href='loginhelp'>Help</a>";
		}
	} else {
		document.getElementById('login_field').innerHTML = "<span class='error_msg'>Failed to Connect!</span>&nbsp;&nbsp;&nbsp;<a href='javascript:show_login()'>Try Again</a>";
	}
}

function act_logout(xmldoc, success) {
	if(success) {
		document.getElementById('login_field').innerHTML = "Success!";
		location.reload();
	} else {
		document.getElementById('login_field').innerHTML = "<span class='error_msg'>Failed to Connect!</span>&nbsp;&nbsp;&nbsp;<a href='javascript:logout()'>Try Again</a>";
	}
}

function show_menu() {
	document.getElementById('login_image').src = "images/main2-4b.png";
	document.getElementById('menu').style.display = "block";
}

function hide_menu() {
	document.getElementById('login_image').src = "images/main2-4a.png";
	document.getElementById('menu').style.display = "none";
}

function trim_val(foo) {
	var zoo = trim(foo.value);
	foo.value = zoo;
	return zoo;
}

function trim(str) {
	return str.replace(/^\s*|\s*$/g, '');
}

function gebi(foo) {
	return document.getElementById(foo);
}

function enable_chat() {
	gebi('chat_users').innerHTML = "Connecting...";
	gebi('monitor_off').style.display = "none";
	gebi('monitor_on').style.display = "block";
	connect("chatsback.php", "action=list&enable=true", "chat_list", true);
}

function get_chat_list() {
	connect("chatsback.php", "action=list", "chat_list", true);
}

function act_chat_list(xmldoc, success) {
	if(success) {
		var foo = xmldoc.getElementsByTagName("code")[0].childNodes[0].nodeValue;
		if(foo == 0) {
			var i = 0;
			var use = "";
			var users = "";
			while(foo = xmldoc.getElementsByTagName("chatter")[i]) {
				if(i > 0) {
					users += ", ";
				}
				use = foo.getElementsByTagName("username")[0].firstChild.nodeValue;
				users += "<a href='profile?"+use+"' class='member"+foo.getElementsByTagName("member")[0].firstChild.nodeValue+"'>"+use+"</a>";
				i++;
			}
			gebi('chat_users').innerHTML = users;
		} else {
			gebi('chat_users').innerHTML = "There was an error!";
		}
	} else {
		gebi('chat_users').innerHTML = "Could not connect!";
	}
	setTimeout("get_chat_list()", 5000);
}