
   var MessageLog = Class.create();
   
   MessageLog.prototype = {
   
      initialize: function(container_id, db_tablename) {
         this.container_id = container_id;
         this.db_tablename = db_tablename || "messagelog";
         
         // this.messagecontainer = $(this.container_id);
         
         // load old messages ? 
         
      },

      
      getId: function() {
         return this.container_id;
      },
      

      // helper-function: add a leading zero to a 1 digit number
      addzero: function(number) {
         if (number<10) {
            return "0"+number;
         } else {
            return number;
         }
      },
      
      
      /* todo: third parameter type (info, error, warning, etc.) */
      write: function(message, comment, type) {
         
         var comment = comment || "";
         var type = type || "info";
         
         //   type "info"   :   displayed to user as status message, written to db
         //   type "error"  :   displayed to user as error message, written to db
         //   type "hidden" :   only written to db
        
         var localTime = new Date;
         var log_time_disp = this.addzero(localTime.getHours()) + ":" + this.addzero(localTime.getMinutes()) + ":" + this.addzero(localTime.getSeconds());
         var log_time_full = localTime.getFullYear() + "-" + this.addzero(localTime.getMonth()+1) + "-" + this.addzero(localTime.getDate()) + " " + log_time_disp;
         // alert(log_time_full);
         
         
         if (type!="hidden") {
            
            if (type=="error") {
               var newmessageHTML = '<span style="color:#dc0000;">'+log_time_disp+'</span> '+message+'<br />';
            } else {
               var newmessageHTML = '<span style="color:grey;">'+log_time_disp+'</span> '+message+'<br />';
            }
            
            this.messagecontainer = $(this.container_id);
            
            // this.messagecontainer.innerHTML = newmessageHTML + this.messagecontainer.innerHTML;
            
            this.messagecontainer.insert({
                  top: newmessageHTML
            });
            
            new Effect.Highlight(this.container_id,{});
         }
                  
         
         // write message to DB via Ajax
         /*
         
         var url = 'ajax/trigger-messagelog-write.php';
         
         try {
            url = global_baseURL + url;
         } catch(e) {
         }
         
            
         var pars = {
            localTime: log_time_full,
            type: type,
            message: message,
            comment: comment,
            db_tablename: this.db_tablename
         };
            
         new Ajax.Request(url, {method: 'post', parameters: $H(pars).toQueryString(), onFailure: this.write_failure.bind(this) });
         */
         
      },
      
      
      // if writing log to db failed...
      write_failure: function() {
         alert("Error writing to messagelog database!");
      },
      
        
      // clear status line display 
      clear: function() {
         this.messagecontainer = $(this.container_id);
         this.messagecontainer.update();
      },
      
      
      // dump content of status line display to debug area
      dump: function() {
         $('dump').update(this.messagecontainer.innerHTML);
      }
      
   }
   
  

