﻿var Calendar = {         /*         * parses the date string in the format yyyy-mm-dd         * can be overloaded to support other date string formats         *         * returns the date object         */     parse : function( dateString) {         datePattern = /(\d\d\d\d)-(\d\d)-(\d\d)/;         if ( result=dateString.match( datePattern))          {              date = new Date();             date.setFullYear( result[1], result[2]-1, result[3]);             return date;         }         else         {             return "Orangevolt Calendar : Parsing date '" + dateString + "' using pattern '" + datePattern + "' failed.";         }     },              /*         * returns the html replacing the blogger date         */     renderHTML : function( date, origDateString) {         months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];                  return "<span class='cal' title='" +              origDateString +              "'><span class='cal_month'>" +              months[ date.getMonth()] +              "</span><span class='cal_day'>" +              date.getDate() +              "</span></span>";     },          inject : function() {         $$('h2.date-header').each( function( date_header) {             text = date_header.lastChild.nodeValue;             date = Calendar.parse( text);                      if( 'object'== typeof date)  // date object was returned (i.e. as expected)             {                     date_header.lastChild.nodeValue="";                     new Insertion.Bottom(                          date_header,                         Calendar.renderHTML( date, text)                     )             }             else                            // not-a-date-object-but-something-else was returned -> error             {                 new Insertion.Bottom(                     date_header,                     "<span style='color:red;font-style:italic'>" + date + "</span>"                 );             }         });     },      Calendar : function() {         /*         * make calendar widget unobtrusive         * and call it after the dom tree is completely loaded         */         //Event.observe( window, 'load', Calendar.inject, false);         FastInit.addOnLoad( Calendar.inject);     } };  Calendar.Calendar();