// Licensed Materials - Property of IBM // // IBM Cognos Products: pps // // (C) Copyright IBM Corp. 2005, 2017 // // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. function contextMenu(event, targetObj) { if (!topparent.allFramesInitialized()) return; var obj; var eventM = new eventManager(event); if (eventM.theEvent.ctrlKey) //allow the default browser context menu. return; //don't trust the object passed in...verify that is a valid context menu object if (targetObj) obj = bubbleToContextSensitiveObject(targetObj); else obj = bubbleToContextSensitiveObject(eventM.getSrc()); if (!obj || obj.getAttribute("type") == "") return false; if(obj.getAttribute("level") == -1) //disable contextmenu on top node in dimtree. return false; var popupoptions; updateSelection(event, obj); if (obj.getAttribute("type") == "d" && obj.id) popupoptions = getCellOptions(); else if (obj.getAttribute("type") == "r" || obj.getAttribute("type") == "c") popupoptions = getRowColumnOptions( obj ); else if (obj.getAttribute("type") == "m") popupoptions = getMeasureOptions(); else if (obj.getAttribute("type") == "cm") popupoptions = getDimensionOptions(obj); else if (obj.getAttribute("type") == "tb" && !topparent.getGlobal("nn7")) popupoptions = getDimensionTreeOptions(); else if (obj.getAttribute("type") == "ba" || obj.getAttribute("type") == "d"){ if(topparent.getGlobal("dbg") == 1) return false; popupoptions = getBlankAreaOptions(); } else if (obj.getAttribute("type") == "chart") popupoptions = getChartOptions(obj); else if (obj.getAttribute("type") == "imageMap") { obj = obj.previousSibling; popupoptions = getChartOptions(obj); } else if (obj.getAttribute("type").indexOf("lr") >= 0 || obj.getAttribute("type").indexOf("lc") >= 0) { if(!obj.getAttribute("splitview")) { popupoptions = getLevelAreaOptions(obj); processSelection(event); hideFloatingToolbar(); } else { popupoptions = getBlankAreaOptions(); } } else if ( obj.getAttribute("type") == "dimbar" ) { popupoptions = getDimBarOptions(); } if (popupoptions) { ContextMenu.display(event, popupoptions, true); eventM.cancelBubble(); eventM.preventDefault(); } } function bubbleToContextSensitiveObject( obj ) { var target = obj; if (!obj) return null; if (!obj.getAttribute || !obj.getAttribute("type") || obj.getAttribute("type") == "" || obj.getAttribute("type") == "rn" || obj.getAttribute("type") == "cn") target = bubbleToContextSensitiveObject( obj.parentNode ); return target; } function updateSelection(event, obj) { var reselect = false; if (obj.getAttribute("type") == "r" || obj.getAttribute("type") == "c") reselect = ( obj.getAttribute("type") == "r" ? !xtabCache.isRowSelected(parseRowId(obj.id)) : !xtabCache.isColSelected(parseColId(obj.id))); else if ( obj.getAttribute("type") == "d" && obj.id) reselect = !xtabCache.isRowSelected(parseRowId(obj.id)) || !xtabCache.isColSelected(parseColId(obj.id)); if(reselect ) processSelection(event); } var alertAction = "topparent.getXtabFrame().doit('MA')"; var explainAction = "topparent.getXtabFrame().doit('ME')"; var showHideAction = "topparent.getXtabFrame().doit('MQ')"; var openFind = "topparent.getXtabFrame().doit('MF')"; var openDisplayOpt = "topparent.getXtabFrame().doit('MT')"; var openChartOpt = "topparent.getXtabFrame().doit('MY')"; var openEditTitle = "topparent.getXtabFrame().doit('MI')"; var openXtabOpt = "topparent.getXtabFrame().doit('MB')"; function getDimensionOptions(obj) { var optArray = new Array(); optArray[optArray.length] = createContextItem("replace_rows",dim_ContextMenu,function() { replaceRows(obj)}); optArray[optArray.length] = createContextItem("replace_cols",dim_ContextMenu,function() { replaceCols(obj)}); optArray[optArray.length] = createContextItem("filter",dim_ContextMenu,function() { filter(obj)}); optArray[optArray.length] = createContextItem("nest_rows",dim_ContextMenu,function() { nestRowsInner(obj)}); optArray[optArray.length] = createContextItem("nest_cols",dim_ContextMenu,function() { nestColsInner(obj)}); optArray[optArray.length] = createContextItem("find",dim_ContextMenu,function() { eval(openFind)}); if (obj.getAttribute("customSubset") == "true") { optArray[optArray.length] = new ContextSeparator(); optArray[optArray.length] = createContextItem("delete_subset",dim_ContextMenu,function() { deleteCustomSubset(obj)}); optArray[optArray.length] = createContextItem("rename_subset",dim_ContextMenu,function() { renameCustomSubset(obj)}); optArray[optArray.length] = createContextItem("edit_subset",dim_ContextMenu,function() { editCustomSubset(obj)}); optArray[optArray.length] = createContextItem("duplicate_subset",dim_ContextMenu,function() { dupCustomSubset(obj)}); } return optArray; } function getDimensionTreeOptions() { var optArray = new Array(); optArray[optArray.length] = createContextItem("hide_tree",dim_ContextMenu,function() { topparent.closeTreeFrame()}); if (topparent.getGlobal("dimTreeToolbarOpen")) { optArray[optArray.length] = createContextItem("hide_tree_toolbar",dim_ContextMenu,function() { topparent.closeTreeToolbarFrame()}); } else { optArray[optArray.length] = createContextItem("show_tree_toolbar",dim_ContextMenu,function() { topparent.openTreeToolbarFrame()}); } return optArray; } function getCellOptions() { var optArray = new Array(); var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); optArray[optArray.length] = createContextItem("find",arrayContextMenu,function() { eval(openFind)}); optArray[optArray.length] = createContextItem("explain",arrayContextMenu,function() { eval(explainAction)}); return optArray; } function getRowColumnOptions( obj ) { var optArray = new Array(); var disabled = false; var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); var rowSelections = getSelected("r"); var colSelections = getSelected("c"); var addCalcOption = false; var addRankOption = false; if(obj.getAttribute("calculation") == 'true' && obj.getAttribute("isolated") != 'true') { if ((obj.getAttribute("type") == "r" && rowSelections.length == 1 && colSelections.length <= 0) || (obj.getAttribute("type") == "c" && colSelections.length == 1 && rowSelections.length <= 0)) if (obj.getAttribute("rank") == 'true') addRankOption = true; else addCalcOption = true; } if(addCalcOption) { optArray[optArray.length] = createContextItem("del",arrayContextMenu,function() { delCalculation(obj)}); optArray[optArray.length] = createContextItem("edit_calc",arrayContextMenu,function() { editCalculation()}); optArray[optArray.length] = createContextItem("rename_calc",arrayContextMenu,function() { renameCalculation()}); } optArray[optArray.length] = createContextItem("add_calc",arrayContextMenu,function() { insertCalculation()}); if (isRankable(obj)) { optArray[optArray.length] = createContextItem("add_rank",arrayContextMenu,function() { insertRank()}); } if (isRank(obj) && obj.getAttribute("isolated") != 'true') { optArray[optArray.length] = createContextItem("del",arrayContextMenu,function() { delCalculation(obj)}); optArray[optArray.length] = createContextItem("edit_rank",arrayContextMenu,function() { editRank()}); optArray[optArray.length] = createContextItem("rename_rank",arrayContextMenu,function() { renameRank()}); } disabled = false; var xtab = document.getElementById("xtab"); if(!xtab){ if(obj.getAttribute("summary") == 'true') disabled = true; } disabled = obj.getAttribute("isolated") != 'true' ? disabled : true; optArray[optArray.length] = createContextItem("hide_selection",arrayContextMenu,function() { hideSelection(obj)},disabled); disabled = obj.getAttribute("isolated") != 'true' ? false : true; optArray[optArray.length] = createContextItem("hide_show",arrayContextMenu,function() { eval(showHideAction)},disabled); var csFunction = null; if (!rowSelections.length && canCreateCustomSubset(colSelections)) { csFunction = function() { createCustomSubset(colSelections, false) }; } else if (!colSelections.length && canCreateCustomSubset(rowSelections)) { csFunction = function() { createCustomSubset(rowSelections, true) }; } disabled = arrayContextMenu["create_cs"]._state == 0 ? true : false; if (csFunction == null) disabled = true; optArray[optArray.length] = createContextItem("create_cs",arrayContextMenu,csFunction,disabled); optArray[optArray.length] = new ContextSeparator(); optArray[optArray.length] = createContextItem("explain",arrayContextMenu,function() { eval(explainAction)}); if (isLegendObject(obj)) addCopyPasteOption(optArray, obj); return optArray; } function isLegendObject(obj) { var tObj = obj; while (tObj.id.indexOf("legend0") != 0 && tObj.id != "innerNice1-tab0") { tObj = tObj.parentNode; } return (tObj.id.indexOf("legend0") == 0); } function canCreateCustomSubset(selections) { if (!selections.length) return false; if (!areAllSameDimension(selections)) return false; if (containsCalculations(selections) || containsSummary(selections) || containsAlternate(selections)) return false; if (topparent.getGlobal("gDimensionInfo[" + selections[0].getAttribute("dimIdx") + "]").isMeasureDimension) return false; return true; } function isRankable( obj ) { return (obj.getAttribute("rank") != "true" && (!obj.getAttribute("calculation") || obj.getAttribute("rankable")) && topparent.getXtabFrame().isBottomDimension(obj)); } function isRank( obj ) { return (obj.getAttribute("rank") == "true") } function areAllSameDimension(selections) { var dimIdx = selections[0].getAttribute("dimIdx"); for (var i = 1; i < selections.length; i++) { if (selections[i].getAttribute("dimIdx") != dimIdx) return false; } return true; } function containsCalculations(selections) { for (var i = 0; i < selections.length; i++) { if (selections[i].getAttribute("calculation") == "true") return true; } return false; } function containsSummary(selections) { for (var i = 0; i < selections.length; i++) { if (selections[i].getAttribute("summary") == "true") return true; } return false; } function containsAlternate(selections) { for (var i = 0; i < selections.length; i++) { if (selections[i].getAttribute("alternate") == "true") return true; } return false; } function createCustomSubset(selections, row) { selections = sortSelections(selections); var cmd = ""; var rc = (row)? "r":"c"; var RC = (row)? "R":"C"; //Find the range of axis levels that selection is applied to. var numLevels = (row)? numRowLevels : numColLevels; var outerLevel = numLevels; var innerLevel = 0; for (var i = 0; i < selections.length; i++) { if (parseInt(selections[i].getAttribute("group")) - 1 > innerLevel) innerLevel = parseInt(selections[i].getAttribute("group")) - 1; if (parseInt(selections[i].getAttribute("group")) - 1 < outerLevel) outerLevel = parseInt(selections[i].getAttribute("group")) - 1; } //********* //Step 1: Delete all extraneous levels within the selection range (from inside out) of the same dimension as the selection (mark as deleted) for (var i = innerLevel; i > outerLevel; i--) { if (xtabCache.getXtabLevelSelector(rc,i).getAttribute("dimIdx") == selections[0].getAttribute("dimIdx")) { cmd += "EK:" + RC + i + "\t\t"; xtabCache.getXtabLevelSelector(rc,i).setAttribute("deleted","true"); } } //********** //Step 2: Delete all the levels above the selection range that are consecutively of the same dimension (mark as deleted) //delete each consecutive level outside consecutive range of the same dimension. var outerLevelTemp = outerLevel - 1; while (outerLevelTemp >= 0 && xtabCache.getXtabLevelSelector(rc,outerLevelTemp).getAttribute("dimIdx") == selections[0].getAttribute("dimIdx")) { outerLevelTemp--; } outerLevelTemp++; //we went over by 1. for (var i = outerLevel - 1; i >= outerLevelTemp; i--) { cmd += "EK:" + RC + i + "\t\t"; xtabCache.getXtabLevelSelector(rc,i).setAttribute("deleted","true"); } //********* //Step 3: bring the remaining levels up as high as possible var highestPossible = 1; var numAlreadyUp = 0; var level = 0; //Have to keep track of this as the others have been deleted. for (var i = 0; i < numLevels; i++) { if (xtabCache.getXtabLevelSelector(rc,i).getAttribute("deleted") != "true") { if (xtabCache.getXtabLevelSelector(rc,i).getAttribute("dimIdx") == selections[0].getAttribute("dimIdx")) { var currentLevel = parseInt(xtabCache.getXtabLevelSelector(rc,i).getAttribute("groupLevel")) - numAlreadyUp; for (var j = currentLevel; j > highestPossible; j--) { cmd += "EU:" + RC + level + "\t\t"; numAlreadyUp++; } highestPossible++; } level++; } } //********* //Step 4: create the custom Subset var shn = "0"; var hiddenForm = topparent.getXtabFrame().document.fhidden; if (hiddenForm && hiddenForm.SHN != "undefined" && hiddenForm.SHN != null && hiddenForm.SHN.value == 1) shn = "1"; cmd += "ZQ" + rc + ":" + "\"\"\t3\t\"\"\t" + selections[0].getAttribute("dimIdx"); cmd += "\t" + shn + "\t0\t{\t\"A\"\t}"; cmd += "\t{\t\"N\"\t}"; cmd += "\t{\t\"M\"\t}"; cmd += "\t{\t\"P\"\t1\t}"; cmd += "\t{\t\"P\"\t0"; for (var i = 0; i < selections.length; i++) cmd += "\t" + selections[i].getAttribute("ppdsId"); cmd += "\t}"; doit(cmd); } function getMeasureOptions() { var raArray = topparent.getGlobal("renderAs"); var cmdArray = new Array(); cmdArray[0] = new ContextItem('', raArray[0]._label, function() {renderAsValues(raArray[0]._value);} ); cmdArray[1] = new ContextItem('', raArray[1]._label, function() {renderAsValues(raArray[1]._value);} ); cmdArray[2] = new ContextItem('', raArray[2]._label, function() {renderAsValues(raArray[2]._value);} ); cmdArray[3] = new ContextItem('', raArray[3]._label, function() {renderAsValues(raArray[3]._value);} ); cmdArray[4] = new ContextItem('', raArray[4]._label, function() {renderAsValues(raArray[4]._value);} ); cmdArray[5] = new ContextItem('', raArray[5]._label, function() {renderAsValues(raArray[5]._value);} ); if (raArray.length == 7) cmdArray[6] = new ContextItem('', raArray[6]._label, function() {renderAsValues(raArray[6]._value);} ); return cmdArray; } function getBlankAreaOptions() { var cmdArray = new Array(); var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); cmdArray[cmdArray.length] = createContextItem("edit_title",arrayContextMenu,function() { eval(openEditTitle)}); cmdArray[cmdArray.length] = createContextItem("display_opt",arrayContextMenu,function() { eval(openDisplayOpt)}); cmdArray[cmdArray.length] = createContextItem("find",arrayContextMenu,function() { eval(openFind)}); cmdArray[cmdArray.length] = createContextItem("explain",arrayContextMenu,function() { eval(explainAction)}); return cmdArray; } function getChartOptions(obj) { var options = new Array(); var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); options[options.length] = createContextItem("edit_title",arrayContextMenu,function() { eval(openEditTitle)}); options[options.length] = createContextItem("display_opt",arrayContextMenu,function() { eval(openDisplayOpt)}); options[options.length] = createContextItem("chart_opt",arrayContextMenu,function() { eval(openChartOpt)}); options[options.length] = createContextItem("find",arrayContextMenu,function() { eval(openFind)}); options[options.length] = createContextItem("explain",arrayContextMenu,function() { eval(explainAction)}); addCopyPasteOption(options, obj); return options; } function addCopyPasteOption(options, obj) { var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); if (!topparent.getGlobal("nn7") && !topparent.getGlobal("safari")) options[options.length] = createContextItem("copy_clipboard",arrayContextMenu,function() { copyObjToClipboard(obj); }); } function getLevelAreaOptions(obj) { var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; var totalLevels = numRowLevels; if (selectedAxis == "C") totalLevels = numColLevels; var canExpandLevel = parseInt(obj.getAttribute("canExpandLevel")); var canDrillOnLevel = parseInt(obj.getAttribute("canLevelDown")); var canDrillUpLevel = parseInt(obj.getAttribute("canLevelUp")); var contextArray = new Array(); var disabled = false; disabled = canExpandLevel == 1 ? false : true; contextArray[contextArray.length] = createContextItem("expand",arrayContextMenu,function() { expand()},disabled); disabled = totalLevels > 1 ? false : true; contextArray[contextArray.length] = createContextItem("del",arrayContextMenu,function() { deleteLevel()},disabled); if (selectedAxis == "R") { canMoveLevelLeft = parseInt(obj.getAttribute("canMoveLeft")); canMoveLevelRight = parseInt(obj.getAttribute("canMoveRight")); disabled = parseInt(obj.getAttribute("canMoveLeft")) == 1 ? false : true; contextArray[contextArray.length] = createContextItem("move_left",arrayContextMenu,function() { moveLeftOrUp()},disabled); disabled = parseInt(obj.getAttribute("canMoveRight")) == 1 ? false : true; contextArray[contextArray.length] = createContextItem("move_right",arrayContextMenu,function() { moveRightOrDown()},disabled); } else { canMoveLevelUp = parseInt(obj.getAttribute("canMoveUp")); canMoveLevelDown = parseInt(obj.getAttribute("canMoveDown")); disabled = parseInt(obj.getAttribute("canMoveUp")) == 1 ? false : true; contextArray[contextArray.length] = createContextItem("move_up",arrayContextMenu,function() { moveLeftOrUp()},disabled); disabled = parseInt(obj.getAttribute("canMoveDown")) == 1 ? false : true; contextArray[contextArray.length] = createContextItem("move_down",arrayContextMenu,function() { moveRightOrDown()},disabled); } disabled = canDrillOnLevel == 1 ? false : true; contextArray[contextArray.length] = createContextItem("down_level",arrayContextMenu,function() { drillDown()},disabled); disabled = canDrillUpLevel == 1 ? false : true; contextArray[contextArray.length] = createContextItem("up_level",arrayContextMenu,function() { drillUp()},disabled); contextArray[contextArray.length] = createContextItem("explain",arrayContextMenu,function() { explain()}); return contextArray; } function getDimBarOptions() { var arrayContextMenu = topparent.getGlobal("main_ContextMenu"); var cmdArray = new Array(); cmdArray[cmdArray.length] = createContextItem("find",arrayContextMenu,function() { eval(openFind)}); cmdArray[cmdArray.length] = createContextItem("explain",arrayContextMenu,function() { eval(explainAction)}); return cmdArray; } function contextmenuOption(label, state) { this._label = label; this._state = state; } function renderasOption(label, value) { this._label = label; this._value = value; } function renderAsValues( value ) { doit("OV:" + value); } function downaLevel( obj ) { var selectAxis; if( obj.getAttribute("type") == "r" ) selectAxis = "R"; if( obj.getAttribute("type") == "c" ) selectAxis = "C"; doit("ED:" + selectAxis + obj.getAttribute("mylevel")); } function upaLevel( obj ) { var selectAxis; if( obj.getAttribute("type") == "r" ) selectAxis = "R"; if( obj.getAttribute("type") == "c" ) selectAxis = "C"; doit("EU:" + selectAxis + obj.getAttribute("mylevel")); } function delCalculation(obj){ if (obj.getAttribute("dependent_cats") != null) { if (obj.getAttribute("Rank") == "true") { topparent.setGlobal("editingRank", 3); doit('MO'); } else { topparent.setGlobal("editingCalc", 3); doit('MC'); } } else { var del = 'MK:' + obj.getAttribute("ppdsId"); doit(del); } } function editCalculation(){ topparent.setGlobal("editingCalc", 1); topparent.getXtabFrame().doit('MC'); } function insertCalculation(obj){ topparent.setGlobal("editingCalc", 0); topparent.getXtabFrame().doit('MC'); } function renameCalculation(obj){ topparent.setGlobal("editingCalc", 2); topparent.getXtabFrame().doit('MC'); } function editRank() { topparent.setGlobal("editingRank", 1); topparent.getXtabFrame().doit('MO'); } function insertRank(obj) { topparent.setGlobal("editingRank", 0); topparent.getXtabFrame().doit('MO'); } function renameRank(obj) { topparent.setGlobal("editingRank", 2); topparent.getXtabFrame().doit('MO'); } function hideSelection(obj){ var command = ''; var addDelimiter = false; var rowSelections = getSelected("r"); var colSelections = getSelected("c"); if(rowSelections.length > 0 ) { command += genHideCommand(rowSelections, "R"); addDelimiter = true; } if( colSelections.length > 0) { if(addDelimiter == true) command += "\t\t"; command += genHideCommand(colSelections, "C"); } doit(command); } function genHideCommand(selections, selectedAxis){ var command = "MH:0"; var sumCommand = ''; var addDelimiter = false; var summArray = new Array() for( var i = 0; i < selections.length; i++) { var sel = selections[i]; if( sel.getAttribute("summary") == 'true' ) { if (!summArray[sel.getAttribute("group")]) { summArray[sel.getAttribute("group")] = true; if(addDelimiter) sumCommand += "\t\t"; addDelimiter = true; if(sel.getAttribute("group") == 0) sumCommand += "ET:" + selectedAxis + "0"; else sumCommand += "ES:" + selectedAxis + sel.getAttribute("group"); } } else { command += "\t" + sel.getAttribute("ppdsId"); if (!sel.getAttribute("calculation")) { if(sel.getAttribute("dimIdx") >= 0) command += ',' + sel.getAttribute("dimIdx"); if(sel.getAttribute("code")) command += ',' + sel.getAttribute("code"); } } } if(command == "MH:0") command = ''; if(sumCommand != '') { if(command != '') command += "\t\t"; command += sumCommand; } return command; } function drillDown() { var obj = getSelectedLevel(); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); if( selectedLevel < 0 ) return; var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; doit("ED:" + selectedAxis + selectedLevel); } function drillUp() { var obj = getSelectedLevel(); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); if( selectedLevel < 0 ) return; var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; doit("EU:" + selectedAxis + selectedLevel); } function deleteLevel() { var obj = getSelectedLevel(); if (!obj) return; //if this is the only level in the axis, do not allow delete operation var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; var totalLevels = numRowLevels; if (selectedAxis == "C") totalLevels = numColLevels; if( selectedLevel < 0 || totalLevels == 1) return; doit("EK:" + selectedAxis + selectedLevel); } function moveLeftOrUp() { var obj = getSelectedLevel(); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); //if this is outermost level (level 0), nothing to move left/up then if( selectedLevel <= 0 ) return; var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; //when moving left(up), server code expects number of the left(upper) level selectedLevel--; doit("EX:" + selectedAxis + selectedLevel); } function moveRightOrDown() { var obj = getSelectedLevel(); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); if( selectedLevel < 0 ) return; var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; var totalLevels = numRowLevels; if (selectedAxis == "C") totalLevels = numColLevels; //if this is the inermost level, nothing to move right/down then if(selectedLevel == totalLevels - 1) return; doit("EX:" + selectedAxis + selectedLevel); } function expand() { var obj = getSelectedLevel(); var type = obj.getAttribute("type"); var selectedLevel = parseLevelNumber ( type ); var selectedAxis = "R"; if ( type.indexOf("lc") >= 0) selectedAxis = "C"; doit("EN:" + selectedAxis + selectedLevel); } function explain() { var ACT_PANE_EXPLAIN = 4; var obj = getSelectedLevel(); var type = null; if (obj != null) type = obj.getAttribute("type"); var selectedAxis = "R"; if (type != null && type.indexOf("lc") >= 0) selectedAxis = "C"; var totalLevels = numRowLevels; if (selectedAxis == "C") totalLevels = numColLevels; //explain is only available on the inermost level topparent.getXtabFrame().fh.EXPL.value = '1' + '\t' + selectedAxis + (totalLevels - 1); topparent.getXtabFrame().fh.CO.value= "ME:" + selectedAxis + (totalLevels - 1); topparent.getXtabFrame().fh.ACTPANE.value = ACT_PANE_EXPLAIN; topparent.getXtabFrame().fh.CNCT.value = 19; topparent.getXtabFrame().fh.target = "ActionPane"; topparent.getXtabFrame().FTok=false; topparent.getXtabFrame().fh.RA.value = 999; parseAndSubmit(topparent.getXtabFrame().fh); } function deleteCustomSubset(obj) { topparent.getXtabFrame().doit("ZD:\"" + obj.getAttribute("code") + "\""); } function renameCustomSubset(obj) { topparent.getXtabFrame().doit("MZR:\"" + obj.getAttribute("code") + "\""); } function editCustomSubset(obj) { topparent.getXtabFrame().doit("MZE:\"" + obj.getAttribute("code") + "\""); } function dupCustomSubset(obj) { topparent.getXtabFrame().doit("ZU:\"" + obj.getAttribute("code") + "\""); } function copyObjToClipboard(obj) { //First clear the selection in the UI deselectAllXtab(null); document.selection.clear(); var cRange = document.body.createControlRange(); if (obj.getAttribute("type") == "chart") { cRange.addElement(obj); } else if (obj.getAttribute("type") == "d" || obj.getAttribute("type") == "r" || obj.getAttribute("type") == "c") { table = document.getElementById("legend0"); if (!table) { table = document.getElementById("legend0_0"); } table = table.firstChild; cRange.addElement(table); } cRange.execCommand("copy"); document.selection.clear(); } function createContextItem(name,contextArray,func, forceDisable) { var disabled = contextArray[name]._state == 0 ? true : false; if (forceDisable) disabled = true; return new ContextItem('',contextArray[name]._label, func, disabled); } function isCrosstabDisplay() { var hiddenForm = topparent.getXtabFrame().document.fhidden; return (!(hiddenForm.Y) || (hiddenForm.YS) || parseInt(hiddenForm.Y.value) == 9); }