﻿/// <reference name="MicrosoftAjax.js" />
/// <reference name="Util.js" />
/// <reference path="../../GlobalJSFunctionsDetail.js" />
/// <reference path="../LiveEdit.js" />

try {
	Sys.Application.add_load(loadOrAjaxUpdate);
}
catch (ex) { }

function FAQQuestionModifyDelete(questionID, action, updatePanelID, topicID) {
	var ysnArchShowForce = -1, doSubmit = true;
	var frmFQL = document.aspnetForm;
	
	switch (action) {
		case "Link":
			{
				doSubmit = false;
				toClipboard('/FAQ.aspx?QID=' + questionID);
				break;
			}
		case "Publish":
		case "Unpublish":
		case "Reject":
		case "Submit":
			frmFQL.strActionFE.value = "faqItem" + action;
			break;
		case "Delete":
			{
				if (confirm("Are you sure you want to delete this item?")) {
					frmFQL.strActionFE.value = "faqItemDelete";
				}
				else
					doSubmit = false;
				break;
			}
		case 'archivePublic':
			ysnArchShowForce = 1;
		case 'archiveHidden':
			if (ysnArchShowForce < 0) ysnArchShowForce = 0;
			if (!(confirm('Are you sure you want to archive this item?'))) {
				ysnArchShowForce = -1;
				return;
			}
			frmFQL.strActionFE.value = 'faqItemArchive';
			frmFQL.ysnArchShowForceFE.value = ysnArchShowForce;
			break;
		default:
			{
				doSubmit = false;
				break;
			}
	}
	
	if (doSubmit)
	{
		frmFQL.ysnSaveFE.value = 1;
		frmFQL.lngFAQQuestionID.value = questionID;
		raiseAsyncPostback(updatePanelID, topicID, 0);
	}
}

function FAQChangeOrder(questionID, direction, updatePanelID, topicID) {
	var frmFQL = document.aspnetForm;
	frmFQL.strActionFE.value = "faqItemChangeOrder";
	frmFQL.ysnSaveFE.value = 1;
	frmFQL.lngFAQQuestionID.value = questionID;
	frmFQL.FAQDirection.value = direction;
	raiseAsyncPostback(updatePanelID, topicID, 0);
}

function openEditWindow(topicID, questionID, isCopy, order, updatePanelID) {
	behavior = $find('editItemBehavior');
	if (behavior) {
		var ifr = document.getElementById('liveEditDialog');
		
		if (showAddDetails)
			ifr.style.height = '446px';
		else
			ifr.style.height = '345px';
		
		var url = '/common/modules/FAQ/FAQLiveEdit.aspx?topicID=' + topicID + '&questionID=' + questionID + '&order=' + order + '&updatePanelID=' + updatePanelID;
		
		if (topicID == 0)
			url = url + '&fromFeatures=1';
		if (isCopy)
			ifr.src = url + '&strPage=itemCopy';
		else
			ifr.src = url + '&strPage=itemForm';
		
		ifr.style.display = 'block';
		behavior.show();
	}
}

function defaultFAQSubmission() {
	verifyFAQSearchForm();
	return false;
}

function verifyFAQSearchForm() {
	document.frmFAQSearch.searchTerms.value = document.aspnetForm.searchTerms.value;
	document.frmFAQSearch.submit();
}

function FAQNavigateCategory() {
	document.frmFAQSearch.TID.value = document.aspnetForm.TID.value;
	document.frmFAQSearch.searchTerms.value = document.aspnetForm.searchTerms.value;
	document.frmFAQSearch.submit();
}

function toggleAnswer(id) {
	var item = document.getElementById(id);
	
	if (item.style.display == 'none')
		item.style.display = 'block';
	else
		item.style.display = 'none';
}

function showAllAnswers(id) {
	var anchor = document.getElementById("p_" + id);
	var item = document.getElementsByTagName("dd");
	
	if (anchor.innerHTML == 'Show All Answers') {
		anchor.innerHTML = 'Hide All Answers';
		for (var i = 0; i < item.length; i++) {
			if (item[i].getAttribute("name") == "dd__" + id)
				item[i].style.display = 'block';
		}
	}
	else {
		anchor.innerHTML = 'Show All Answers';
		for (var i = 0; i < item.length; i++) {
			if (item[i].getAttribute("name") == "dd__" + id)
				item[i].style.display = 'none';
		}
	}
}

