2142 lines
92 KiB
JavaScript
2142 lines
92 KiB
JavaScript
var menuItemName = '';
|
|
var nid = -1;
|
|
var parentNid = -1;
|
|
var ysnContent = 0;
|
|
var objectStatus = 0;
|
|
// Ignore these, they're used internally, use the change... variables (e.g. changeType instead of moveType):
|
|
var moveNid, moveParentNid, moveType, moveColor, moveBorder, movePadding;
|
|
var submitCommandsTo = 'PageMenu.aspx';
|
|
var frmSubmitTo = document.frmCategories;
|
|
var changeParentID = -1; // Item / Category that is being moved
|
|
var changeType = -1; // Values: 1 = Category, 2 = Item
|
|
var childType = -1; // Ditto
|
|
var currentRightsChar = '';
|
|
var changeWasBullpen = false; // Agenda Creator: Set to true if coming from bullpen, else false.
|
|
var lastType = -1; // Ditto
|
|
var lastNid, lastSelf, spawnMode;
|
|
var homenodes = new Array();
|
|
var openToNodes = new Array(); // AJAX
|
|
var openToNodePointer = -1; // AJAX
|
|
var openToSwitchType = 0xffff;
|
|
var whenCounterZero = null;
|
|
var lastMouseX, lastMouseY;
|
|
var moduleMode; // Agenda Creator: 2 = Complex, 1 = Only Uploaded File Agendas.
|
|
|
|
// Menu items:
|
|
var divSubmenus, divSubMenuOwner, mnuAdd, mnuAddChild, mnuAddAbove,
|
|
mnuAddFirst, mnuAddLast, mnuAddChildAbove, mnuAddChildBelow,
|
|
mnuAddChildFirst, mnuAddChildLast, mnuViewContentList,
|
|
mnuEditPublishedContent, mnuProperties, mnuItemProperties, mnuDelete, mnuMove,
|
|
mnuExitMove, mnuExitMoveMode, mnuInsertAbove,
|
|
mnuInsertBelow, mnuInsertFirst, mnuInsertLast, mnuInsertChildAbove,
|
|
mnuInsertChildBelow, mnuInsertChildFirst, mnuInsertChildLast,
|
|
mnuPageAddress, mnuRejectToggle, mnuSubmitToggle, mnuMoveMenuItem,
|
|
mnuUnpublishToggle, mnuPublishToggle, mnuAddressHold, mnuCopy, mnuCopyPiece,
|
|
mnuViewArchived, mnuDivider, mnuDividerII, mnuDividerIII, mnuDividerIIII,
|
|
mnuDividerV, mnuAddWindow, mnuAddWindowSpawner, mnuAddII, mnuArchivePub,
|
|
mnuArchiveHid, elemFName, mnuAddBelow, mnuPermissions, mnuCopyName,
|
|
mnuViewItemSubItems, mnuAddPiece, mnuDeclineToggle, mnuPostponeToggle, mnuApproveToggle,
|
|
mnuRemoveFromAgenda, mnuViewPiece, mnuPreviewItem, mnuInsertPieceAbove,
|
|
mnuInsertPieceBelow, mnuInsertPieceFirst, mnuInsertPieceLast, mnuUploadMinutes,
|
|
mnuAddPieceAbove, mnuAddPieceBelow, mnuAddPieceFirst, mnuAddPieceLast,
|
|
mnuPublishToggle2, mnuRejectToggle2, mnuViewItem, mnuViewHistory, mnuUnPublish;
|
|
|
|
// Debug variables:
|
|
var debugPresent = false;
|
|
var debugOpenArgs = '';
|
|
var debugMenuStatus = 'N/A';
|
|
var debugMenuPerms = 'N/A';
|
|
var debugMenuParentPerms = 'N/A';
|
|
var debugMenuType = 'N/A';
|
|
var debugCallNum = 0;
|
|
|
|
// From AJAX Changes:
|
|
var allowPieceChildren = false;
|
|
var hasMinutes = false;
|
|
var moduleID = 0;
|
|
var imagesPath = '/common/images/PageMenu/';
|
|
var usageFlag = 1;
|
|
var extraParam1 = 0;
|
|
var extraParam2 = 0;
|
|
|
|
// Globalization Languages EN-US, EN-UK, EN-AU:
|
|
var EXPAND_TEXT_EN = 'Expand Current View';
|
|
var COLLAPSE_TEXT_EN = 'Collapse Current View';
|
|
|
|
function SetPagePermissionsCheck(ch, id, type) {
|
|
if (ch) {
|
|
switch (type) { // The break tags after each section are intentionally missing
|
|
case 'owner': {
|
|
document.getElementById('ysnPublish_' + id).checked = true;
|
|
document.getElementById('ysnPublish_' + id).disabled = true;
|
|
}
|
|
case 'publish': {
|
|
document.getElementById('ysnAuthor_' + id).checked = true;
|
|
document.getElementById('ysnAuthor_' + id).disabled = true;
|
|
}
|
|
case 'author': {
|
|
document.getElementById('ysnView_' + id).checked = true;
|
|
document.getElementById('ysnView_' + id).disabled = true;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
else {
|
|
switch (type) {
|
|
case 'owner': {
|
|
document.getElementById('ysnPublish_' + id).disabled = false;
|
|
break;
|
|
}
|
|
case 'publish': {
|
|
document.getElementById('ysnAuthor_' + id).disabled = false;
|
|
break;
|
|
}
|
|
case 'author': {
|
|
document.getElementById('ysnView_' + id).checked = false;
|
|
break;
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
function copyName() {
|
|
showCopyLinkWindowUsingRelatedLink(menuItemName);
|
|
}
|
|
function elemNameByType(elemType) {
|
|
switch (elemType) {
|
|
case 1: return 'category';
|
|
case 2: return 'item';
|
|
case 3: return 'piece';
|
|
default: return '???';
|
|
}
|
|
}
|
|
window.lastICID = -2;
|
|
window.crapICID = -3;
|
|
function changeMenuTextHighlight(icID, elemType, isHighlighted) {
|
|
var txt1 = elemNameByType(elemType) + icID, txt2 = (isHighlighted ? '#6ea8d8' : '');
|
|
setTimeout('var elemTmp = document.getElementById("' + txt1 + '"); if (elemTmp) elemTmp.style.backgroundColor = "' + txt2 + '"', 15);
|
|
}
|
|
function topMostParent(nodeChild) {
|
|
var elemFallBack = document.getElementById('div0');
|
|
|
|
while (nodeChild) {
|
|
if (nodeChild && nodeChild.className && nodeChild.className == 'topmenu')
|
|
return nodeChild;
|
|
nodeChild = nodeChild.parentNode;
|
|
}
|
|
|
|
return elemFallBack;
|
|
}
|
|
function addSubMenusDepartmentList(nid) {
|
|
|
|
if (document.getElementById("menuline" + lastNid)) document.getElementById("menuline" + lastNid).style.backgroundColor = '';
|
|
if (document.getElementById("category" + lastNid)) document.getElementById("category" + lastNid).style.backgroundColor = '';
|
|
|
|
document.getElementById("menuline" + nid).style.backgroundColor = '#6ea8d8';
|
|
document.getElementById("category" + nid).style.backgroundColor = '#6ea8d8';
|
|
}
|
|
function addSubMenusGroupAdmin(nid) {
|
|
if (lastNid > 0) {
|
|
document.getElementById("menuline" + lastNid).style.backgroundColor = '';
|
|
document.getElementById("category" + lastNid).style.backgroundColor = '';
|
|
}
|
|
document.getElementById("menuline" + nid).style.backgroundColor = '#6ea8d8';
|
|
document.getElementById("category" + nid).style.backgroundColor = '#6ea8d8';
|
|
}
|
|
// == Displays Category Sub-Menu ==
|
|
// spawnMethod: method used to bring up menu, /w values
|
|
// 1 = moused over
|
|
// 2 = right clicked
|
|
// fname: display name for menu (Home)
|
|
// x: menu id (category1)
|
|
// content: is there content (1, 0), pages-specific functionality
|
|
// status: status
|
|
// mode: user mode (ad, o, p, a, v)
|
|
// modeParent: user mode for parent (ad, o, p, a, v)
|
|
// parent: is this menu item a parent (true, false)
|
|
//
|
|
// Security Note (LU - April 30th, 2007):
|
|
// Parent permissions mean nothing to categories
|
|
// the security protects the items, not the categories
|
|
// that's why categories can be added to categories
|
|
// a user only has view permissions for. There is no
|
|
// true inheritance and sub-categories are an illusion.
|
|
//
|
|
function addSubMenus(spawnMethod, usageFlag, fname, x, content, hasArchived, status, mode, modeParent, parent) {
|
|
defineMenuVariables();
|
|
|
|
//var startTimeUnix, endTimeUnix;
|
|
//startTimeUnix = (new Date()).getTime();
|
|
|
|
if (spawnMethod != spawnMode)
|
|
return;
|
|
|
|
if (lastSelf)
|
|
lastSelf.style.backgroundColor = '';
|
|
|
|
if (spawnMethod == 1)
|
|
spawnMode = 1;
|
|
else if (spawnMethod == 2)
|
|
spawnMode = 2;
|
|
else
|
|
return;
|
|
|
|
if (debugPresent) {
|
|
debugMenuStatus = status; debugMenuPerms = mode;
|
|
debugMenuParentPerms = 'N/A'; debugMenuType = 'Category';
|
|
}
|
|
|
|
var idText;
|
|
switch (usageFlag) {
|
|
case 1:
|
|
case 2: idText = 'NID'; break;
|
|
case 3:
|
|
case 4: idText = 'DID'; break;
|
|
case 5:
|
|
case 6:
|
|
case 11:
|
|
case 12:
|
|
case 17:
|
|
case 19:
|
|
case 20: idText = 'CID'; break;
|
|
case 7:
|
|
case 8: idText = 'ACID'; break;
|
|
case 15:
|
|
case 16: idText = 'CCID'; break;
|
|
default: idText = '#!UNDEF#';
|
|
}
|
|
|
|
childType = 1; // Category.
|
|
objectStatus = status;
|
|
mnuExitMove.style.display = 'none';
|
|
menuItemName = unescape(fname).replace("'", "'");
|
|
if (mnuPublishToggle)
|
|
mnuPublishToggle.innerHTML = 'Publish';
|
|
|
|
var elemTmp;
|
|
if (lastNid || lastNid == 0) {
|
|
if (lastType == 1)
|
|
elemTmp = document.getElementById((lastNid > -1 && usageFlag < 4 ? 'category' : 'catLine') + lastNid);
|
|
else
|
|
elemTmp = document.getElementById('divItem' + lastNid)
|
|
|
|
if (elemTmp) elemTmp.style.backgroundColor = '';
|
|
}
|
|
currentRightsChar = mode;
|
|
nid = x.substr(3);
|
|
if (nid > 0) { parentNid = document.getElementById("div" + nid).parentNode.id.substr(3); }
|
|
else { parentNid = -1; }
|
|
ysnContent = content;
|
|
|
|
if (!elemFName)
|
|
elemFName = document.getElementById("fname");
|
|
var builtHTML = menuItemName;
|
|
if (nid > 0) {
|
|
builtHTML += ' <span';
|
|
if (usageFlag == 19) {
|
|
builtHTML += '>( CID = ' + nid + ' )';
|
|
}
|
|
else if (usageFlag == 20) {
|
|
builtHTML += '>';
|
|
}
|
|
else {
|
|
builtHTML += ' style="cursor: pointer;" tabindex="0" onfocus="this.onmouseover();" onmouseover="this.style.background=\'#6ea8d8\'; this.style.color= \'#ffffff\';" onblur="this.onmouseout();" onmouseout="this.style.background=\'\'; this.style.color= \'\';" onkeypress="this.onclick();" onclick="window.open(\'';
|
|
if (usageFlag == 15) {
|
|
builtHTML += '/Classifieds.aspx?CCID=' + nid;
|
|
}
|
|
else {
|
|
builtHTML += mnuAddressHold.innerHTML
|
|
switch (usageFlag) {
|
|
case 3:
|
|
builtHTML += '?DID=';
|
|
break;
|
|
case 5:
|
|
builtHTML += '?page=list&search=1&CID=';
|
|
break;
|
|
case 11:
|
|
case 12:
|
|
case 17:
|
|
builtHTML += '?CID=';
|
|
break;
|
|
}
|
|
builtHTML += nid;
|
|
}
|
|
builtHTML += '\');">( ' + idText + ' = ' + nid + ' )';
|
|
}
|
|
builtHTML += '</span>';
|
|
}
|
|
elemFName.innerHTML = builtHTML;
|
|
|
|
node = document.getElementById(x);
|
|
pnode = node.parentNode; // div
|
|
|
|
var ysnMenuDOMChildren = isMenuDOMChildren(node, '');
|
|
var ysnHasSubCats = isMenuDOMChildren(node, '_c');
|
|
var ysnHasSubItems = isMenuDOMChildren(node, '_i');
|
|
var ysnHasEditPubCon = mnuEditPublishedContent;
|
|
var elemSubMenus = divSubmenus;
|
|
var ysnCanHaveChildrenCats = (usageFlag != 5 || usageFlag == 5 && nid == 0);
|
|
var notHomeNode = !isHomenode(nid);
|
|
|
|
if (usageFlag == 1)
|
|
document.frmCategories.lngCategoryID.value = node.getAttribute("id").substr(8);
|
|
|
|
elemSubMenus.className = "nodisplay";
|
|
elemSubMenus.style.cssText = "width: 100px;"
|
|
if (mnuViewContentList)
|
|
mnuViewContentList.style.display = "none";
|
|
if (ysnHasEditPubCon)
|
|
mnuEditPublishedContent.style.display = "none";
|
|
hideAllChildren();
|
|
|
|
if (nid != null) {
|
|
if (changeParentID < 1) {
|
|
if (mnuCopyName)
|
|
mnuCopyName.style.display = "block";
|
|
}
|
|
|
|
// Normal Mode
|
|
switch (mode) {
|
|
case "ad":
|
|
case "o":
|
|
if (usageFlag == 7) {
|
|
if (changeParentID < 1) {
|
|
mnuAddFirst.style.display = "inline";
|
|
if (ysnHasSubCats)
|
|
mnuAddLast.style.display = "inline";
|
|
mnuAddII.style.display = "inline";
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
mnuDividerII.style.display = "block";
|
|
if (notHomeNode) {
|
|
mnuAdd.style.display = "block";
|
|
mnuAddAbove.style.display = "inline";
|
|
mnuAddBelow.style.display = "inline";
|
|
mnuMove.style.display = "block";
|
|
if (document.getElementById("category" + nid).getAttribute("cn") == 1)
|
|
mnuDelete.style.display = "block";
|
|
mnuProperties.style.display = "block";
|
|
if (mnuPermissions)
|
|
mnuPermissions.style.display = "block";
|
|
}
|
|
} else {
|
|
// Move Mode
|
|
var modeNode = document.getElementById("divItem" + moveNid);
|
|
mnuMove.style.display = "none";
|
|
if (changeType == 2) {
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMove.style.display = 'block';
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
else if (changeType == 1) {
|
|
// Cannot do these to self or make parental circular reference.
|
|
if (moveNid != nid && noParentCircularRef(node, moveNid)) {
|
|
if (ysnCanHaveChildrenCats) {
|
|
if (content)
|
|
mnuInsertFirst.style.display = "block";
|
|
if (firstCategoryChild(node) != null)
|
|
mnuInsertLast.style.display = "block";
|
|
}
|
|
if (notHomeNode) {
|
|
mnuInsertAbove.style.display = "block";
|
|
mnuInsertBelow.style.display = "block";
|
|
}
|
|
}
|
|
mnuExitMove.style.display = 'block';
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
else if (changeType == 3) {
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
if (changeParentID < 1) {
|
|
if (content == 1) {
|
|
mnuDividerII.style.display = "block";
|
|
if (ysnCanHaveChildrenCats) {
|
|
mnuAddFirst.style.display = "inline";
|
|
if (ysnHasSubCats)
|
|
mnuAddLast.style.display = "inline";
|
|
mnuAddII.style.display = "inline";
|
|
}
|
|
if (ysnHasEditPubCon)
|
|
mnuEditPublishedContent.style.display = "block";
|
|
if (notHomeNode) {
|
|
if (mnuAddChild) {
|
|
mnuAddChild.style.display = "block";
|
|
mnuAddChildFirst.style.display = "inline";
|
|
if (ysnHasSubItems)
|
|
mnuAddChildLast.style.display = "inline";
|
|
}
|
|
var hasLastDivider;
|
|
if (status > 19 && !ysnMenuDOMChildren && mnuArchivePub) {
|
|
if (mnuArchivePub) {
|
|
mnuArchivePub.style.display = "block";
|
|
mnuArchiveHid.style.display = "block";
|
|
}
|
|
else
|
|
mnuDelete.style.display = "block";
|
|
hasLastDivider = true;
|
|
}
|
|
if (mnuPublishToggle) {
|
|
if (status == 14) {
|
|
mnuRejectToggle.style.display = "block";
|
|
hasLastDivider = true;
|
|
}
|
|
if (status > 19) {
|
|
mnuUnpublishToggle.style.display = "block";
|
|
hasLastDivider = true;
|
|
}
|
|
if (status > 9 && status < 20) {
|
|
mnuPublishToggle.style.display = "block";
|
|
hasLastDivider = true;
|
|
}
|
|
}
|
|
if (hasLastDivider)
|
|
mnuDividerIII.style.display = "block";
|
|
}
|
|
if (nid != 0 && mnuViewContentList) // Staff Directory, Facilities
|
|
mnuViewContentList.style.display = "block";
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
if (mnuViewArchived && hasArchived)
|
|
mnuViewArchived.style.display = "block";
|
|
if (usageFlag == 5 || usageFlag == 3 || usageFlag == 17 || usageFlag == 19) {
|
|
if (mnuPermissions && notHomeNode)
|
|
mnuPermissions.style.display = "block";
|
|
}
|
|
else {
|
|
if (mnuPermissions && notHomeNode)
|
|
mnuPermissions.style.display = "block";
|
|
if (status >= 20) {
|
|
if (mnuUnPublish != null)
|
|
mnuUnPublish.style.display = 'block';
|
|
}
|
|
}
|
|
}
|
|
if (notHomeNode) {
|
|
mnuAddAbove.style.display = "inline";
|
|
mnuAddBelow.style.display = "inline";
|
|
mnuAdd.style.display = "block";
|
|
mnuProperties.style.display = "block";
|
|
if (!ysnMenuDOMChildren && ((status < 40 && usageFlag < 5) || ((usageFlag > 4) && (usageFlag < 11)) || (status < 40 && usageFlag > 10 && usageFlag < 13)))
|
|
mnuDelete.style.display = "block";
|
|
else if (!ysnMenuDOMChildren && (usageFlag == 17 || usageFlag == 19))
|
|
mnuDelete.style.display = "block";
|
|
|
|
mnuMove.style.display = "block";
|
|
}
|
|
if (notHomeNode || ysnCanHaveChildrenCats)
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
}
|
|
else {
|
|
// Move Mode
|
|
var modeNode = document.getElementById("divItem" + moveNid);
|
|
mnuMove.style.display = "none";
|
|
|
|
if (changeType == 2) {
|
|
mnuInsertChildFirst.style.display = "block";
|
|
mnuInsertChildLast.style.display = "block";
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMove.style.display = 'block';
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
else if (changeType == 1) {
|
|
// Cannot do these to self or make parental circular reference.
|
|
if (moveNid != nid && noParentCircularRef(node, moveNid)) {
|
|
if (ysnCanHaveChildrenCats) {
|
|
if (content)
|
|
mnuInsertFirst.style.display = "block";
|
|
if (firstCategoryChild(node) != null)
|
|
mnuInsertLast.style.display = "block";
|
|
}
|
|
if (notHomeNode) {
|
|
mnuInsertAbove.style.display = "block";
|
|
mnuInsertBelow.style.display = "block";
|
|
}
|
|
}
|
|
mnuExitMove.style.display = 'block';
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
else if (changeType == 3) {
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case "p":
|
|
if (usageFlag == 7) {
|
|
if (notHomeNode && (changeParentID < 1)) {
|
|
if (mnuAddChild) {
|
|
mnuAddChildFirst.style.display = "inline";
|
|
if (firstItemChild(node) != null)
|
|
mnuAddChildLast.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
}
|
|
mnuDividerII.style.display = "block";
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
}
|
|
}
|
|
else if (changeParentID > 0) {
|
|
if (changeType == 2) {
|
|
mnuInsertChildFirst.style.display = "block";
|
|
mnuInsertChildLast.style.display = "block";
|
|
}
|
|
}
|
|
else if (usageFlag == 1 && status > 20)
|
|
mnuUnPublish.style.display = 'block';
|
|
case "a":
|
|
if (usageFlag == 7) {
|
|
if (changeParentID < 1 && mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
break;
|
|
}
|
|
else {
|
|
if (content == 1) {
|
|
if (ysnCanHaveChildrenCats) {
|
|
mnuAddFirst.style.display = "inline";
|
|
if (ysnHasSubCats)
|
|
mnuAddLast.style.display = "inline";
|
|
mnuAddII.style.display = "inline";
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
mnuDividerII.style.display = "block";
|
|
}
|
|
if (ysnHasEditPubCon)
|
|
mnuEditPublishedContent.style.display = "block";
|
|
if (notHomeNode) {
|
|
if (mnuAddChild) {
|
|
if (usageFlag == 17 || usageFlag == 19) {
|
|
if (status > 19) {
|
|
mnuAddChildFirst.style.display = "inline";
|
|
if (firstItemChild(node) != null)
|
|
mnuAddChildLast.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
mnuAddChildFirst.style.display = "inline";
|
|
if (firstItemChild(node) != null)
|
|
mnuAddChildLast.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
}
|
|
}
|
|
mnuDividerII.style.display = "block";
|
|
}
|
|
if ((usageFlag == 3 || usageFlag == 5 || usageFlag == 11 || usageFlag == 12 || usageFlag == 15 || usageFlag == 17 || usageFlag == 19) && status < 20 && status != 14) {
|
|
mnuSubmitToggle.style.display = "block";
|
|
mnuDividerIII.style.display = "block";
|
|
}
|
|
if (nid != 0 && mnuViewContentList) // Staff Directory, Facilities
|
|
mnuViewContentList.style.display = "block";
|
|
if (mnuViewArchived && hasArchived)
|
|
mnuViewArchived.style.display = "block";
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
}
|
|
if (notHomeNode) {
|
|
mnuAdd.style.display = "block";
|
|
mnuAddAbove.style.display = "inline";
|
|
mnuAddBelow.style.display = "inline";
|
|
}
|
|
if (notHomeNode || ysnCanHaveChildrenCats)
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
break;
|
|
}
|
|
case "v":
|
|
if (content == 1) {
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
if (mnuViewArchived && hasArchived)
|
|
mnuViewArchived.style.display = "block";
|
|
} break;
|
|
|
|
} // end of switch()
|
|
} // end of nid != null check.
|
|
|
|
var subMenuStyles = elemSubMenus.style;
|
|
if (mnuAdd)
|
|
pipedChildList(mnuAdd);
|
|
if (mnuAddII)
|
|
pipedChildList(mnuAddII);
|
|
if (mnuAddChild)
|
|
pipedChildList(mnuAddChild);
|
|
|
|
var dsmOwner = divSubMenuOwner;
|
|
var dsmStyle = divSubMenuOwner.style;
|
|
if (spawnMethod == 1) {
|
|
var elemFirstChild = firstDivChild(node);
|
|
dsmStyle.marginLeft = '10px';
|
|
if (elemFirstChild)
|
|
node.insertBefore(dsmOwner, elemFirstChild);
|
|
else
|
|
node.appendChild(dsmOwner);
|
|
} else {
|
|
var rootItem = topMostParent(node);
|
|
rootItem.insertBefore(dsmOwner, rootItem.firstChild);
|
|
dsmStyle.position = 'absolute';
|
|
dsmStyle.left = (lastMouseX + 2) + 'px';
|
|
dsmStyle.top = (lastMouseY + 2) + 'px';
|
|
}
|
|
|
|
elemFName.style.textAlignment = 'center';
|
|
elemFName.style.display = 'block';
|
|
subMenuStyles.position = 'absolute';
|
|
subMenuStyles.border = '1px solid black';
|
|
subMenuStyles.background = '#eaf0f4';
|
|
subMenuStyles.width = '234px';
|
|
subMenuStyles.display = (isie6or7 ? 'inline' : 'table');
|
|
dsmStyle.display = 'inline';
|
|
|
|
//endTimeUnix = (new Date()).getTime();
|
|
//alert('Operation took ' + (endTimeUnix - startTimeUnix) + ' milliseconds.');
|
|
}
|
|
// == Displays Item Sub-Menu ==
|
|
// spawnMethod: method used to bring up menu, /w values
|
|
// 1 = moused over
|
|
// 2 = right clicked
|
|
// displayName: display name for menu (Home)
|
|
// menuID: menu id (category1)
|
|
// status: status
|
|
// userPermLevel: user mode (ad, o, p, a, v)
|
|
// extraParam1: used by group admin, used by agenda creator to distiguish between normal agendas and bullpen. -KB
|
|
//
|
|
function addItemSubMenus(spawnMethod, usageFlag, displayName, menuID, hasArchived, status, userPermLevel, extraParam1) {
|
|
defineMenuVariables();
|
|
if (lastSelf) lastSelf.style.backgroundColor = '';
|
|
if (spawnMethod != spawnMode) return;
|
|
|
|
if (debugPresent) {
|
|
debugMenuStatus = status;
|
|
debugMenuPerms = 'N/A';
|
|
debugMenuParentPerms = userPermLevel;
|
|
debugMenuType = 'Item';
|
|
}
|
|
|
|
var idText;
|
|
switch (usageFlag) {
|
|
case 1:
|
|
case 2: idText = 'NID'; break;
|
|
case 3:
|
|
case 4: idText = 'EID'; break;
|
|
case 5:
|
|
case 6: idText = 'RID'; break;
|
|
case 7:
|
|
case 8: idText = 'AGID'; break;
|
|
case 11: idText = 'IID'; break;
|
|
case 12: idText = 'LID'; break;
|
|
case 17:
|
|
case 19: idText = ''; break;
|
|
case 15:
|
|
case 16: idText = 'CAID'; break;
|
|
default: idText = '#!UNDEF#';
|
|
}
|
|
|
|
childType = 2; // Item.
|
|
objectStatus = status;
|
|
mnuExitMove.style.display = 'none';
|
|
menuItemName = unescape(displayName).replace("'", "'");
|
|
if (mnuPublishToggle)
|
|
mnuPublishToggle.innerHTML = (usageFlag == 15 ? 'Process' : 'Publish');
|
|
var elemTmp;
|
|
if (lastNid || lastNid == 0) {
|
|
if (lastType == 1) {
|
|
if (lastNid > -1 && usageFlag < 4)
|
|
elemTmp = document.getElementById('category' + lastNid);
|
|
else
|
|
elemTmp = document.getElementById('catLine' + lastNid);
|
|
} else
|
|
elemTmp = document.getElementById('divItem' + lastNid);
|
|
|
|
if (elemTmp)
|
|
elemTmp.style.backgroundColor = '';
|
|
}
|
|
currentRightsChar = userPermLevel;
|
|
nid = menuID.substr(7);
|
|
if (nid > 0)
|
|
parentNid = document.getElementById("divItem" + nid).parentNode.id.substr(3);
|
|
else
|
|
parentNid = -1;
|
|
|
|
var builtHTML = menuItemName;
|
|
if (nid > 0) {
|
|
builtHTML += ' <span style="cursor: pointer;" tabindex="0" onfocus="this.onmouseover();" onmouseover="this.style.background=\'#6ea8d8\'; this.style.color= \'#ffffff\';" onblur="this.onmouseout();" onmouseout="this.style.background=\'\'; this.style.color= \'\';" onkeypress="this.onclick();" onclick="window.open(\'';
|
|
builtHTML += mnuAddressHold.innerHTML;
|
|
|
|
switch (usageFlag) {
|
|
case 3:
|
|
builtHTML += '?EID=' + nid;
|
|
break;
|
|
case 5:
|
|
builtHTML += '?Page=detail&RID=' + nid;
|
|
break;
|
|
case 7:
|
|
if (status >= 40)
|
|
builtHTML += "?AGID=" + nid;
|
|
break;
|
|
case 11:
|
|
builtHTML += '?IID=' + nid;
|
|
break;
|
|
case 12:
|
|
builtHTML += '?LID=' + nid;
|
|
break;
|
|
default:
|
|
builtHTML += nid;
|
|
break;
|
|
}
|
|
if (usageFlag == 15 || usageFlag == 17 || usageFlag == 19)
|
|
builtHTML = menuItemName;
|
|
else
|
|
builtHTML += '\');">( ' + idText + ' = ' + nid + ' )</span>';
|
|
}
|
|
elemFName.innerHTML = builtHTML;
|
|
|
|
node = document.getElementById(menuID);
|
|
pnode = node.parentNode; // always a div.
|
|
|
|
if (usageFlag == 7) {
|
|
allowPieceChildren = (node.getAttribute("cnAllowChildren") == "1" && (moduleMode > 1));
|
|
hasMinutes = (node.getAttribute("cnHasMinutes") == "1");
|
|
}
|
|
else {
|
|
allowPieceChildren = false;
|
|
hasMinutes = false;
|
|
}
|
|
|
|
var elemSubMenus = divSubmenus;
|
|
elemSubMenus.className = "nodisplay";
|
|
elemSubMenus.style.cssText = "width: 100px;"
|
|
hideAllChildren();
|
|
|
|
if (mnuAddChild) {
|
|
if (changeParentID <= 0 && mnuViewItemSubItems && usageFlag != 7) {
|
|
mnuViewItemSubItems.style.display = "block";
|
|
mnuDividerII.style.display = "block";
|
|
}
|
|
switch (userPermLevel) {
|
|
case "ad":
|
|
case "o":
|
|
if (usageFlag == 7) {
|
|
if (status >= 10 && status < 20 && (changeParentID < 1) && !extraParam1)
|
|
mnuPublishToggle.style.display = "block";
|
|
if (status > 19 && !hasMinutes && (changeParentID < 1) && !extraParam1)
|
|
mnuUploadMinutes.style.display = "block";
|
|
}
|
|
case "p":
|
|
if (usageFlag == 7) {
|
|
if (changeParentID < 1) {
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
mnuAddChildBelow.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
if (extraParam1 < 1)
|
|
mnuCopy.style.display = "block";
|
|
if (status > 9 && status < 20)
|
|
mnuPreviewItem.style.display = "block";
|
|
if (!extraParam1) {
|
|
mnuAddChildAbove.style.display = "inline";
|
|
mnuDividerIII.style.display = "block";
|
|
mnuMove.style.display = "block";
|
|
//if (status < 20)
|
|
mnuDelete.style.display = "block";
|
|
if (status > 9 && status < 20 && mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
// Move mode.
|
|
mnuMove.style.display = "none";
|
|
if (changeType == 2) {
|
|
if (nid != moveNid && parentNid == moveParentNid) {
|
|
// Moving above or below *itself* is pointless (no-op).
|
|
if (mnuInsertChildAbove) {
|
|
if (!extraParam1)
|
|
mnuInsertChildAbove.style.display = 'block';
|
|
mnuInsertChildBelow.style.display = 'block';
|
|
}
|
|
}
|
|
mnuExitMove.style.display = 'block';
|
|
}
|
|
else if (changeType == 3 && allowPieceChildren && (status < 20 || node == getBullpenForCatNode(node.parentNode))) {
|
|
mnuInsertPieceFirst.style.display = "block";
|
|
if (firstPieceChild(node) != null)
|
|
mnuInsertPieceLast.style.display = "block";
|
|
mnuExitMove.style.display = 'block';
|
|
}
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
if (changeParentID <= 0) {
|
|
// Normal mode.
|
|
if (nid != 0) {
|
|
if (usageFlag == 19) {
|
|
mnuMove.style.display = "block";
|
|
}
|
|
else {
|
|
mnuDividerIII.style.display = "block";
|
|
mnuAddChildAbove.style.display = "inline";
|
|
mnuAddChildBelow.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
if (mnuItemProperties && usageFlag != 15)
|
|
mnuItemProperties.style.display = "block";
|
|
if (mnuPreviewItem)
|
|
mnuPreviewItem.style.display = "block";
|
|
if (status > 19) {
|
|
if (mnuArchivePub) {
|
|
mnuArchivePub.style.display = "block";
|
|
mnuArchiveHid.style.display = "block";
|
|
}
|
|
else if (usageFlag != 17)
|
|
mnuDelete.style.display = "block";
|
|
}
|
|
if (usageFlag == 17) {
|
|
if (status == 14) {
|
|
mnuRejectToggle2.style.display = "block";
|
|
mnuPublishToggle2.style.display = "block";
|
|
}
|
|
else if (status != 14)
|
|
mnuDelete.style.display = "block";
|
|
mnuViewItem.style.display = "block";
|
|
}
|
|
else if (usageFlag != 12) {
|
|
if (status == 14)
|
|
if (usageFlag == 15 && status == 14)
|
|
mnuDeclineToggle.style.display = "block";
|
|
else
|
|
mnuRejectToggle.style.display = "block";
|
|
if (status >= 20 && usageFlag != 15)
|
|
mnuUnpublishToggle.style.display = "block";
|
|
if (status >= 10 && status < 20 && (usageFlag != 15 || (usageFlag == 15 && status != 13)))
|
|
mnuPublishToggle.style.display = "block";
|
|
}
|
|
mnuMove.style.display = "block";
|
|
if (mnuCopy && (usageFlag != 14))
|
|
mnuCopy.style.display = "block";
|
|
if (usageFlag == 15 && status != 14 && status < 20)
|
|
mnuDelete.style.display = "block";
|
|
else if (usageFlag != 15 && usageFlag != 17) {
|
|
if ((status < 40) && ((usageFlag < 5) || (usageFlag > 10)))
|
|
mnuDelete.style.display = "block";
|
|
else if ((status < 40) && (usageFlag > 4) && (usageFlag < 11))
|
|
mnuDelete.style.display = "block";
|
|
}
|
|
}
|
|
if (mnuViewArchived && hasArchived) {
|
|
mnuDividerII.style.display = "block";
|
|
mnuViewArchived.style.display = "block";
|
|
}
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
// Move mode (items do not have children, do not need to check for circ. ref).
|
|
mnuMove.style.display = "none";
|
|
if (changeType == 2) {
|
|
if (nid != moveNid) {
|
|
// Moving above or below *itself* is pointless (no-op).
|
|
//if (usageFlag == 7 && INSERT DOS HERE <- LOL
|
|
if (mnuInsertChildAbove) {
|
|
mnuInsertChildAbove.style.display = 'block';
|
|
mnuInsertChildBelow.style.display = 'block';
|
|
}
|
|
}
|
|
mnuExitMove.style.display = 'block';
|
|
}
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
break;
|
|
}
|
|
case "a":
|
|
if (usageFlag == 7) {
|
|
if (nid != 0) {
|
|
if (changeParentID < 1) {
|
|
if (extraParam1) {
|
|
mnuDividerII.style.display = "block";
|
|
if (moduleMode > 1) {
|
|
mnuAddPiece.style.display = "block";
|
|
mnuAddPieceFirst.style.display = "inline";
|
|
if (firstPieceChild(node) != null)
|
|
mnuAddPieceLast.style.display = "inline";
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
else if (usageFlag == 17) {
|
|
if (nid != 0) {
|
|
mnuAddChildAbove.style.display = "inline";
|
|
mnuAddChildBelow.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
mnuViewItem.style.display = "block";
|
|
}
|
|
}
|
|
else if (usageFlag == 19) {
|
|
}
|
|
else {
|
|
if (nid != 0) {
|
|
mnuAddChildAbove.style.display = "inline";
|
|
mnuAddChildBelow.style.display = "inline";
|
|
mnuAddChild.style.display = "block";
|
|
var showDivIII = false;
|
|
if ((status < 20) && (status != 14) && (usageFlag != 12) && (usageFlag != 15 || (usageFlag == 15 && status != 13))) {
|
|
mnuSubmitToggle.style.display = "block";
|
|
showDivIII = true;
|
|
}
|
|
if (usageFlag != 15 && status < 20 && mnuItemProperties && usageFlag != 15) {
|
|
mnuItemProperties.style.display = "block";
|
|
showDivIII = true;
|
|
}
|
|
if (mnuCopy) {
|
|
mnuCopy.style.display = "block";
|
|
showDivIII = true;
|
|
}
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
if (showDivIII)
|
|
mnuDividerIII.style.display = "block";
|
|
}
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
if (status < 20 && (usageFlag != 15 || (usageFlag == 15 && status != 14))) {
|
|
mnuDelete.style.display = "block";
|
|
}
|
|
if (mnuViewArchived && hasArchived) {
|
|
mnuDividerII.style.display = "block";
|
|
mnuViewArchived.style.display = "block";
|
|
}
|
|
break;
|
|
}
|
|
case "v":
|
|
if (mnuPageAddress) {
|
|
mnuDivider.style.display = "block";
|
|
mnuPageAddress.style.display = "block";
|
|
}
|
|
if (mnuViewArchived && hasArchived)
|
|
mnuViewArchived.style.display = "block";
|
|
break;
|
|
|
|
} // end of switch()
|
|
} // end of mnuAddChild check
|
|
|
|
var subMenuStyles = elemSubMenus.style;
|
|
if (mnuAdd)
|
|
pipedChildList(mnuAdd);
|
|
if (mnuAddII)
|
|
pipedChildList(mnuAddII);
|
|
if (mnuAddChild)
|
|
pipedChildList(mnuAddChild);
|
|
if (mnuAddPiece)
|
|
pipedChildList(mnuAddPiece);
|
|
|
|
var dsmOwner = divSubMenuOwner;
|
|
var dsmStyle = divSubMenuOwner.style;
|
|
if (spawnMethod == 1) {
|
|
dsmStyle.marginLeft = '10px';
|
|
node.insertBefore(dsmOwner, firstDivChild(node));
|
|
}
|
|
else {
|
|
var rootItem = topMostParent(node);
|
|
rootItem.insertBefore(dsmOwner, rootItem.firstChild);
|
|
dsmStyle.position = 'absolute';
|
|
dsmStyle.left = (lastMouseX + 2) + 'px';
|
|
dsmStyle.top = (lastMouseY + 2) + 'px';
|
|
}
|
|
|
|
elemFName.style.textAlignment = 'center';
|
|
elemFName.style.display = 'block';
|
|
subMenuStyles.position = 'absolute';
|
|
subMenuStyles.border = '1px solid black';
|
|
subMenuStyles.background = '#eaf0f4';
|
|
subMenuStyles.width = '234px';
|
|
subMenuStyles.display = (isie6or7 ? 'inline' : 'table');
|
|
dsmStyle.display = 'inline';
|
|
}
|
|
// == Displays Piece Sub-Menu ==
|
|
// For More Information, See Agenda Creator.
|
|
function addPieceSubMenus(spawnMethod, usageFlag, displayName, menuID, hasArchived, status, userPermLevel, extraParam1) {
|
|
defineMenuVariables();
|
|
if (lastSelf) lastSelf.style.backgroundColor = '';
|
|
if (spawnMethod != spawnMode) return;
|
|
|
|
if (debugPresent) {
|
|
debugMenuStatus = status;
|
|
debugMenuPerms = 'N/A';
|
|
debugMenuParentPerms = userPermLevel;
|
|
debugMenuType = 'Piece';
|
|
}
|
|
|
|
var idText;
|
|
switch (usageFlag) {
|
|
case 7:
|
|
case 8: idText = 'AIID'; break;
|
|
default: idText = '#!UNDEF#';
|
|
}
|
|
|
|
childType = 3; // Piece.
|
|
objectStatus = status;
|
|
mnuExitMove.style.display = 'none';
|
|
menuItemName = unescape(displayName).replace("'", "'");
|
|
if (mnuPublishToggle)
|
|
mnuPublishToggle.innerHTML = 'Publish';
|
|
|
|
var elemTmp;
|
|
if (lastNid || lastNid == 0) {
|
|
if (lastType == 1) {
|
|
if (lastNid > -1 && usageFlag < 4)
|
|
elemTmp = document.getElementById('category' + lastNid);
|
|
else
|
|
elemTmp = document.getElementById('catLine' + lastNid);
|
|
} else
|
|
elemTmp = document.getElementById('divPiece' + lastNid);
|
|
|
|
if (elemTmp)
|
|
elemTmp.style.backgroundColor = '';
|
|
}
|
|
currentRightsChar = userPermLevel;
|
|
nid = menuID.substr(8);
|
|
|
|
var builtHTML = menuItemName;
|
|
if (nid > 0) {
|
|
builtHTML += ' <span style="cursor: pointer;" tabindex="0" onfocus="this.onmouseover();" onmouseover="this.style.background=\'#6ea8d8\'; this.style.color= \'#ffffff\';" onblur="this.onmouseout();" onmouseout="this.style.background=\'\'; this.style.color= \'\';" onkeypress="this.onclick();" onclick="window.open(\'';
|
|
builtHTML += '\');">( ' + idText + ' = ' + nid + ' )</span>';
|
|
}
|
|
elemFName.innerHTML = builtHTML;
|
|
|
|
node = document.getElementById(menuID);
|
|
pnode = node.parentNode; // Always a <DIV>.
|
|
|
|
var elemSubMenus = divSubmenus;
|
|
elemSubMenus.className = "nodisplay";
|
|
elemSubMenus.style.cssText = "width: 100px;";
|
|
hideAllChildren();
|
|
|
|
var tmpAgenda = getAgendaForAgendaItem(nid);
|
|
var bullpenAGID = getBullpenForAgendaItem(nid).id.substr(7);
|
|
var defaultAGID = getDefaultForAgendaItem(nid).id.substr(7);
|
|
var agendaStatus = parseInt(tmpAgenda.getAttribute("cnStatus"));
|
|
var myAGID = tmpAgenda.id.substr(7);
|
|
var isInsideBullpen = (bullpenAGID == myAGID);
|
|
var isInsideDefault = (defaultAGID == myAGID);
|
|
var ysnCanHaveChildrenPieces = !(isInsideBullpen || isInsideDefault);
|
|
var ownerAgendaPublished = (parseInt(tmpAgenda.getAttribute("cnStatus")) > 19);
|
|
|
|
switch (userPermLevel) {
|
|
case "ad":
|
|
case "o":
|
|
case "p":
|
|
if (changeParentID < 1) {
|
|
mnuViewHistory.style.display = "block";
|
|
if (isInsideBullpen || isInsideDefault) {
|
|
if (isInsideBullpen) {
|
|
if (status == 14) {
|
|
// agenda item is submitted inside "Default Items".
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
if (userPermLevel == "ad" || userPermLevel == "o") {
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
else if (status == 15) {
|
|
// agenda item is waiting for approval inside "Default Items".
|
|
if (node.getAttribute("cnUser") == document.forms.ContentMenu.lngUserID.value) {
|
|
// user is next in line to reject/accept the agenda item.
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
|
|
mnuApproveToggle.style.display = "block";
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
else {
|
|
// agenda item is draft inside "Default Items".
|
|
mnuSubmitToggle.style.display = "block";
|
|
mnuDividerIIII.style.display = "block";
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
if (status == 14) {
|
|
// agenda item is submitted inside "Submitted Items".
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
|
|
if (userPermLevel == "ad" || userPermLevel == "o") {
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
else if (status == 15) {
|
|
// agenda item waiting for approval inside "Submitted Items".
|
|
if (node.getAttribute("cnUser") == document.forms.ContentMenu.lngUserID.value) {
|
|
// user is next in line to reject/accept the agenda item.
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
|
|
mnuApproveToggle.style.display = "block";
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
else {
|
|
// agenda item is draft inside "Submitted Items".
|
|
mnuSubmitToggle.style.display = "block";
|
|
mnuDividerIIII.style.display = "block";
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
mnuCopyPiece.style.display = "block";
|
|
|
|
}
|
|
if (moduleMode > 1) {
|
|
// if agenda module allows agenda items (not in simple agenda mode).
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
mnuAddPiece.style.display = "block";
|
|
mnuAddPieceAbove.style.display = "inline";
|
|
mnuAddPieceBelow.style.display = "inline";
|
|
}
|
|
if (isInsideBullpen && (moduleMode > 1)) {
|
|
if (status != 15 && status != 12 && status != 13) {
|
|
// waiting for approval, declined, and postponed
|
|
// agenda items inside "Default Items" cannot be moved out of it.
|
|
mnuMove.style.display = "block";
|
|
}
|
|
mnuCopyPiece.style.display = "block";
|
|
}
|
|
mnuDelete.style.display = "block";
|
|
mnuDividerIII.style.display = "block";
|
|
} // end if(isInsideBullpen || isInsideDefault)
|
|
else if (ownerAgendaPublished) {
|
|
// Inside published agenda.
|
|
mnuViewPiece.style.display = "block";
|
|
if (moduleMode > 1)
|
|
mnuCopyPiece.style.display = "block";
|
|
mnuDividerV.style.display = "block";
|
|
}
|
|
else {
|
|
// Inside unpublished agenda.
|
|
if (moduleMode > 1) {
|
|
mnuMove.style.display = "block";
|
|
mnuCopyPiece.style.display = "block";
|
|
}
|
|
|
|
if (userPermLevel == "ad" || userPermLevel == "o") {
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
|
|
mnuDividerIII.style.display = "block";
|
|
mnuDividerV.style.display = "block";
|
|
mnuRemoveFromAgenda.style.display = "block";
|
|
}
|
|
}
|
|
else {
|
|
// Move Mode
|
|
var modeNode = document.getElementById("divPiece" + moveNid);
|
|
var moveAGID = getAgendaForAgendaItem(moveNid).id.substr(7);
|
|
if (moduleMode > 1)
|
|
mnuMove.style.display = "none";
|
|
|
|
if (changeType == 3) {
|
|
// Cannot do these to self or make parental circular reference. Cannot move into a published agenda.
|
|
if ((agendaStatus < 20 && (moduleMode > 1) && moveNid != nid && noParentCircularRef(node, moveNid)) || (moveAGID == myAGID || (changeWasBullpen && agendaStatus < 20))) {
|
|
if (ysnCanHaveChildrenPieces) {
|
|
mnuInsertPieceFirst.style.display = "block";
|
|
if (firstPieceChild(node) != null)
|
|
mnuInsertPieceLast.style.display = "block";
|
|
}
|
|
mnuInsertPieceAbove.style.display = "block";
|
|
mnuInsertPieceBelow.style.display = "block";
|
|
}
|
|
mnuExitMove.style.display = 'block';
|
|
}
|
|
mnuDivider.style.display = "block";
|
|
mnuExitMoveMode.style.display = "block";
|
|
}
|
|
break;
|
|
case "a":
|
|
mnuViewHistory.style.display = "block";
|
|
if (isInsideBullpen) {
|
|
if ((status != 14) && (status != 15)) {
|
|
mnuSubmitToggle.style.display = "block";
|
|
mnuDividerIIII.style.display = "block";
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
}
|
|
else if (status == 15) {
|
|
if (node.getAttribute("cnUser") == document.forms.ContentMenu.lngUserID.value) {
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
|
|
mnuApproveToggle.style.display = "block";
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
|
|
mnuDividerIII.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
|
|
if (moduleMode > 1) {
|
|
mnuAddWindowSpawner.style.display = "block";
|
|
mnuAddPiece.style.display = "block";
|
|
mnuAddPieceAbove.style.display = "inline";
|
|
mnuAddPieceBelow.style.display = "inline";
|
|
}
|
|
if ((status != 15))
|
|
mnuDelete.style.display = "block";
|
|
|
|
mnuCopyPiece.style.display = "block";
|
|
mnuDividerIII.style.display = "block";
|
|
}
|
|
else {
|
|
if (isInsideDefault && status != 14 && status != 15) {
|
|
mnuSubmitToggle.style.display = "block";
|
|
}
|
|
else if (isInsideDefault && status == 15) {
|
|
if (node.getAttribute("cnUser") == document.forms.ContentMenu.lngUserID.value) {
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "block";
|
|
mnuApproveToggle.style.display = "block";
|
|
mnuPostponeToggle.style.display = "block"; // status will become 12.
|
|
mnuDeclineToggle.style.display = "block"; // status will become 13.
|
|
mnuDividerIIII.style.display = "block";
|
|
}
|
|
else
|
|
mnuViewPiece.style.display = "block";
|
|
}
|
|
mnuCopyPiece.style.display = "block";
|
|
mnuDividerV.style.display = "block";
|
|
}
|
|
break;
|
|
case "v":
|
|
mnuViewHistory.style.display = "block";
|
|
mnuViewPiece.style.display = "block";
|
|
mnuDividerV.style.display = "block";
|
|
mnuCopyPiece.style.display = "block";
|
|
break;
|
|
}
|
|
|
|
var subMenuStyles = elemSubMenus.style;
|
|
if (mnuAddPiece)
|
|
pipedChildList(mnuAddPiece);
|
|
|
|
var dsmOwner = divSubMenuOwner;
|
|
var dsmStyle = divSubMenuOwner.style;
|
|
if (spawnMethod == 1) {
|
|
dsmStyle.marginLeft = '10px';
|
|
node.insertBefore(dsmOwner, firstDivChild(node));
|
|
}
|
|
else {
|
|
var rootItem = topMostParent(node);
|
|
rootItem.insertBefore(dsmOwner, rootItem.firstChild);
|
|
dsmStyle.position = 'absolute';
|
|
dsmStyle.left = (lastMouseX + 2) + 'px';
|
|
dsmStyle.top = (lastMouseY + 2) + 'px';
|
|
}
|
|
|
|
elemFName.style.textAlignment = 'center';
|
|
elemFName.style.display = 'block';
|
|
subMenuStyles.position = 'absolute';
|
|
subMenuStyles.border = '1px solid black';
|
|
subMenuStyles.background = '#eaf0f4';
|
|
subMenuStyles.width = '234px';
|
|
subMenuStyles.display = (isie6or7 ? 'inline' : 'table');
|
|
dsmStyle.display = 'inline';
|
|
}
|
|
// Get agenda the agenda item resides within.
|
|
function getAgendaItemsAgendaItemParentID(theAIID) {
|
|
var theNode = document.getElementById('divPiece' + theAIID).parentNode;
|
|
if (theNode.id.substr(0, 8) == 'divPiece')
|
|
return theNode.id.substr(8);
|
|
else
|
|
return '';
|
|
}
|
|
// Get agenda the agenda item resides within.
|
|
function getAgendaForAgendaItem(theAIID) {
|
|
var theNode = document.getElementById('divPiece' + theAIID).parentNode;
|
|
while (theNode != null && theNode.id && theNode.id.substr(0, 7) != 'divItem')
|
|
theNode = theNode.parentNode;
|
|
return theNode;
|
|
}
|
|
// Get category the agenda item resides within.
|
|
function getCategoryForAgendaItem(theAIID) {
|
|
var theNode = document.getElementById('divPiece' + theAIID).parentNode;
|
|
while (theNode != null && theNode.id && theNode.id.substr(0, 7) != 'divItem')
|
|
theNode = theNode.parentNode;
|
|
return theNode.parentNode;
|
|
}
|
|
// Get parent category, then get default agenda for it.
|
|
function getDefaultForAgendaItem(theAIID) {
|
|
var divCategory = getCategoryForAgendaItem(theAIID);
|
|
return getDefaultForCatNode(divCategory);
|
|
}
|
|
// Get parent category, then get bullpen for it.
|
|
function getBullpenForAgendaItem(theAIID) {
|
|
var divCategory = getCategoryForAgendaItem(theAIID);
|
|
return getBullpenForCatNode(divCategory);
|
|
}
|
|
// Get bullpen for a category DOM node.
|
|
function getBullpenForCatNode(catNode) {
|
|
var lstChildren = catNode.childNodes;
|
|
var childNode;
|
|
for (var cv = 0; cv < lstChildren.length; cv++) {
|
|
childNode = lstChildren[cv];
|
|
if (childNode.id && childNode.id.substr(0, 7) == 'divItem')
|
|
return childNode;
|
|
}
|
|
return null;
|
|
}
|
|
// Get default for a category DOM node.
|
|
function getDefaultForCatNode(catNode) {
|
|
var lstChildren = catNode.childNodes;
|
|
var childNode, counter = 0;
|
|
for (var cv = 0; cv < lstChildren.length; cv++) {
|
|
childNode = lstChildren[cv];
|
|
if (childNode.id && childNode.id.substr(0, 7) == 'divItem') {
|
|
if (counter < 1)++counter;
|
|
else return childNode;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
// n is a node
|
|
function isHomenode(n) {
|
|
if (n) {
|
|
for (var i = 0; i < homenodes.length; i++)
|
|
if ((n.id && n.id.substr(3) == homenodes[i]) || n == homenodes[i]) return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
// checks if anode is below bnode
|
|
// pnode.id.substr(3), changeParentID
|
|
function isChild(anodeId, bnodeId) {
|
|
anode = document.getElementById('div' + anodeId);
|
|
bnode = document.getElementById('div' + bnodeId);
|
|
if (isHomenode(anode))
|
|
return false;
|
|
|
|
while (!isHomenode(anode.parentNode) && anode.parentNode.id != bnode.id)
|
|
if (isChild(anode.parentNode.id.substr(3), bnodeId))
|
|
return true;
|
|
|
|
return (anode.parentNode.id == bnode.id)
|
|
}
|
|
function firstDivChild(aNode) {
|
|
var k = 0, anElemNode
|
|
var cLen = aNode.childNodes.length;
|
|
|
|
for (; k < cLen; k++) {
|
|
anElemNode = aNode.childNodes[k];
|
|
if (anElemNode.nodeType == 1 && anElemNode.id.substr(0, 3) == 'div') return anElemNode;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function firstPieceChild(aNode) {
|
|
var k = 0, anElemNode;
|
|
var cLen = aNode.childNodes.length;
|
|
|
|
for (var cv = 0; cv < cLen; cv++) {
|
|
anElemNode = aNode.childNodes[cv];
|
|
if (anElemNode.nodeType == 1 && anElemNode.id.substr(0, 8) == 'divPiece') return anElemNode;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function firstItemChild(aNode) {
|
|
var k = 0, anElemNode;
|
|
var cLen = aNode.childNodes.length;
|
|
|
|
for (var cv = 0; cv < cLen; cv++) {
|
|
anElemNode = aNode.childNodes[cv];
|
|
if (anElemNode.nodeType == 1 && anElemNode.id.substr(0, 7) == 'divItem') return anElemNode;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function firstCategoryChild(aNode) {
|
|
var k = 0, anElemNode;
|
|
var cLen = aNode.childNodes.length;
|
|
|
|
for (var cv = 0; cv < cLen; cv++) {
|
|
anElemNode = aNode.childNodes[cv];
|
|
if (anElemNode.nodeType == 1 && anElemNode.id.substr(0, 3) == 'div' && anElemNode.id.charAt(3) != 'I' && anElemNode.id.charAt(3) != 'P') return anElemNode;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function noParentCircularRef(aNode, matchNid) {
|
|
var pNode = aNode.parentNode;
|
|
var matchElemID = 'div' + matchNid;
|
|
while (pNode != null) {
|
|
if (pNode.id == matchElemID)
|
|
return false;
|
|
pNode = pNode.parentNode;
|
|
} return true;
|
|
}
|
|
function dropSubMenus(eventObj) {
|
|
defineMenuVariables();
|
|
if (lastSelf) lastSelf.style.backgroundColor = "";
|
|
|
|
//For old page menu
|
|
if (divSubmenus.parentNode && divSubmenus.parentNode.style.backgroundColor)
|
|
divSubmenus.parentNode.style.backgroundColor = "";
|
|
|
|
divSubmenus.className = "nodisplay";
|
|
divSubmenus.style.display = 'none';
|
|
divSubMenuOwner.style.display = 'none';
|
|
}
|
|
//Show command menu pop-up for adding cats/items/subcats.
|
|
function addWindow_MouseOver(sender, e) {
|
|
if (window.event)
|
|
e = window.event;
|
|
|
|
mnuAddWindow.style.display = 'block';
|
|
var diff = getAbsPosition(mnuAddWindowSpawner)[1] - getAbsPosition(mnuAddWindow)[1]
|
|
mnuAddWindow.style.top = (parseInt(mnuAddWindow.style.top.replace('px', '')) + diff) + 'px';
|
|
mnuAddWindowSpawner.style.backgroundColor = '#6ea8d8';
|
|
return false;
|
|
}
|
|
|
|
//Hide command menu pop-up for adding cats/items/subcats.
|
|
function addWindow_MouseOut(sender, e) {
|
|
//Get event object and event target (browser-specific)
|
|
var mouseX, mouseY, isMSIE = window.event && !window.opera;
|
|
if (isMSIE) {
|
|
e = window.event;
|
|
elemTarget = event.srcElement;
|
|
} else {
|
|
elemTarget = e.target;
|
|
}
|
|
mouseX = e.clientX;
|
|
mouseY = e.clientY;
|
|
|
|
//Figure boundries for mouse cursor
|
|
var rect;
|
|
if (document.body.getBoundingClientRect) {
|
|
rect = (elemTarget == mnuAddWindowSpawner ? mnuAddWindowSpawner : mnuAddWindow).getBoundingClientRect();
|
|
boundLeft = rect.left;
|
|
boundTop = rect.top;
|
|
boundRight = rect.right - 2;
|
|
boundBottom = rect.bottom - 2;
|
|
}
|
|
else if (document.getBoxObjectFor) {
|
|
rect = document.getBoxObjectFor(elemTarget == mnuAddWindowSpawner ? mnuAddWindowSpawner : mnuAddWindow);
|
|
boundLeft = rect.x;
|
|
boundTop = rect.y;
|
|
boundRight = rect.x + rect.width - 2;
|
|
boundBottom = rect.y + rect.height - 2;
|
|
}
|
|
|
|
//Debugging code
|
|
// elemFName.innerHTML = (new Array(boundLeft,boundTop,boundRight,boundBottom)).join(', ') + ' ['+mouseX+', '+mouseY+']'
|
|
|
|
//If mouse left the bounds, destroy the window
|
|
//(sometimes mouseout gets fired when they are still inside).
|
|
if (mouseX < boundLeft || mouseY < boundTop || mouseX > boundRight || mouseY > boundBottom) {
|
|
mnuAddWindow.style.display = 'none';
|
|
mnuAddWindowSpawner.style.backgroundColor = '';
|
|
}
|
|
}
|
|
function eventMouseOver(self) {
|
|
if (lastSelf)
|
|
lastSelf.style.backgroundColor = '';
|
|
}
|
|
function eventMouseOut(self, theType, theNid) {
|
|
lastType = theType;
|
|
lastNid = theNid;
|
|
lastSelf = self;
|
|
|
|
if (divSubmenus)
|
|
if (divSubmenus.style.display == 'none')
|
|
self.style.backgroundColor = '';
|
|
}
|
|
//Returns array with absolute positions of static object.
|
|
//[0] = left/x in pixels, [1] = top/y in pixels.
|
|
function getAbsPosition(elem) {
|
|
var retVal = new Array();
|
|
if (elem == null) {
|
|
retVal.push(0);
|
|
retVal.push(0);
|
|
}
|
|
else {
|
|
var retVal2;
|
|
retVal.push(elem.offsetLeft);
|
|
retVal.push(elem.offsetTop);
|
|
if (elem.offsetParent != null) {
|
|
retVal2 = getAbsPosition(elem.offsetParent);
|
|
retVal[0] += retVal2[0];
|
|
retVal[1] += retVal2[1];
|
|
}
|
|
} return retVal;
|
|
}
|
|
//Invoked whenever the context menu event occurs.
|
|
function eventContextMenu(e) {
|
|
if (divSubmenus) {
|
|
var jsCode, elemTarget, elemDiv, rootDiv;
|
|
var subMenuStyle = divSubmenus.style;
|
|
|
|
if (!document.all && e != null) {
|
|
elemTarget = e.target;
|
|
elemDiv = elemTarget.parentNode;
|
|
rootDiv = topMostParent(elemTarget);
|
|
|
|
var coords = getAbsPosition(rootDiv);
|
|
lastMouseX = e.pageX - coords[0];
|
|
lastMouseY = e.pageY - coords[1];
|
|
|
|
for (var xx = 1; xx < 3; xx++) {
|
|
if (elemDiv.tagName != 'DIV' && elemDiv.parentNode) {
|
|
elemTarget = elemDiv; elemDiv = elemDiv.parentNode;
|
|
}
|
|
else
|
|
break;
|
|
}
|
|
if (elemDiv.id && elemDiv.id.substr(0, 3) == 'div') {
|
|
if (e.preventDefault) e.preventDefault(); // Stop context menu for Konquerer and Safari.
|
|
if (e.stopPropagation) e.stopPropagation(); // Stop context menu for Firefox.
|
|
jsCode = elemTarget.getAttribute('onmouseover');
|
|
}
|
|
}
|
|
else {
|
|
elemTarget = event.srcElement;
|
|
elemDiv = elemTarget.parentNode;
|
|
rootDiv = topMostParent(elemTarget);
|
|
|
|
var coords = getAbsPosition(rootDiv);
|
|
lastMouseX = e.clientX - coords[0] + document.documentElement.scrollLeft;
|
|
lastMouseY = e.clientY - coords[1] + document.documentElement.scrollTop;
|
|
|
|
if (elemDiv.tagName != 'DIV' && elemDiv.parentNode) {
|
|
elemTarget = elemDiv;
|
|
elemDiv = elemDiv.parentNode;
|
|
}
|
|
if (elemDiv.id && elemDiv.id.substr(0, 3) == 'div') {
|
|
if (elemTarget.getAttribute('onmouseover') != null) {
|
|
jsCode = elemTarget.getAttribute('onmouseover').toString() + ';';
|
|
}
|
|
}
|
|
}
|
|
if (jsCode && elemDiv.id) {
|
|
jsCode = jsCode.replace(/SubMenus\(1, /g, "SubMenus(2, ");
|
|
jsCode = jsCode.replace(/this\.style/g, "document.getElementById('" + elemTarget.id + "').style");
|
|
var ie8WrapperCompatMode = "function onmouseover()\n{"; // for ie8 running under IE7 document standards. VB
|
|
if (navigator.appVersion.indexOf("MSIE 7.0") > -1 || navigator.appVersion.indexOf("MSIE 6.0") > -1) {
|
|
var ieWrapper = "function anonymous()\n{"; // IE 7 (Real)
|
|
if (jsCode.indexOf(ieWrapper) == 0)
|
|
jsCode = jsCode.substr(ieWrapper.length);
|
|
else
|
|
jsCode = jsCode.substr(ieWrapper.length + 2); // IE 7 Compat mode
|
|
jsCode = jsCode.substring(0, jsCode.lastIndexOf("}") - 1) + "";
|
|
}
|
|
if (jsCode.indexOf(ie8WrapperCompatMode) == 0) {
|
|
jsCode = jsCode.substr(ie8WrapperCompatMode.length);
|
|
jsCode = jsCode.substring(0, jsCode.lastIndexOf("}") - 1) + "";
|
|
}
|
|
eval(jsCode);
|
|
if (e.preventDefault) {
|
|
e.preventDefault();
|
|
}
|
|
return false; // Stop context menu for MSIE.
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
// Use right-click mode for admin popup menu.
|
|
function spawnUseRightClick() {
|
|
if (spawnMode == 2) return; spawnMode = 2;
|
|
addEvent(document, 'contextmenu', eventContextMenu, true);
|
|
}
|
|
// Use mouse-over mode for admin popup menu.
|
|
function spawnUseMouseOver() {
|
|
if (spawnMode == 1) return; spawnMode = 1;
|
|
removeEvent(document, 'contextmenu', eventContextMenu, true);
|
|
}
|
|
// Defines element variables if divSubMenus is undefined.
|
|
function defineMenuVariables() {
|
|
if (divSubmenus) return;
|
|
divSubmenus = document.getElementById("submenus");
|
|
divSubMenuOwner = document.getElementById("submenuMain");
|
|
mnuAdd = document.getElementById("add");
|
|
mnuAddII = document.getElementById("addII");
|
|
mnuAddChild = document.getElementById("addChild");
|
|
mnuAddAbove = document.getElementById("addAbove");
|
|
mnuAddBelow = document.getElementById("addBelow");
|
|
mnuAddFirst = document.getElementById("addFirst");
|
|
mnuAddLast = document.getElementById("addLast");
|
|
mnuAddChildAbove = document.getElementById("addChildAbove");
|
|
mnuAddChildBelow = document.getElementById("addChildBelow");
|
|
mnuAddChildFirst = document.getElementById("addChildFirst");
|
|
mnuAddChildLast = document.getElementById("addChildLast");
|
|
mnuAddPieceAbove = document.getElementById("addPieceAbove");
|
|
mnuAddPieceBelow = document.getElementById("addPieceBelow");
|
|
mnuAddPieceFirst = document.getElementById("addPieceFirst");
|
|
mnuAddPieceLast = document.getElementById("addPieceLast");
|
|
mnuArchivePub = document.getElementById("archivePub");
|
|
mnuArchiveHid = document.getElementById("archiveHid");
|
|
mnuViewItemSubItems = document.getElementById("viewItemSubItems");
|
|
mnuViewHistory = document.getElementById("viewHistory");
|
|
mnuViewContentList = document.getElementById("viewContentList");
|
|
mnuEditPublishedContent = document.getElementById("editPublishedContent");
|
|
mnuProperties = document.getElementById("properties");
|
|
mnuItemProperties = document.getElementById("itemproperties");
|
|
mnuUploadMinutes = document.getElementById("uploadMinutes");
|
|
mnuViewPiece = document.getElementById("viewPiece");
|
|
mnuPreviewItem = document.getElementById("previewItem");
|
|
mnuRemoveFromAgenda = document.getElementById("removeFromAgenda");
|
|
mnuDelete = document.getElementById("delete");
|
|
mnuMove = document.getElementById("move");
|
|
mnuExitMove = document.getElementById("exitMove");
|
|
mnuExitMoveMode = document.getElementById("exitMoveMode");
|
|
mnuInsertAbove = document.getElementById("insertAbove");
|
|
mnuInsertBelow = document.getElementById("insertBelow");
|
|
mnuInsertFirst = document.getElementById("insertFirst");
|
|
mnuInsertLast = document.getElementById("insertLast");
|
|
mnuInsertChildAbove = document.getElementById("insertChildAbove");
|
|
mnuInsertChildBelow = document.getElementById("insertChildBelow");
|
|
mnuInsertChildFirst = document.getElementById("insertChildFirst");
|
|
mnuInsertChildLast = document.getElementById("insertChildLast");
|
|
mnuInsertPieceAbove = document.getElementById("insertPieceAbove");
|
|
mnuInsertPieceBelow = document.getElementById("insertPieceBelow");
|
|
mnuInsertPieceFirst = document.getElementById("insertPieceFirst");
|
|
mnuInsertPieceLast = document.getElementById("insertPieceLast");
|
|
mnuDivider = document.getElementById("divider");
|
|
mnuDividerII = document.getElementById("dividerII");
|
|
mnuDividerIII = document.getElementById("dividerIII");
|
|
mnuDividerIIII = document.getElementById("dividerIIII"); // dividerIV
|
|
mnuDividerV = document.getElementById("dividerV");
|
|
mnuPageAddress = document.getElementById("pageAddress");
|
|
mnuRejectToggle = document.getElementById("rejectToggle");
|
|
mnuSubmitToggle = document.getElementById("submitToggle");
|
|
mnuUnpublishToggle = document.getElementById("unpublishToggle");
|
|
mnuPublishToggle = document.getElementById("publishToggle");
|
|
mnuDeclineToggle = document.getElementById('declineToggle');
|
|
mnuPostponeToggle = document.getElementById('postponeToggle');
|
|
mnuApproveToggle = document.getElementById('approveToggle');
|
|
mnuAddressHold = document.getElementById("addressHold");
|
|
mnuCopy = document.getElementById("copyChild");
|
|
mnuCopyPiece = document.getElementById("copyPiece");
|
|
mnuViewArchived = document.getElementById("viewArchived");
|
|
mnuMoveMenuItem = document.getElementById("moveMenuItem");
|
|
mnuAddWindow = document.getElementById('addWindow');
|
|
mnuAddWindowSpawner = document.getElementById('addShow');
|
|
mnuPermissions = document.getElementById('editPermissions');
|
|
mnuCopyName = document.getElementById('copyName');
|
|
mnuAddPiece = document.getElementById('addPiece');
|
|
elemFName = document.getElementById("fname");
|
|
mnuPublishToggle2 = document.getElementById("publishToggle2");
|
|
mnuRejectToggle2 = document.getElementById("rejectToggle2");
|
|
mnuViewItem = document.getElementById("viewItem");
|
|
mnuUnPublish = document.getElementById("unPublish");
|
|
}
|
|
//Adds pipe delimiter to addition links (for add: above | below | ... etc).
|
|
function pipedChildList(elemParent) {
|
|
var anchorList = new Array();
|
|
var elem, elemDelim, cv, listLen;
|
|
|
|
//Remove existing delimiters
|
|
listLen = elemParent.childNodes.length;
|
|
for (cv = 0; cv < listLen; cv++) {
|
|
elem = elemParent.childNodes[cv];
|
|
if (elem.nodeType == 1) {
|
|
if (elem.nodeName == "SPAN") {
|
|
elemParent.removeChild(elem);
|
|
listLen = elemParent.childNodes.length;
|
|
--cv;
|
|
}
|
|
}
|
|
}
|
|
anchorList = elemParent.getElementsByTagName("a");
|
|
listLen = anchorList.length;
|
|
|
|
//Calc total displayed.
|
|
var totalDisplayed = 0, totalSoFar = 0;
|
|
for (cv = 0; cv < listLen; cv++)
|
|
if (anchorList[cv].style.display != 'none')++totalDisplayed;
|
|
|
|
//Insert delimiters.
|
|
for (cv = 0; cv < listLen; cv++) {
|
|
if (anchorList[cv].style.display != 'none' && totalSoFar < totalDisplayed) {
|
|
if (totalSoFar + 1 < totalDisplayed) {
|
|
elemDelim = document.createElement("span");
|
|
elemDelim.innerHTML = " | ";
|
|
elemParent.insertBefore(elemDelim, anchorList[cv].nextSibling);
|
|
} ++totalSoFar;
|
|
}
|
|
}
|
|
}
|
|
function hideAllChildren() {
|
|
if (mnuAddChild) {
|
|
mnuAddChild.style.display = "none";
|
|
mnuAddChildAbove.style.display = "none";
|
|
mnuAddChildBelow.style.display = "none";
|
|
mnuAddChildFirst.style.display = "none";
|
|
mnuAddChildLast.style.display = "none";
|
|
if (mnuInsertChildAbove) {
|
|
mnuInsertChildAbove.style.display = "none";
|
|
mnuInsertChildBelow.style.display = "none";
|
|
mnuInsertChildFirst.style.display = "none";
|
|
mnuInsertChildLast.style.display = "none";
|
|
}
|
|
}
|
|
if (mnuInsertPieceAbove) {
|
|
mnuInsertPieceAbove.style.display = "none";
|
|
mnuInsertPieceBelow.style.display = "none";
|
|
mnuInsertPieceFirst.style.display = "none";
|
|
mnuInsertPieceLast.style.display = "none";
|
|
mnuAddPieceAbove.style.display = "none";
|
|
mnuAddPieceBelow.style.display = "none";
|
|
mnuAddPieceFirst.style.display = "none";
|
|
mnuAddPieceLast.style.display = "none";
|
|
}
|
|
if (mnuAddII)
|
|
mnuAddII.style.display = "none";
|
|
if (mnuAddWindowSpawner)
|
|
mnuAddWindowSpawner.style.display = "none";
|
|
mnuAdd.style.display = "none";
|
|
mnuInsertAbove.style.display = "none";
|
|
mnuInsertBelow.style.display = "none";
|
|
mnuInsertFirst.style.display = "none";
|
|
mnuInsertLast.style.display = "none";
|
|
mnuAddAbove.style.display = "none";
|
|
mnuAddBelow.style.display = "none";
|
|
mnuAddFirst.style.display = "none";
|
|
mnuAddLast.style.display = "none";
|
|
mnuProperties.style.display = "none";
|
|
if (mnuItemProperties)
|
|
mnuItemProperties.style.display = "none";
|
|
if (mnuUploadMinutes)
|
|
mnuUploadMinutes.style.display = "none";
|
|
mnuDelete.style.display = "none";
|
|
mnuMove.style.display = "none";
|
|
mnuExitMove.style.display = "none";
|
|
mnuExitMoveMode.style.display = "none";
|
|
mnuDivider.style.display = "none";
|
|
mnuDividerII.style.display = "none";
|
|
mnuDividerIII.style.display = "none";
|
|
if (mnuPreviewItem)
|
|
mnuPreviewItem.style.display = "none";
|
|
if (mnuDividerIIII)
|
|
mnuDividerIIII.style.display = "none";
|
|
if (mnuDividerV)
|
|
mnuDividerV.style.display = "none";
|
|
if (mnuPageAddress)
|
|
mnuPageAddress.style.display = "none";
|
|
if (mnuAddWindow)
|
|
mnuAddWindow.style.display = "none";
|
|
if (mnuArchivePub) {
|
|
mnuArchivePub.style.display = "none";
|
|
mnuArchiveHid.style.display = "none";
|
|
}
|
|
if (mnuViewHistory)
|
|
mnuViewHistory.style.display = "none";
|
|
if (mnuViewItemSubItems)
|
|
mnuViewItemSubItems.style.display = "none";
|
|
if (mnuCopyName)
|
|
mnuCopyName.style.display = "none";
|
|
if (mnuCopyPiece)
|
|
mnuCopyPiece.style.display = "none";
|
|
if (mnuPermissions)
|
|
mnuPermissions.style.display = "none";
|
|
if (mnuUnPublish)
|
|
mnuUnPublish.style.display = "none";
|
|
if (mnuCopy)
|
|
mnuCopy.style.display = "none";
|
|
if (mnuViewArchived)
|
|
mnuViewArchived.style.display = "none";
|
|
if (mnuViewContentList)
|
|
mnuViewContentList.style.display = "none";
|
|
if (mnuEditPublishedContent)
|
|
mnuEditPublishedContent.style.display = "none";
|
|
if (mnuRejectToggle) {
|
|
mnuRejectToggle.style.display = 'none';
|
|
mnuSubmitToggle.style.display = 'none';
|
|
mnuUnpublishToggle.style.display = 'none';
|
|
mnuPublishToggle.style.display = 'none';
|
|
}
|
|
if (mnuDeclineToggle)
|
|
mnuDeclineToggle.style.display = "none";
|
|
if (mnuRemoveFromAgenda) {
|
|
mnuApproveToggle.style.display = "none";
|
|
mnuPostponeToggle.style.display = "none";
|
|
mnuViewPiece.style.display = "none";
|
|
mnuRemoveFromAgenda.style.display = "none";
|
|
}
|
|
if (mnuAddPiece)
|
|
mnuAddPiece.style.display = "none";
|
|
if (mnuPublishToggle2)
|
|
mnuPublishToggle2.style.display = "none";
|
|
if (mnuRejectToggle2)
|
|
mnuRejectToggle2.style.display = "none";
|
|
if (mnuViewItem)
|
|
mnuViewItem.style.display = "none";
|
|
}
|
|
/** BEGIN AJAX STUFF **/
|
|
// modes: 1 - open homenodes
|
|
// 2 - open an array of openToNodes
|
|
// 3 - open a specific node
|
|
// text: Value returned from AJAX call.
|
|
// level: Same level nid variable is on.
|
|
//
|
|
function elemIDPrefixByType(elemType) {
|
|
switch (elemType) {
|
|
case 1: return 'div';
|
|
case 2: return 'divItem';
|
|
case 3: return 'divPiece';
|
|
default: return '???';
|
|
}
|
|
}
|
|
function elemTypeByName(elemToGetTypeOf) {
|
|
switch (elemToGetTypeOf.nodeName) {
|
|
case 'div': return 1;
|
|
case 'divItem': return 2;
|
|
case 'divPiece': return 3
|
|
default: return 0;
|
|
}
|
|
}
|
|
function openTo(nidToOpen, level, mode, elemType, hasItems, isPersonal, text) {
|
|
if (text)
|
|
processResponse(nidToOpen, elemType, hasItems, isPersonal, text);
|
|
if (mode == 1 || openToNodes.length == 0) {
|
|
for (var i = 0; i < homenodes.length; i++)
|
|
toggleNode(homenodes[i], level, 1, elemType, hasItems, isPersonal, null);
|
|
} else if (mode == 2) {
|
|
openToNodePointer++;
|
|
if (openToNodePointer < openToNodes.length) {
|
|
toggleNode(openToNodes[openToNodePointer], level, 5, (openToNodePointer < openToSwitchType ? 1 : 2), hasItems, isPersonal, null);
|
|
}
|
|
} else if (mode == 3 || mode == 7) {
|
|
if (nidToOpen == 0)
|
|
openTo(0, 2, 1, 1, hasItems, isPersonal, null); // Home is correctly being identified
|
|
else {
|
|
node = document.getElementById(elemIDPrefixByType(elemType) + nidToOpen);
|
|
if (node)
|
|
toggleNode(nidToOpen, level, 1, elemTypeByName(node), hasItems, isPersonal, null);
|
|
else
|
|
node = document.getElementById(nidToOpen);
|
|
|
|
if (node) {
|
|
try {
|
|
while (node.id != 0) {
|
|
if (node.id && node.tagName == "DIV")
|
|
toggleNode(node.id, level, 1, elemTypeByName(node), hasItems, isPersonal, null);
|
|
node = node.parentNode;
|
|
}
|
|
} catch (e) { }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// New function for new page menu
|
|
// nid: the nid to be opened
|
|
// mode: 1 - opening for a page load
|
|
// 2 - open/close in general
|
|
// 3 - open all
|
|
// 4 - close all
|
|
// 5 - open an array of openToNodes
|
|
// 6 - open all for group admin putting permission on all pages
|
|
// 7 - special open for items/pieces
|
|
//
|
|
function toggleNode(nidToggled, level, mode, elemType, hasItems, isPersonal, text) {
|
|
if (debugPresent) {
|
|
debugOpenArgs = '{ ' + new Array(nidToggled, level, mode, elemType, hasItems, isPersonal, (text == null ? 'null' : '<text>')).join(', ') + ' }';
|
|
++debugCallNum;
|
|
}
|
|
if (mode != 1 && mode != 5 && mode != 7 && window.targetedCat) {
|
|
window.targetedCat = null;
|
|
window.targetedItem = null;
|
|
window.targetedPiece = null;
|
|
}
|
|
|
|
var node, a, catElem;
|
|
|
|
if (text)
|
|
processResponse(nidToggled, elemType, hasItems, isPersonal, text);
|
|
|
|
if (mode == 3 || mode == 6 || mode == 7)
|
|
callback_function = "toggleNode(" + nidToggled + ", " + level + ", " + mode + ", " + elemType + ", " + hasItems + ", " + isPersonal;
|
|
else if (mode == 5)
|
|
callback_function = "openTo(" + nidToggled + ", " + (level + 1) + ", 2, " + elemType + ", " + hasItems + ", " + isPersonal;
|
|
else
|
|
callback_function = "processResponse(" + nidToggled + ", " + elemType + ", " + hasItems + ", " + isPersonal;
|
|
|
|
node = document.getElementById(elemIDPrefixByType(elemType) + nidToggled);
|
|
if (node) {
|
|
if (document.getElementById('category' + node.id.substr(3))) {
|
|
if (!(document.getElementById('category' + node.id.substr(3)).getAttribute('cnLoaded') > 0) && mode != 4 && $('.searchAlert').length == 0) {
|
|
var loaderName = moduleID == 4 ? '/Common/Admin/CityDirectory/AJAX-Loader' : '/AJAX-NMenuLoader';
|
|
var url = loaderName + ".ashx?nodeParent=" + nidToggled + "&level=" + level + "&moduleID=" + moduleID + "&imagesPath=" + imagesPath + "&usageFlag=" + usageFlag + "&extraParam1=" + extraParam1 + "&extraParam2=" + extraParam2 + "&nodeName=" + node.nodeName + "&hasItems=" + hasItems + "&isPersonal=" + isPersonal;
|
|
++ajax_call_counter;
|
|
makeHttpRequest(url, callback_function, false);
|
|
}
|
|
else if (mode == 5)
|
|
openTo(0, level + 1, 2, elemType, hasItems, isPersonal, null);
|
|
}
|
|
if (ajax_call_counter == 0) {
|
|
var btnExpand = document.getElementById("btnMenuExpandAll");
|
|
if (btnExpand)
|
|
btnExpand.disabled = document.getElementById("btnMenuCollapseAll").disabled = false;
|
|
if (mode == 6)
|
|
setPagesAll();
|
|
}
|
|
|
|
var cNodeLen = node.childNodes.length;
|
|
var tmpTypeCode, tmpTypePre, tmpID, isMatchingID = 0;
|
|
for (a = 0; a < node.childNodes.length; a++) {
|
|
elem = node.childNodes.item(a);
|
|
if (elem.id) {
|
|
tmpID = -1;
|
|
if (elem.id.substr(0, 8) == 'divPiece') {
|
|
tmpTypeCode = 3;
|
|
tmpTypePre = 'piece';
|
|
tmpID = elem.id.substr(8);
|
|
isMatchingID = (window.targetedPiece == tmpID);
|
|
}
|
|
else if (elem.id.substr(0, 7) == 'divItem') {
|
|
tmpTypeCode = 2;
|
|
tmpTypePre = 'item';
|
|
tmpID = elem.id.substr(7);
|
|
isMatchingID = (window.targetedItem == tmpID);
|
|
}
|
|
else if (elem.id.substr(0, 3) == 'div') {
|
|
tmpTypeCode = 1;
|
|
tmpTypePre = 'category';
|
|
tmpID = elem.id.substr(3);
|
|
isMatchingID = (window.targetedCat == tmpID);
|
|
}
|
|
if (tmpID > -1) {
|
|
elem.style.display = (((elem.style.display == 'none' && mode != 4) || mode == 3 || mode == 1 || (mode > 4 && mode < 7) || mode == 7) ? 'block' : 'none');
|
|
catElem = (tmpTypeCode == 1 ? document.getElementById(tmpTypePre + tmpID) : null);
|
|
if (mode == 7) {
|
|
if (isMatchingID)
|
|
toggleNode(tmpID, (level + 1), 7, tmpTypeCode, hasItems, isPersonal, null);
|
|
}
|
|
else if (isMatchingID)
|
|
toggleNode(tmpID, (level + 1), 7, tmpTypeCode, hasItems, isPersonal, null);
|
|
else if (((mode == 3 || mode == 6 || mode == 7) && (catElem && catElem.getAttribute('cn') > 0)) || ((mode == 4 && elem.childNodes.length > 0) || ((mode == 3 || mode == 6) && (tmpTypeCode > 1))))
|
|
toggleNode(tmpID, (level + 1), mode, tmpTypeCode, hasItems, isPersonal, null);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function processResponse(nidToUse, elemType, hasItems, isPersonal, text) {
|
|
try { if (divSubMenus) dropSubMenus(null); } catch (e) { divSubMenus = null; }
|
|
|
|
var divMenuChild, tagLabel;
|
|
var txtDivPref = elemIDPrefixByType(elemType);
|
|
var txtCatPref = elemNameByType(elemType);
|
|
|
|
if (ajax_call_counter == 0 && whenCounterZero != null) {
|
|
whenCounterZero();
|
|
whenCounterZero = null;
|
|
}
|
|
|
|
divMenuChild = document.getElementById(txtDivPref + nidToUse);
|
|
tagLabel = document.getElementById(txtCatPref + nidToUse);
|
|
|
|
if (!(tagLabel.getAttribute('cnLoaded') > 0)) {
|
|
var divText = (divMenuChild.innerHTML) + text;
|
|
divMenuChild.innerHTML = divText;
|
|
if (divSubmenus) divSubmenus = null; // This *MUST* be done.
|
|
tagLabel = document.getElementById(txtCatPref + nidToUse);
|
|
tagLabel.setAttribute('cnLoaded', '1');
|
|
}
|
|
}
|
|
function expandAll(expandFlag, hasItems, isPersonal) {
|
|
/* -- Race Condition Notice --
|
|
* It is possible for the first call to return and set the
|
|
* counter back to 0 before the second call is made. If this
|
|
* happens, the button(s) will be enabled before it/they should
|
|
* be and other unknown side effects may be encountered. A two
|
|
* counter approach will not fix this problem. */
|
|
whenCounterZero = function () {
|
|
var tgbtn = document.getElementById("btnMenuToggleAll");
|
|
var exbtn = document.getElementById("btnMenuExpandAll");
|
|
var cobtn = document.getElementById("btnMenuCollapseAll");
|
|
|
|
if (cobtn) cobtn.disabled = false;
|
|
if (exbtn) exbtn.disabled = true;
|
|
if (tgbtn) {
|
|
tgbtn.value = COLLAPSE_TEXT_EN;
|
|
tgbtn.className = 'btn_collapse';
|
|
tgbtn.disabled = false;
|
|
}
|
|
}
|
|
|
|
var tgbtn = document.getElementById("btnMenuToggleAll");
|
|
var exbtn = document.getElementById("btnMenuExpandAll");
|
|
var cobtn = document.getElementById("btnMenuCollapseAll");
|
|
|
|
var txtJSDelayed = 'if (ajax_call_counter > 0) {';
|
|
if (tgbtn) txtJSDelayed += 'document.getElementById("btnMenuToggleAll").disabled = true; ';
|
|
if (exbtn) txtJSDelayed += 'document.getElementById("btnMenuExpandAll").disabled = true; ';
|
|
if (cobtn) txtJSDelayed += 'document.getElementById("btnMenuCollapseAll").disabled = true; ';
|
|
setTimeout(txtJSDelayed + '}', 15);
|
|
|
|
if (expandFlag == 1) {
|
|
frmSubmitTo.action = submitCommandsTo;
|
|
frmSubmitTo.CPAction.value = "expandAll";
|
|
frmSubmitTo.submit();
|
|
} else if (expandFlag == 3) {
|
|
var frmCDD = document.frmCityDepartmentDetail;
|
|
if (frmCDD) {
|
|
frmCDD.lngCityDepartmentID.value = "";
|
|
frmCDD.strPage.value = "expandAll";
|
|
frmCDD.submit();
|
|
}
|
|
} else {
|
|
for (var i = 0; i < homenodes.length; i++)
|
|
toggleNode(homenodes[i], 2, (expandFlag == 2 ? 6 : 3), 1, hasItems, isPersonal, null);
|
|
}
|
|
|
|
if (ajax_call_counter == 0 && whenCounterZero != null) {
|
|
whenCounterZero();
|
|
whenCounterZero = null;
|
|
}
|
|
}
|
|
function createFriendlyName(nidToUse) {
|
|
return createFriendlyNameEx(nidToUse, 'div');
|
|
}
|
|
function createFriendlyNameEx(nidToUse, type) {
|
|
var divItem, spanItem, bCrumb = '', innerMarkup, ysnFirst = true;
|
|
|
|
divItem = document.getElementById(type + nidToUse)
|
|
while (divItem != null && divItem.tagName == 'DIV') {
|
|
spanItem = divItem.firstChild;
|
|
while (spanItem != null) {
|
|
if (spanItem.nodeType == 1) {
|
|
switch (spanItem.tagName) {
|
|
case 'A':
|
|
if (spanItem.innerHTML.toUpperCase().substr(0, 4) == '<IMG') break;
|
|
case 'SPAN':
|
|
innerMarkup = spanItem.innerHTML;
|
|
|
|
// Clean out status information after name.
|
|
var junkPos = innerMarkup.indexOf("( <SPAN");
|
|
if (junkPos < 0)
|
|
junkPos = innerMarkup.indexOf("( <span");
|
|
if (junkPos > -1)
|
|
innerMarkup = innerMarkup.substr(0, junkPos - 1);
|
|
|
|
if (ysnFirst) {
|
|
ysnFirst = false;
|
|
bCrumb = innerMarkup;
|
|
}
|
|
else
|
|
bCrumb = innerMarkup + ':' + bCrumb;
|
|
}
|
|
}
|
|
spanItem = spanItem.nextSibling;
|
|
}
|
|
if (divItem.className == 'topmenu')
|
|
break;
|
|
divItem = divItem.parentNode;
|
|
}
|
|
|
|
return (bCrumb == '' ? '(None Selected)' : bCrumb);
|
|
}
|
|
function collapseAll(hasItems, isPersonal) {
|
|
var cobtn = document.getElementById("btnMenuCollapseAll");
|
|
var tgbtn = document.getElementById("btnMenuToggleAll");
|
|
|
|
if (cobtn)
|
|
setTimeout('document.getElementById("btnMenuCollapseAll").disabled = true', 15);
|
|
|
|
var i = 0, hNode;
|
|
while (i < homenodes.length) {
|
|
hNode = document.getElementById('div' + homenodes[i++]);
|
|
|
|
if (hNode)
|
|
hNode = hNode.firstChild;
|
|
while (hNode) {
|
|
if (hNode.id)
|
|
toggleNode(hNode.id.substr(3), 3, 4, 1, hasItems, isPersonal, null);
|
|
hNode = hNode.nextSibling;
|
|
}
|
|
}
|
|
if (tgbtn) {
|
|
tgbtn.value = EXPAND_TEXT_EN;
|
|
tgbtn.className = 'btn_expand';
|
|
}
|
|
}
|
|
// anode: a node that will be checked to see if any children exist
|
|
//
|
|
function isMenuDOMChildren(anode, suffix) {
|
|
// check if there are children
|
|
// if there are children and the menu is open then insert the submenu at the top of the menu
|
|
// otherwise insert the menu at the parent's level
|
|
return (document.getElementById('category' + anode.id.substr(3)).getAttribute('cn' + suffix) > 0);
|
|
}
|
|
function disableTogglers() {
|
|
var btn = document.getElementById("btnMenuExpandAll");
|
|
var btn2 = document.getElementById("btnMenuCollapseAll");
|
|
var btn3 = document.getElementById("btnMenuToggleAll");
|
|
if (btn) btn.disabled = true;
|
|
if (btn2) btn2.disabled = true;
|
|
if (btn3) btn3.disabled = true;
|
|
}
|
|
function addSubMenusRelate(nid, fname) {
|
|
var menuItemName = unescape(fname).replace("'", "'");
|
|
if (lastNid > 0) {
|
|
document.getElementById('submenu' + lastNID).style.display = 'none';
|
|
document.getElementById('category' + lastNID).style.backgroundColor = '';
|
|
}
|
|
lastNID = nid;
|
|
document.getElementById('fname' + nid).innerHTML = menuItemName +
|
|
(nid > 0 ? ' <span style="cursor: pointer;" onmouseover="this.style.background=\'#6ea8d8\'; this.style.color= \'#ffffff\';" onblur="this.onmouseout();" onmouseout="this.style.background=\'\'; this.style.color= \'\';" onkeypress="this.onclick();" onclick="window.open(\'' +
|
|
window.location.hostname + '?NID=' + nid + '>( NID = ' + nid + ' )</span>' : '');
|
|
document.getElementById('submenu' + nid).style.display = 'inline';
|
|
document.getElementById('category' + nid).style.backgroundColor = '#6ea8d8'
|
|
}
|