Complex data structure organization in javascript?
While there's nothing completely wrong with what you did, if I were the programmer coming in behind you - I would certainly curse your name.  Writing "good" code (to me of course) requires more than meeting the objectives.  Readability and maintainability are just as important.

My concern with your design didn't set in until I saw the sample code to build the menu. Seeing all those brackets and indexes just about melted my brain.  I think if you would use object literals rather than straight arrays then my problems go away as it should then be much more readable and straight forward.