/****************************************************************************************************
	Name :	talkshit.js
	Desc :	Forum Messages

****************************************************************************************************/
var gpage=0;
var gmsgid=0;
var gforumid=1;

// XMLHttpRequest.readyState codes
rrsUNINITIALIZED=0
rrsLOADING=1
rrsLOADED=2
rrsINTERACTIVE=3
rrsCOMPLETED=4

var viewreq = null; 
var treereq = null; 

function setviewHTML(html)
	{
	var x=document.getElementById('msgview');
	if(x)
		x.innerHTML=html;
	else
		alert("Unable to find Message View Object!");
	}

function viewHandler()
	{
	if(viewreq.readyState==rrsCOMPLETED)
		{
		var rs=viewreq.status;
		if(rs!=200)
			{
			setviewHTML('Fail '+rs);
			return;
			}
		setviewHTML(viewreq.responseText);
		viewreq = null; 
		}
	}

function msgChangeHandler()
	{
	if(viewreq.readyState==rrsCOMPLETED)
		{
		var rs=viewreq.status;
		if(rs!=200)
			{
			setviewHTML('Fail '+rs);
			return;
			}
		setviewHTML(viewreq.responseText);
		viewreq = null; 
		doTreeRequest();
		}
	}

function doViewRequest()
	{
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		}
	try 
		{
		viewreq = new XMLHttpRequest(); 
		}
	catch (error) 
		{
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
		catch (error) 
			{
			viewreq = null; 
			return false; 
			}
		}
	viewreq.onreadystatechange=viewHandler;
	var t=Date();
	var url="talkshit.php?act=mid&fid="+gforumid+"&mid="+gmsgid+"&page="+gpage+"&t="+t;
	viewreq.open("GET",url);
	viewreq.send(null);
	return true; 
	}  

function settreeHTML(html)
	{
	var x=document.getElementById('msgtree');
	if(x)
		x.innerHTML=html;
	else
		alert("Unable to find Forum Tree Object!");
	}

function treeHandler()
	{
	if(treereq.readyState==rrsCOMPLETED)
		{
		var rs=treereq.status;
		if(rs!=200)
			{
			settreeHTML('Fail '+rs);
			return;
			}
		settreeHTML(treereq.responseText);
		treereq = null; 
		}
	}

function doTreeRequest()
	{
	if (treereq != null && treereq.readyState != rrsUNINITIALIZED && treereq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		treereq.abort(); 
		} 
	try 
		{ 
		treereq = new XMLHttpRequest(); 
		} 
	catch (error) 
		{ 
		try 
			{ 
			treereq = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		catch (error) 
			{ 
			treereq = null; 
			return false; 
			} 
		} 
	treereq.onreadystatechange=treeHandler;
	var t=Date();
	var url="talkshit.php?act=tree&fid="+gforumid+"&mid="+gmsgid+"&page="+gpage+"&t="+t;
	treereq.open("GET",url);
	treereq.send(null);
	return true; 
	}  

function showmsg(msgid)
	{
	var id="msg"+gmsgid;
	var x=document.getElementById(id);
	if(x)
		x.className='viewedlink';
	id="msg"+msgid;
	x=document.getElementById(id);
	if(x)
		x.className='redlinks';
	id="msgnew"+msgid;
	x=document.getElementById(id);
	if(x)
		x.innerHTML='';

	gmsgid=msgid;
	doViewRequest();	
	}

function showpage(page)
	{
	gmsgid=0;
	gpage=page;
	doTreeRequest();
	doViewRequest();	
	}

function showforum()
	{
	var x=document.getElementById('forums');
	gforumid=x.options[x.selectedIndex].value;
	gmsgid=0;
	gpage=0;
	doTreeRequest();
	doViewRequest();	
	}

function doreply()
	{
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		}
	try 
		{
		viewreq = new XMLHttpRequest(); 
		}
	catch (error) 
		{
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
		catch (error) 
			{
			viewreq = null; 
			return false; 
			}
		}
	viewreq.onreadystatechange=viewHandler;
	var t=Date();
	var url="talkshit.php?act=reply&fid="+gforumid+"&mid="+gmsgid+"&page="+gpage+"&t="+t;
	viewreq.open("GET",url);
	viewreq.send(null);
	return true; 
	}
	
