UPDATE: The version available here is 1.1. If you want the latest version (now supporting mobile devices), you can download it at Binpress!
You'll also be able to buy a license with support, besides the free license.
---
Captcha is a great thing, it makes it more difficult (hopefully impossible) for bots to submit forms "blindly", creating/sending junk to mails/databases.
However, through time, we've become more and more aware it doesn't work as expected. It difficults communication, and as such, people make mistakes often in the common Captcha forms, making it sometimes a reason for giving up filling a form (specially when the form is big and it doesn't refill the sent information).
So, we thought: "wouldn't it be great to find a way to make a Captcha work better for humans and still be impossible to be submitted automatically by bots?"
We found a great concept for this answer at Ajax Fancy Captcha - jQuery Plugin, but also found in it a few bugs and easy ways for bots to "learn" how to bypass it. As there was nothing really good and innovative as we wanted it, we built our own!


It's called wCaptcha (w stands for Wozia).
It consists in several files, here's the structure:
sample.php : PHP File with the Form inc/wcaptcha.class.php : The wCaptcha Class itself inc/jspacker.class.php : Great JavaScript Packer Class ( Dean Edward's PHP Javascript Packer ), used to make it near-impossible for bots to read javascript code and thus "guess" the correct image to drag by analysing it. images/wcaptcha/* : Images with the objects to drag.
You can download it here: wCaptcha.tar.gz
Or check the script working at: http://wcaptcha.wozia.pt/sample.php
REQUIREMENTS:
For the script to work, jQuery (1.3+ tested) with jQuery UI (1.8 tested) is required, as well as inc/wcaptcha.class.php, inc/jspacker.class.php and the images in images/wcaptcha/* (which can be changed to whatever you want)
USAGE:
We have it prepared to be setup in an Horizontal or Vertical way (css changes and the number of images showing). Type 0 is Horizontal and 1 is Vertical. By default, Horizontal is applied, so if you want to show it vertically, you can use:
printCaptcha('frm_sample',1);

The sample is in English (for distribution reasons), but we also have the circle image in Portuguese (change in inc/wcaptcha.class.php the css line where you see circulo-en.png to circulo-pt.png - line 109 in 1.0, 121 in 1.1). If you wish to make it support other languages or multi-language, it's easy to implement, in any way you prefer.
If you have any doubts, you can post them here, and we'll be happy to help you out!
THANKS TO/SOURCES:
Dean Edward's PHP Javascript Packer (javascript obfuscator)
Images from Hamburg Pack @ PC.DE (by Patricia Clausnitzer) (images to drag)
Ajax Fancy Captcha - jQuery Plugin (concept)
wCaptcha by Wozia is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
UPDATES:
2011.12.17 - Released stable version 2.1 (now you can drag out and in options without needing to refresh).
2011.08.18 - Released stable version 2.0 (improved security and support for mobile devices, using tap/touch).
2011.06.20 - Released stable version 1.2 (different file organization - more easy to customize - and optional license with 1 year of support).
2011.03.12 - Released stable version 1.1 with improved security.
2010.09.29 - Released stable version 1.0.

