/content/folder[@name='Samples']/folder[@name='Cubes']/package[@name='Sales and Marketing (cube)']/model[@name='2008-07-25T15:28:38.072Z'] <div id="Products"> </div> <div id="Retailers"> </div> <script> /* * Class and variables */ var paulScripts = {} , oCR = cognos.Report.getReport("_THIS_") , gateway = window['oCV_THIS_'].getRV().getCV().sGateway; // UTILITY FUNCTIONS /* * for 10.2+ * function paulScripts.getControl - Paul Mendelson * Simply returns the prompt control. */ paulScripts.getControl = function(promptName) { return oCR.prompt.getControlByName(promptName); }; function checkSearch(name){ var elmOptions = document.getElementById(name).firstChild.lastChild.firstChild.firstChild.lastChild.firstChild.firstChild , elmSelectLinks = elmOptions.parentNode.nextSibling , textBox = document.createElement('input') , clear = document.createElement('input') , myLinks = elmSelectLinks.cloneNode() , mySel = document.createTextNode('Select all matching') , mySpacer = document.createTextNode(' ') , myDeSel = document.createTextNode('Deselect all matching') , mySelSpan = document.createElement('span') , myDeSelSpan = document.createElement('span') , underlineMe = function(){this.style.textDecoration='underline'} , deUnderlineMe = function(){this.style.textDecoration='none'} , checkAllVisible = function () { var arr=window['arr'+name], arrLength = window['arr'+name].length; for(var i = 0;i<arrLength;++i){ var elm = document.getElementById(arr[i]); if(!elm.checked) elm.click() } } , uncheckAllVisible = function () { var arr=window['arr'+name], arrLength = window['arr'+name].length; for(var i = 0;i<arrLength;++i){ var elm = document.getElementById(arr[i]); if(elm.checked) elm.click() } } , searchTimer = (function (){ var timer; return function(v){ clearTimeout(timer); timer = window.setTimeout( function(){ var labels = elmOptions.getElementsByTagName('label').length , regexp=new RegExp(v,'i'); if(!v) {clearAll();return false}; elmSelectLinks.style.display='none'; myLinks.style.display=''; window['arr'+name].length=0; for(var i = 0;i<labels;++i){ if(!regexp.test(elmOptions.getElementsByTagName('label')[i].innerText)) {elmOptions.getElementsByTagName('label')[i].parentNode.style.display='none'} else {elmOptions.getElementsByTagName('label')[i].parentNode.style.display='';window['arr'+name].push(elmOptions.getElementsByTagName('label')[i].htmlFor)} } } ,300); return true }; })() ; //end variables window['arr'+name] = []; //I'm certain there is a better way of doing this. Basically it's dynamically creating an array in order to store the visible options. if(elmSelectLinks.style.display!='none'&&(elmSelectLinks.firstChild.innerText.length>0||elmSelectLinks.lastChild.innerText.length>0)){ var clearAll = function() {textBox.value=''; var labels = elmOptions.getElementsByTagName('label').length; myLinks.style.display='none'; elmSelectLinks.style.display=''; for(var i = 0;i<labels;++i){ elmOptions.getElementsByTagName('label')[i].parentNode.style.display=''; } } mySelSpan.className='clsLink pl'; myDeSelSpan.className='clsLink pl'; mySelSpan.style.cursor='pointer'; myDeSelSpan.style.cursor='pointer'; mySelSpan.onmouseover=underlineMe; myDeSelSpan.onmouseover=underlineMe; mySelSpan.onmouseout=deUnderlineMe; myDeSelSpan.onmouseout=deUnderlineMe; mySelSpan.onclick=checkAllVisible; myDeSelSpan.onclick=uncheckAllVisible; mySelSpan.appendChild(mySel); myDeSelSpan.appendChild(myDeSel); myLinks.style.display='none'; myLinks.appendChild(mySelSpan); myLinks.appendChild(mySpacer); myLinks.appendChild(myDeSelSpan); elmSelectLinks.parentNode.insertBefore(myLinks,elmSelectLinks);} else { var clearAll = function() {textBox.value=''; var labels = elmOptions.getElementsByTagName('label').length; for(var i = 0;i<labels;++i){ elmOptions.getElementsByTagName('label')[i].parentNode.style.display=''; } } } textBox.type='text'; textBox.onkeyup= function(){searchTimer(this.value)}; clear.value='X'; clear.type='button'; clear.onclick=clearAll; elmOptions.parentNode.insertBefore(textBox,elmOptions); elmOptions.parentNode.insertBefore(clear,elmOptions); } checkSearch('Products'); checkSearch('Retailers'); </script> [sales_and_marketing].[Products].[Products][sales_and_marketing].[Retailers].[Retailers]checkSearch