var	http_request = false;
   
function postReq(url, parameters, callback)	{
	  http_request = false;
	  if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 http_request =	new	XMLHttpRequest();
		 if	(http_request.overrideMimeType)	{
			http_request.overrideMimeType('text/xml');
		 }
	  }	else if	(window.ActiveXObject) { //	IE - Wont be needed with IE7
		 try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
			try	{
			   http_request	= new ActiveXObject("Microsoft.XMLHTTP");
			} catch	(e)	{}
		 }
	  }
	  if (!http_request) {
		 alert('Cannot create XMLHTTP instance');
		 return	false;
	  }
	  
	  http_request.onreadystatechange =	callback;
	  http_request.open('POST',	url, true);
	  http_request.setRequestHeader("Content-type",	"application/x-www-form-urlencoded");
	  http_request.setRequestHeader("Content-length", parameters.length);
	  http_request.setRequestHeader("Connection", "close");
	  http_request.send(parameters);
}

   function	afterEdit() {
	  if (http_request.readyState == 4)	{
		if (http_request.status ==	200) {
			result = http_request.responseText;
			result_array = result.split(';;;');
			if (result_array[0] == 'OK')	{
				document.getElementById('msg' + result_array[1]).innerHTML = result_array[2];
				document.getElementById('msg' + result_array[1]).setAttribute('onDblClick', "javascript:startEdit('" + result_array[1] + "');");
			} else {
				alert('The following error occured: ' + result_array[1]);
			}
		 } else	{
			alert('An error occured while editing the message: ' + result_array[1]);
			ebutton.disabled = false;
			ebutton.value = 'Edit Message';
		 }
	  }
   }

function doEdit(msgnum) {
	  editbox = document.getElementById('editbox-' + msgnum);
	  edit_text = editbox.value;
	  var poststr =	"message=" + msgnum + "&text="	+ encodeURI(edit_text) + "&mode=edit_message";
	  ebutton =	document.getElementById('do_edit');
	  ebutton.disabled = 'true';
	  ebutton.value	= 'Editing Message';
	  postReq('ajax.php', poststr, afterEdit);
}

function startEdit (msgnum) {
	msgbox = document.getElementById('msg' + msgnum);
	currentText = msgbox.innerHTML;
	currentText = currentText.replace(/<br>/g, '');
	msgbox.innerHTML = '<form action="javascript:void()"><textarea class="editbox" id="editbox-' + msgnum + '">' + currentText + '</textarea><input type="hidden" id="oldvalue-' + msgnum + '" value="' + encodeURI(msgbox.innerHTML) + '" /><input type="submit" id="do_edit" value="Edit Message" onClick="javascript:doEdit(\'' + msgnum + '\');" /> <input type="submit" id="discard" value="Discard Message" onClick="javascript:discardEdit(\'' + msgnum + '\')" /></form>';
	msgbox.removeAttribute('onDblClick');
}

function discardEdit (msgnum) {
	document.getElementById('msg' + msgnum).innerHTML = decodeURI(document.getElementById('oldvalue-' + msgnum).value);
	document.getElementById('msg' + msgnum).setAttribute('onDblClick', "javascript:startEdit('" + msgnum + "');");
}

function afterVote() {
	  if (http_request.readyState == 4)	{
		 if	(http_request.status ==	200) {
			result = http_request.responseText;
			document.getElementById('poll').innerHTML =	result;			   
		 } else	{
			alert('There was a problem with	submitting your	choice!');
		 }
	  }
   }

function getVoteValue()	{
	for	(var i=0; i	< document.pollform.vote.length; i++) {
	   if (document.pollform.vote[i].checked) {
		  return document.pollform.vote[i].value;
	   }
	}
}

function doVote(obj) {
	  var voteval =	getVoteValue();
	  var poststr =	"vote="	+ encodeURI(voteval) + "&do_vote=true&ajax=true";
	  vbutton =	document.getElementById('do_vote');
	  vbutton.disabled = 'true';
	  vbutton.value	= 'Submitting Vote...';
	  postReq('poll.php', poststr, afterVote);
}

function topicvote(topicid, votetype) {
	postReq('ajax.php', 'topic=' + topicid + '&mode=topicvote&vote=' + votetype, topicvotecallback);
			if (votetype == 1) { posvote = document.getElementById('positivevote'); posvote.style.color = 'lightgreen'; posvote.blur(); document.getElementById('negativevote').style.color = document.getElementsByTagName('h2')[0].style.color; }
			else if (votetype == 0) { negvote = document.getElementById('negativevote'); negvote.style.color = 'red'; negvote.blur(); document.getElementById('positivevote').style.color = document.getElementsByTagName('h2')[0].style.color; }
}
function topicvotecallback() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			currentText = http_request.responseText;
		}
	}
}
