anchor.diff:  makeForm(User, Default) ->
       [tableTag([{id, "tableHeader"}],
                 [trTag([tdTag([{id, "toolbar"}],
  -                            [aTag([{id,   "createTodo"},
  +                            [aTag([{id, "createTodo"},
                                      {href, "/eTodo/eWeb:createTodo"}],
                                     [imgTag([{src, "/priv/Icons/createNew.png"},
                                              {alt, "Create new"}])]),
  -                             aTag([{id,   "message"},
  +                             aTag([{id, "message"},
                                      {href, "/eTodo/eWeb:message"}],
                                     [imgTag([{src, "/priv/Icons/message.png"},
                                              {alt, "Messages"}])])]),
  
positive.code: %% Notes    :
  %%======================================================================
  makeSceduleReport(User) ->
      Opts        = [{width, "25%"}, {align, center}],
      Opts2       = [{width, "20%"}, {align, center}],
      Alarms      = getAlarmList(User),
      ETodos      = getTodoInfo(User),
      TimeMarkers = getTimeMarkers(),
      Events = lists:reverse(lists:keysort(1, TimeMarkers ++ Alarms ++ ETodos)),
      tableTag([trTag([{bgcolor, "black"}],
                      [tdTag([{width, "35%"}], heading("Description")),
                       tdTag(Opts,  heading("Next alarm")),
                       tdTag(Opts2, heading("Due date")),
                       tdTag(Opts2, heading("Time left(h)"))])|
                makeSceduleReport2(Events, [])]).
  
  getTodoInfo(User) ->
      TodoList  = eTodoDB:getTodos(User, ?defTaskList),
      getTodoInfo(TodoList, date(), []).
  
  getTodoInfo([], _Now, Acc) ->
      Acc;
  getTodoInfo([#todo{status = done}|Rest], Now, Acc) ->
      getTodoInfo(Rest, Now, Acc);
  getTodoInfo([#todo{dueTime = undefined}|Rest], Now, Acc) ->
      getTodoInfo(Rest, Now, Acc);
  getTodoInfo([#todo{uid = Uid, dueTime = DueDate}|Rest], Now, Acc) ->
      NextAlarm = {DueDate, {0, 0, 0}},
      {Desc, DueDate, UidStr, RemTime} = doSaveAlarmInfo(Uid),
      getTodoInfo(Rest, Now, [{NextAlarm, "", DueDate,
                               UidStr, Desc, RemTime} | Acc]);
  getTodoInfo([_Todo|Rest], Now, Acc) ->
      getTodoInfo(Rest, Now, Acc).
  
  getAlarmList(User) ->
      AlarmList  = eTodoDB:getReminders(User),
      getAlarmInfo(AlarmList, date(), []).
  
  getAlarmInfo([], _Now, Acc) ->
      Acc;
  %% New alarm
  getAlarmInfo([#alarmCfg{startDate  = StartDate,
                          startTime  = StartTime,
                          uid        = Uid,
                          nextAlarm  = undefined}|Rest], Now, Acc)
    when Now =< StartDate ->
      NextAlarm = {StartDate, repairTime(StartTime)},
      saveAlarmInfo(Uid, Rest, Now, NextAlarm, Acc);
  %% Alarm that never will be activated
  getAlarmInfo([#alarmCfg{nextAlarm = never}|Rest], Now, Acc) ->
      getAlarmInfo(Rest, Now, Acc);
  getAlarmInfo([#alarmCfg{uid = Uid, nextAlarm  = {Date, Time}}|Rest], Now, Acc)
          when Now =< Date ->
      saveAlarmInfo(Uid, Rest, Now, {Date, Time}, Acc);
  getAlarmInfo([_Alarm|Rest], Now, Acc) ->
      getAlarmInfo(Rest, Now, Acc).
  
  saveAlarmInfo(Uid, Rest, Now, NextAlarm, Acc) ->
  
negative.code:                        createTime  = CreateTime,
                         doneTime    = DoneTime,
                         progress    = Progress,
                         owner       = Owner}) ->
      ProgStr = toStr(Progress),
      {Estimate, Remaining} = eTodoDB:getTime(Uid),
      [makeTableHeader(Uid, true), "<tr>",
       headerCellCSS(?status), createStatusDataCell(Status, Uid),
       headerCellCSS(?prio), createPriorityDataCell(Priority, Uid),
       "</tr><tr>",
       headerCellCSS(?sharedWith), dataCellCSS(SharedWith, ""),
       headerCellCSS(?owner), dataCellCSS(Owner, ""),
       "</tr><tr>",
       headerCellCSS(?createTime), dataCellCSS2(CreateTime, ""),
       headerCellCSS(?dueTime), dataCellCSS2(DueTime, ""),
       "</tr><tr>",
       headerCellCSS(?doneTimestamp), dataCellCSS(DoneTime, ""),
       headerCellCSS("Progress(%)"), dataCellCSS2(ProgStr, ""),
       "</tr><tr>",
       headerCellCSS("Estimate(h)"), dataCellCSS(toStr(Estimate), ""),
       headerCellCSS("Remaining(h)"), dataCellCSS2(toStr(Remaining), ""),
       "</tr><tr>",
       headerCellCSS(?description), dataCellCSS(Description, "colspan=3"),
       nonEmpty(Comment, ["</tr><tr>",
                          headerCellCSS(?comment),
                          dataCellCSS(Comment, "colspan=3")]),
       "</tr></table>"];
  makeHtmlTaskCSS(#etodo{uid = Uid,
                         status = Status,
                         priority = Priority,
                         dueTime = DueTime,
                         description = Description,
                         comment = Comment,
                         sharedWith = SharedWith,
                         createTime = CreateTime,
                         doneTime = DoneTime,
                         progress    = Progress,
                         owner = Owner,
                         hasSubTodo = HasSubTodo}) ->
      ProgStr = toStr(Progress),
      {Estimate, Remaining} = eTodoDB:getTime(Uid),
      [makeTableHeader(Uid, HasSubTodo), "<tr>",
       headerCellCSS(?status), createStatusDataCell(Status, Uid),
       headerCellCSS(?prio), createPriorityDataCell(Priority, Uid),
       "</tr><tr>",
       headerCellCSS(?sharedWith), dataCellCSS(SharedWith, ""),
       headerCellCSS(?owner), dataCellCSS(Owner, ""),
       "</tr><tr class='hideRow'>",
       headerCellCSS(?createTime), dataCellCSS2(CreateTime, ""),
       headerCellCSS(?dueTime), dataCellCSS2(DueTime, ""),
       "</tr><tr class='hideRow'>",
       headerCellCSS(?doneTimestamp), dataCellCSS(DoneTime, ""),
       headerCellCSS("Progress(%)"), dataCellCSS2(ProgStr, ""),
       "</tr><tr class='hideRow'>",
       headerCellCSS("Estimate(h)"), dataCellCSS(toStr(Estimate), ""),
       headerCellCSS("Remaining(h)"), dataCellCSS2(toStr(Remaining), ""),
       "</tr><tr>",
       headerCellCSS(?description), dataCellCSS(Description, "colspan=3"),
  