function FAQQuestionSaveFE(topicID, questionID, order, updatePanelID) {
	if (FAQQuestionVerify()) {
		var frmFQF = document.frmFAQQuestionForm;
		
		frmFQF.ysnSave.value = 1;
		frmFQF.action = 'FAQLiveEdit.aspx';
		frmFQF.frmFrontEndSave.value = 1;
		frmFQF.topicID.value = topicID;
		frmFQF.order.value = order;
		frmFQF.questionID.value = questionID;
		frmFQF.updatePanelID.value = updatePanelID;
		frmFQF.lngContainerID.value = frmFQF.lngFAQTopicID.value;
		
		if(frmFQF.altURLAction.checked)
			frmFQF.altURLAction.value = 1;
		else
			frmFQF.altURLAction.value = 0;
		
		document.getElementById("btnCancel").disabled = true;
		document.getElementById("btnSave").disabled = true;
		try { document.getElementById("btnSaveAndPublish").disabled = true; } catch (e) { }
		try { document.getElementById("btnSaveAndSubmit").disabled = true; } catch (e) { }
		frmFQF.submit();
	}
}

function FAQQuestionSaveAndPublishFE(topicID, questionID, order, updatePanelID) {
	if (FAQQuestionVerify()) {
		var frmFQF = document.frmFAQQuestionForm;
		
		frmFQF.ysnPublishDetail.value = 1;
		frmFQF.ysnSave.value = 1;
		frmFQF.action = 'FAQLiveEdit.aspx';
		frmFQF.frmFrontEndSave.value = 1;
		frmFQF.topicID.value = topicID;
		frmFQF.order.value = order;
		frmFQF.updatePanelID.value = updatePanelID;
		frmFQF.questionID.value = questionID;
		frmFQF.lngContainerID.value = frmFQF.lngFAQTopicID.value;
		
		if(frmFQF.altURLAction.checked)
			frmFQF.altURLAction.value = 1;
		else
			frmFQF.altURLAction.value = 0;
		
		document.getElementById("btnCancel").disabled = true;
		document.getElementById("btnSave").disabled = true;
		document.getElementById("btnSaveAndPublish").disabled = true;
		frmFQF.submit();
	}
}

function FAQQuestionSaveAndSubmitFE(topicID, questionID, order, updatePanelID) {
	if (FAQQuestionVerify) {
		var frmFQF = document.frmFAQQuestionForm;
		
		frmFQF.ysnSubmitDetail.value = 1;
		frmFQF.ysnSave.value = 1;
		frmFQF.action = 'FAQLiveEdit.aspx';
		frmFQF.frmFrontEndSave.value = 1;
		frmFQF.topicID.value = topicID;
		frmFQF.order.value = order;
		frmFQF.questionID.value = questionID;
		frmFQF.updatePanelID.value = updatePanelID;
		frmFQF.lngContainerID.value = frmFQF.lngFAQTopicID.value;
		
		if(frmFQF.altURLAction.checked)
			frmFQF.altURLAction.value = 1;
		else
			frmFQF.altURLAction.value = 0;
		
		document.getElementById("btnCancel").disabled = true;
		document.getElementById("btnSave").disabled = true;
		document.getElementById("btnSaveAndSubmit").disabled = true;
		frmFQF.submit();
	}
}

function TruncateString(strInput, maxLength, trunText) {
	if (trunText == null)
		trunText = '...';

	var boundry = maxLength - trunText.length;
	if (boundry.length > strInput)
		return strInput.substr(0, boundry) + trunText;
	else
		return strInput;
}

