var global_userID = 0;
var global_moderator_level = 0;
function shochat(actorID, poster_userID, order, page, visitor_userID, moderator_level)
{
	global_userID = visitor_userID;
	global_moderator_level = moderator_level;
	var urlz = "/cast/chat/xmlchat?actorID=" + actorID + "&userID=" + poster_userID + "&order=" + order + "&page=" + page;
	loadXMLDocttyuse4(urlz);
}
function erase_post(droppi, actorID, userID, order, page, poster, visitor_userID, moderator_level)
{
	global_userID = visitor_userID;
	global_moderator_level = moderator_level;
	var urlz = "/cast/chat/xmlerase_post?droppi=" + droppi + "&actorID=" + actorID + "&userID=" + userID + "&order=" + order + "&page=" + page;
	var eraseconfmessage = 'are you sure you want to erase this post from: ' + poster;
	var r=confirm(eraseconfmessage);
	if(r==true)
	{loadXMLDoc56m243cxsd(urlz);}
}
var reqttyuse4;
function loadXMLDocttyuse4(url)
{
	if (window.XMLHttpRequest)
	{
		// branch for native XMLHttpRequest object
		reqttyuse4 = new XMLHttpRequest();
		reqttyuse4.onreadystatechange = processReqChangettyuse4;
		reqttyuse4.open("GET", url, true);
		reqttyuse4.send(null);
	}
	else if (window.ActiveXObject)
	{
		// branch for IE/Windows ActiveX version
		reqttyuse4 = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqttyuse4)
		{
			reqttyuse4.onreadystatechange = processReqChangettyuse4;
			reqttyuse4.open("GET", url, true);
			reqttyuse4.send();
		}
	}
}


