AFKIM 1a (dumbfixes edition)
Away from Keyboard Instant Messager.
An (almost) universal messenger client: AIM, ICQ, MSN, GTalk, Yahoo!
Coded by Danzel (danzelatlocalhostdotgeekdotnz)

Using the Libraries: SDL, SDL_Image, LIBPNG, P_Sprint, freetype2.

##################### Thanks to #####################
Ayb4btu and Randy for doing some art :)
Bitlbee, wouldn't be here without it.
Neo Flash, for hosting a competition so I would spend 2 weeks SOLID working on this (Thats right, I've done basically nothing else the past 2 weeks)


####################### Usage #######################
READ THE README THE WHOLE WAY THROUGH BEFORE STARTING AFKIM

Start it up,  hopefully you will be presented with the wifi connection screen, chose a wifi connection with x and it will be connected to (if the program quits it failed to connect, If you don't get shown the screen its because you have no wifi connections to connect to!).

If this is the first time you have launched afkim you will be presented with the 'create a bitlbee account' menu.
 Press R to get the keyboard onscreen and enter in a username, press start when you are done.
 Then enter in a password, pressing start when you are done.
 If the screen goes away then you have successfully created your bitlbee account and it is saved on your memory stick.
 If the screen loses your username and password when you try submit then your username is already taken, chose another and try again. (This is bad HCI I know)
 [IMPORTANT]: Passwords are always shown in cleartext so you can see what you are typing! [/IMPORTANT]

You will now be at the normal afkim screen, from here press select to get the accounts menu up, chose what kind of account you want to add with up/down and press x.
Enter in details in the same way as a bitlbee account. If you make a mistake you can press select to cancel right out (DO NOT ADD AN INCORRECT ACCOUNT, YOU CAN'T REMOVE IT IN THIS VERSION!#!@#!@).
[WARNING] Do not add more than one of the same kind of account, it might work but it probably won't. This will be fixed in a future version. [/WARNING]

Now, the chat interface.
You will initially be chatting to the server, not a very useful person to talk to as he's rather quiet ;)

The "[selected]" tag at the top of the screen shows which area your input it currently going to, if it is in the right column, then you can press up and down to chose who to chat to (signified by a green fade), names are white if they are online and grey if they are busy. They are highlighted red if they have sent a message you haven't read. Press X to begin chatting to a contact.
The "[selected]" tag should now move over to the right column, here you can enter text to send to your buddy (press R to get the keyboard on/off screen). When you have typed a message press [start] to send it.
To get back to the buddy select column, press the L button.
You can press select at any time to get the menu up (press select to close the menu)

############### Known bugs / Wishlist ###############
When you chose a wifi connection it looks like it's doing nothing, it's actually connecting and logging in, just wait a while.
The interface is not very intuitive, this will definately be improved soon.
 - When adding accounts you can't tell which text box you are in.

--Todo list--
Jabber Support.
Multiple accounts on the same protocol.
Monkey
Ability to remove accounts
Scrollable chatlog
Get told when people add you to your list (accept/deny/block).
Full details on contacts (their name etc, ability to rename them).
Change nick on your account.

FAQ: (If you post any of these, YOU SUCK DIE DIE DIE)

Q: Whats all this spam in the console now?
A: From 1a onwards the bitlbee messages are shown in the server window, in the future the less important ones will be hidden.

Q: The keyboard sucks!
A: Thats not really a question :P but yeah, some people don't like the keyboard i'm using, i'll create a new one in the future.
I meant to include a keyboard FAQ, but at 3am I forgot, woops, here you go:
The p-sprint keyboard starts off in letters mode, in this mode the letter combinations shown on the keyboard image are active (press R when over a text area to enable/disable the keyboard image)
To type a capital letter - hold the first button of the letters combination and press one of the shift keys, then release both and press the second button of its combination, for example: 'capital H': press and hold Circle, press up, release both and press square.
Numbers:
To switch into number mode, hold left and press X, to switch back, do the same thing (your current keyboard mode is shown at the bottom right of the keyboard image)
To do an @ character, switch to numbers mode and do a capital 2 (square+up, triangle)
Underscore (_) should be Circle, Up (or Circle+Up, Up) when in letters mode.

Q: "It's sitting here saying identifying, its taking forever" (this should be gone in 1a)
A: It is most likely done identifying, this is the last message before it handles control over to you (There should be account update messages after). Try press select to get the menu up :)

Q: What is an ICQ username?
A: It is your icq number.

Q: It crashed! / I'm stuck!
A: uh thanks. another non question :P I need more details than this, alot more. tell me exactly what you were doing and I might just be able to help.

Q: How do I sign in?
A: AFKIM automatically signs into all the accounts it knows of.

Q: How do I know if I'm online?
A: If the icon for the account is colored you are online, if it is grey or not there you are offline or connecting.

Q: Can I have the source code?
A: No. When I'm happy with AFKIM I will release it under GPL, if there is a huge reason you need some of it, message me.
   I plan to clean up the gui component classes and release them seperately at a future date.

Q: What is that light icon, I added a gtalk account!
A: That light is the jabber logo, gtalk uses jabber so it gets the jabber icon.

Q: This isn't a universal messenger, I can't add my Jabber or *Insert obscure messaging program here* accounts!@!
A: Jabber will come in the next version, its basically in there already, if you know about bitlbee you should be able to add it ;)
   Other protocols can't be added, we rely on bitlbee for the transports.

Q: How do these nicknames get decided? Can I rename my contacts!?
A: The bitlbee server decides how to name your contacts, usually it bases them of their username. You can rename them using the server window, message it: "rename current_nick new_nick" and they may get renamed (PROPER SUPPORT COMING IN THE FUTURE)

Q: Can I use a different bitlbee server or add an existing account?
A: Yes, you need to create a bitlbee.cfg file in the afkim folder, its format is as follows:
---------------------------
SERVER
USERNAME
PASSWORD
---------------------------
We always connect on port 6667, don't try change it in the server string ;)