// UI Manager Module
// Responsible for creating and managing the user interface elements
class UIManager {
  constructor(settings) {
    this.settings = settings || {
      debugMode: false,
    };
    this.buttonCreated = false;
    this.analysisResults = null;
    this.pageType = 'general';
  }
  log(message, data = null) {
    if (this.settings.debugMode) {
      console.log(`UIManager: ${message}`, data || "");
    }
  }
  setPageType(pageType) {
    this.pageType = pageType;
  }
  createButton(analysisResults = null) {
    if (analysisResults) {
      this.analysisResults = analysisResults;
    }
    
    if (!this.analysisResults) {
      console.error('DIMA: Aucun résultat d\'analyse disponible pour créer le bouton');
      return;
    }
        try {
            // Supprimer bouton existant
            document.getElementById('dima-btn')?.remove();
            if (this.buttonCreated) return;
            const button = document.createElement('div');
            button.id = 'dima-btn';
            
            button.innerHTML = `
                
                    
                    
                    
                        
                             
                            Analyse DIMA
                         
                        
                            Détection de techniques de manipulation cognitive par 
                            M82 Project
                        
                     
                    
                    
                    
                        
                            ${this.analysisResults.globalScore}
                            Score Global
                         
                        
                            ${this.analysisResults.detectedTechniques.length}
                            Techniques
                         
                        
                            ${this.analysisResults.riskLevel}
                            Niveau Risque
                         
                        
                            ${this.analysisResults.contentLength}
                            Caractères
                         
                     
                    
                    ${this.analysisResults.globalScore > 15 ? `
                        
                            
                                ${this.getScoreIcon(this.analysisResults.globalScore)} Résumé de l'analyse
                            
                            
                                ${this.generateExecutiveSummary()}
                            
                         
                    ` : ''}
                    
                    
                        📄 Page analysée
                        ${this.analysisResults.title}
                        ${this.analysisResults.url}
                        
                            Analysé le ${new Date(this.analysisResults.timestamp).toLocaleString('fr-FR')} • 
                            ${this.analysisResults.analyzedText} caractères traités • Type: ${this.pageType}
                        
                     
                    
                    ${this.analysisResults.phaseScores && Object.keys(this.analysisResults.phaseScores).length > 0 ? `
                        
                            📊 Répartition par phase DIMA
                            
                                ${Object.entries(this.analysisResults.phaseScores).map(([phase, score]) => {
                                    const maxScore = Math.max(...Object.values(this.analysisResults.phaseScores));
                                    const percentage = maxScore > 0 ? (score / maxScore) * 100 : 0;
                                    return `
                                        
                                            
                                                ${this.getPhaseEmoji(phase)} ${phase}
                                            
                                            
                                            
                                                ${score.toFixed(1)} pts
                                            
                                            
                                                ${this.getPhaseDescription(phase)}
                                            
                                         
                                    `;
                                }).join('')}
                            
                                💡 La matrice DIMA analyse comment l'information traverse les 4 phases cognitives
                            
                         
                    ` : ''}
                    
                    ${this.analysisResults.detectedTechniques.length === 0 ? `
                        
                            ✅
                            Aucune manipulation détectée
                            Le contenu analysé semble exempt de techniques de manipulation cognitive manifestes
                         
                    ` : `
                        
                            ⚠️ Techniques de manipulation détectées
                            
                                ${this.analysisResults.detectedTechniques.slice(0, 8).map(technique => `
                                    
                                        
                                            
                                                
                                                    ${technique.phase === 'Detect' ? '👁️' : technique.phase === 'Informer' ? '📢' : technique.phase === 'Mémoriser' ? '🧠' : '⚡'} ${technique.index}: ${technique.nom}
                                                
                                                ${technique.tactic ? `
↳ Tactique: ${technique.tactic}
` : ''}
                                                ${technique.description ? `
${technique.description}
` : ''}
                                            
 
                                            
                                                ${technique.confidence}%
                                            
                                         
                                        
                                        
                                            
                                                ${technique.phase}
                                            
                                            
                                                Score pondéré: ${technique.weightedScore?.toFixed(1) || technique.score}
                                             
                                         
                                        
                                        ${technique.matchedKeywords?.length > 0 ? `
                                            
                                                
                                                    🔍 Mots-clés détectés:
                                                
                                                
                                                    ${technique.matchedKeywords.slice(0, 4).map(keyword => 
                                                        `
                                                            ${keyword.keyword} ${(keyword.count > 1) ? `(×${keyword.count})` : ''}
                                                        `
                                                    ).join('')}
                                                    ${technique.matchedKeywords.length > 4 ? 
                                                        `+${technique.matchedKeywords.length - 4} autres...` 
                                                        : ''
                                                    }
                                                
                                             
                                        ` : ''}
                                    
 
                                `).join('')}
                            
 
                    `}
                    
                    
                    
                    
                 
            `;
            modal.addEventListener('click', (e) => {
                if (e.target === modal) modal.remove();
            });
            document.body.appendChild(modal);
            this.log('Modal affiché');
        } catch (error) {
            console.error('DIMA: Erreur modal:', error);
        }
    }
}
// Make UIManager available globally for Chrome extension
window.UIManager = UIManager;