//read chitchat from xml and shit it out!
function processReqChangettyuse4() 
{
	if (reqttyuse4.readyState == 4)
	{
		if (reqttyuse4.status == 200)
		{
			var result_string = "<h4>comments:</h4>";
			var response = reqttyuse4.responseXML.documentElement;
			var result = response.getElementsByTagName("result")[0].firstChild.data;
			if(result == "ok")
			{
				var pagination_string = '';
				var totalboxes = response.getElementsByTagName("totalboxes")[0].firstChild.data;
				var totalpages = response.getElementsByTagName("totalpages")[0].firstChild.data;
				var thispage = response.getElementsByTagName("thispage")[0].firstChild.data;
				var actorID = response.getElementsByTagName("actorID")[0].firstChild.data;
				var userID = response.getElementsByTagName("userID")[0].firstChild.data;
				var order = response.getElementsByTagName("order")[0].firstChild.data;
				var orderbytimelink = ' -<a style="cursor:pointer" onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'posting_time'" + ', 1, ' + global_userID + ', ' + global_moderator_level + ')">oldest</a>';
				var orderbytimerevlink = ' -<a style="cursor:pointer" onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'posting_time_DESC'" + ', 1, ' + global_userID + ', ' + global_moderator_level + ')">most recent</a>';
				var orderbyratinglink = ' -<a style="cursor:pointer" onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'rating'" + ', 1, ' + global_userID + ', ' + global_moderator_level + ')">best rating</a>';
				var orderbyratingrevlink = ' -<a style="cursor:pointer" onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'rating_DESC'" + ', 1, ' + global_userID + ', ' + global_moderator_level + ')">worst rating</a>';
				var reorderstring = orderbytimelink + orderbytimerevlink + orderbyratinglink + orderbyratingrevlink;
				if(order=='posting_time')
				{var orderedby = 'oldest';}
				else if(order=='posting_time_DESC')
				{var orderedby = 'most recent';}
				else if(order=='rating')
				{var orderedby = 'best rating';}
				else if(order=='rating_DESC')
				{var orderedby = 'worst rating';}
				var orderstring = '<div class="effect" style="font-size:80%;">currently ordered by: ' + orderedby + '<br /> re-order by: ' + reorderstring + '</div>';
				if(totalboxes==0)
				{result_string = result_string + 'empty<br />';}
				else
				{result_string = result_string + orderstring;}
				totalpages = Math.abs(totalpages);
				if(totalpages > 1)
				{
					var previouspage = Math.abs(thispage)-1;
					var nextpage = Math.abs(thispage)+1;
					if(thispage>1)
					{var previouspagebutton = '<a onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'" + order + "'" + ', ' + previouspage + ', ' + global_userID + ', ' + global_moderator_level + ')" style="cursor:pointer;">previous</a> | ';}
					else
					{var previouspagebutton = '';}
					if(thispage<totalpages)
					{var nextpagebutton = ' | <a onclick="shochat(' + "'" + actorID + "'" + ', ' + userID + ', ' + "'" + order + "'" + ', ' + nextpage + ', ' + global_userID + ', ' + global_moderator_level + ')" style="cursor:pointer;">next</a>';}
					else
					{var nextpagebutton = '';}
					pagination_string = '<div class="effect" style="font-size:80%;">' + previouspagebutton + 'page ' + thispage + ' of ' + totalpages + nextpagebutton + '</div>';
				}
				result_string = result_string + pagination_string;
				var count = 0;
				while (count < totalboxes)
				{
					count++;
					var thispostIDname = "postID_" + count;
					var thisactorIDname = "actorID_" + count;
					var thisuserIDname = "userID_" + count;
					var thisposting_timename = "posting_time_" + count;
					var thisratingname = "rating_" + count;
					var thisvotesname = "votes_" + count;
					var thispostname = "post_" + count;
					var thispostID = response.getElementsByTagName(thispostIDname)[0].firstChild.data;
					var thisactorID = response.getElementsByTagName(thisactorIDname)[0].firstChild.data;
					var thisuserID = response.getElementsByTagName(thisuserIDname)[0].firstChild.data;
					var thisposting_time = response.getElementsByTagName(thisposting_timename)[0].firstChild.data;
					var thisrating = response.getElementsByTagName(thisratingname)[0].firstChild.data;
					var thisvotes = response.getElementsByTagName(thisvotesname)[0].firstChild.data;
					var thispost = response.getElementsByTagName(thispostname)[0].firstChild.data;
					if(thisuserID==0)
					{
						var posterlink = 'a guest';
						var usernameforbuttons = 'a guest';
					}
					else
					{
						var thispublicnamename = "public_name_" + thisuserID;
						var thispublicname = response.getElementsByTagName(thispublicnamename)[0].firstChild.data;
						var posterlink = "<a href='http://backstage." + myhappydomain + "/userpage?u=" + thisuserID + "'>" + thispublicname + "</a> ";
						var usernameforbuttons = thispublicname;
					}
					if((thisuserID==global_userID && thisuserID!=0) || global_moderator_level>0)
					{var deletebutton = '<a onclick="erase_post(' + thispostID + ",'" + actorID + "'" + ', ' + userID + ', ' + "'" + order + "'" + ', ' + thispage + ', ' + "'" + usernameforbuttons + "'" + ', ' + global_userID + ', ' + global_moderator_level + ')" style="cursor:pointer;color:red;">X</a>';}
					else
					{var deletebutton = '';}
					var thisdatarow = "<span style='font-size:110%;'>" + thispost + "</span> by " + posterlink + " " + maketimus(thisposting_time) + " <span id='postvotesstring" + thispostID + "'>" + makevotesstring(thisrating, thisvotes, thispostID, 'post') + "</span>  " + deletebutton;
					result_string = result_string + "<p>" + thisdatarow + "</p>";
				}
				result_string = result_string + pagination_string;
				if(global_userID==0)
				{
					var randomnumber=Math.floor(Math.random()*100001)
					var imagever = '<input type="hidden" id="random" value="' + randomnumber + '" /><img src="../image_verification?name=' + randomnumber + '" style="vertical-align:text-bottom;" /> -> retype this number -> <input type="text" id="numba" />';
				}
				else
				{var imagever = '<input type="hidden" id="random" value="0" /><input type="hidden" id="numba" value="0" />';}
				var postform = '<textarea id="chit" style="width:420px;height:180px;"></textarea><br />' + imagever + '<br /><input type="submit" onclick="post_chat(' + actorID + ', ' + global_userID + ', ' + global_moderator_level + ')" value="post comment" />';
				result_string = result_string + postform;
			}
			else
			{
				result_string = 'error connecting to database';
			}
			document.getElementById("chat").innerHTML = result_string;
		}
		else
		{
			alert("There was a problem retrieving the XML data:\n" + reqttyuse4.statusText);
		}
	}
}
var req56m243cxsd;
function loadXMLDoc56m243cxsd(url)
{
	if (window.XMLHttpRequest)
	{
		// branch for native XMLHttpRequest object
		req56m243cxsd = new XMLHttpRequest();
		req56m243cxsd.onreadystatechange = processReqChange56m243cxsd;
		req56m243cxsd.open("GET", url, true);
		req56m243cxsd.send(null);
	}
	else if (window.ActiveXObject)
	{
		// branch for IE/Windows ActiveX version
		req56m243cxsd = new ActiveXObject("Microsoft.XMLHTTP");
		if (req56m243cxsd)
		{
			req56m243cxsd.onreadystatechange = processReqChange56m243cxsd;
			req56m243cxsd.open("GET", url, true);
			req56m243cxsd.send();
		}
	}
}
function processReqChange56m243cxsd() 
{
	if (req56m243cxsd.readyState == 4)
	{
		if (req56m243cxsd.status == 200)
		{
			var response = req56m243cxsd.responseXML.documentElement;
			var result = response.getElementsByTagName("result")[0].firstChild.data;
			var thispage = response.getElementsByTagName("page")[0].firstChild.data;
			var actorID = response.getElementsByTagName("actorID")[0].firstChild.data;
			var userID = response.getElementsByTagName("userID")[0].firstChild.data;
			var order = response.getElementsByTagName("order")[0].firstChild.data;
			if(result=='ok')
			{shochat(actorID, userID, order, thispage, global_userID, global_moderator_level);}
			else if(result=='error')
			{
				var loginmessage = 'problems reaching database, please try reloading the page';
				alert(loginmessage);
			}
		}
		else
		{
			alert("There was a problem retrieving the XML data:\n" + req56m243cxsd.statusText);
		}
	}
}