function FAQQuestionVerify() {
	var doSubmit = true;
	var tmpArray;
	var frmFQF = document.frmFAQQuestionForm;
	if (FieldIsEmpty(frmFQF.txtTitle.value)) {
		doSubmit = false;
		alert("The question cannot be blank.");
		return doSubmit;
	}
	if (SQLSafe(frmFQF.txtTitle.value).length > 200) {
		doSubmit = false;
		alert("The question is too long.");
		return doSubmit;
	}
	tmpArray = frmFQF.txtTitle.value.split(' ');
	for (var i = 0; i < tmpArray.length; i++) {
		if (tmpArray[i].length > 30) {
			alert("The question contains more than 30 continuous characters.");
			doSubmit = false;
			return doSubmit;
		}
	}
	if (TrimString(frmFQF.txtDescription.value) == '') {
		doSubmit = false;
		alert("The answer cannot be blank.");
		return doSubmit;
	}
	var objDate = new dateValidator();
	objDate.setStartDate(frmFQF.dtiStartDate.value);
	objDate.setEndDate(frmFQF.dtiEndDate.value);
	objDate.ysnAllowEqualDates = true;
	if (!objDate.dateOrderValidate()) {
		if (objDate.error) alert(objDate.error);
		else alert("unknown error");
		doSubmit = false;
		return doSubmit;
	}
	frmFQF.altURLLink.value = TrimString(frmFQF.altURLLink.value);
	if (!CheckURL(frmFQF.altURLLink.value)) {
		alert('All URLs must begin with http:// or https:// or ftp://.\nAll internal links must start with a \'/\'');
		frmFQF.altURLLink.focus();
		doSubmit = false;
		return doSubmit;
	}
	if (frmFQF.altURLLink.value.length > 255) {
		doSubmit = false;
		alert("The alternate link may only be 255 characters long.");
	}
	return doSubmit;
}

function CheckURL(urlValue) {
	if (urlValue != '') {
		if ((urlValue.indexOf('http://') == -1) &&
		 (urlValue.indexOf('https://') == -1) &&
		 (urlValue.indexOf('ftp://') == -1) &&
		 (urlValue.substr(0, 1) != '/')) {
			return false;
		}
	}
	return true;
}

// ==== NEW CODE BELOW =====

// Live edit related:
if (!window.FAQLE) {
	FAQLE = function() { };
	window.FAQLE = FAQLE;
}

function raiseAsyncPostback(updatePanelID, topicID, closePopUp) {
	if (closePopUp)
		closeModalDialog('editItemBehavior');
	
	blockMenuSpawn = true;
	faqItemHideMenu();
	faqCategoryHideMenu();
	
	__doPostBack(updatePanelID, topicID);
}

