;
(function($) {
	$.fn.captcha = function(options) {

		var defaults = {
			borderColor : "",
			captchaDir : "../images/captcha",
			url : "ajax/getCaptcha",
			formId : "form",
			text : "Verify that you are a human,<br />drag <span>controller</span> into the circle.",
			items : Array("airplane", "clock", "controller", "house", "lightning", "pencil", "phone", "star", "wrench")
		};

		var options = $.extend(defaults, options);

		$(this)
				.html(
						"<b class='ajax-fc-rtop'><b class='ajax-fc-r1'></b> <b class='ajax-fc-r2'></b> <b class='ajax-fc-r3'></b> <b class='ajax-fc-r4'></b></b><img class='ajax-fc-border' id='ajax-fc-left' src='"
								+ options.captchaDir
								+ "/border-left.png' /><img class='ajax-fc-border' id='ajax-fc-right' src='"
								+ options.captchaDir
								+ "/border-right.png' /><div id='ajax-fc-content'><div id='ajax-fc-left'><p id='ajax-fc-task'>"
								+ options.text
								+ "</p><ul id='ajax-fc-task'><li class='ajax-fc-0'><img src='"
								+ options.captchaDir
								+ "/item-none.png' alt='' /></li><li class='ajax-fc-1'><img src='"
								+ options.captchaDir
								+ "/item-none.png' alt='' /></li><li class='ajax-fc-2'><img src='"
								+ options.captchaDir
								+ "/item-none.png' alt='' /></li><li class='ajax-fc-3'><img src='"
								+ options.captchaDir
								+ "/item-none.png' alt='' /></li><li class='ajax-fc-4'><img src='"
								+ options.captchaDir
								+ "/item-none.png' alt='' /></li></ul></div><div id='ajax-fc-right'><p id='ajax-fc-circle'></p></div></div><div id='ajax-fc-corner-spacer'></div><b class='ajax-fc-rbottom'><b class='ajax-fc-r4'></b> <b class='ajax-fc-r3'></b> <b class='ajax-fc-r2'></b> <b class='ajax-fc-r1'></b></b>");
		var secret = $.ajax( { url : options.url, async : false }).responseText;
		secret = $.trim(secret);
		var randoms = getRandoms();
		var rand = Math.floor(Math.random()*5);
		for ( var i = 0; i < 5; i++) {
			$(".ajax-fc-" + i).html("<img src=\"" + options.captchaDir + "/item-" + options.items[randoms[i]] + ".png\" alt=\"\" />");
		}
		$("p#ajax-fc-task span").html(options.items[randoms[rand]]);
		$(".ajax-fc-" + rand).addClass('ajax-fc-highlighted');
		$(".ajax-fc-" + rand).draggable( {
			containment : '#ajax-fc-content'
		});
		$(".ajax-fc-container, .ajax-fc-rtop *, .ajax-fc-rbottom *").css(
				"background-color", options.borderColor);
		$("#ajax-fc-circle").droppable(
				{
					drop : function(event, ui) {
						$(".ajax-fc-" + rand).draggable("disable");
						$("#" + options.formId).append(
								"<input type=\"hidden\" style=\"display: none;\" name=\"captcha\" value=\"" + secret + "\">");
					},
					tolerance : 'touch'
				});
	};

})(jQuery);

function getRandoms() {
	var rv = Array();
	for (var i = 0; i < 5; i++) {
		var good = false;
		while (!good) {
			var rand = Math.floor(Math.random()*9);
			if ($.inArray(rand, rv) == -1) {
				rv[i] = rand;
				good = true;
			}
		}
	}
	return rv;
}