var global_userID = 0;
var global_moderator_level = 0;
function post_chat(actorID, visitor_userID, moderator_level)
{
	global_userID = visitor_userID;
	global_moderator_level = moderator_level;
	var dipost = document.getElementById("chit").value;
	var numba = document.getElementById("numba").value;
	var random = document.getElementById("random").value;
	var urlz = "/cast/chat/xmlpost_chat?actorID=" + actorID + "&numba=" + numba + "&random=" + random + "&post=" + escape(dipost);
	loadXMLDocasdfasr(urlz);
}
var reqasdfasr;
function loadXMLDocasdfasr(url) 
{
	if (window.XMLHttpRequest)
	{
		// branch for native XMLHttpRequest object
		reqasdfasr = new XMLHttpRequest();
		reqasdfasr.onreadystatechange = processReqChangeasdfasr;
		reqasdfasr.open("GET", url, true);
		reqasdfasr.send(null);
	}
	else if (window.ActiveXObject)
	{
		// branch for IE/Windows ActiveX version
		reqasdfasr = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqasdfasr)
		{
			reqasdfasr.onreadystatechange = processReqChangeasdfasr;
			reqasdfasr.open("GET", url, true);
			reqasdfasr.send();
		}
	}
}
function processReqChangeasdfasr() 
{
	if (reqasdfasr.readyState == 4)
	{
		if (reqasdfasr.status == 200)
		{
			var result_string = "";
			var response = reqasdfasr.responseXML.documentElement;
			var result = response.getElementsByTagName("result")[0].firstChild.data;
			var actorID = response.getElementsByTagName("actorID")[0].firstChild.data;
			if(result=='ok')
			{shochat(actorID, 0, 'posting_time_DESC', 1, global_userID, global_moderator_level);}
			else if(result=='error')
			{
				var loginmessage = 'problems reaching database, please try reloading the page';
				alert(loginmessage);
			}
			else if(result=='tooshort')
			{
				var loginmessage = 'this post is too short';
				alert(loginmessage);
			}
			else if(result=='badcode')
			{
				var loginmessage = 'the number that you have entered in the box did not match the number in the picture next to it, please try again or reload this page if the problem persists';
				alert(loginmessage);
			}
		}
		else
		{
			alert("There was a problem retrieving the XML data:\n" + reqasdfasr.statusText);
		}
	}
}