function faqActionsInit() {
	// Set up state variables (they change per item).
	FAQLE.updatePanelID = '';
	FAQLE.topicID = 0;
	FAQLE.questionID = 0;
	FAQLE.counter = 0;
	FAQLE.order = 0;
	FAQLE.status = 0;
	FAQLE.rights = 0;
	
	// Get invisible bullpen (where hidden stuff is stored).
	FAQLE.elemLiveEditBullpen = $get('faqLiveEditBullpen');
	
	// Set up KAM tooltip.
	FAQLE.elemTooltip = $get('faqLiveEditToolTip');
	if (!showToolTip)
		FAQLE.elemTooltip.style.display = 'none';
	
	// Set up category action menu.
	FAQLE.elemCatMenu = $get('faqCategoryLiveEditMoreActions');
	
	FAQLE.elemCatActionNew = $get('faqCategoryNewItem');
	hookAnchorClick(FAQLE.elemCatActionNew,
		function(sender, eventArgs) {
			faqCategoryHideMenu();
			var updatePanel = (FAQLE.updatePanelID + '').trim();
			
			if (updatePanel == 'search' || updatePanel == '')
				openEditWindow(0, 0, 1, 0, 'search');
			else
				openEditWindow(FAQLE.topicID, 0, 0, 0, FAQLE.updatePanelID);
		});
	
	// Set up item action menu.
	FAQLE.elemItemMenu = $get('faqItemLiveEditMoreActions');
	FAQLE.elemItemMoveHeading = $get('faqItemMoveHeading');
	FAQLE.elemItemActionMoveUpIcon = $get('faqItemMoveUpIcon');
	FAQLE.elemItemActionMoveDownIcon = $get('faqItemMoveDownIcon');
	FAQLE.elemItemActionModify = $get('faqItemModify');
	FAQLE.elemItemActionCommands = $get('faqItemCommands');
	hookAnchorClick(FAQLE.elemItemActionModify,
		function(sender, eventArgs) {
			if (!FAQLE.elemItemActionModify.inactive) {
				faqItemHideMenu();
				openEditWindow(FAQLE.topicID, FAQLE.questionID, 0, -1, FAQLE.updatePanelID);
			}
		});
	
	FAQLE.elemItemActionMoveUp = $get('faqItemMoveUp');
	hookAnchorClick(FAQLE.elemItemActionMoveUp,
		function(sender, eventArgs) {
			if (!FAQLE.elemItemActionMoveUp.inactive) {
				faqItemHideMenu();
				FAQChangeOrder(FAQLE.questionID, 'up', FAQLE.updatePanelID, FAQLE.topicID);
			}
		});
	
	FAQLE.elemItemActionMoveDown = $get('faqItemMoveDown');
	hookAnchorClick(FAQLE.elemItemActionMoveDown,
		function(sender, eventArgs) {
			if (!FAQLE.elemItemActionMoveDown.inactive) {
				faqItemHideMenu();
				FAQChangeOrder(FAQLE.questionID, 'down', FAQLE.updatePanelID, FAQLE.topicID);
			}
		});
		
	FAQLE.elemItemActionCopyLink = $get('faqItemCopyLink');
	hookAnchorClick(FAQLE.elemItemActionCopyLink,
		function(sender, eventArgs) {
			FAQQuestionModifyDelete(FAQLE.questionID, 'Link', FAQLE.updatePanelID, FAQLE.topicID);
		});
	
	FAQLE.elemItemActionUnpublish = $get('faqItemUnpublish');
	hookAnchorClick(FAQLE.elemItemActionUnpublish,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'Unpublish', FAQLE.updatePanelID, FAQLE.topicID);
		});

	FAQLE.elemItemActionPublish = $get('faqItemPublish');
	hookAnchorClick(FAQLE.elemItemActionPublish,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'Publish', FAQLE.updatePanelID, FAQLE.topicID);
		});
	
	FAQLE.elemItemActionSubmit = $get('faqItemSubmit');
	hookAnchorClick(FAQLE.elemItemActionSubmit,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'Submit', FAQLE.updatePanelID, FAQLE.topicID);
		});
	
	FAQLE.elemItemActionCopy = $get('faqItemCopy');
	hookAnchorClick(FAQLE.elemItemActionCopy,
		function(sender, eventArgs) {
			faqItemHideMenu();
			
			if (FAQLE.counter > 0)
				openEditWindow(FAQLE.topicID, FAQLE.questionID, 1, -1, 'copy');
			else
				openEditWindow(FAQLE.topicID, FAQLE.questionID, 1, -1, 'search');
		});
	
	FAQLE.elemItemActionArchive = $get('faqItemArchive');
	hookAnchorClick(FAQLE.elemItemActionArchive,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'archiveHidden', FAQLE.updatePanelID, FAQLE.topicID);
		});

	FAQLE.elemItemActionDelete = $get('faqItemDelete');
	hookAnchorClick(FAQLE.elemItemActionDelete,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'Delete', FAQLE.updatePanelID, FAQLE.topicID);
		});
	
	FAQLE.elemItemActionNewAnchor = $get('faqItemNewItemAnchor');
	FAQLE.elemItemActionNew = $get('faqItemNewItem');
	hookAnchorClick(FAQLE.elemItemActionNew,
		function(sender, eventArgs) {
			if (!FAQLE.elemItemActionNew.inactive) {
				faqItemHideMenu();
				openEditWindow(FAQLE.topicID, 0, 0, FAQLE.order, FAQLE.updatePanelID);
			}
		});
	
	FAQLE.elemItemActionReject = $get('faqItemReject');
	hookAnchorClick(FAQLE.elemItemActionReject,
		function(sender, eventArgs) {
			faqItemHideMenu();
			FAQQuestionModifyDelete(FAQLE.questionID, 'Reject', FAQLE.updatePanelID, FAQLE.topicID);
		});
}

function faqCategoryHideMenu() {
	var categoryID = FAQLE.topicID;
	var controlID = 'LiveEditControl_' + categoryID;
	var liveEditControl = $get(controlID);
	
	if (!liveEditControl)
		return;
	
	// Change z-index, for proper display.
	var parentContainer = resolveLiveEditContainer(liveEditControl);
	parentContainer.style.zIndex = 0;
	
	// Hide any possibly visible tool-tip.
	faqHideTooltip(controlID);
	
	// Hide KAM unless KAMs are set to always show.
	if (!showLiveEditControls)
		liveEditControl.style.display = 'none';
	
	// Hide action menu for category.
	FAQLE.elemCatMenu.style.display = 'none';
	
	if (FAQLE.elemCatMenu.parentNode) {
		FAQLE.elemCatMenu.parentNode.removeChild(FAQLE.elemCatMenu);
		FAQLE.elemLiveEditBullpen.appendChild(FAQLE.elemCatMenu);
	}
}

