(function ($) { /** * Open Mollom privacy policy link in a new window. * * Required for valid XHTML Strict markup. */ Drupal.behaviors.mollomPrivacy = function (context) { $('.mollom-privacy a', context).click(function () { this.target = '_blank'; }); }; /** * Attach click event handlers for CAPTCHA links. */ Drupal.behaviors.mollomCaptcha = function (context) { $('a.mollom-switch-captcha', context).click(getMollomCaptcha); }; /** * Fetch a Mollom CAPTCHA and output the image or audio into the form. */ function getMollomCaptcha() { // Get the current requested CAPTCHA type from the clicked link. var newCaptchaType = $(this).hasClass('mollom-audio-captcha') ? 'audio' : 'image'; var context = $(this).parents('form'); // Extract the form build ID and Mollom content ID from the form. var formBuildId = $('input[name="form_build_id"]', context).val(); var mollomContentId = $('input.mollom-content-id', context).val(); var path = 'mollom/captcha/' + newCaptchaType + '/' + formBuildId; if (mollomContentId) { path += '/' + mollomContentId; } // Retrieve a CAPTCHA: $.getJSON(Drupal.settings.basePath + path, function (data) { if (!(data && data.content)) { return; } // Inject new CAPTCHA. $('.mollom-captcha-content', context).parent().html(data.content); // Update CAPTCHA ID. $('input.mollom-captcha-id', context).val(data.captchaId); // Add an onclick-event handler for the new link. Drupal.attachBehaviors(context); // Focus on the CAPTCHA input. $('input[name="mollom[captcha]"]', context).focus(); } ); return false; } })(jQuery);