HEX
Server: LiteSpeed
System: Linux l24.yourwebhosting.net 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User: turkishi (1582)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/turkishi/public_html/wp-content/plugins/extensions-for-cf7/assets/js/signature-active.js
jQuery(document).ready(function ($) {

    function extcf7_signature() {
        const forms = $(".wpcf7-form");

        forms.each(function (form_index, form) {
            const fileInput = $(form).find('.extcf7_signature_field_input');
            fileInput.css('display', 'none');

            $(form).find(".extcf7_signature_pad").each(function (pad_index, pad) {
                const canvas = $(pad).find('canvas').get(0);
                const inputField = $(pad).closest('.wpcf7-form-control-wrap').find('.extcf7_signature_field_input');
                const inputName = inputField.attr('name');
                
                const pad_bg_color = canvas.dataset?.bgColor;
                const pen_color = canvas.dataset?.penColor;
                
                const signature = new SignaturePad(canvas, {
                    includeBackgroundColor: true,
                    backgroundColor: pad_bg_color,
                    penColor: pen_color,
                });

                signature.addEventListener('endStroke', function () {
                    if (!signature.isEmpty()) {
                        // Convert signature to PNG image
                        const dataURL = signature.toDataURL('image/png');
                        
                        // Convert data URL to Blob
                        const blobBin = atob(dataURL.split(',')[1]);
                        const array = [];
                        for(let i = 0; i < blobBin.length; i++) {
                            array.push(blobBin.charCodeAt(i));
                        }
                        const blob = new Blob([new Uint8Array(array)], {type: 'image/png'});
                        
                        // Create a File object from the Blob
                        const filename = 'signature.png';
                        const file = new File([blob], filename, {type: 'image/png'});
                        
                        // Create a FileList-like object
                        const dataTransfer = new DataTransfer();
                        dataTransfer.items.add(file);
                        
                        // Set the file to the input field
                        inputField[0].files = dataTransfer.files;
                    }
                });

                $(pad).find('.extcf7_signature_clear_button').on('click', function () {
                    signature.clear();
                    
                    // Clear the file input when signature is cleared
                    const dataTransfer = new DataTransfer();
                    inputField[0].files = dataTransfer.files;
                });
            });
        });
    }

    extcf7_signature();
    
    // Re-initialize signature pads when CF7 reloads the form
    $(document).on('wpcf7:spam wpcf7:invalid wpcf7:mailsent wpcf7:mailfailed', function() {
        setTimeout(extcf7_signature, 100);
    });
});