var Collapse = new Class({
  initialize : function(element){
   this.element = $(element);
   
   this.headers = this.element.getElements("h2");
   
   var self = this;
   this.headers.addEvent("click",function(){self.open(this); });
   
   this.openHeader = this.element.getElement("h2.open");
   
   this.headers.filter(function(e){return !e.hasClass("open");}).each(this.close);
  },
  open : function(element){
    if(this.openHeader){
      this.close(this.openHeader);
    }
    
    element.removeClass("closed").addClass("open");
    element.getNext(".window").removeClass("closed");
    this.openHeader = element;
  },
  close : function(element){
    element.removeClass("open").addClass("closed");
    element.getNext(".window").addClass("closed");
    this.openHeader = null;
  }
});

var hoverize = function(elements){
  $$(elements).each(function(e){
    e.addEvents({
      mouseenter : function(){ e.addClass("hover"); },
      mouseleave : function(){ e.removeClass("hover"); }
    });
  });
};