/**
 * Central configuration file for AegisSight website
 * Contains all constants, settings and selectors
 */

// Application Configuration
const CONFIG = {
    // Animation Settings
    ANIMATION: {
        PARTICLE_COUNT: 100,
        PARTICLE_SPEED: 3,
        PARTICLE_SIZE_MIN: 1,
        PARTICLE_SIZE_MAX: 3,
        CONNECTION_DISTANCE: 100,
        COUNTER_SPEED: 200,
        SCROLL_THRESHOLD: 50,
        FADE_DURATION: 500,
        GLITCH_ITERATIONS: 5,
        GLITCH_INTERVAL: 50
    },
    
    // Hero Video Settings
    HERO_VIDEOS: {
        ROTATION_INTERVAL: 12000, // 12 seconds per video (slower like Palantir)
        FADE_DURATION: 3000, // 3 second fade transition (much slower)
        VIDEO_SOURCES: [
            'assets/videos/hero-data-flow.mp4',
            'assets/videos/hero-network-viz.mp4',
            'assets/videos/hero-code-abstract.mp4'
        ]
    },
    
    // Language Settings
    I18N: {
        DEFAULT_LANGUAGE: 'de',
        SUPPORTED_LANGUAGES: ['de', 'en'],
        STORAGE_KEY: 'aegissight_language'
    },
    
    // Intersection Observer Settings
    OBSERVER: {
        THRESHOLD: 0.3,
        ROOT_MARGIN: '0px'
    },
    
    // Authentication Settings
    AUTH: {
        SESSION_KEY: 'accountForgerAuth',
        REDIRECT_PAGE: 'accountforger-video.html'
    },
    
    // Timeouts and Intervals
    TIMING: {
        SCROLL_HIDE_DELAY: 500,
        COUNTER_UPDATE_INTERVAL: 10,
        MAP_POINT_SPAWN_INTERVAL: 5000,
        RESPONSE_TIMER_UPDATE: 2000,
        LIVE_COUNTER_UPDATE: 3000
    }
};

// DOM Selectors
const SELECTORS = {
    // Navigation
    NAVBAR: '.navbar',
    NAV_MENU: '.nav-menu',
    LANG_TOGGLE: '.lang-toggle',
    
    // Hero Section
    HERO: '.hero',
    HERO_CONTENT: '.hero-content',
    HERO_VIDEO: '.hero-video',
    PARTICLE_CANVAS: '#particleCanvas',
    SCROLL_INDICATOR: '.scroll-indicator',
    
    
    // About Section
    ABOUT_TABS: '.about-tab',
    ABOUT_PANELS: '.about-panel',
    
    // Products Section
    EXPAND_BUTTON: '.expand-button',
    TOOLS_GRID: '.tools-grid',
    TOOL_CARDS: '.tool-card',
    
    // Modals
    LOGIN_MODAL: '.login-modal',
    MODAL_CLOSE: '.modal-close',
    
    // Forms
    CONTACT_FORM: '#contactForm',
    LOGIN_FORM: '#loginForm',
    
    // Animation Elements
    INTERACTIVE_ICON: '#interactiveIcon',
    NEURAL_CANVAS: '#neuralCanvas',
    DATA_PARTICLES: '#dataParticles',
    LIVE_COUNTER: '#liveCounter',
    RESPONSE_TIMER: '#responseTimer',
    MAP_POINTS: '#mapPoints',
    
    // Generic
    TRANSLATABLE: '[data-translate]',
    SMOOTH_LINKS: 'a[href^="#"]',
    SKIP_NAV: '.skip-nav'
};

// CSS Classes
const CLASSES = {
    ACTIVE: 'active',
    SCROLLED: 'scrolled',
    COLLAPSED: 'collapsed',
    VISIBLE: 'visible',
    LOADED: 'loaded',
    EXPANDED: 'expanded',
    HIDDEN: 'hidden',
    
    // Animation Classes
    FADE_IN: 'fade-in',
    FADE_OUT: 'fade-out',
    SLIDE_UP: 'slide-up',
    SLIDE_DOWN: 'slide-down',
    
    // Component Classes
    PARTICLE: 'particle',
    DATA_PARTICLE: 'data-particle',
    MAP_POINT: 'map-point',
    NODE: 'node',
    WIDGET: 'widget',
    TAB: 'tab',
    PANEL: 'panel'
};

// Data Attributes
const DATA_ATTRS = {
    TRANSLATE: 'data-translate',
    TAB: 'data-tab',
    EXPANDED: 'data-expanded',
    LANG: 'data-lang',
    TARGET: 'data-target',
    TOOL: 'data-tool'
};

// Export for use in other modules (if using module system)
// For now, these are global constants available to all scripts