# File lib/ajaxim.rb, line 162
  def joinroom(room)
    #
    # checks if room name contains invalid symbols or empty
    return 'invalid_chars' if (room != room.sanitize_alphanum() || room.nil? || room.empty?)
    #
    # checks if users is already joined room
    sql = "SELECT id FROM {ajaxim_chats} WHERE uid = '" + @user["uid"]+ "' AND room = '" + room + "'"
    res = @db.query(sql)
    return 'already_joined' if res.num_rows > 0 
    #
    # checks if room name is equal existing user name
    return 'room_is_user' if !User.new(room, @db).nil?
    #
    # writing to log user joinroom event
    @@logger.room_event(@user['name'], room, 'Joined room') if @logging == true
    
    id = @db.next_id("{ajaxim_chats}")
    sql = "INSERT INTO {ajaxim_chats} (id, room, uid) 
           VALUES
              ('" + id.to_s + "', '" + room + "', '" + @user["uid"].to_s+ "')"
    res = @db.query(sql)
    # select and notify chatmates about user's join 
    sql = "SELECT a.uid, u.name FROM {ajaxim_chats} a
           LEFT JOIN {users} u ON u.uid = a.uid
           WHERE a.room = '" + room + "' AND u.uid!='" + @user["uid"] + "'"
    res = @db.query(sql)
    output = {'users' => Array.new}
    res.each_hash do |user|
      output["users"].push(user["name"])
    end
    notify_buddies = user_event(output, "chat,join,#{room}");
    #
    # Do not show users in chatroom
    output['users'].clear
    #
    output.to_json
  end