( function( $ ) { $( document ).on( "click", '.cptchpr_reload_button, .wpcf7-submit, .ac-reply-cancel, .acomment-reply, .woocommerce-checkout #place_order', function( event ) { cptchpr_reload( $( this ) ); }).on( "mouseup", 'input[name="ac_form_submit"]', function( event ) { cptchpr_reload( $( this ) ); }).on( "touchstart", function( event ) { if ( cptchpr_vars.enlarge == '1' ) { var item = $( event.target ), element = item.hasClass( 'cptchpr_img' ) ? item : ( item.closest( '.cptchpr_img' ).length ? item.closest( '.cptchpr_img' ) : null ); if ( element && element.length ) { event.preventDefault(); element.toggleClass( 'cptchpr_reduce' ); $( '.cptchpr_img' ).not( element ).removeClass( 'cptchpr_reduce' ); } else { $( '.cptchpr_img' ).removeClass( 'cptchpr_reduce' ); } } if ( item.hasClass( 'cptchpr_reload_button' ) || item.attr( 'name' ) == 'ac_form_submit' ) cptchpr_reload( item ); }); })(jQuery); /** * Reload captcha */ function cptchpr_reload( object ) { (function($) { var captcha = object.hasClass( '.cptchpr_reload_button' ) ? object.parent().parent( '.cptchpr_wrap' ) : object.closest( 'form' ).find( '.cptchpr_wrap' ), button = captcha.find( '.cptchpr_reload_button' ); if ( ! captcha.length || button.hasClass( 'cptchpr_active' ) ) return false; button.addClass( 'cptchpr_active' ); var captcha_block = captcha.parent(), input = captcha.find( 'input:text' ), input_name = input.attr( 'name' ), input_class = input.attr( 'class' ).replace( /cptchpr_input/, '' ).replace( /^\s+|\s+$/g, '' ), form_slug = captcha_block.find( 'input[name="cptchpr_form"]' ).val(); $.ajax({ type: 'POST', url: cptchpr_vars.ajaxurl, data: { action: 'cptchpr_reload', cptchpr_nonce: cptchpr_vars.nonce, cptchpr_input_name: input_name, cptchpr_input_class: input_class, cptchpr_form_slug: form_slug }, success: function( result ) { captcha_block.find( '.cptchpr_to_remove' ).remove(); var forms = [ 'default', 'wp_login', 'wp_register', 'wp_comments', 'wp_lost_password' ]; if ( cptchpr_in_array( form_slug, forms ) || input_class === '' ) captcha.replaceWith( result ); /* for default forms */ else captcha_block.replaceWith( result ); /* for custom forms */ }, error : function ( xhr, ajaxOptions, thrownError ) { alert( xhr.status ); alert( thrownError ); } }); })(jQuery); } /** * This function is an analog of "in_array" function for PHP */ function cptchpr_in_array( needle, haystack ) { var found = false, key; for ( key in haystack ) { if ( haystack[ key ] === needle ) { found = true; break; } } return found; }