jquery-captcha
Version:
BotDetect Captcha jQuery Plugin (BotDetect Captcha Simple API integration for all of the jQuery versions)
2 lines • 2.26 kB
JavaScript
!function(a){"use strict";a.fn.captcha=function(b){function c(){return a.ajax({method:"GET",url:b.captchaEndpoint,data:{get:"html",c:p}})}function d(b,c){var d=j();a.ajax({method:"GET",url:d.validationUrl,data:{i:b},success:function(a){c(a)}})}function e(){var b=j();a("#"+b.options.userInputID).on("blur",function(){var c=a.trim(a(this).val());if(0!==c.length){var e=this;d(c,function(c){c||b.reloadImage(),a(e).trigger("validatecaptcha",[c])})}})}function f(b,c){return c=a.extend({dataType:"script",cache:!1,url:b},c||{}),a.ajax(c)}function g(){var c=a("#BDC_VCID_"+p).val();f(b.captchaEndpoint+"?get=script-include&c="+p+"&t="+c+"&cs=2").done(function(){setTimeout(i,200)})}function h(){var b=j();return void 0!==a("#"+b.options.userInputID).attr("data-correct-captcha")}function i(){h()&&e()}function j(){return void 0!==window.botdetect?window.botdetect.getInstanceByStyleName(p):null}function k(){var a=b.captchaEndpoint.split("/");return a[a.length-1]}function l(a){var c=b.captchaEndpoint.lastIndexOf(a);return b.captchaEndpoint.substring(0,c)}function m(a){var b=k(),c=l(b);a=a.replace(/<script.*<\/script>/g,"");for(var d,e,f,g=a.match(/(src|href)=\"([^"]+)\"/g),h=a,i=0;i<g.length;i++)d=g[i].slice(0,-1).replace(/src=\"|href=\"/,""),e=new RegExp(".*"+b),f=d.replace(e,c+b),h=h.replace(d,f);return h}function n(){c(b.captchaEndpoint,p).done(function(a){a=m(a),o.html(a),g()})}var o=this;if(0===o.length)throw new Error("Captcha html element cound not be found.");if(!b||!b.captchaEndpoint)throw new Error("The captchaEndpoint setting is required.");b.captchaEndpoint=b.captchaEndpoint.replace(/\/+$/g,"");var p=function(){var a;if(a=o.data("captchastylename"))return a;if(a=o.data("stylename"))return a;throw new Error("The data-captchastylename attribute is not found or its value is not set.")}();return o.init=function(){return n(),o},o.getCaptchaId=function(){return j().captchaId},o.getCaptchaCode=function(){return j().userInput.value},o.getUserEnteredCaptchaCode=function(){return o.getCaptchaCode()},o.reloadImage=function(){j().reloadImage()},o.validateUnsafe=function(b){var c=j();d(a.trim(a("#"+c.options.userInputID).val()),function(a){b(a),h()||a||c.reloadImage()})},o.init()}}(jQuery);
//# sourceMappingURL=jquery-captcha.min.js.map