import re
import os

files = [
    'app/Views/admin/certificate_add.php',
    'app/Views/admin/certificate_edit.php'
]

for file_path in files:
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()

    old_text_listener = """    template.fields.filter(f => f.type === 'text' || f.type === 'date').forEach(field => {
        const input = document.getElementById('tpl_' + field.id);
        if (input) {
            input.addEventListener('input', () => renderPreviewOverlays(template));
        }
    });"""
    
    new_text_listener = """    template.fields.filter(f => f.type === 'text' || f.type === 'date').forEach(field => {
        const input = document.getElementById('tpl_' + field.id);
        if (input && !input.hasAttribute('data-listener')) {
            input.setAttribute('data-listener', 'true');
            input.addEventListener('input', () => renderPreviewOverlays(template));
        }
    });"""

    old_photo_listener = """    template.fields.filter(f => f.type === 'photo').forEach(field => {
        const input = document.getElementById('tpl_' + field.id);
        if (input) {
            input.addEventListener('change', function(e) {
                if (this.files && this.files[0]) {
                    const reader = new FileReader();
                    reader.onload = function(e) {
                        openCropModal(e.target.result, field, input);
                    };
                    reader.readAsDataURL(this.files[0]);
                }
            });
        }
    });"""

    new_photo_listener = """    template.fields.filter(f => f.type === 'photo').forEach(field => {
        const input = document.getElementById('tpl_' + field.id);
        if (input && !input.hasAttribute('data-photo-listener')) {
            input.setAttribute('data-photo-listener', 'true');
            input.addEventListener('change', function(e) {
                if (this.files && this.files[0]) {
                    const reader = new FileReader();
                    reader.onload = function(e) {
                        openCropModal(e.target.result, field, input);
                    };
                    reader.readAsDataURL(this.files[0]);
                }
            });
        }
    });"""

    content = content.replace(old_text_listener, new_text_listener)
    content = content.replace(old_photo_listener, new_photo_listener)

    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(content)

print("Done")