function faqItemHideMenu() {
	var itemID = FAQLE.questionID;
	var controlID = 'LiveEditControl' + itemID;
	var controlIDSingle = 'LiveEditControlSingle' + itemID;
	var liveEditControl = $get(controlID);
	var liveEditControlSingle = $get(controlIDSingle);
	
	if (!liveEditControl && !liveEditControlSingle)
		return;

	// Change z-index, for proper display.
	var parentContainer;
	if (liveEditControl)
		parentContainer = resolveLiveEditContainer(liveEditControl);
	else
		parentContainer = resolveLiveEditContainer(liveEditControlSingle);
	parentContainer.style.zIndex = 0;
	
	
	// Hide action menu for item.
	FAQLE.elemItemMenu.style.display = 'none';
	
	if (FAQLE.elemItemMenu.parentNode) {
		FAQLE.elemItemMenu.parentNode.removeChild(FAQLE.elemItemMenu);
		FAQLE.elemLiveEditBullpen.appendChild(FAQLE.elemItemMenu);
	}
	
	// Hide any possibly visible tool-tip.
	faqHideTooltip(controlID);
	
	// Hide KAM unless KAMs are set to always show.
	if (!showLiveEditControls) {
		if (liveEditControlSingle)
			liveEditControlSingle.style.display = 'none';
		liveEditControl.style.display = 'none';
	}
}

function faqItemMouseOver(sender, event, itemID, isSA) {
	if (blockMenuSpawn)
		return;
	var controlID;
	FAQLE.questionID = itemID;
	if(!isSA)
		controlID = 'LiveEditControl' + itemID;
	else
		controlID = 'LiveEditControlSingle' + itemID;
	
	var liveEditControl = $get(controlID);
	
	// Make sure previous KAMs are hidden if they need to be.
	if (!showLiveEditControls) {
		if (previousKAMControl)
			previousKAMControl.style.display = 'none';
		previousKAMControl = liveEditControl;
	}
	
	// Change z-index, for proper display.
	var parentContainer = resolveLiveEditContainer(liveEditControl);
	parentContainer.style.zIndex = 2;
	
	// Move action category menu to container for category.
	liveEditControl.appendChild(FAQLE.elemItemMenu);
	
	// Show tool-tip (if they are not disabled).
	faqShowTooltip(controlID);
	
	// Show KAM.
	liveEditControl.style.display = 'block';
}

function faqItemMouseOut(sender, event) {
	// Ignore when mouse leaves child controls within the live edit control.
	event = (window.event ? window.event : event);
	var toElement = (event.toElement ? event.toElement : event.relatedTarget);

	if (!elemInsideOrEq(sender, toElement)) {		
			faqItemHideMenu();	
	 }
}

function faqCategoryMouseOver(sender, event, categoryID) {
	if (blockMenuSpawn)
		return;
	
	FAQLE.topicID = categoryID;
	var controlID = 'LiveEditControl_' + categoryID;
	var liveEditControl = $get(controlID);
	
	// Make sure previous KAMs are hidden if they need to be.
	if (!showLiveEditControls) {
		if (previousKAMControl)
			previousKAMControl.style.display = 'none';
		previousKAMControl = liveEditControl;
	}
	
	// Move action category menu to container for category.
	liveEditControl.appendChild(FAQLE.elemCatMenu);
	
	// Change z-index, for proper display.
	var parentContainer = resolveLiveEditContainer(liveEditControl);
	parentContainer.style.zIndex = 2;
	
	// Show tool-tip (if they are not disabled).
	faqShowTooltip(controlID);
	
	// Show KAM.
	liveEditControl.style.display = 'block';
}

function faqCategoryMouseOut(sender, event) {
	// Ignore when mouse leaves child controls within the live edit control.
	event = (window.event ? window.event : event);
	var toElement = (event.toElement ? event.toElement : event.relatedTarget);
	
	if (!elemInsideOrEq(sender, toElement))
		faqCategoryHideMenu();
}

// Hides tool-tip text for a category.
function faqHideTooltip(controlID) {
	var liveEditControl = $get(controlID);
	
	if (FAQLE.elemTooltip.parentNode)
		FAQLE.elemTooltip.parentNode.removeChild(FAQLE.elemTooltip);
	
	FAQLE.elemTooltip.style.display = 'none';
}

