function SubItem()
{
   this.text  = "";
   this.value = "";
}
/****** this object holds all of the key data **********/
function SubMenu(text)
{
   this.text   = text;
   this.value  = "";
   this.items  = new Array();
}
/**************************************************************/
/******** array declarations... they hold all of the data for the menus ****/
var catMenuData = new Array();

var styMenuData = new Array();

/*****************************************************************/
function updateMenus(data, main, sub) {
   var n = main.selectedIndex;
   sub.length = data[n].items.length;
   for (var x = 0; x < sub.length; x++)
   {
      sub.options[x].text = data[n].items[x].text;
      sub.options[x].value = data[n].items[x].value;
   }
   sub.selectedIndex = 0;
}
/**************************************************************/
function assignMenuItems(menuData, menuMain, selMainID, menuSub, selSubID)
{
   var idx;
   menuMain.length = menuData.length;
   for (var i = 0; i < menuData.length; ++i) {
      // menuMain.options[i] = new Option(menuData[i].text, menuData[i].value, (menuData[i].value == selMainID), false);
      menuMain.options[i].text = menuData[i].text;
      menuMain.options[i].value = menuData[i].value;
      if (menuData[i].value == selMainID)
         idx = menuMain.selectedIndex = i;
   }

   menuSub.length = menuData[idx].items.length;
   for (var i = 0; i < menuData[idx].items.length; i++) {
      // menuSub.options[i] = new Option(menuData[idx].items[i].text, menuData[idx].items[i].value, (menuData[idx].items[i].value == selSubID), false);
      menuSub.options[i].text = menuData[idx].items[i].text;
      menuSub.options[i].value = menuData[idx].items[i].value;
      if (menuData[idx].items[i].value == selSubID)
         menuSub.selectedIndex = i;
   }
}
/**************************************************************/
function createMenu(menuRaw, menuData, menuMain, mainID, menuSub, subID) {
   for (var i = 0; i < menuRaw.length; ++i )
   {
      var menuPieces = menuRaw[i].split("*");
      menuData[i] = new SubMenu(menuPieces[0]);
      menuPieces = menuPieces[1].split("#");

      var subPieces;
      for (var j = 0; j < menuPieces.length; ++j)
      {
         menuData[i].items[j] = new SubItem();
         subPieces = menuPieces[j].split("|");
         menuData[i].items[j].text = subPieces[0];

         subPieces = subPieces[1].split(":");
         menuData[i].items[j].value = subPieces[1];
      }
      menuData[i].value = subPieces[0];
   }

   assignMenuItems(
      menuData,
      menuMain,
      mainID,
      menuSub,
      subID
   );
}
