(function( $ ){
	$.fn.captcha = function(url, formId){
		eval('var data = ' + $.ajax({url:url+'?action=data', async:false}).responseText);
		var items = data.items;
		var captchaDir = data.captchaDir;
		var html = '<div id="ajax-fc-content"><div id="ajax-fc-left"><p id="ajax-fc-task">Verify that you are a human,<br />drag the <span>scissors</span> into the box.</p><ul id="ajax-fc-task">';
		for(var i = 0; i < items.length; i++)
			html += '<li class="ajax-fc-' + i + '"><img src="' + captchaDir + '/item-none.png" alt="" /></li>';
		html += '</ul></div><div id="ajax-fc-right"><p id="ajax-fc-circle"></p></div></div>';
		$(this).html(html);
		
		var rand = $.ajax({url:url, async:false}).responseText;
		var pic = randomNumber(items.length);
		$(".ajax-fc-" + rand).html('<img src="' + captchaDir + '/item-' + items[pic] + '.png" alt="" />');
		$("p#ajax-fc-task span").html(items[pic]);
		$(".ajax-fc-" + rand).addClass('ajax-fc-highlighted');
		$(".ajax-fc-" + rand).draggable({ containment: '#ajax-fc-content' });
		var used = Array();
		for(var i in items) if(i != pic)
			used.push(items[i]);
		for(var i in items) if(i != rand)
			$(".ajax-fc-" + i).html('<img src="' + captchaDir + '/item-' + used.pop() + '.png" alt="" />');
		$("#ajax-fc-circle").droppable({
			drop: function(event, ui) {
				$(".ajax-fc-" + rand).draggable("disable");
				$("#" + formId).append("<input type=\"hidden\" style=\"display: none;\" name=\"captcha\" value=\"" + rand + "\">");
			},
			tolerance: 'touch'
		});	
	};

})( jQuery );

function randomNumber(max) {
	var chars = '';
	for(var i = 0; i < max; i++)
		chars += i;
	chars += '.';
	var size = 1;
	var i = 1;
	var ret = "";
	
	while(i <= size) {
		$max = chars.length - 1;
		$num = Math.floor(Math.random() * $max);
		$temp = chars.substr($num, 1);
		ret += $temp;
		i++;
	}
	
	return ret;
}
