Arduino Mega 2560 (USB HID Keyboard)

I'm trying to understand how to turn my Arduino into a programable HID Keyboard device
I have an avr pocket programmer (Dunno how to use it yet) idk if this will be of any use to my project
Anyway.... All i want my arduino to do is to connect to the computer as a hid usb keyboard so i can send scan codes to the computer which will automatically type out letters or move the mouse around the screen, I do not want visual basic software to do this task although i do wish to connect an application i will create to the arduino to control which keys are pressed so that any software on my computer detecting virtual software key pressed wont know that my software is using the arduino to type the keys instead of my software So let me explain a little more.

SCENARIO:
1: I have the arduino connected to the computer
2: i have my software connected to the arduino
3: in my serial application on my computer i send a command such as "press_key_a"
4: the arduino notices this and sends the scan code to the computer as a usb hid device which will press the key "a" in a notepad
5: Keep in mind that it is connected to two computers, one with the software, and one which the arduino is connected to which will type the scancodes to.

This is the connection [Computer 1] ->[Arduino]->[Computer2]

Computer1 - Has software connected to arduino through serial

Arduino - Will pass commands from Computer1 to Computer2 as key press's ex: abcdefg 1999 lmr.com

Computer2 - Will be the victim device of the arduino


If anyone wants to join me on this project or help out then please leave a post, i will look forward to the tech wizzards swarming this post with useful information.