/******************************************************************************************************************************** * Licensed Materials - Property of IBM * * * * IBM Cognos Products: AGS * * * * (C) Copyright IBM Corp. 2005, 2014 * * * * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * *********************************************************************************************************************************/ /*----------------------------------------------------------------------------------------------------- Class : AccessibilityHandler Description : -----------------------------------------------------------------------------------------------------*/ // Switch for keyboard support: true-turn on, false-turn off var m_bSupportAccessibility = false; // supported key code Tab-Enter-Esc-Space-Left-Up-Right-Down var m_aSupportedKeycode = [9, 13, 27, 32, 37, 38, 39, 40]; var m_aTabMenuItems; var m_aSummaryBarItems; var m_oMetadataTree; var m_oSourceTab; var AccessibilityHandler = {}; AccessibilityHandler.isEnabled = function () { // check if user enable accessibility this.checkCookie(); if(m_bSupportAccessibility && !document.all) return true; return false; } AccessibilityHandler.checkCookie = function () { var accessibility_cookie = getCookie("AGS_ACCESSIBILITY_ENABLED"); if (accessibility_cookie != null && accessibility_cookie == "true") { m_bSupportAccessibility = true; } } AccessibilityHandler.enableAccessibility = function () { var cf = window.parent.getConfigFrame(); var b_confirm = confirm(cf.enableAccessibility_string); if (b_confirm) { setCookie("AGS_ACCESSIBILITY_ENABLED","true"); } } AccessibilityHandler.disableAccessibility = function () { var cf = window.parent.getConfigFrame(); var b_confirm = confirm(cf.disableAccessibility_string); if (b_confirm) { setCookie("AGS_ACCESSIBILITY_ENABLED","false"); } } AccessibilityHandler.initKeyboard = function () { if(this.isEnabled()) { this.initTaskMenu(); this.initTabMenu(); // register key down handler for CTRL key press document.body.onkeydown = this.onkeydown; } } AccessibilityHandler.initTaskMenu = function () { var taskMenuHTML = document.getElementById("taskContents_tableID"); var taskMenuData = new CMenuExtractor(taskMenuHTML,"tr"); taskMenuData.initTaskMenuItem(); } AccessibilityHandler.initTabMenu = function () { var tabMenuHTML = document.getElementById("menuTabs_and_Props"); var tabMenuData = new CMenuExtractor(tabMenuHTML,"img"); m_aTabMenuItems = tabMenuData.getTabMenuItems(); for (var i=0; i first) { next = next - 1; } else { next = last; } // only retrieve one circle if(count == last) break; } } return parent.get(next); } AccessibilityHandler.isNextAvailable = function (item) { if (item instanceof CToolbarButton) { return false; } else if (item instanceof CMenuItem && item.getMenuType() == "dynamic") { var style = item.getHTMLElement().getAttribute("style"); if (style == null || style.indexOf("none") == -1) { return false; } } else if (item instanceof CMenuItem && item.isVisible()) { return false; } return true; } function setCookie(c_name,value,expiredays) { var exdate = new Date(); if (expiredays != null) { exdate.setDate(exdate.getDate()+expiredays); } else { exdate.setUTCFullYear(exdate.getUTCFullYear() + 1); } document.cookie = c_name+ "=" + escape(value) + ";expires=" + exdate.toGMTString(); } function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) { c_end=document.cookie.length; } return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } function isVisible(element) { var rect = element.getBoundingClientRect(); return !!(rect.bottom - rect.top); }