// Licensed Materials - Property of IBM // // IBM Cognos Products: pps // // (C) Copyright IBM Corp. 2005, 2022 // // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. // This forms the javascript functions used for PowerPlay Studio // except for those functions involved with HTML4 // The functions handle any minor browser differences. var fh, gImgArray, iconHelp; var imgNm; var FTok = false; var _fhchanged = false; var _fhtarget; var _fhaction; var _fhRA; var gparent = getGrandParentofFXWindow(); var hasFinishedLoading = 0; function winFocus(w) { if(w!=null&&w.focus!=null) w.focus(); } function sync( ){ gImgArray=gparent.FT.gToolbarImg; iconHelp=gparent.FT.iconHelp1; FTok = true; } function initVars(){ fh=document.fhidden; if (fh) { fh.CO.value = ""; fh.RA.value = "999"; captureScreenRes(fh); if(gparent.FXloaded!=null){ gparent.FXloaded=1; gparent.sync(); } } } function captureScreenRes(fh){ setCookie("BRes",screen.availWidth + "*" + screen.availHeight,(10*365),topparent.getGlobal('cookieSecure')); } function initXtab(){ initVars(); reloadActionPane(); reloadToolbar(); } function crosstab() { var ACT_PANE_NONE = 0; var ACT_PANE_FIND = 1; var ACT_PANE_HIDESHOW = 2; var ACT_PANE_EXPLAIN = 4; var ACT_PANE_PDFOPTIONS = 5; var ACT_PANE_DISPLAYOPTIONS = 6; var ACT_PANE_CALCULATION = 7; var ACT_PANE_CUSTOMEXCEPTIONS = 8; var ACT_PANE_EDITTITLE = 9; var ACT_PANE_CUSTOM_SUBSETS_INIT = 10; var ACT_PANE_RANK = 11; var ACT_PANE_SUPPRESS_OPTIONS = 12; var ACT_PANE_CHART_OPTIONS = 13; var ACT_PANE_XTAB_OPTIONS = 14; var ACT_PANE_ABOUT = 15; var actionFrame = ACT_PANE_NONE; switch (fh.CO.value) { case "MF": actionFrame = ACT_PANE_FIND; break; case "ME": actionFrame = ACT_PANE_EXPLAIN; break; case "MQ": actionFrame = ACT_PANE_HIDESHOW; break; case "MT": actionFrame = ACT_PANE_DISPLAYOPTIONS; break; case "MC": actionFrame = ACT_PANE_CALCULATION; break; case "MX": actionFrame = ACT_PANE_CUSTOMEXCEPTIONS; break; case "MP": actionFrame = ACT_PANE_PDFOPTIONS; break; case "MI": actionFrame = ACT_PANE_EDITTITLE; break; case "MO": actionFrame = ACT_PANE_RANK; break; case "MD": actionFrame = ACT_PANE_SUPPRESS_OPTIONS; break; case "MY": actionFrame = ACT_PANE_CHART_OPTIONS; break; case "MB": actionFrame = ACT_PANE_XTAB_OPTIONS; break; case "MA": actionFrame = ACT_PANE_ABOUT; break; default: if (fh.CO.value.indexOf("MZ") == 0) { actionFrame = ACT_PANE_CUSTOM_SUBSETS_INIT; } } if (actionFrame != ACT_PANE_NONE) { if(actionFrame == ACT_PANE_EXPLAIN) setSelections(); if (fh.ACTPANE.value == actionFrame && (actionFrame != ACT_PANE_CUSTOM_SUBSETS_INIT || fh.CO.value == "MZI") && (topparent.document.getElementById("rightFrameset").rows.indexOf("*,0"))) {//Close Action frame and set to none. topparent.closeActionPane(); return; } else {//Set to correct action pane and render fh.ACTPANE.value = actionFrame; fh.CNCT.value = 19; fh.target = "ActionPane"; } parseAndSubmit(fh); } else { var xtabFrame = topparent.getXtabFrame(); var chartFrame = topparent.getChartFrame(); if ( topparent.isChartPaneOpen() ) { topparent.chartHeight = chartFrame.document.body.offsetHeight; topparent.xtabHeight = xtabFrame.document.body.offsetHeight; } if((fh.CO.value).substring(0,2)!='GE') //export to PDF fh.target = topparent.Data.name; else fh.target = "_blank"; if ((fh.CO.value).substring(0,4) == 'RA:1') { fh.target = "_blank"; } fh.CNCT.value = 14; parseAndSubmit(fh); } FTok=false; } function doit(action){ //preventative parsing if ( action.charAt((action.length - 1)) == '\t' && action.charAt((action.length - 2)) == '\t' ) action = action.substr(0, action.length - 2); initVars(); // required for NS3 as it does not trap the resize event if (action.charAt(0) == "!") { eval(action.substring(1)); } else { if(fh) { if(fh.RA.value != 12) fh.RA.value = 999; if( action.substring(0,2) == "LM" ){ fh.LM.value=action; } else { fh.CO.value=action; } if (fh.CNCT.value == 5) { fh.CNCT.value = 1; fh.target = "_self"; } crosstab(); } } } function doParent(action, target){ fh.CO.value=action; if (!topparent.name) topparent.name = "temp"; if (target) fh.target = target; else fh.target = topparent.name; FTok=false; parseAndSubmit(fh); } function doOver(a,n,r){ if(FTok) { document.images[a].src=gImgArray[n][r].src; window.status=what(iconHelp[n]); } return true; } function doClick(a,n,it){ doOver(a,n,2); eval("doit('" + it + "')"); } function what(t){ status = t; return true; } function getGrandParentofFXWindow() { var retVal = window.parent; // If we are in split-view, the parent // frame will be the "Data" frame. If so, // we want the parent of "Data". if (retVal.name == "Data") retVal = window.parent.parent; return retVal; } function setSelections() { var rowSelections = getSelected("r"); var colSelections = getSelected("c"); var action = fh.CO.value; if(fh.CO.value == "ME") fh.EXPL.value = '1'; if (rowSelections.length == 1 && rowSelections[0].getAttribute("nodeId")){ if (colSelections.length == 1 || !colSelections.length){ action += ":" + "r" + rowSelections[0].getAttribute("nodeId"); } } if (colSelections.length == 1 && colSelections[0].getAttribute("nodeId")){ if (!rowSelections.length) action += ":" + "c" + colSelections[0].getAttribute("nodeId"); if(rowSelections.length == 1) { if(fh.CO.value == "ME") fh.EXPL.value = '1\tc' + colSelections[0].getAttribute("nodeId"); } } fh.CO.value=action; } function parseAndSubmit(fh) { //************WARNING************* //** Do not do this with any other hidden form parameter //** The ACTPANE parameter is special since we know that //** it's value is correct, and won't corrupt the LKGS //******************************** //We need to add the active action pane to the LKGS if (fh.LKGS) fh.LKGS.value += "&ACTPANE=" + fh.ACTPANE.value; if (fh.DSHSP && !topparent.getGlobal('is_save')) { fh.removeChild(fh.DSHSP); } if ((document.charset && document.charset.toLowerCase() == "shift_jis") || (document.characterSet && document.characterSet.toLowerCase() == "shift_jis")) { var children = fh.childNodes; var length = children.length; var i=0; for (; i < length; i++) { var child = children[i]; if (child.value) { child.value = escape(child.value); var str = child.value; str = str.replace(/%u2016/g, "%u2225"); str = str.replace(/%u2014/g, "%u2015"); str = str.replace(/%u301C/g, "%uff5e"); str = str.replace(/%u2212/g, "%uff0d"); child.value = unescape(str); } } } // XSRF-TOKEN cookie is null when disableXSRFCheck=true in bootstrap.properties. var xsrfTokenCookie = getCookie("XSRF-TOKEN"); if (xsrfTokenCookie && (fh.CO.value).substring(0,3) == 'IP:') { // CAPSIRTS-412 / CAPP-171 and CAPP-332 // 1. In PowerPlay Studio, right click in blank area of right pane or click "Display Options" in toolbar. // 2. Select "Edit Title...", enter or change title, and click "OK". var input = document.createElement("input"); input.setAttribute("name", "pp_client_caf"); input.setAttribute("type", "hidden"); fh.appendChild(input); fh.ppClientCAF = input; fh.ppClientCAF.setAttribute("value", ""); var existingForm = document.getElementById(fh.id); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4) { parent.Data.document.write(xhr.responseText); parent.Data.document.close(); } } xhr.open(existingForm.method, existingForm.action, false); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("X-XSRF-TOKEN", xsrfTokenCookie); xhr.send(getFormDataQueryString(existingForm)); } else { fh.submit(); } } function getFormDataQueryString(form) { var keyValuePairs = []; for (var i = 0; i < form.elements.length; i++) { var element = form.elements[i]; keyValuePairs.push(encodeURIComponent(element.name) + "=" + encodeURIComponent(element.value)); } return queryString = keyValuePairs.join("&"); }