/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