// add a notice encoded as JSON into the current timeline
//
// TODO: i18n
RealtimeUpdate = {
     _userid: 0,
     _replyurl: '',
     _favorurl: '',
     _deleteurl: '',
     init: function(userid, replyurl, favorurl, deleteurl)
     {
        RealtimeUpdate._userid = userid;
        RealtimeUpdate._replyurl = replyurl;
        RealtimeUpdate._favorurl = favorurl;
        RealtimeUpdate._deleteurl = deleteurl;
        $(window).blur(function() {
          $('#notices_primary .notice').css({
            'border-top-color':$('#notices_primary .notice:last').css('border-top-color'),
            'border-top-style':'dotted'
          });
          $('#notices_primary .notice:first').css({
            'border-top-color':'#AAAAAA',
            'border-top-style':'solid'
          });
        });
     },
     receive: function(data)
     {
          setTimeout(function() {
              id = data.id;
              // Don't add it if it already exists
              if ($("#notice-"+id).length > 0) {
                   return;
              }
    
              var noticeItem = RealtimeUpdate.makeNoticeItem(data);
              $("#notices_primary .notices").prepend(noticeItem);
              $("#notices_primary .notice:first").css({display:"none"});
              $("#notices_primary .notice:first").fadeIn(1000);
              NoticeReply();
          }, 500);
     },
     makeNoticeItem: function(data)
     {
          user = data['user'];
          html = data['html'].replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');
          source = data['source'].replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');
          ni = "
"+
               ""+
               ""+
               "
"+
               "a few seconds ago "+
               "  "+
               "
"+
               "from "+
                ""+source+" "+ // may have a link
               " ";
          if (data['in_reply_to_status_id']) {
               ni = ni+" 
in context ";
          }
          ni = ni+"
";
          if (RealtimeUpdate._userid != 0) {
               var input = $("form#form_notice fieldset input#token");
               var session_key = input.val();
               ni = ni+RealtimeUpdate.makeFavoriteForm(data['id'], session_key);
               ni = ni+RealtimeUpdate.makeReplyLink(data['id'], data['user']['screen_name']);
               if (RealtimeUpdate._userid == data['user']['id']) {
                    ni = ni+RealtimeUpdate.makeDeleteLink(data['id']);
               }
          }
          ni = ni+"
"+
               " ";
          return ni;
     },
     makeFavoriteForm: function(id, session_key)
     {
          var ff;
          ff = "";
          return ff;
     },
     makeReplyLink: function(id, nickname)
     {
          var rl;
          rl = "Reply "+id+"  ";
          return rl;
        },
     makeDeleteLink: function(id)
     {
          var dl, delurl;
          delurl = RealtimeUpdate._deleteurl.replace("0000000000", id);
          dl = "Delete ";
          return dl;
     },
     addPopup: function(url, timeline, iconurl)
     {
         $('#notices_primary').css({'position':'relative'});
         $('#notices_primary').prepend('Pop up ');
         $('#realtime_timeline').css({
             'margin':'0 0 11px 0',
             'background':'transparent url('+ iconurl + ') no-repeat 0% 30%',
             'padding':'0 0 0 20px',
             'display':'block',
             'position':'absolute',
             'top':'-20px',
             'right':'0',
             'border':'none',
             'cursor':'pointer',
             'color':$("a").css("color"),
             'font-weight':'bold',
             'font-size':'1em'
         });
         $('#realtime_timeline').click(function() {
             window.open(url,
                         timeline,
                         'toolbar=no,resizable=yes,scrollbars=yes,status=yes');
             return false;
         });
     },
     initPopupWindow: function()
     {
         window.resizeTo(500, 550);
         $('address').hide();
         $('#content').css({'width':'93.5%'});
         $('#form_notice').css({
            'margin':'18px 0 18px 1.795%',
            'width':'93%',
            'max-width':'451px'
         });
         $('#form_notice label[for=notice_data-text], h1').css({'display': 'none'});
         $('.notices li:first-child').css({'border-top-color':'transparent'});
         $('#form_notice label[for="notice_data-attach"], #form_notice #notice_data-attach').css({'top':'0'});
         $('#form_notice #notice_data-attach').css({
            'left':'auto',
            'right':'0'
         });
     }
}