<div class="form-container"> <div class="gold-pattern"></div> <div class="form-header"> <div class="logo"> <div class="cosmetic">COSMETIC</div> <div class="hub">hub</div> </div> <h1 class="form-title">Formularz klienta</h1> </div> <form id="clientForm" action="mailto:hurt@cosmetic-hub.pl?subject=Nowa%20wspolpraca%20handlowa%20-%20Cosmetic%20Hub" method="post" enctype="text/plain" onsubmit="return validateAndPrepareForm(this);"><!-- Dane firmy do faktury --> <div class="section"> <h2 class="section-title">Dane firmy do faktury</h2> <div class="row"> <div class="col"> <div class="form-group"><label for="companyName" class="required">Nazwa </label> <input type="text" id="companyName" name="Nazwa firmy" required="" /></div> <div class="form-group"><label for="companyAddress" class="required">Adres </label> <input type="text" id="companyAddress" name="Adres firmy" required="" /></div> <div class="form-group"><label for="companyNIP" class="required">NIP </label> <input type="text" id="companyNIP" name="NIP" pattern="[0-9]{10}" title="NIP powinien zawierać 10 cyfr" required="" /></div> </div> <div class="col"> <div class="form-group"><label for="companyEmail" class="required">Adres e-mail </label> <input type="email" id="companyEmail" name="Email firmowy" required="" /></div> <div class="form-group"><label for="companyPhone" class="required">Numer kontaktowy</label> <input type="tel" id="companyPhone" name="Telefon firmowy" pattern="[0-9\s\+\-]{9,15}" title="Proszę podać poprawny numer telefonu" required="" /></div> </div> </div> <button type="button" class="copy-button" id="copyButton">Kopiuj dane do dostawy</button></div> <!-- Dane do dostawy --> <div class="section"> <h2 class="section-title">Dane do dostawy</h2> <div class="row"> <div class="col"> <div class="form-group"><label for="deliveryName">Nazwa</label> <input type="text" id="deliveryName" name="Nazwa dostawy" /></div> <div class="form-group"><label for="deliveryAddress">Adres</label> <input type="text" id="deliveryAddress" name="Adres dostawy" /></div> </div> <div class="col"> <div class="form-group"><label for="deliveryEmail">Adres e-mail</label> <input type="email" id="deliveryEmail" name="Email do dostawy" /></div> <div class="form-group"><label for="deliveryPhone">Numer kontaktowy</label> <input type="tel" id="deliveryPhone" name="Telefon do dostawy" pattern="[0-9\s\+\-]{9,15}" title="Proszę podać poprawny numer telefonu" /></div> </div> </div> </div> <!-- Informacje o firmie --> <div class="section"> <h2 class="section-title">Informacje o firmie</h2> <div class="row"> <div class="col"> <div class="form-group"><label for="foundingYear">Rok założenia</label> <input type="text" id="foundingYear" name="Rok zalozenia" pattern="[0-9]{4}" title="Proszę podać rok w formacie RRRR" /></div> <div class="form-group"><label>Rodzaj działalności <span class="required-marker">*</span></label> <div class="checkbox-group"><label class="checkbox-option"> <input type="checkbox" name="Rodzaj dzialalnosci" value="Hurtownia" class="required-checkbox" data-group="business-type" /> Hurtownia </label> <label class="checkbox-option"> <input type="checkbox" name="Rodzaj dzialalnosci" value="Sklep stacjonarny/online" class="required-checkbox" data-group="business-type" /> Sklep stacjonarny/online </label> <label class="checkbox-option"> <input type="checkbox" name="Rodzaj dzialalnosci" value="Salon kosmetyczny" class="required-checkbox" data-group="business-type" /> Salon kosmetyczny </label></div> </div> <div class="form-group"><label>Kanał sprzedaży <span class="required-marker">*</span></label> <div class="checkbox-group"><label class="checkbox-option"> <input type="checkbox" name="Kanal sprzedazy" value="Stacjonarnie" class="required-checkbox" data-group="sales-channel" /> Stacjonarnie </label> <label class="checkbox-option"> <input type="checkbox" name="Kanal sprzedazy" value="Online" class="required-checkbox" data-group="sales-channel" /> Online </label></div> </div> </div> <div class="col"> <div class="form-group"><label for="website">Strona www</label> <input type="text" id="website" name="Strona www" placeholder="sklep.pl" pattern=".*\..*" title="Wprowadź poprawny adres strony zawierający kropkę" /></div> <div class="form-group"><label for="instagram">Profil Instagram</label> <input type="text" id="instagram" name="Instagram" placeholder="@nazwa_profilu" /></div> <div class="form-group"><label for="facebook">Profil Facebook</label> <input type="text" id="facebook" name="Facebook" placeholder="@nazwa_profilu" /></div> <div class="form-group"><label for="currentBrands">Obecne marki w sprzedaży</label> <input type="text" id="currentBrands" name="Obecne marki" /></div> </div> </div> </div> <!-- NAILSOFTHEDAY --> <div class="brand-section"> <h3 class="brand-title">NAILSOFTHEDAY</h3> <div class="form-group"><label>Jestem zainteresowany/a zakupem</label> <div class="radio-group"><label class="radio-option"> <input type="radio" name="NAILSOFTHEDAY - zainteresowanie" value="TAK" /> TAK </label> <label class="radio-option"> <input type="radio" name="NAILSOFTHEDAY - zainteresowanie" value="NIE" /> NIE </label></div> </div> <div class="form-group"><label>Miesięczna wartość zamówień: <span id="notdValueDisplay">2000 PLN</span></label> <div class="slider-container"><input type="range" min="500" max="10000" value="2000" step="500" class="slider" id="notdValueSlider" /> <div class="slider-labels"><span>500 PLN</span> <span>5000 PLN</span> <span>10000 PLN</span></div> </div> <input type="hidden" name="NAILSOFTHEDAY - miesieczna wartosc" id="notdValueInput" value="2000 PLN" /></div> <div class="form-group"><label for="commentsNOTD">Dodatkowe uwagi z Państwa strony</label> <textarea id="commentsNOTD" name="NAILSOFTHEDAY - uwagi" class="additional-notes"></textarea></div> </div> <!-- TOUCH --> <div class="brand-section"> <h3 class="brand-title">TOUCH</h3> <div class="form-group"><label>Jestem zainteresowany/a zakupem</label> <div class="radio-group"><label class="radio-option"> <input type="radio" name="TOUCH - zainteresowanie" value="TAK" /> TAK </label> <label class="radio-option"> <input type="radio" name="TOUCH - zainteresowanie" value="NIE" /> NIE </label></div> </div> <div class="form-group"><label>Miesięczna wartość zamówień: <span id="touchValueDisplay">2000 PLN</span></label> <div class="slider-container"><input type="range" min="500" max="10000" value="2000" step="500" class="slider" id="touchValueSlider" /> <div class="slider-labels"><span>500 PLN</span> <span>5000 PLN</span> <span>10000 PLN</span></div> </div> <input type="hidden" name="TOUCH - miesieczna wartosc" id="touchValueInput" value="2000 PLN" /></div> <div class="form-group"><label for="commentsTOUCH">Dodatkowe uwagi z Państwa strony</label> <textarea id="commentsTOUCH" name="TOUCH - uwagi" class="additional-notes"></textarea></div> </div> <!-- DA'23 --> <div class="brand-section"> <h3 class="brand-title">DA'23</h3> <div class="form-group"><label>Jestem zainteresowany/a zakupem</label> <div class="radio-group"><label class="radio-option"> <input type="radio" name="DA23 - zainteresowanie" value="TAK" /> TAK </label> <label class="radio-option"> <input type="radio" name="DA23 - zainteresowanie" value="NIE" /> NIE </label></div> </div> <div class="form-group"><label>Miesięczna wartość zamówień: <span id="da23ValueDisplay">2000 PLN</span></label> <div class="slider-container"><input type="range" min="500" max="10000" value="2000" step="500" class="slider" id="da23ValueSlider" /> <div class="slider-labels"><span>500 PLN</span> <span>5000 PLN</span> <span>10000 PLN</span></div> </div> <input type="hidden" name="DA23 - miesieczna wartosc" id="da23ValueInput" value="2000 PLN" /></div> <div class="form-group"><label for="commentsDA23">Dodatkowe uwagi z Państwa strony</label> <textarea id="commentsDA23" name="DA23 - uwagi" class="additional-notes"></textarea></div> </div> <!-- Dodatkowe informacje --> <div class="section"> <h2 class="section-title">Dodatkowe informacje od klienta</h2> <textarea id="additionalComments" name="Dodatkowe informacje" class="additional-notes" style="height: 120px;"></textarea></div> <!-- Zgoda RODO --> <div class="gdpr-consent"><label class="radio-option"> <input type="checkbox" name="Zgoda RODO" required="" /> Wyrażam zgodę na przetwarzanie moich danych osobowych zawartych w formularzu w celu nawiązania współpracy handlowej zgodnie z przepisami o ochronie danych osobowych (RODO). </label></div> <!-- Usunięto ukryte pole subject, ponieważ teraz jest w adresie mailto --> <button type="submit" class="submit-button">Wyślij formularz</button></form></div> <script> // Naprawiona funkcja kopiowania danych - teraz wywoływana tylko raz function copyCompanyData() { document.getElementById('deliveryName').value = document.getElementById('companyName').value; document.getElementById('deliveryAddress').value = document.getElementById('companyAddress').value; document.getElementById('deliveryEmail').value = document.getElementById('companyEmail').value; document.getElementById('deliveryPhone').value = document.getElementById('companyPhone').value; alert('Dane zostały skopiowane!'); } // Obsługa suwaków function setupSlider(sliderId, displayId, inputId) { const slider = document.getElementById(sliderId); const display = document.getElementById(displayId); const input = document.getElementById(inputId); slider.oninput = function() { const value = this.value; display.textContent = value + " PLN"; input.value = value + " PLN"; } } // Inicjalizacja suwaków document.addEventListener('DOMContentLoaded', function() { // Ustawienia suwaków setupSlider('notdValueSlider', 'notdValueDisplay', 'notdValueInput'); setupSlider('touchValueSlider', 'touchValueDisplay', 'touchValueInput'); setupSlider('da23ValueSlider', 'da23ValueDisplay', 'da23ValueInput'); // Obsługa przycisku kopiowania - tylko jedno nasłuchiwanie zdarzenia document.getElementById('copyButton').addEventListener('click', copyCompanyData); }); // Ulepszona funkcja usuwająca polskie znaki function replacePolishChars(text) { if (!text) return text; // Mapa polskich znaków do ich odpowiedników bez ogonków const polishChars = { 'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', 'ź': 'z', 'ż': 'z', 'Ą': 'A', 'Ć': 'C', 'Ę': 'E', 'Ł': 'L', 'Ń': 'N', 'Ó': 'O', 'Ś': 'S', 'Ź': 'Z', 'Ż': 'Z' }; return text.split('').map(char => polishChars[char] || char).join(''); } // Ulepszona walidacja i przygotowanie formularza function validateAndPrepareForm(form) { // Walidacja NIP const nipInput = document.getElementById('companyNIP'); if (nipInput.value && !(/^\d{10}$/.test(nipInput.value))) { alert('NIP powinien składać się z 10 cyfr'); nipInput.focus(); return false; } // Walidacja email const emailInput = document.getElementById('companyEmail'); if (emailInput.value && !(/\S+@\S+\.\S+/.test(emailInput.value))) { alert('Proszę podać poprawny adres email'); emailInput.focus(); return false; } // Walidacja wymaganych checkboxów (przynajmniej jeden zaznaczony w grupie) const requiredCheckboxGroups = ['business-type', 'sales-channel']; for (let groupName of requiredCheckboxGroups) { const checkboxes = document.querySelectorAll(`input[data-group="${groupName}"]`); const isAnyChecked = Array.from(checkboxes).some(cb => cb.checked); if (!isAnyChecked) { const groupLabels = { 'business-type': 'Rodzaj działalności', 'sales-channel': 'Kanał sprzedaży' }; alert(`Proszę wybrać przynajmniej jedną opcję w polu "${groupLabels[groupName]}"`); checkboxes[0].focus(); return false; } } // Walidacja strony www const websiteInput = document.getElementById('website'); if (websiteInput.value && !/\./.test(websiteInput.value)) { alert('Strona www powinna zawierać kropkę'); websiteInput.focus(); return false; } // Potwierdzenie wysyłki i przygotowanie maila if (confirm('Formularz "Nowa wspolpraca handlowa - Cosmetic Hub" zostanie wysłany na adres: hurt@cosmetic-hub.pl. Czy chcesz kontynuować?')) { // Zamiana polskich znaków na angielskie odpowiedniki we wszystkich polach formularza const allInputs = document.querySelectorAll('input[type="text"], input[type="email"], input[type="tel"], textarea, input[type="hidden"]'); allInputs.forEach(input => { if (input.value) { input.value = replacePolishChars(input.value); } }); return true; // Pozwól na wysłanie formularza } else { return false; // Anuluj wysyłanie formularza } } </script>