anchor.diff:      get(?COMET_PID) ! {provider_row_expand, SpaceId, ProviderId, RowId},
       gui_jq:update(SpinnerId, spinner());
   
  +event({users_table_collapse, SpaceId, TableId, SpinnerId}) ->
  +    get(?COMET_PID) ! {users_table_collapse, SpaceId, TableId},
  +    gui_jq:update(SpinnerId, spinner());
  +
  +event({users_table_expand, SpaceId, TableId, SpinnerId}) ->
  +    get(?COMET_PID) ! {users_table_expand, SpaceId, TableId},
  +    gui_jq:update(SpinnerId, spinner());
  +
  +event({user_row_collapse, SpaceId, ProviderId, RowId, SpinnerId}) ->
  +    get(?COMET_PID) ! {user_row_collapse, SpaceId, ProviderId, RowId},
  +    gui_jq:update(SpinnerId, spinner());
  +
  +event({user_row_expand, SpaceId, ProviderId, RowId, SpinnerId}) ->
  +    get(?COMET_PID) ! {user_row_expand, SpaceId, ProviderId, RowId},
  +    gui_jq:update(SpinnerId, spinner());
  +
   event(terminate) ->
       ok.
   
  
positive.code:         }
      }.
  
  collapse_button(Postback) ->
      collapse_button(<<"Collapse">>, Postback).
  
  collapse_button(Title, Postback) ->
      #link{
          title = Title,
          class = <<"glyph-link">>,
          postback = Postback,
          body = #span{
              style = <<"font-size: large; vertical-align: top;">>,
              class = <<"fui-triangle-up">>
          }
      }.
  
  spinner() ->
      #image{image = <<"/images/spinner.gif">>, style = <<"width: 1.5em;">>}.
  
  
negative.code: 
              {provider_row_expand, SpaceId, ProviderId, RowId} ->
                  gui_jq:update(RowId, provider_row_expanded(SpaceId, ProviderId, RowId)),
                  gui_comet:flush(),
                  State;
  
              {users_table_collapse, SpaceId, TableId} ->
                  gui_jq:update(TableId, users_table_collapsed(SpaceId, TableId)),
                  gui_comet:flush(),
                  State;
  
              {users_table_expand, SpaceId, TableId} ->
                  gui_jq:update(TableId, users_table_expanded(SpaceId, TableId)),
                  gui_comet:flush(),
                  State;
  
              {user_row_collapse, SpaceId, ProviderId, RowId} ->
                  gui_jq:update(RowId, user_row_collapsed(SpaceId, ProviderId, RowId)),
                  gui_comet:flush(),
                  State;
  
              {user_row_expand, SpaceId, ProviderId, RowId} ->
                  gui_jq:update(RowId, user_row_expanded(SpaceId, ProviderId, RowId)),
                  gui_comet:flush(),
                  State
          end
  