1 2(function ($) { 3 4 var captchaLibraryLoaded = false; 5 6 var captchas = []; 7 8 function captcha(container, siteKey, verifyCallback, expiredCallback) { 9 10 this.container = container; 11 this.siteKey = siteKey; 12 this.verifyCallback = verifyCallback; 13 this.expiredCallback = expiredCallback; 14 this.recaptcha = null; 15 16 } 17 18 //Constructor 19 $.fn.generalRecaptcha = function (options) { 20 21 var cap = new captcha($(this), options.siteKey, options.verifyCallback, options.expiredCallback); 22 captchas.push(cap); 23 24 if (captchaLibraryLoaded) { 25 renderCaptcha(cap) 26 } 27 28 }; 29 30 //Private 31 32 function renderCaptcha(captcha){ 33 captcha.recaptcha = grecaptcha.render(captcha.container[0], { 34 sitekey: captcha.siteKey, 35 callback: captcha.verifyCallback, 36 'expired-callback': captcha.expiredCallback 37 }) 38 } 39 40 //Add global function for callback after recaptcha library loads 41 window.recaptchaCallBack = function () { 42 43 captchaLibraryLoaded = true; 44 45 $.each(captchas, function (c) { 46 47 var captcha = captchas[c]; 48 49 if (captcha.recaptcha == null) { 50 renderCaptcha(captcha); 51 } 52 53 }); 54 } 55 56})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.