156 Zeilen
3.7 KiB
JavaScript
156 Zeilen
3.7 KiB
JavaScript
/**
|
|
* Central configuration file for IntelSight 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-tech-pattern.mp4',
|
|
'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: 'intelsight_language'
|
|
},
|
|
|
|
// Trust Indicators Target Values
|
|
TRUST_INDICATORS: {
|
|
AVAILABILITY: 99.9,
|
|
AUTHORITIES_COUNT: 500,
|
|
SUPPORT_HOURS: 24
|
|
},
|
|
|
|
// 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',
|
|
|
|
// Trust Indicators
|
|
TRUST_INDICATORS: '.trust-indicators',
|
|
INDICATOR_VALUE: '.indicator-value',
|
|
|
|
// 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
|