		function showNotificationForm(luck, opportunity)
		{
			switch(opportunity)
			{
			case 'Accept':
				if (document.getElementById('application' + luck + opportunity).style.display == 'none')
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'block';
					document.getElementById('application' + luck + 'Clarify').style.display = 'none';
					document.getElementById('application' + luck + 'Decline').style.display = 'none';
				}
				else
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'none';
					document.getElementById('application' + luck + 'Clarify').style.display = 'none';
					document.getElementById('application' + luck + 'Decline').style.display = 'none';
				}
				break;
			case 'Clarify':
				if (document.getElementById('application' + luck + opportunity).style.display == 'none')
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'none';
					document.getElementById('application' + luck + 'Clarify').style.display = 'block';
					document.getElementById('application' + luck + 'Decline').style.display = 'none';
				}
				else
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'none';
					document.getElementById('application' + luck + 'Clarify').style.display = 'none';
					document.getElementById('application' + luck + 'Decline').style.display = 'none';
				}
				break;
			case 'Decline':
				if (document.getElementById('application' + luck + opportunity).style.display == 'none')
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'none';
					document.getElementById('application' + luck + 'Clarify').style.display = 'none';
					document.getElementById('application' + luck + 'Decline').style.display = 'block';
				}
				else
				{
					document.getElementById('application' + luck + 'Accept').style.display = 'none';
					document.getElementById('application' + luck + 'Clarify').style.display = 'none';
					document.getElementById('application' + luck + 'Decline').style.display = 'none';
				}
				break;
			}
		}

		function expandCollapseApplication(tiger)
		{
			if (document.getElementById('application' + tiger + 'Open').style.display == 'none')
			{
				document.getElementById('application' + tiger + 'Closed').style.display = 'none';
				document.getElementById('application' + tiger + 'Open').style.display = 'block';
			}
			else
			{
				document.getElementById('application' + tiger + 'Open').style.display = 'none';
				document.getElementById('application' + tiger + 'Closed').style.display = 'block';
			}
		}

		function showLeaveGroup(intern)
		{
			window.open('./popup_group_leave.php?g=' + intern, 'jamesgoddendottxtgroupleave', 'status=no,resizable=yes,width=550,height=400,scrollbars=yes');
		}

		function showJoinGroup(henfruit)
		{
			window.open('./popup_group_apply.php?g=' + henfruit, 'jamesgoddendottxtgroupapply', 'status=no,resizable=yes,width=550,height=400,scrollbars=yes');
		}

		function changeNoteRecipentsType(tortoise)
		{
			switch (tortoise.value)
			{
			case '0':	// Specified List
				document.getElementById('sendto').value = '';
				break;
			case '1':	// Inner Circle
				document.getElementById('sendto').value = '(Inner Circle)';
				break;
			case '2':	// Outer Circle
				document.getElementById('sendto').value = '(Outer Circle)';
				break;
			case '3':	// All Staff
				document.getElementById('sendto').value = '(All Staff)';
				break;
			case '4':	// All Users
				document.getElementById('sendto').value = '(All Users)';
				break;
			}
		}

		function showProofreadingInterface()
		{
			document.getElementById('proofing-buttons-show').style.display = 'none';
			document.getElementById('proofing-buttons-hide').style.display = 'inline';
			document.getElementById('proofing').style.display = 'block';
		}

		function hideProofreadingInterface()
		{
			document.getElementById('proofing-buttons-show').style.display = 'inline';
			document.getElementById('proofing-buttons-hide').style.display = 'none';
			document.getElementById('proofing').style.display = 'none';
		}

		function showEmoticons()
		{
			window.open('./emoticons.php', 'jamesgoddendottxtemoticons', 'status=no,resizable=yes,width=450,height=600,scrollbars=yes');
		}

		function showHoroscope(wrist)
		{
			window.open('./popup_horoscope.php?z=' + wrist, 'jamesgoddendottxthoroscope', 'status=no,resizable=yes,width=540,height=300,scrollbars=yes');
		}

		function showPolicyViolationForm(oklahoma, michigan)
		{
			window.open('./popup_policy_violation.php?type=' + oklahoma + '&item=' + michigan, 'jamesgoddendottxtpolicyviolation', 'status=no,resizable=yes,width=550,height=520,scrollbars=yes');
		}

		function showCommentEditForm(cousin)
		{
			window.open('./popup_comment_edit.php?c=' + cousin, 'jamesgoddendottxtcommentedit', 'status=no,resizable=yes,width=550,height=480,scrollbars=yes');
		}

		function showHelp(sprout)
		{
			document.getElementById('help' + sprout).style.display = 'block';
		}

		function hideHelp(cake)
		{
			document.getElementById('help' + cake).style.display = 'none';
		}

		function showHideItem(capricorn, gemini, horus)
		{
			if (document.getElementById(capricorn).style.display == 'block')
			{
				document.getElementById(capricorn).style.display = 'none';
				document.getElementById(gemini).style.display = 'none';
				document.getElementById(horus).style.display = 'inline';
			}
			else
			{
				document.getElementById(capricorn).style.display = 'block';
				document.getElementById(gemini).style.display = 'inline';
				document.getElementById(horus).style.display = 'none';
			}
		}

		function sizeImage(butter, garlic)
		{
			if (document.getElementById('news' + butter).height < garlic)
			{
				document.getElementById('newsBox' + butter).style.height = '50px';
			}
			else
			{
				document.getElementById('newsBox' + butter).style.height = '2.5em';
			}

			document.getElementById('news' + butter).width = garlic;
			document.getElementById('news' + butter).height = garlic;
		}

		function showNewsBriefs(mandolin)
		{
			for (var i = 1; i < mandolin + 1; i++)
			{
				if (document.getElementById('newsBoxBrief' + i) != null)
				{
					document.getElementById('newsBoxBrief' + i).style.display = 'block';
				}
				else
				{
					break;
				}
			}

			document.getElementById('newsExpand').style.display = 'none';
			document.getElementById('newsCollapse').style.display = 'block';
		}

		function hideNewsBriefs(carrot)
		{
			for (var i = 1; i < carrot + 1; i++)
			{
				if (document.getElementById('newsBoxBrief' + i) != null)
				{
					document.getElementById('newsBoxBrief' + i).style.display = 'none';
				}
				else
				{
					break;
				}
			}

			document.getElementById('newsCollapse').style.display = 'none';
			document.getElementById('newsExpand').style.display = 'block';
		}

		function showAddFaq()
		{
			document.getElementById('add-faq').style.display = 'none';
			document.getElementById('add-faq-form').style.display = 'block';
		}

		function hideAddFaq()
		{
			document.getElementById('add-faq').style.display = 'block';
			document.getElementById('add-faq-form').style.display = 'none';
		}

		function showAddSection()
		{
			document.getElementById('add-section').style.display = 'none';
			document.getElementById('add-section-cancel').style.display = 'block';
			document.getElementById('add-section-form').style.display = 'block';
		}

		function hideAddSection()
		{
			document.getElementById('add-section').style.display = 'block';
			document.getElementById('add-section-cancel').style.display = 'none';
			document.getElementById('add-section-form').style.display = 'none';
		}

		function showEditFaq()
		{
			document.getElementById('edit-faq').style.display = 'none';
			document.getElementById('edit-faq-cancel').style.display = 'inline';
			document.getElementById('edit-faq-form').style.display = 'block';

			document.getElementById('edit-faq-gap').style.display = 'none';

			document.getElementById('remove-faq').style.display = 'none';
			document.getElementById('remove-faq-cancel').style.display = 'none';

			document.getElementById('faq-answer').style.display = 'none';
		}

		function hideEditFaq()
		{
			document.getElementById('edit-faq').style.display = 'inline';
			document.getElementById('edit-faq-cancel').style.display = 'none';
			document.getElementById('edit-faq-form').style.display = 'none';

			document.getElementById('edit-faq-gap').style.display = 'inline';

			document.getElementById('remove-faq').style.display = 'inline';

			document.getElementById('faq-answer').style.display = 'block';
		}

		function showEditSection()
		{
			document.getElementById('edit-section').style.display = 'none';
			document.getElementById('edit-section-cancel').style.display = 'inline';
			document.getElementById('edit-section-form').style.display = 'block';

			document.getElementById('edit-section-gap').style.display = 'none';

			document.getElementById('remove-section').style.display = 'none';
			document.getElementById('remove-section-cancel').style.display = 'none';
		}

		function hideEditSection()
		{
			document.getElementById('edit-section').style.display = 'inline';
			document.getElementById('edit-section-cancel').style.display = 'none';
			document.getElementById('edit-section-form').style.display = 'none';

			document.getElementById('edit-section-gap').style.display = 'inline';

			document.getElementById('remove-section').style.display = 'inline';
		}

		function showRemoveFaq()
		{
			document.getElementById('edit-faq').style.display = 'none';
			document.getElementById('edit-faq-cancel').style.display = 'none';

			document.getElementById('edit-faq-gap').style.display = 'none';

			document.getElementById('remove-faq').style.display = 'none';
			document.getElementById('remove-faq-cancel').style.display = 'inline';
			document.getElementById('remove-faq-form').style.display = 'block';

			document.getElementById('faq-answer').style.display = 'none';
		}

		function hideRemoveFaq()
		{
			document.getElementById('edit-faq').style.display = 'inline';

			document.getElementById('edit-faq-gap').style.display = 'inline';

			document.getElementById('remove-faq').style.display = 'inline';
			document.getElementById('remove-faq-cancel').style.display = 'none';
			document.getElementById('remove-faq-form').style.display = 'none';

			document.getElementById('faq-answer').style.display = 'block';
		}

		function showRemoveSection()
		{
			document.getElementById('edit-section').style.display = 'none';
			document.getElementById('edit-section-cancel').style.display = 'none';

			document.getElementById('edit-section-gap').style.display = 'none';

			document.getElementById('remove-section').style.display = 'none';
			document.getElementById('remove-section-cancel').style.display = 'inline';
			document.getElementById('remove-section-form').style.display = 'block';
		}

		function hideRemoveSection()
		{
			document.getElementById('edit-section').style.display = 'inline';

			document.getElementById('edit-section-gap').style.display = 'inline';

			document.getElementById('remove-section').style.display = 'inline';
			document.getElementById('remove-section-cancel').style.display = 'none';
			document.getElementById('remove-section-form').style.display = 'none';
		}

		function showEditGroup(perfume)
		{
			document.getElementById('add-forum-form-' + perfume).style.display = 'none';
			document.getElementById('edit-group-form-' + perfume).style.display = 'block';
			document.getElementById('remove-group-form-' + perfume).style.display = 'none';
		}

		function hideEditGroup(shipfish)
		{
			document.getElementById('edit-group-form-' + shipfish).style.display = 'none';
		}

		function showRemoveGroup(leftover)
		{
			document.getElementById('add-forum-form-' + leftover).style.display = 'none';
			document.getElementById('edit-group-form-' + leftover).style.display = 'none';
			document.getElementById('remove-group-form-' + leftover).style.display = 'block';
		}

		function hideRemoveGroup(rhubarb)
		{
			document.getElementById('remove-group-form-' + rhubarb).style.display = 'none';
		}

		function showAddForum(lipstick)
		{
			document.getElementById('edit-group-form-' + lipstick).style.display = 'none';
			document.getElementById('remove-group-form-' + lipstick).style.display = 'none';

			document.getElementById('add-forum-' + lipstick).style.display = 'none';
			document.getElementById('cancel-add-forum-' + lipstick).style.display = 'block';
			document.getElementById('add-forum-form-' + lipstick).style.display = 'block';
		}

		function hideAddForum(tulip)
		{
			document.getElementById('add-forum-' + tulip).style.display = 'block';
			document.getElementById('cancel-add-forum-' + tulip).style.display = 'none';
			document.getElementById('add-forum-form-' + tulip).style.display = 'none';
		}

		function showEditForum()
		{
			document.getElementById('edit-forum-form').style.display = 'block';
			document.getElementById('remove-forum-form').style.display = 'none';

			document.getElementById('add-topic').style.display = 'block';
			document.getElementById('cancel-add-topic').style.display = 'none';
			document.getElementById('add-topic-form').style.display = 'none';
		}

		function hideEditForum()
		{
			document.getElementById('edit-forum-form').style.display = 'none';
			document.getElementById('remove-forum-form').style.display = 'none';

			document.getElementById('add-topic').style.display = 'block';
			document.getElementById('cancel-add-topic').style.display = 'none';
			document.getElementById('add-topic-form').style.display = 'none';
		}

		function showRemoveForum()
		{
			document.getElementById('edit-forum-form').style.display = 'none';
			document.getElementById('remove-forum-form').style.display = 'block';

			document.getElementById('add-topic').style.display = 'block';
			document.getElementById('cancel-add-topic').style.display = 'none';
			document.getElementById('add-topic-form').style.display = 'none';
		}

		function hideRemoveForum()
		{
			document.getElementById('edit-forum-form').style.display = 'none';
			document.getElementById('remove-forum-form').style.display = 'none';

			document.getElementById('add-topic').style.display = 'block';
			document.getElementById('cancel-add-topic').style.display = 'none';
			document.getElementById('add-topic-form').style.display = 'none';
		}

		function emptyTextField(shoehorn)
		{
			if (document.getElementById(shoehorn).value == 'Topic Title' ||
				document.getElementById(shoehorn).value == 'Topic Content' ||
				document.getElementById(shoehorn).value == 'Question' ||
				document.getElementById(shoehorn).value == 'Answer')
			{
				document.getElementById(shoehorn).value = '';
			}
		}

		function showReplyBox()
		{
			document.getElementById('noteReply').style.display = 'block';
			document.getElementById('noteReplyLink').style.display = 'none';
			document.getElementById('noteCancelLink').style.display = 'inline';
		}

		function hideReplyBox()
		{
			document.getElementById('noteReply').style.display = 'none';
			document.getElementById('noteReplyLink').style.display = 'inline';
			document.getElementById('noteCancelLink').style.display = 'none';
		}

		function showNewFolder()
		{
			document.getElementById('new-folder-nav').style.display = 'none';
			document.getElementById('new-folder').style.display = 'block';
		}

		function hideNewFolder()
		{
			document.getElementById('new-folder-nav').style.display = 'block';
			document.getElementById('new-folder').style.display = 'none';
		}

		function showRenameFolder()
		{
			document.getElementById('folder-rename').style.display = 'none';
			document.getElementById('folder-rename-gap').style.display = 'none';
			document.getElementById('folder-remove').style.display = 'none';

			document.getElementById('folder-rename-cancel').style.display = 'inline';

			document.getElementById('folder-rename-form').style.display = 'block';
		}

		function hideRenameFolder()
		{
			document.getElementById('folder-rename-form').style.display = 'none';

			document.getElementById('folder-rename-cancel').style.display = 'none';

			document.getElementById('folder-rename').style.display = 'inline';
			document.getElementById('folder-rename-gap').style.display = 'inline';
			document.getElementById('folder-remove').style.display = 'inline';
		}

		function showRemoveFolder()
		{
			document.getElementById('folder-rename').style.display = 'none';
			document.getElementById('folder-rename-gap').style.display = 'none';
			document.getElementById('folder-remove').style.display = 'none';

			document.getElementById('folder-remove-cancel').style.display = 'inline';

			document.getElementById('folder-remove-form').style.display = 'block';
		}

		function hideRemoveFolder()
		{
			document.getElementById('folder-remove-form').style.display = 'none';

			document.getElementById('folder-remove-cancel').style.display = 'none';

			document.getElementById('folder-rename').style.display = 'inline';
			document.getElementById('folder-rename-gap').style.display = 'inline';
			document.getElementById('folder-remove').style.display = 'inline';
		}

		function selectAllNotes()
		{
			if (document.getElementById('notes-select-all').checked == true)
			{
				for (i = 0; i < document.getElementsByName('noteid[]').length; i++)
				{
					document.getElementsByName('noteid[]')[i].checked = true;
				}
			}
			else
			{
				for (i = 0; i < document.getElementsByName('noteid[]').length; i++)
				{
					document.getElementsByName('noteid[]')[i].checked = false;
				}
			}
		}

		function showLayout(lemonade)
		{
			document.getElementById('pieceLayout1').style.display = 'none';
			document.getElementById('pieceLayout2').style.display = 'none';
			document.getElementById('pieceLayout3').style.display = 'none';
			document.getElementById('pieceLayout4').style.display = 'none';
			document.getElementById('pieceLayout5').style.display = 'none';

			document.getElementById('pieceLayout' + lemonade).style.display = 'block';
		}

		function updateBorderColour(elginmarble)
		{
			document.getElementById('pieceLayout1Border').style.borderColor = elginmarble;
			document.getElementById('pieceLayout1Background').style.backgroundColor = elginmarble;
			document.getElementById('pieceLayout2Border').style.borderColor = elginmarble;
			document.getElementById('pieceLayout2Background').style.backgroundColor = elginmarble;
			document.getElementById('pieceLayout3Border').style.borderColor = elginmarble;
			document.getElementById('pieceLayout3Background').style.backgroundColor = elginmarble;
			document.getElementById('pieceLayout4Border').style.borderColor = elginmarble;
			document.getElementById('pieceLayout4Background').style.backgroundColor = elginmarble;
			document.getElementById('pieceLayout5Border').style.borderColor = elginmarble;
			document.getElementById('pieceLayout5Border').style.backgroundColor = elginmarble;

			document.getElementById('piececolour').value = elginmarble;
		}

		function showHidePersonalBest()
		{
			if (document.getElementById('foliopersonalbestenabled').checked == true)
			{
				document.getElementById('foliopersonalbestpiece').style.display = 'block';
				document.getElementById('foliopersonalbestcollection').style.display = 'block';
			}
			else
			{
				document.getElementById('foliopersonalbestpiece').style.display = 'none';
				document.getElementById('foliopersonalbestcollection').style.display = 'none';
			}
		}

		function expandType(elk)
		{
			document.getElementById('typeCollection').style.display = 'none';
			document.getElementById('typePiece').style.display = 'none';
			document.getElementById('typeNotebook').style.display = 'none';
			document.getElementById('typeNews').style.display = 'none';
			document.getElementById('typeCategorySuggestion').style.display = 'none';

			document.getElementById('type' + elk).style.display = 'block';
			document.getElementById('type' + elk + 'Option').checked = true;
		}

		var panelX = 0;
		var panelY = 0;

		var IE = document.all ? true : false;

		if (!IE)
		{
			document.captureEvents(Event.MOUSEMOVE);
		}

		document.onmousemove = getMouseXY;

		function getMouseXY(e)
		{
			var theWidth = 0;
			var theHeight = 0;
			var yOffset = 0;
			var xOffset = 0;

			// try to get the yoffset:
			if (window.pageYOffset)
			{
				yOffset = window.pageYOffset;
			}
			else if (document.documentElement && document.documentElement.scrollTop)
			{
				yOffset = document.documentElement.scrollTop;
			}
			else if (document.body)
			{
				yOffset = document.body.scrollTop;
			}

			// try to get the xoffset:
			if (window.pageXOffset)
			{
				xOffset = window.pageXOffset;
			}
			else if (document.documentElement && document.documentElement.scrollLeft)
			{
				xOffset = document.documentElement.scrollLeft;
			}
			else if (document.body)
			{
				xOffset = document.body.scrollLeft;
			}

			panelX = xOffset;
			panelY = yOffset;

			if (IE)
			{
				panelX = event.clientX + panelX;
				panelY = event.clientY + panelY;
			}
			else
			{
				panelX = e.pageX;
				panelY = e.pageY;
			}  

			if (panelX < 0)
			{
				panelX = 0;
			}

			if (panelY < 0)
			{
				panelY = 0;
			}

			return true;
		}

		function showPanel(wonderland)
		{
			// grab a reference to the hidden panel:
			var panel = document.getElementById('hiddenpanel');

			// check whether the panel is not currently visible:
			if (panel.style.visibility != 'visible')
			{
				// set the content of the panel:
				panel.innerHTML = wonderland;
			}

			// move the panel to the proper co-ordinates:
			panel.style.left = panelX + 10 + 'px';
			panel.style.top = panelY + 10 + 'px';

			// display the panel:
			panel.style.visibility = 'visible';
		}

		function hidePanel()
		{
			// grab a reference to the hidden panel:
			var panel = document.getElementById('hiddenpanel');

			// hide the panel:
			panel.style.visibility = 'hidden';
		}

		function checkFieldLength(bread, bin)
		{
			if (bin.value.length > bread)
			{
				bin.style.backgroundColor = 'red';
			}
			else
			{
				bin.style.backgroundColor = 'transparent';
			}
		}

		function hideComment(fear)
		{
			var showThis = document.getElementById('commentContent' + fear + 'Hidden');
			var hideThis = document.getElementById('commentContent' + fear + 'Shown');
			var signatureBox = document.getElementById('commentSignature' + fear);
			var ratingBox = document.getElementById('comment' + fear + 'Rating');
			var showThisLink = document.getElementById('commentShowLink' + fear);
			var hideThisLink = document.getElementById('commentHideLink' + fear);

			showThis.style.display = 'block';
			hideThis.style.display = 'none';

			if (signatureBox != null)
			{
				signatureBox.style.display = 'none';
			}

			if (ratingBox != null)
			{
				ratingBox.style.display = 'none';
			}

			showThisLink.style.display = 'inline';
			hideThisLink.style.display = 'none';

			// check if we already have a HTTP object:
			if(XMLHttpRequestObject)
			{
				// open request to the server:
				XMLHttpRequestObject.open('GET', '/v2/users/comments/hidecomment.php?c=' + fear, true);

				// close the connection:
				XMLHttpRequestObject.send(null);
			}
		}

		function unhideComment(dread)
		{
			var showThis = document.getElementById('commentContent' + dread + 'Shown');
			var hideThis = document.getElementById('commentContent' + dread + 'Hidden');
			var signatureBox = document.getElementById('commentSignature' + dread);
			var ratingBox = document.getElementById('comment' + dread + 'Rating');
			var showThisLink = document.getElementById('commentHideLink' + dread);
			var hideThisLink = document.getElementById('commentShowLink' + dread);

			showThis.style.display = 'block';
			hideThis.style.display = 'none';

			if (signatureBox != null)
			{
				signatureBox.style.display = 'block';
			}

			if (ratingBox != null)
			{
				ratingBox.style.display = 'block';
			}

			showThisLink.style.display = 'inline';
			hideThisLink.style.display = 'none';

			// check if we already have a HTTP object:
			if(XMLHttpRequestObject)
			{
				// open request to the server:
				XMLHttpRequestObject.open('GET', '/v2/users/comments/showcomment.php?c=' + dread, true);

				// close the connection:
				XMLHttpRequestObject.send(null);
			}
		}

		function increaseCommentRating(spire, staircase, chapel)
		{
			// grab a reference to the comment's rating panel:
			var panel = document.getElementById('comment' + spire + 'Rating');

			var polish = (staircase + 1);

			polish += (staircase + 1 == 1 ? ' person' : ' people');

			polish += ' found this comment helpful out of ' + (chapel + 1);

			polish += (chapel + 1 == 1 ? ' person' : ' people');

			// set the content of the panel:
			panel.innerHTML = polish;

			// check if we already have a HTTP object:
			if(XMLHttpRequestObject)
			{
				// open request to the server:
				XMLHttpRequestObject.open('GET', '/v2/tools/comments/ratingup.php?c=' + spire, true);

				// close the connection:
				XMLHttpRequestObject.send(null);
			}
		}

		function decreaseCommentRating(steeple, chimney, church)
		{
			// grab a reference to the comment's rating panel:
			var panel = document.getElementById('comment' + steeple + 'Rating');

			var polish = chimney;

			polish += (chimney == 1 ? ' person' : ' people');

			polish += ' found this comment helpful out of ' + (church + 1);

			polish += (church + 1 == 1 ? ' person' : ' people');

			// set the content of the panel:
			panel.innerHTML = polish;

			// check if we already have a HTTP object:
			if(XMLHttpRequestObject)
			{
				// open request to the server:
				XMLHttpRequestObject.open('GET', '/v2/tools/comments/ratingdown.php?c=' + steeple, true);

				// close the connection:
				XMLHttpRequestObject.send(null);
			}
		}

		function moveItems(from, to)
		{
			var panelFrom = document.getElementById(from);
			var panelTo = document.getElementById(to);
			var itemsToMove = panelFrom.options;
			var newOption;
			var i;

			for (i = 0; i < itemsToMove.length; i++)
			{
				if (itemsToMove[i].selected == true)
				{
					if (itemsToMove[i].value != -1)
					{
						newOption = document.createElement('option');

						newOption.text = itemsToMove[i].text;
						newOption.value = itemsToMove[i].value;

						try
						{
							panelTo.add(newOption, null);
						}
						catch (ex)
						{
							panelTo.add(newOption);
						}
					}
				}
			}

			for (i = itemsToMove.length - 1; i > -1; i--)
			{
				if (itemsToMove[i].selected == true)
				{
					if (itemsToMove[i].value != -1)
					{
						panelFrom.remove(i);
					}
				}
			}

			if (panelFrom.options.length == 0)
			{
				newOption = document.createElement('option');

				newOption.text = '(None)';
				newOption.value = -1;

				try
				{
					panelFrom.add(newOption, null);
				}
				catch (ex)
				{
					panelFrom.add(newOption);
				}
			}

			if (panelTo.options.length > 0)
			{
				if (panelTo.options[0].value == -1)
				{
					panelTo.remove(0);
				}
			}

			return;
		}

		function selectAllItems(boxA)
		{
			var panelA = document.getElementById(boxA);

			for (var i = 0; i < panelA.options.length; i++)
			{
				if (panelA.options[i].value != -1)
				{
					panelA.options[i].selected = true;
				}
			}

			return;
		}

		function orderItems(from, amount)
		{
			var panelFrom = document.getElementById(from);
			var itemCount = panelFrom.options.length;
			var newOption;
			var newOrder = new Array();

			if (amount < 0)
			{
				for (i = itemCount - 1; i > -1; i--)
				{
					if (panelFrom.options[i].selected == true)
					{
						if (i > 0)
						{
							newOrder[i] = i + amount;
							newOrder[i + amount] = i;
							i = i + amount;
						}
						else
						{
							newOrder[i] = i;
						}
					}
					else
					{
						newOrder[i] = i;
					}
				}
			}
			else
			{
				for (i = 0; i < itemCount; i++)
				{
					if (panelFrom.options[i].selected == true)
					{
						if (i < itemCount - 1)
						{
							newOrder[i] = i + amount;
							newOrder[i + amount] = i;
							i = i + amount;
						}
						else
						{
							newOrder[i] = i;
						}
					}
					else
					{
						newOrder[i] = i;
					}
				}
			}

			for (i = 0; i < itemCount; i++)
			{
				newOption = document.createElement('option');

				newOption.text = panelFrom.options[newOrder[i]].text;
				newOption.value = panelFrom.options[newOrder[i]].value;
				newOption.selected = panelFrom.options[newOrder[i]].selected;

				try
				{
					panelFrom.add(newOption, null);
				}
				catch (ex)
				{
					panelFrom.add(newOption);
				}
			}

			for (i = itemCount - 1; i > -1; i--)
			{
				panelFrom.remove(i);
			}

			return;
		}

		// variable to store the HTTP object:
		var XMLHttpRequestObject = false;

		// determine client browser, and create HTTP object:
		if(window.XMLHttpRequest)
		{
			// if the browser is Firefox then use XMLHttpRequest(); to create HTTP object:
			XMLHttpRequestObject = new XMLHttpRequest();
		}
		else if(typeof window.ActiveXObject != 'undefined')
		{
			// otherwise if the browser is Internet Explorer then load ActiveX Control:
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		}

		function ajaxMessageStatus(flowers)
		{
			// check if we already have a HTTP object:
			if(XMLHttpRequestObject)
			{
				// open request to the server:
				XMLHttpRequestObject.open("GET", flowers, true);

				// check for an answer:
				XMLHttpRequestObject.onreadystatechange = function()
				{
					// determine whether a successful callback has been made:
					if((XMLHttpRequestObject.readyState == 4) && (XMLHttpRequestObject.status == 200))
					{
						// use the XML DOM to unpack the incoming data:
						var xmlDocument = XMLHttpRequestObject.responseXML;

						// check the required "Me" navigation button exists:
						if (document.getElementById('navigation-main-me') != null)
						{
							// extract the "Me" button HTML:
							var me = xmlDocument.getElementsByTagName('me').item(0).firstChild.data;

							// display the result:
							document.getElementById('navigation-main-me').innerHTML = me;
						}

						// check the required "Notes" navigation button exists:
						if (document.getElementById('navigation-main-notes') != null)
						{
							// extract the "Notes" button HTML:
							var notes = xmlDocument.getElementsByTagName('notes').item(0).firstChild.data;

							// display the result:
							document.getElementById('navigation-main-notes').innerHTML = notes;
						}

						// grab the entire message counts block:
						var messagetypescounts = xmlDocument.getElementsByTagName('messagetype');

						// intialise the total messages count:
						var totalmessages = 0;

						// loop through each available message type:
						for (var i = 0; i < messagetypescounts.length; i++)
						{
							// check the required message type row exists:
							if (document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-row') != null)
							{
								// determine whether to show this message type:
								if (messagetypescounts.item(i).getAttribute("count") > 0)
								{
									// ensure the message type is visible:
									document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-row').style.display = 'block';
								}
								else
								{
									// ensure the message type is hidden:
									document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-row').style.display = 'none';
								}

								// update the message totals directly on the page:
								document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-count').innerHTML = '<a href="/v2/me.php?t=' + messagetypescounts.item(i).getAttribute("linktype") + '" class="linkDark" title="' + messagetypescounts.item(i).getAttribute("name") + 's">' + messagetypescounts.item(i).getAttribute("count") + '</a>';

								// update the message type plurals:
								if (messagetypescounts.item(i).getAttribute("count") == 1)
								{
									document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-message').innerHTML = messagetypescounts.item(i).getAttribute("name");
								}
								else
								{
									document.getElementById('messages-sidebar-' + messagetypescounts.item(i).getAttribute("name").toLowerCase().replace(/ /g, "-") + 's-message').innerHTML = messagetypescounts.item(i).getAttribute("name") + 's';
								}
							}

							// add this message type count to the total:
							totalmessages += Number(messagetypescounts.item(i).getAttribute("count"));
						}

						// determine whether to show the message types box at all:
						if (totalmessages > 0)
						{
							// display the updated total message count:
							var messagestatus = 'You have <a href="/v2/me.php' + xmlDocument.getElementsByTagName('defaults').item(0).getAttribute("messagegroup") + '" class="linkDark">' + totalmessages + '</a> new item';

							// determine whether to pluralise:
							if (totalmessages != 1)
							{
								messagestatus += 's';
							}

							// complete the sentence:
							messagestatus += '.';

							// ensure the message type is visible:
							var sidebarvisible = 'block';
						}
						else
						{
							// display the updated total message count:
							var messagestatus = 'Nothing new yet.';

							// ensure the message type is hidden:
							var sidebarvisible = 'none';
						}

						// check the required message sidebar exists:
						if (document.getElementById('messages-sidebar') != null)
						{
							document.getElementById('messages-sidebar').style.display = sidebarvisible;
						}

						// check the required message sidebar status item exists:
						if (document.getElementById('messages-sidebar-status') != null)
						{
							document.getElementById('messages-sidebar-status').innerHTML = messagestatus;
						}
					}
				}

				// close the connection:
				XMLHttpRequestObject.send(null);
			}
		}

		// start the timer:
		setInterval('ajaxMessageStatus(\'/v2/users/comments/messagestatus.php\')', 300000);
