add: if (lastNopreviewSortColumn == "host") { lastNopreviewSortAscending = !lastNopreviewSortAscending; } 
context:   observe: function(subject, topic, state) {    if (topic == "signonChanged") {      if (state == "signons") {        signons.length = 0;        LoadSignons();      } else if (state == "rejects") {        rejects.length = 0;        LoadRejects();      } else if (state == "nocaptures") {        nocaptures.length = 0;        LoadNocapture();      } else if (state == "nopreviews") {        nopreviews.length = 0;        LoadNopreview();      }    } else if (topic == "signonSelectUser") {      if (state == "suspend") {        gSelectUserInUse = true;        document.getElementById("removeSignon").disabled = true;        document.getElementById("removeAllSignons").disabled = true;      } else if (state == "resume") {        gSelectUserInUse = false;        var selections = GetTreeSelections(signonsTree);        if (selections.length > 0) {          document.getElementById("removeSignon").disabled = false;        }        if (signons.length > 0) {          document.getElementById("removeAllSignons").disabled = false;        }      } else if (state == "inUse") {        gSelectUserInUse = true;      }    }  }
meta: 5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5872/f64be3a8ce31f20619763e8ee8520141478dac1b/SignonViewer.js/clean/extensions/wallet/signonviewer/SignonViewer.js