rem: this.pageData[aPageTag][aItemID] = aDataObject; 
add:  this.pageData[aPageTag].elementIDs[aItemID] = aDataObject; 
context: function nsWidgetStateManager (aFrameID){  this.dataManager = {    /** Persisted Data Hash Table     *  Page_ID -> Element_ID -> Property -> Value     **/    pageData: { },    setPageData: function (aPageTag, aDataObject)    {      this.pageData[aPageTag] = aDataObject;    },    getPageData: function (aPageTag)    {      if (!(aPageTag in this.pageData))        this.pageData[aPageTag] = { };      return this.pageData[aPageTag];    },    setItemData: function (aPageTag, aItemID, aDataObject)    {      if (!(aPageTag in this.pageData))        this.pageData[aPageTag] = new Object();      this.pageData[aPageTag][aItemID] = aDataObject;    },    getItemData: function (aPageTag, aItemID)    {      if (!(aItemID in this.pageData[aPageTag]))        this.pageData[aPageTag][aItemID] = new Object();      return this.pageData[aPageTag][aItemID];    }  }  this.contentID    = aFrameID;  wsm               = this;  /** Element Handlers   *  Provides default get and set handler functions for supported   *  widgets. Clients can override or add new widgets.   **/  this.handlers     = {    menulist:      {  get: wsm.get_Menulist,    set: wsm.set_Menulist      },    radiogroup:      {  get: wsm.get_Radiogroup,  set: wsm.set_Radiogroup    },    checkbox:      {  get: wsm.get_Checkbox,    set: wsm.set_Checkbox      },    textbox:      {  get: wsm.get_Textbox,     set: wsm.set_Textbox       },    listitem:      {  get: wsm.get_Listitem,    set: wsm.set_Listitem      },    data:      {  get: wsm.get_Data,        set: wsm.set_Data          },    default_handler:      {  get: wsm.get_Default,     set: wsm.set_Default       }  }  // extra attributes to scan and save.  this.attributes   = [];}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/ad2c14ebc1a2f69a8a616ad31a14f4b7f36e9fde/nsWidgetStateManager.js/clean/toolkit/content/nsWidgetStateManager.js