function donewthread()
	{
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		}
	try 
		{
		viewreq = new XMLHttpRequest(); 
		}
	catch (error) 
		{
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			}
		catch (error) 
			{
			viewreq = null; 
			return false; 
			}
		}
	viewreq.onreadystatechange=viewHandler;
	var t=Date();
	var url="talkshit.php?act=thread&fid="+gforumid+"&mid="+gmsgid+"&page="+gpage+"&t="+t;
	viewreq.open("GET",url);
	viewreq.send(null);
	return true; 
	}

function dodisable(msgid)
	{
	gmsgid=msgid;
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		} 
	try 
		{ 
		viewreq = new XMLHttpRequest(); 
		} 
	catch (error) 
		{ 
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		catch (error) 
			{ 
			viewreq = null; 
			return false; 
			} 
		} 
	viewreq.onreadystatechange=msgChangeHandler;
	var t=Date();
	var url="talkshit.php?act=dismid&mid="+gmsgid+"&t="+t;
	viewreq.open("GET",url);
	viewreq.send(null);
	}

function doenable(msgid)
	{
	gmsgid=msgid;
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		} 
	try 
		{ 
		viewreq = new XMLHttpRequest(); 
		} 
	catch (error) 
		{ 
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		catch (error) 
			{ 
			viewreq = null; 
			return false; 
			} 
		}
	viewreq.onreadystatechange=msgChangeHandler;
	var t=Date();
	var url="talkshit.php?act=enabmid&mid="+gmsgid+"&t="+t;
	viewreq.open("GET",url);
	viewreq.send(null);
	}

function postHandler()
	{
	if(viewreq.readyState==rrsCOMPLETED)
		{
		var rs=viewreq.status;
		if(rs!=200)
			{
			setviewHTML('Fail '+rs);
			return;
			}
		setviewHTML(viewreq.responseText);
		viewreq = null;
		var x=document.getElementById('newmsgid');
		if(x)
			gmsgid=x.value;
		doTreeRequest();
		}
	}

function doreplymsg()
	{
	alert("You must sign in to post a reply.");
	}

function donewthreadmsg()
	{
	alert("You must sign in to post a message.");
	}

function doPostRequest()
	{
	if (viewreq != null && viewreq.readyState != rrsUNINITIALIZED && viewreq.readyState != rrsCOMPLETED) 
		{ // Abort running connections
		viewreq.abort(); 
		} 
	try 
		{ 
		viewreq = new XMLHttpRequest(); 
		} 
	catch (error) 
		{ 
		try 
			{ 
			viewreq = new ActiveXObject("Microsoft.XMLHTTP"); 
			} 
		catch (error) 
			{ 
			viewreq = null; 
			return false; 
			} 
		} 
	viewreq.onreadystatechange=postHandler;
	var t=Date();

	var frm=document.getElementById("forumreply");
	if(frm)
		{
		var str = "parentid=" + frm.parentid.value + "&subject=" + frm.subject.value + "&author=" + frm.author.value + "&msgbody=" + frm.msgbody.value;
		var url="talkshit.php?act=postreply&mid="+gmsgid+"&t="+t;
		viewreq.open("POST",url,true);
		viewreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
		viewreq.send(str);
		return true;
		}
	frm=document.getElementById("newthread");
	if(frm)
		{
		var str = "msgid=" + frm.msgid.value + "&forumid=" + frm.forumid.value + "&subject=" + frm.subject.value + "&author=" + frm.author.value + "&msgbody=" + frm.msgbody.value;
		var url="talkshit.php?act=postthread&mid="+gmsgid+"&t="+t;
		viewreq.open("POST",url,true);
		viewreq.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
		viewreq.send(str);
		}
	}

