/*!
 * jQuery.buttonCaptcha - plugin that protects your site from robots using jQuery.
 * http://www.gobwas.com/bcaptcha
 * Version: 1.01.
 *
 * Copyright 2011, Sergey Kamardin.
 * Licensed under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 *
 * Date: Wed Apr 25 11:19:47 2011 +0300.
 * Location: Moscow, Russia.
 * Contact: gobwas[a]gobwas.com
 */
 
(function(a){a.fn.buttonCaptcha=function(p){var c={codeWord:"gbws",codeZone:"com",hideButton:!0,hideCaptcha:!1,lockButton:!0,scrollToButton:!1,verifyInput:!0,verifyName:"gbws_captcha_input",captchaHeader:"Are you a robot?",captchaTip:'Drag letters from left to right, to get word "%code_word%". Thanks!',captchaUnlocked:"Unlocked!"};a.extend(c,p);c.captchaTip=c.captchaTip.replace("%code_word%","<b>"+c.codeWord+"</b>");c.letters=c.codeWord.length;var m=["a","b","c","d","e","f","g","h","i","j","k","l",
"m","n","o","p","q","r","s","t","u","v","w","x","y","z"],d={structure:{outer:{top:a("<div/>").attr("class","captcha_top"),lock:a("<div/>").attr("class","captcha_lock"),captcha:a("<div/>").attr("class","captcha_gbws")},inner:{left:a("<div/>").attr("class","captcha_left"),blue:a("<div/>").attr("class","captcha_blue").html('<div class="captcha_delshadow"></div>'),white:a("<div/>").attr("class","captcha_white"),right:a("<div/>").attr("class","captcha_right"),end:a("<div/>").css("clear","both")},buttons:{retake:a("<div/>").attr("class",
"captcha_retake"),showtip:a("<div/>").attr("class","captcha_showtip").html(c.captchaHeader)},contains:{tip:a("<div/>").attr("class","captcha_tip").html(c.captchaTip),end:a("<div/>").css("clear","both"),zone:a("<div/>").attr("class","captcha_zone")}},lettersDivs:[],lettersSprite:{}};d.lettersSprite=function(){var a={},c;for(c in m)a[m[c]]=c*-18;return a}();d.lettersDivs=function(){if(c.codeWord.match(/[a-zA-Z0-9]+/)!=null){for(var i=c.codeWord,h=[],f=0;f<i.length;f++){findLetter=i.charAt(f).toLowerCase();
var j=d.lettersSprite[findLetter],j=a("<div/>").attr("class","letter").css("background-position",j+"px 0");h.push(j)}return h}}();(function(){if(c.codeZone.match(/[a-zA-Z0-9]{2,4}/)!=null){var i=c.codeZone;a("<div/>").attr("class","zone_dot").appendTo(d.structure.contains.zone);for(var h=12,f=0;f<i.length;f++){findLetter=i.charAt(f).toLowerCase();var j=d.lettersSprite[findLetter];a("<div/>").attr("class","zone_letter").css("background-position",j+"px 0").appendTo(d.structure.contains.zone);h+=18}d.structure.contains.zone.css("width",
h+"px")}})();for(var k=0;k<this.length;k++)(function(i){function h(c,e){for(var f=a("<div/>").attr("id","letters_"+b.captchas).attr("class","letters"),g=[];g.length<d.lettersDivs.length;){var l=Math.floor(Math.random()*(d.lettersDivs.length-1-0+1))+0;a.inArray(l,g)==-1&&(a(d.lettersDivs[l]).clone().attr("id","letter_"+l+"_"+b.captchas).appendTo(f).draggable({revert:!0,revertDuration:300,cursor:"pointer",cursorAt:{top:12,left:9},containment:"#"+e,scroll:!1,snap:".basket",snapMode:"inner"}),g.push(l))}a(f).appendTo(c)}
function f(f){var e=a("<div/>").attr("id","baskets_"+b.captchas).attr("class","baskets"),h;for(h in d.lettersDivs){var g=a("<div/>").attr("id","basket_"+h+"_"+b.captchas).attr("class","basket");Number(h)!=d.lettersDivs.length-1&&g.css("border-right","none");a(g).droppable({hoverClass:"basket-hover",drop:function(d,f){if(!a(this).droppable("option","disabled")){var g=a(f.draggable).clone().css({left:0,top:0});a(f.draggable).draggable({revert:!1}).css({left:0,top:0}).animate({width:0,opacity:0},600);
a(this).droppable({disabled:!0}).attr("class","basket_closed").append(g);var e=a(f.draggable).attr("id"),e=e.split("_"),h=a(this).attr("id"),h=h.split("_");e[1]==h[1]&&e[2]==h[2]?(a(this).fadeOut(100,function(){a(this).fadeIn(500)}),a(g).attr("class","letter_blue"),b.goodLetters++):(a(this).effect("pulsate",100),a(g).attr("class","letter_red"));c.verifyInput===!0&&(b.stepsLength++,b.steps[h[1]]=e[1],b.stepsLength==c.letters&&j());b.goodLetters==c.letters&&m()}}}).appendTo(e)}c.codeZone!=!1&&a(d.structure.contains.zone).clone().appendTo(e);
a(d.structure.contains.end).clone().appendTo(e);a(e).appendTo(f).css("width",d.lettersDivs.length*18+d.lettersDivs.length*2+d.structure.contains.zone.css("width")+"px")}function j(){for(var d in b.steps)a(b.verify).val(a(b.verify).val()+c.codeWord.charAt(b.steps[d]))}function m(){c.lockButton===!0&&a(b.button).removeAttr("disabled");c.hideCaptcha===!0?a(b.captcha).fadeOut(1E3,function(){c.hideButton===!0&&a(b.button).fadeIn(600,function(){c.scrollToButton===!0&&a.scrollTo(b.button,500)})}):(a("<div/>").attr("class",
"captcha_human").append(b.lock).appendTo(b.blue),b.lock.attr("class","captcha_unlock"),b.top.html(c.captchaUnlocked),b.retake.remove(),c.hideButton===!0&&a(b.button).fadeIn(300,function(){c.scrollToButton===!0&&a.scrollTo(b.button,500)}))}var b={captchas:k,button:i,captcha:null,verify:null,steps:[],stepsLength:0,goodLetters:0,blue:null,white:null,captcha:null,lock:null,top:null,showTip:null,retake:null};(function(i){var e=a("<div/>").attr("class","captcha_gbws_wrap").attr("id","captcha_gbws_wrap_"+
b.captchas),j=d.structure.outer.captcha.clone().attr("id","captcha_gbws_"+b.captchas),g=d.structure.buttons.showtip.clone().attr("id","captcha_gbws_top_showtip_"+b.captchas).bind("click",function(){l.toggle("blind",300)}),l=d.structure.contains.tip.clone().attr("id","captcha_gbws_top_tip_"+b.captchas),m=d.structure.outer.lock.clone(),k=d.structure.outer.top.clone().attr("id","captcha_gbws_top_"+b.captchas).append(m).append(g).append(d.structure.contains.end.clone()).append(l),o=d.structure.buttons.retake.clone().bind("click",
function(){for(var c=a(b.captcha).find(".letter, .letter_blue, .letter_red, .basket, .basket_closed"),d=0,e=0;e<c.length;e++)d+=150,function(b,d){setTimeout(function(){a(c[d]).stop().hide("shake",150,function(){a(c[d]).remove()})},b)}(d,e);setTimeout(function(){a("#"+a(b.blue).attr("id")+" .letters").remove();a("#"+a(b.white).attr("id")+" .baskets").remove();f(b.white);h(b.blue);b.steps=[];b.stepsLength=0;b.goodLetters=0},d+150)});b.top=k;b.lock=m;b.showTip=g;b.retake=o;for(var n in d.structure.inner)if(g=
a(d.structure.inner[n]).clone().attr("id","captcha_"+n+"_"+b.captchas).appendTo(j),n=="blue")b.blue=g,h(g,"captcha_gbws_"+b.captchas);else if(n=="white")b.white=g,g.append(o),f(g);k.appendTo(e);j.appendTo(e);d.structure.contains.end.clone().appendTo(e);e.insertBefore(i);l.toggle("blind",1);k.css("width",j.width());e.find(" > *").disableSelection();b.captcha=e;if(c.verifyInput===!0&&a(b.button).parents("form:first").length>0)i=a("<input/>",{type:"hidden",name:c.verifyName,id:"input_gbws_"+b.captchas}).attr("class",
"input_gbws"),a(b.button).parents("form:first").append(i),b.verify=i})(b.button);c.hideButton===!0&&a(b.button).fadeOut(300);c.lockButton===!0&&a(b.button).attr("disabled","true")})(this[k]);return this}})(jQuery);
