var Offmessage = function () {
  bindMethods(this);
  var self = this;
  self.__init__();
}

update(Offmessage.prototype, {
  '__init__': function () {
    var self = this;
    self.elements = {};
  },
  
  'loader': function () {
    var self = this;
    // Clean up the HTML for users that have JS enabled
    self.elements['searchform'] = removeElement('searchform');
    self.elements['archivelist'] = removeElement('archivelist');
    /*
    // XXX Not sure about this - makes the page jump sometimes
    var navDiv = getElementsByTagAndClassName('div', 'navigation')[0];
    if (navDiv) {
      var navLinks = getElementsByTagAndClassName('a', null, navDiv);
      if (navLinks.length == 0) {
        removeElement(navDiv);
      }
    }
    */
    // Append the divs for popups
    appendChildNodes('wrapper',
      DIV({'id': 'searchform-popup', 'style': 'display: none;'}),
      DIV({'id': 'searchform-wrapper', 'style': 'display: none'},
        A({'id': 'searchform-close', 'class': 'close', 'href': 'close-search'}, 'Close'),
        P(null, "Search Offmessage:"),
        self.elements['searchform']),
      DIV({'id': 'archivelist-popup', 'style': 'display: none;'}),
      DIV({'id': 'archivelist-wrapper', 'style': 'display:none;'}, 
        A({'id': 'archivelist-close', 'class': 'close', 'href': 'close-archives'}, 'Close'),
        self.elements['archivelist']));
    connect('searchform-close', 'onclick', self.hideSearch);
    connect('archivelist-close', 'onclick', self.hideArchives);
    // Connect up the events
    connect('archives', 'onclick', self.showArchives);
    connect('search', 'onclick', self.showSearch);
  },
  
  'showArchives': function (ev) {
    var self = this;
    if (ev) ev.stop();
    showElement('archivelist-popup');
    showElement('archivelist-wrapper');
    self.hideSearch();
  },
  
  'hideArchives': function (ev) {
    var self = this;
    if (ev) ev.stop();
    hideElement('archivelist-popup');
    hideElement('archivelist-wrapper');
  },
  
  'showSearch': function (ev) {
    var self = this;
    if (ev) ev.stop();
    getElement('s').value = '';
    showElement('searchform-popup');
    showElement('searchform-wrapper');
    getElement('s').focus();
    self.hideArchives();
  },
  
  'hideSearch': function (ev) {
    var self = this;
    if (ev) ev.stop();
    hideElement('searchform-popup');
    hideElement('searchform-wrapper');
  }
  
});

var offmessage = new Offmessage();
addLoadEvent(offmessage.loader);
