# File lib/ajaxim.rb, line 79
  def login
    # selecting status and updating status from the previous login
    sql = "SELECT status, last_status FROM {ajaxim_status}
           WHERE uid = '" + @db.escape_string(@user['uid']) + "'"
    res = @db.query(sql)
    if res.num_rows == 0
      sql = "INSERT INTO {ajaxim_status} (status, uid, last_ping, last_status, last_stmsg)
             VALUES
               ('1', '" + @user['uid'] + "', '" + Time.now.to_i.to_s + "', '1', 'I\\'m available')" 
      res = @db.query(sql)
      status = 1
    else
      row = res.fetch_hash
      if row['last_status'].to_i == 0
        set = 'status=1, last_status=1'
        status = 1
      else
        set = "status=#{row['last_status']}"
        status = row['last_status']
      end
      sql = "UPDATE {ajaxim_status} 
             SET #{set}
             WHERE uid = '" + @user['uid'] +"'"
      res = @db.query(sql)
    end
    #
    # getting online/offline buddies
    buddylist_array = get_buddies(@user['uid'])
    #
    # getting user's chatrooms
    users_chats_array = Hash.new
    user_chats = Array.new
    
    sql = "SELECT room FROM {ajaxim_chats} WHERE uid = '" + @user['uid'] + "'"
    res = @db.query(sql)
    while uchat = res.fetch_hash do
      user_chats.push(uchat["room"]) 
      users_chats_array[uchat["room"]] = Hash.new
    end
    #
    # getting available chatrooms by criteria
    chats_array = Array.new
    sql = "SELECT room, COUNT(*) as num FROM {ajaxim_chats} GROUP BY room"
    res = @db.query(sql)
    while chat = res.fetch_hash do
      if chat["num"].to_i > 0 && !user_chats.include?(chat["room"])
        #chats_array[chat["room"]] = Hash.new  
        chats_array.push(chat['room'])
      end
    end
    buddylist = user_event(buddylist_array, "status,#{status}");
    output = Hash.new
    output["buddy"] = buddylist.merge(users_chats_array).to_json
    output["rooms"] = chats_array.sort.to_json
    output.to_json
    #{"buddy":"{\"Buddies\":[\"user1\",\"user2\"]}"}
    #{"buddy":"{\"Buddies\":[{\"username\":\"user1\",\"is_online\":\"2\"},{\"username\":\"user2\",\"is_online\":\"0\"}]}"}
  end