Files
Websites/Profice WebSite/scripts/script.js
2026-01-28 16:04:48 +01:00

170 lines
6.4 KiB
JavaScript

// script.js
console.log('Script.js loaded successfully');
// Separate function for login button click (defined outside DOMContentLoaded)
function handleLoginClick(e) {
e.preventDefault();
console.log('Login button clicked!');
console.log('Current path:', window.location.pathname);
console.log('Current href:', window.location.href);
// Force navigation to login page
console.log('Force navigating to login page');
window.location.href = 'sites/login.html';
}
document.addEventListener("DOMContentLoaded", function() {
console.log('DOM fully loaded');
// ==========================================
// 1. MENU TOGGLE LOGIC
// ==========================================
const menuToggle = document.getElementById('menuToggle');
const slideMenu = document.getElementById('slideMenu');
const overlay = document.getElementById('overlay');
const loginBtn = document.getElementById('loginBtn');
console.log('Elements found:', {
menuToggle: !!menuToggle,
slideMenu: !!slideMenu,
overlay: !!overlay,
loginBtn: !!loginBtn
});
if (menuToggle && slideMenu && overlay) {
function toggleMenu() {
menuToggle.classList.toggle('active');
slideMenu.classList.toggle('active');
overlay.classList.toggle('active');
}
menuToggle.addEventListener('click', toggleMenu);
overlay.addEventListener('click', toggleMenu);
console.log('Menu toggle functionality initialized');
}
// Login button functionality
if (loginBtn) {
console.log('Login button found:', loginBtn);
// Determine correct path based on current location
const currentPath = window.location.pathname;
let loginPath;
if (currentPath.includes('/sites/')) {
// Already in sites folder
if (currentPath.includes('login.html')) {
loginPath = 'register.html';
} else if (currentPath.includes('register.html')) {
loginPath = 'login.html';
} else {
loginPath = 'login.html';
}
} else {
// In root folder
loginPath = 'sites/login.html';
}
console.log('Login path will be:', loginPath);
// Direct onclick
loginBtn.onclick = function(e) {
e.preventDefault();
console.log('Login button clicked!');
console.log('Navigating to:', loginPath);
window.location.href = loginPath;
};
console.log('Login button event listener attached');
} else {
console.error('Login button not found in DOM');
}
// ==========================================
// 2. FORM SUBMISSION LOGIC
// ==========================================
const contactForm = document.getElementById('contactForm');
const successMessage = document.getElementById('successMessage');
if (contactForm) {
contactForm.addEventListener('submit', async function(e) {
e.preventDefault();
const nameInput = document.getElementById('name');
const orgInput = document.getElementById('organisation');
const contactInput = document.getElementById('contact');
const serviceSelect = document.getElementById('service');
const budgetInput = document.getElementById('budget');
const descInput = document.getElementById('description');
const selectedServiceText = serviceSelect ? serviceSelect.options[serviceSelect.selectedIndex].text : 'Dienstleistung';
const formData = {
name: nameInput ? nameInput.value : '',
organisation: orgInput ? orgInput.value : '',
contact: contactInput ? contactInput.value : '',
service: serviceSelect ? serviceSelect.value : '',
budget: budgetInput ? budgetInput.value : '',
description: descInput ? descInput.value : '',
timestamp: new Date().toISOString()
};
// --- LOCALSTORAGE ---
try {
const localLead = {
id: Date.now(),
datum: new Date().toLocaleDateString('de-DE'),
dienstleistung: selectedServiceText,
status: 'open',
statusText: 'Offen',
description: formData.description
};
let existingLeads = JSON.parse(localStorage.getItem('myLeads')) || [];
existingLeads.unshift(localLead);
localStorage.setItem('myLeads', JSON.stringify(existingLeads));
} catch (err) {
console.error('Ошибка сохранения в LocalStorage:', err);
}
// false if test, true if production
const USE_PRODUCTION = true;
const WEBHOOK_TEST = 'https://n8n.profice.de/webhook-test/d94ef798-3f43-46dd-8207-1e335e64518f';
const WEBHOOK_PROD = 'https://n8n.profice.de/webhook/d94ef798-3f43-46dd-8207-1e335e64518f';
const N8N_WEBHOOK_URL = USE_PRODUCTION ? WEBHOOK_PROD : WEBHOOK_TEST;
let iframe = document.getElementById('hidden-iframe');
if (!iframe) {
iframe = document.createElement('iframe');
iframe.id = 'hidden-iframe';
iframe.name = 'hidden-iframe';
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
const tempForm = document.createElement('form');
tempForm.method = 'POST';
tempForm.action = N8N_WEBHOOK_URL;
tempForm.target = 'hidden-iframe';
for (const [key, value] of Object.entries(formData)) {
const input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = value;
tempForm.appendChild(input);
}
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
contactForm.style.display = 'none';
if (successMessage) {
successMessage.classList.add('show');
}
console.log('Form submitted successfully');
});
}
});