anchor.diff:  %% Notes    :
   %%======================================================================
   generateAlarmMsg(timer, Text) ->
  +    Portrait  = getRootDir() ++ "/Icons/eTodo.png",
  +    WPortrait = "/priv/Icons/eTodoBiggest.png",
  +
       {tableTag([{cellspacing, "0"}, {cellpadding, "10"}],
                 [trTag([tdTag([{colspan, 3}], [])]),
                  trTag(
  
positive.code:                   tdTag([{valign, "top"}, {bgcolor, ?Background}],
                          fontTag(?HdrOptions2,
                                  aTag([{href, UidStr}], "eTodo")))]),
                 trTag([tdTag(), tdTag([{bgcolor, ?Background}], []),
                        tdTag([{bgcolor, ?Background}],
                            fontTag(?MsgOptions1, eMd2Html:convert(Text)))])]),
       tableTag([{class, "msgAlarm"}],
                [trTag(
                   [tdTag([{class, "msgImg"}],
                          imgTag([{src, "/priv/Icons/clockChat.png"}])),
                    tdTag([{class, "msgTime"}], toStr(time(), time)),
                    tdTag([{class, "msgText"}],
                          aTag([{href, "/eTodo/eWeb:showTodo?uid=" ++
                                     http_uri:encode(UidStr)}], "eTodo"))]),
                 trTag([tdTag(), tdTag([{colspan, 2}], eMd2Html:convert(Text, "/priv"))])])}.
  
  generateAlarmMsgEmail(User, Uid, Text) ->
      ExtUrl = constructExternalUrl(User, Uid),
      tableTag([{class, "msgAlarm"}],
               [trTag(
                  [tdTag([{class, "msgImg"}],
                         imgTag([{src, "/priv/Icons/clockChat.png"}])),
                   tdTag([{class, "msgTime"}], toStr(time(), time)),
                   tdTag([{class, "msgText"}],
                         aTag([{href, ExtUrl}], "eTodo"))]),
                trTag([tdTag(), tdTag([{colspan, 2}], eMd2Html:convert(Text, "/priv"))])]).
  
  %%======================================================================
  %% Function :
  
negative.code:                                 toStr(time(), time))),
                    tdTag([{valign, "top"}, {bgcolor, ?Background}],
                          fontTag(?HdrOptions2, "Timer expired"))]),
                 trTag(
                     [tdTag(),
                      tdTag([{valign, "top"}, {align, center}, {bgcolor, ?Background}],
                            imgTag([{src, Portrait}, {height, "45"}, {width, "45"}])),
                      tdTag([{bgcolor, ?Background}],
                            fontTag(?MsgOptions1, eMd2Html:convert(Text)))])]),
       tableTag(
         [trTag(
            [tdTag([{class, "msgImg"}],
                   imgTag([{src, "/priv/Icons/clockChat.png"}])),
             tdTag([{class, "msgTime textCenter"}], toStr(time(), time)),
             tdTag([{class, "msgText"}], "Timer expired")]),
          trTag(
              [tdTag(),
               tdTag([{class, "portraitCol"}],
                     imgTag([{src, WPortrait}, {class, "portrait"}])),
               tdTag(eMd2Html:convert(Text, "/priv"))])])};
  generateAlarmMsg(Uid, Text) ->
      Portrait  = getRootDir() ++ "/Icons/eTodo.png",
      WPortrait = "/priv/Icons/eTodoBiggest.png",
      UidStr = eTodoUtils:convertUid(Uid),
      {tableTag([{cellspacing, "0"}, {cellpadding, "10"}],
                [trTag([tdTag([{colspan, 3}], [])]),
  