How to hide and show left navigation items in CRM 4.0

The first you need to do when you want to manipulate the left navigation section is to create a general function to get a reference to a navigation block. The reason is because each time you want to hide or show a block or nav item you need the DOM reference of the navigation block so instead of copying the code every time, you write a function and you call it everywhere.

Get the DOM reference to a left navigation block in CRM 4.0

/* Jscript: Get the DOM reference */
function GetNavBlock(block)
{
var objBlockDetails = document.getElementById("_NA_Info");
var objBlockSales = document.getElementById("_NA_SFA");
var objBlockService = document.getElementById("_NA_CS");
var objBlockMarketing = document.getElementById("_NA_MA");
var objNavBlock = null;

if (objBlockDetails.innerText.substr(0, objBlockDetails.innerText.indexOf(":")).toLowerCase() == block.toLowerCase())
objNavBlock = objBlockDetails;
else if (objBlockSales.innerText.substr(0, objBlockSales.innerText.indexOf(":")).toLowerCase() == block.toLowerCase())
objNavBlock = objBlockSales;
else if (objBlockService.innerText.substr(0, objBlockService.innerText.indexOf(":")).toLowerCase() == block.toLowerCase())
objNavBlock = objBlockService;
else if (objBlockMarketing.innerText.substr(0, objBlockMarketing.innerText.indexOf(":")).toLowerCase() == block.toLowerCase())
objNavBlock = objBlockMarketing;
else
throw "The navigation block '" + block + "' doesn't exists.";

return objNavBlock;
}

Hide a navigation block in CRM 4.0

/* Jscript: Hide a navigation block */
function HideNavBlock(block){
var objNavBlock = GetNavBlock(block);
objNavBlock.parentElement.style.display = "none";
}

Show a navigation block in CRM 4.0
 
/* Jscript: Show a navigation block */
function ShowNavBlock(block){
var objNavBlock = GetNavBlock(block);
objNavBlock.parentElement.style.display = "";
}



Hide a navigation item in a navigation block in CRM 4.0
 
/* Jscript: Hide a navigation item in a navigation block */
function HideNavItem(block, item){
var objNavBlock = GetNavBlock(block);
for (var i=0; i {
var menuItem = objNavBlock.nextSibling.childNodes[i];
if (menuItem.childNodes[0].childNodes[1].innerText == item)
menuItem.style.display = "none";
}
}



Show a navigation item in a navigation block in CRM 4.0
 
/* Jscript: Show a navigation item in a navigation block */
function ShowNavItem(block, item)
{
var objNavBlock = GetNavBlock(block);

for (var i=0; i {
var menuItem = objNavBlock.nextSibling.childNodes[i];

if (menuItem.childNodes[0].childNodes[1].innerText == item)
menuItem.style.display = "";
}
}