function makevotesstring(rating, votes, linkID, thinger)
{
	if(votes==1)
	{var votesS = '';}
	else
	{var votesS = 's';}
	var votesstring = "rating: " + rating + ", " + votes + " vote" + votesS + ".";
	if(thinger!='pagelist')
	{votesstring = votesstring + " <span style='font-size:75%;'>vote: <a onclick='vote" + thinger + "(" + linkID + ", 0)' style='cursor:pointer;'>0</a>, <a onclick='vote" + thinger + "(" + linkID + ", 1)' style='cursor:pointer;'>1</a>, <a onclick='vote" + thinger + "(" + linkID + ", 2)' style='cursor:pointer;'>2</a>, <a onclick='vote" + thinger + "(" + linkID + ", 3)' style='cursor:pointer;'>3</a>, <a onclick='vote" + thinger + "(" + linkID + ", 4)' style='cursor:pointer;'>4</a>, <a onclick='vote" + thinger + "(" + linkID + ", 5)' style='cursor:pointer;'>5</a>, <a onclick='vote" + thinger + "(" + linkID + ", 6)' style='cursor:pointer;'>6</a>, <a onclick='vote" + thinger + "(" + linkID + ", 7)' style='cursor:pointer;'>7</a>, <a onclick='vote" + thinger + "(" + linkID + ", 8)' style='cursor:pointer;'>8</a>, <a onclick='vote" + thinger + "(" + linkID + ", 9)' style='cursor:pointer;'>9</a>, <a onclick='vote" + thinger + "(" + linkID + ", 10)' style='cursor:pointer;'>10</a></span>";}
	return votesstring;
}

function votepost(postID, note)
{
	var votesbox = 'postvotesstring' + postID;
	document.getElementById(votesbox).innerHTML = '...Loading...';
	var urlz = "/cast/chat/xmlvoteposts?postID=" + postID + "&note=" + note;
	loadXMLDocvotepost(urlz);
}
var reqvotepost;
function loadXMLDocvotepost(url)
{
	if (window.XMLHttpRequest)
	{
		// branch for native XMLHttpRequest object
		reqvotepost = new XMLHttpRequest();
		reqvotepost.onreadystatechange = processReqChangevotepost;
		reqvotepost.open("GET", url, true);
		reqvotepost.send(null);
	}
	else if (window.ActiveXObject)
	{
		// branch for IE/Windows ActiveX version
		reqvotepost = new ActiveXObject("Microsoft.XMLHTTP");
		if (reqvotepost)
		{
			reqvotepost.onreadystatechange = processReqChangevotepost;
			reqvotepost.open("GET", url, true);
			reqvotepost.send();
		}
	}
}
function processReqChangevotepost() 
{
	if (reqvotepost.readyState == 4)
	{
		if (reqvotepost.status == 200)
		{
			var response = reqvotepost.responseXML.documentElement;
			var result = response.getElementsByTagName("result")[0].firstChild.data;
			var rating = response.getElementsByTagName("rating")[0].firstChild.data;
			var votes = response.getElementsByTagName("votes")[0].firstChild.data;
			var postID = response.getElementsByTagName("postID")[0].firstChild.data;
			if(result=='ok')
			{
				var votesbox = 'postvotesstring' + postID;
				var redonevotesbox = makevotesstring(rating, votes, postID, 'post');
				document.getElementById(votesbox).innerHTML = redonevotesbox;
			}
		}
		else
		{
			alert("There was a problem retrieving the XML data:\n" + reqvotepost.statusText);
		}
	}
}

