     displayName : 'Misc-TimeAgo'
 
     propTypes :
-        placeholder : rtypes.number
+        popover     : rtypes.bool
+        placement   : rtypes.string
 
     getDefaultProps: ->
+        popover   : true
         minPeriod : 45000
+        placement : 'top'
         # critical to use minPeriod>>1000, or things will get really slow in the client!!
         # Also, given our custom formatter, anything more than about 45s is pointless (since we don't show seconds)
 
+    render_timeago: (d) ->
+        <TimeAgo date={d} style={@props.style} formatter={timeago_formatter} minPeriod={@props.minPeriod} />
+
     render: ->
-        <TimeAgo date={@props.date} style={@props.style} formatter={timeago_formatter} minPeriod={@props.minPeriod} />
+        d = if misc.is_date(@props.date) then @props.date else new Date(@props.date)
+        if @props.popover
+            s = d.toLocaleString()
+            <Tip title={s} id={s} placement={@props.placement}>
+                {@render_timeago(d)}
+            </Tip>
+        else
+            @render_timeago(d)
 
 
 # Important:

        <span>{<Icon name={@props.icon}/> if @props.icon} {@props.title}</span>

    render_popover : ->
        <Popover
            bsSize = {@props.size}
            title  = {@render_title()}
            id     = {@props.id ? "tip"}
            >
            <span style={wordWrap:'break-word'}>
                {@props.tip}
            </span>
        </Popover>

    render : ->
        <OverlayTrigger

    propTypes :
        title     : rtypes.oneOfType([rtypes.string, rtypes.node]).isRequired
        placement : rtypes.string   # 'top', 'right', 'bottom', left' -- defaults to 'right'
        tip       : rtypes.oneOfType([rtypes.string, rtypes.node])
        size      : rtypes.string   # "xsmall", "small", "medium", "large"
        delayShow : rtypes.number
        icon      : rtypes.string
