When to send presence packet?

I needed clarification on the following. Here is a scenario:

Initially, AOL user has me in his/her roster. I send the SUBSCRIBED packet and he/she sees me online. Now:

  1. AOL User adds goes offline

  2. AOL User Comes back online

How should we handle it? i.e. on receiving a Presence packet from the AOL user, should we also send back a presence pkt? If yes, what type? Should I check for Presence.TYPE or Presence.MODE as being AVAILABLE when the user comes back online?

Also, what is the difference b/w Presence.TYPE or Presence.MODE?