
if (typeof freewave == "undefined") {
   var freewave = {};
}

freewave.Contacts = {
   addresses: {
      theOffice: "-6F-66-66-69-63-65-40-66-72-65-65-77-61-76-65-2E-61-74",
      theNewsletter: "-6E-65-77-73-6C-65-74-74-65-72-40-66-72-65-65-77-61-76-65-2E-61-74"
   },

   load: function () {
     var aElements = document.getElementsByTagName("a");
     var mailLinks = [];

     for (var i = 0; i < aElements.length; i++)
       if (aElements[i].getAttribute("href") && aElements[i].getAttribute("href").search(/^mailto\:[a-zA-Z]+$/) != -1)
         mailLinks.push(aElements[i]);

     while (mailLinks.length > 0) {
       var el = mailLinks.pop();
       var key =  el.getAttribute("href").split(":")[1];
       el.setAttribute("href","mail"+ "to:" + this.decode(key));
       Element.update(el, this.decode(key));
     }
   },
   
   decode: function (key) {
     if (this.addresses[key])
       return unescape(this.addresses[key].replace(/\-/g,"%"));
     else  
       return "Error: Contact '"+ key +"' not found.";
   },
   
   write: function (key) {
     document.write(this.decode(key));
   },

   mailto: function (key) {
     void(location.href = "mail" + "to:" + this.decode(key));
   }
   
};

Event.observe(window, "load", function(e) {
   freewave.Contacts.load();
});