// Shows tool-tip text for a category (if enabled).
function faqShowTooltip(controlID) {
	var liveEditControl = $get(controlID);
	liveEditControl.appendChild(FAQLE.elemTooltip);
	
	if (FAQLE.elemTooltip) {
		if (showToolTip)
			FAQLE.elemTooltip.style.display = 'block';
		else
			FAQLE.elemTooltip.style.display = 'none';
	}
}

// Summons action menu for a category.
function faqActionsCategory(topicID, catElemID, updatePanelID, status, rights) {
	FAQLE.updatePanelID = updatePanelID;
	FAQLE.questionID = 0;
	FAQLE.topicID = topicID;
	FAQLE.counter = 0;
	FAQLE.status = status;
	FAQLE.rights = rights;
	
	liveEditCommonCategory(
		$get(catElemID),
		FAQLE.elemTooltip,
		FAQLE.elemCatMenu,
		$get('LiveEditControl_' + topicID),'faqCategoryLiveEditMoreActions');
}

// Summons action menu for an item.
function faqActionsItem(questionID, updatePanelID, topicID, order, counter, status, rights, lastItem, isSA) {	
	FAQLE.updatePanelID = updatePanelID;
	FAQLE.topicID = topicID;
	FAQLE.questionID = questionID;
	FAQLE.counter = counter;
	FAQLE.order = order;
	FAQLE.status = status;
	FAQLE.rights = rights;
	FAQLE.lastItem = lastItem;
	
	// Determine if modify is available.
	if (rights >= PUBLISHER || rights == AUTHOR && status < MIN_PUBLISHED) {
		FAQLE.elemItemActionModify.className = 'big modify';
		FAQLE.elemItemActionModify.title = '';
		FAQLE.elemItemActionModify.inactive = false;
	}
	else {
		FAQLE.elemItemActionModify.className = 'big modify inactive';
		FAQLE.elemItemActionModify.title = 'You do not have rights to modify this item.'
		FAQLE.elemItemActionModify.inactive = true;
	}
	
	// Determine if move is available and how it should display.
	var MOVE_ACTIVE_UP = '/App_Themes/CP/Images/IconMoveUp.png';
	var MOVE_ACTIVE_DOWN = '/App_Themes/CP/Images/IconMoveDown.png';
	var MOVE_INACTIVE_UP = '/App_Themes/CP/Images/IconMoveUpInactive.png';
	var MOVE_INACTIVE_DOWN = '/App_Themes/CP/Images/IconMoveDownInactive.png';
	
	var moveDisplay = (rights > AUTHOR ? 'inline' : 'none')
	FAQLE.elemItemMoveHeading.style.display = moveDisplay;
	FAQLE.elemItemActionMoveUp.style.display = moveDisplay;
	FAQLE.elemItemActionMoveDown.style.display = moveDisplay;

	var moveText;
	if (rights > AUTHOR) {
		if (counter < 0) {
			FAQLE.elemItemActionMoveUp.className = 'moveUp inactive';
			FAQLE.elemItemActionMoveUp.inactive = true;
			FAQLE.elemItemActionMoveDown.className = 'moveDown inactive';
			FAQLE.elemItemActionMoveDown.inactive = true;
			
			switch (counter) {
				case -2: // Feature Area
					moveText = 'Can only move items from module page.'
					break;
				default: // Search Screen
					moveText = 'Can\'t move items on the search page.';
					break;
			}
			
			FAQLE.elemItemActionMoveUpIcon.src = MOVE_INACTIVE_UP;
			FAQLE.elemItemActionMoveDownIcon.src = MOVE_INACTIVE_DOWN;
			FAQLE.elemItemActionMoveUpIcon.title = moveText;
			FAQLE.elemItemActionMoveUpIcon.alt = moveText;
			FAQLE.elemItemActionMoveDownIcon.title = moveText;
			FAQLE.elemItemActionMoveDownIcon.alt = moveText;
		}
		else {
			if (counter == 1) {
				moveText = 'This item is first in the list and can\'t be moved any higher.';
				FAQLE.elemItemActionMoveUpIcon.src = MOVE_INACTIVE_UP;
				FAQLE.elemItemActionMoveUp.className = 'moveUp inactive';
				FAQLE.elemItemActionMoveUp.alt = 'This item is first in the list and can\'t be moved any higher.';
				FAQLE.elemItemActionMoveUp.inactive = true;
			}
			else {
				moveText = 'Move Up';
				FAQLE.elemItemActionMoveUpIcon.src = MOVE_ACTIVE_UP;
				FAQLE.elemItemActionMoveUp.className = 'moveUp';
				FAQLE.elemItemActionMoveUp.inactive = false;
			}
			
			FAQLE.elemItemActionMoveUpIcon.title = moveText;
			FAQLE.elemItemActionMoveUpIcon.alt = moveText;
			
			if (lastItem) {
				moveText = 'This item is last in the list and can\'t be moved any lower.';
				FAQLE.elemItemActionMoveDownIcon.src = MOVE_INACTIVE_DOWN;
				FAQLE.elemItemActionMoveDown.className = 'moveDown inactive';
				FAQLE.elemItemActionMoveDown.inactive = true;
			}
			else {
				moveText = 'Move Down';
				FAQLE.elemItemActionMoveDownIcon.src = MOVE_ACTIVE_DOWN;
				FAQLE.elemItemActionMoveDown.className = 'moveDown';
				FAQLE.elemItemActionMoveDown.inactive = false;
			}
			
			FAQLE.elemItemActionMoveDownIcon.title = moveText;
			FAQLE.elemItemActionMoveDownIcon.alt = moveText;
		}
	}
	
	// Determine visiblity of submit/reject/publish/unpublish.
	FAQLE.elemItemActionSubmit.style.display = 'none';
	FAQLE.elemItemActionReject.style.display = 'none';
	FAQLE.elemItemActionPublish.style.display = 'none';
	FAQLE.elemItemActionUnpublish.style.display = 'none';

	if (rights > AUTHOR) {
		if (status > MAX_DRAFT)
			FAQLE.elemItemActionUnpublish.style.display = '';
		else
			FAQLE.elemItemActionPublish.style.display = '';

		if (status == SUBMITTED)
			FAQLE.elemItemActionReject.style.display = '';
	}
	else if (status != SUBMITTED && status <= MAX_DRAFT)
			FAQLE.elemItemActionSubmit.style.display = '';
	
	// Determine visiblity of delete/archive.
	FAQLE.elemItemActionArchive.style.display = 'none';
	FAQLE.elemItemActionDelete.style.display = 'none';
	
	if (rights > AUTHOR) {
		// Only publisher or higher can delete.
		if (status > MAX_DRAFT)
			FAQLE.elemItemActionArchive.style.display = '';
		else
			FAQLE.elemItemActionDelete.style.display = '';
	}
	else if(status <= MAX_DRAFT)
		FAQLE.elemItemActionDelete.style.display = '';
	
	// Determine visiblity/behavior of new.
	if (counter > 0) {
		if (rights >= AUTHOR) {
			FAQLE.elemItemActionNew.style.display = '';
			FAQLE.elemItemActionNewAnchor.title = '';
			FAQLE.elemItemActionNewAnchor.className = 'addItem';
			FAQLE.elemItemActionNew.inactive = false;
		}
		else
			FAQLE.elemItemActionNew.style.display = 'none';
	}
	else if (counter > -2) {
		FAQLE.elemItemActionNew.style.display = '';
		FAQLE.elemItemActionNewAnchor.title = 'You cannot add item on search screen.';
		FAQLE.elemItemActionNewAnchor.className = 'addItem inactive';
		FAQLE.elemItemActionNew.inactive = true;
	}
	else
		FAQLE.elemItemActionNew.style.display = 'none';

	// Apply even/odd classes.
	var listItems = FAQLE.elemItemActionCommands.firstChild;
	var lc = 0;
	
	while (listItems != null) {
		if (listItems.nodeType == 1 && listItems.style.display != 'none')
			listItems.className = (((++lc) % 2) == 0 ? 'even' : '');
		listItems = listItems.nextSibling;
	}

	// Show menu.
	if (!isSA)
		liveEditCommonItem(
		FAQLE.elemTooltip,
		FAQLE.elemItemMenu,
		$get('LiveEditControl' + questionID), 'faqItemLiveEditMoreActions', false);
	else
		liveEditCommonItem(
		FAQLE.elemTooltip,
		FAQLE.elemItemMenu,
		$get('LiveEditControlSingle' + questionID), 'faqItemLiveEditMoreActions', false);
}