// AJAX getXMLHTTP
function getXMLHTTP()
{
	if (window.XMLHttpRequest)
		xmlhttp = new XMLHttpRequest(); 
	else if (window.ActiveXObject)
		xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
	
	return xmlhttp;
}

// LIVE CHAT FUNCTIONS
function live_chat_refresh(timestamp)
{
	var req = getXMLHTTP();
	
	req.onreadystatechange = function()
	{
		if (req.readyState == 4 && req.status == 200 && req.responseText != "") {
			var chat = document.getElementById('chat');
			var old = chat.innerHTML;
			
			chat.innerHTML = '';
			
			var ret = eval('(' + req.responseText + ')');
			
			var total =  ret.length;
			var count = 1;
			
			for (i = 0; i < ret.length; i++) {
				chat.innerHTML += "<div class='messageBox'>" + 
								  "<div class='name'><a href=\"/" + ret[i]['id'] + "/" + ret[i]['safe_name'] + "/\" title='Profile of " + ret[i]['name'] + "'>" + ret[i]['name'] + "</a></div>" +
								  "<div class='time'>(" + ret[i]['time'] + (ret[i]['before'] != '' ? ' - ' + ret[i]['before'] : '') + "):</div>" +
								  "<div class='message'>" + ret[i]['message'] + "</div>" +
								  "</div>";
				if (count == total) {
					break;
				}
				count = count + 1;
			}
			
			// puts the scroll bar to the bottom if there is a new message
			if (old != chat.innerHTML) {
				chat.scrollTop = chat.scrollHeight;
			}
		}
	}
	req.open("GET", '/ajax-update-live-chat/' + timestamp, true);
	//req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // for post
	req.send(null);
}
function accept_friend(friendId)
{
	if (friendId != '') {
		var req = getXMLHTTP();
		
		var postdata = 'friendId=' + escape(encodeURI(friendId));
		
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200) {
				var member = document.getElementById('member' + friendId);
				
				var ret = req.responseText;
				
				member.innerHTML = ret;
			}
		}
		req.open("POST", '/ajax-friend-accept/', true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // for post
		req.send(postdata);
	}
}

// ADD REGIMENT FUNCTION
function add_regiment(step)
{
	if (step == 1) {
		// create popup box
		var popup = document.createElement("div");
		popup.id = "add_reg";
		popup.innerHTML = '<div id="errorbox"></div>' +
						  '<label for="reg_to_add">Add A Regiment:</label><br />' +
						  '<input type="text" id="reg_to_add" />' +
						  '<input type="button" class="submit confirm" value="Confirm" onclick="add_regiment(2)" />' +
						  '<p>Once you click confirm a moderator will have to confirm the regiment before it can be used.</p>' +
						  '<p><input type="button" class="submit close" value="Close Box" onclick="add_regiment(3)" /></p>';
		document.getElementById('container').appendChild(popup);
		//remove add regiment anchor while popup is active
		document.getElementById('add_reg_anchor').innerHTML = "";
	}
	else if (step == 2) {
		var req = getXMLHTTP();
		
		var postdata = 'reg=' + escape(encodeURI(document.getElementById('reg_to_add').value));
		
		req.onreadystatechange = function()
		{
			if (req.readyState == 4 && req.status == 200) {
				var ret = eval('(' + req.responseText + ')');
				
				document.getElementById('errorbox').innerHTML = ret[1];
				
				if (ret[0]) {
					document.getElementById('reg_to_add').value = '';
				}
			}
		}
		req.open("POST", '/ajax-add-regiment/', true);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // for post
		req.setRequestHeader("Content-length", postdata.length);
		req.setRequestHeader("Connection", "close");
		req.send(postdata);
	}
	else if (step == 3) {
		// remove popup
		var div = document.getElementById("add_reg");
		document.getElementById('container').removeChild(div);
		// bring back add regiment anchor
		document.getElementById('add_reg_anchor').innerHTML = '<a href="/add_regiment/" onclick="add_regiment(1); return false;">request to add a regiment</a>';
	}
}

