Here are the features I need:
Java applet for the client, php/mysql for the server.
Chat will be available to registered and logged users for private chatting, no public chat needed.
A user browsing my site can find an online/offline text near each registered username, if user is online a "chat" hyperlink will appear near the username. When click on "chat" hyperlink, Java Applet Window opens on both parts (the sender and the receiver users) to allow chatting.
During chatting the software check for new messages every 2 seconds, If there are messages it adds them to the textarea.
when a user closes chat window or disconnects from Internet a red messege appears under all messages to the other user "user x disconnected from chat", chat window gets disabled, and software stops to check for messages. Disconnected from Internet user gets a red messege under all messages "connection failed", chat window gets disabled software stops to check for messages.
Chat window will have a button to open a frame where to show the other user profile info.
Info will be loaded from the server and shown as html code.
When a chat window is opened the receiver user gets a sound alert.
When a new message arrives another different sound alert is played.
In chat window a checkbox can enable/disable sounds for a user. This value is set in the db and is different for each user.
The software will call a php page everytime user clicks checkbox. This page will set the value enabled/disabled on db.
The software will call another php page everytime a chat window is opened. This page will check the value enabled/disabled on db.
Commented source code
Applet should be light for loading fast
Compatibility of applet with java version 4,5,6
If user has not Java istalled a download link and text informations will appear
Compatibility with ie6+ and ff, and chat communications has not to be blocked by popup blockers or firewalls.
8 freelancers are bidding on average $143 for this job
Do your really need an applet? applets are heavy. NOT RECOMMENDED! This can be done all in one using only j2ee by means of reverse ajax. Think about it. Just buzz me.