Robert,
I just wanted to let you know everything's working great but I did notice a couple of minor things:
1. I added the following into function lengthsCompleteHandler:
if(cMenu.customItems.length>1)
cMenu.customItems.splice(1,cMenu.customItems.length);
2. I noticed a small typo: changed recalulate to recalculate
As always, your presence on this board is invaluable. Thanks again.