var i = 0; function byId(id) { return document.getElementById(id); } function setHtml(id, html) { var el = byId(id); if (el) { el.innerHTML = html; } } var validationMessageToInput = { username_wynik: 'user', haslo2_wynik: 'haslo2', emailw: 'email', email2w: 'email2', nazwiskow: 'nazwisko', ulicaw: 'ulica', kodw: 'kod', miastow: 'miasto', telefonw: 'telefon', reprezentantw: 'reprezentant', nipw: 'nip', peselw: 'pesel' }; function setValidationMessage(id, text, state) { var el = byId(id); if (!el) return; el.textContent = text || ''; el.classList.add('create-account-field-message'); el.classList.remove('create-account-field-message--error', 'create-account-field-message--success'); if (state === 'error') el.classList.add('create-account-field-message--error'); else if (state === 'success') el.classList.add('create-account-field-message--success'); var inputId = validationMessageToInput[id]; if (inputId) { var input = byId(inputId); if (input) input.setAttribute('aria-invalid', state === 'error' ? 'true' : 'false'); } } function showEl(id) { var el = byId(id); if (el) { el.style.display = ''; } } function hideEl(id) { var el = byId(id); if (el) { el.style.display = 'none'; } } function postRequest(action, data, onSuccess, onFailure) { var xhr = new XMLHttpRequest(); var body = []; var key; for (key in data) { if (Object.prototype.hasOwnProperty.call(data, key)) { body.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key])); } } xhr.open('POST', '/ajax.php?a=' + action, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhr.onreadystatechange = function () { if (xhr.readyState !== 4) { return; } if (xhr.status >= 200 && xhr.status < 300) { onSuccess(xhr.responseText); } else if (onFailure) { onFailure(); } }; xhr.send(body.join('&')); } function spr(a,b,c,d,e,f,g,h,i,j,k) { var button = byId('przycisk'); if (button) { var hasFullForm = byId('nazwisko') || byId('reprezentant'); if (hasFullForm) { button.disabled = (a === 0 || b === 0 || c === 0 || d === 0 || e === 0 || f === 0 || g === 0 || h === 0 || i === 0 || j === 0); } else { button.disabled = false; } } if (a===0) { setHtml('aw', 'Pole Reprezentant jest wymagane'); showEl('aw'); } else hideEl('aw'); if (b===0) { setHtml('bw', 'Pole NIP jest wymagane'); showEl('bw'); } else hideEl('bw'); if (c===0) { setHtml('cw', 'Pole E-mail jest wymagane'); showEl('cw'); } else hideEl('cw'); if (d===0) { setHtml('dw', 'Pole Ulica jest wymagane'); showEl('dw'); } else hideEl('dw'); if (e===0) { setHtml('ew', 'Pole Kod pocztowy jest wymagane'); showEl('ew'); } else hideEl('ew'); if (f===0) { setHtml('fw', 'Pole Miasto jest wymagane'); showEl('fw'); } else hideEl('fw'); if (g===0) { setHtml('gw', 'Pole Telefon jest wymagane'); showEl('gw'); } else hideEl('gw'); if (h===0) { setHtml('hw', 'Pole Nazwisko jest wymagane'); showEl('hw'); } else hideEl('hw'); if (i===0) { setHtml('iw', 'Pole Użytkownik jest wymagane'); showEl('iw'); } else hideEl('iw'); if (j===0) { setHtml('jw', 'Pole Hasło jest wymagane'); showEl('jw'); } else hideEl('jw'); } var reEmailZaloz = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/; /** PESEL opcjonalny: pusty = OK; gdy wpisany – 11 cyfr i poprawna suma kontrolna. Zwraca { valid: bool, message: string }. */ function validatePeselOptional(value) { var v = (value || '').trim(); if (v === '') return { valid: true, message: '' }; if (!/^\d{11}$/.test(v)) return { valid: false, message: 'PESEL: 11 cyfr' }; var w = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]; var sum = 0; for (var i = 0; i < 10; i++) sum += parseInt(v[i], 10) * w[i]; var control = (10 - (sum % 10)) % 10; if (parseInt(v[10], 10) !== control) return { valid: false, message: 'Nieprawidłowa suma kontrolna PESEL' }; return { valid: true, message: '' }; } function refreshZalozValidation() { var form = document.querySelector('.create-account-form'); if (!form) return; var userEl = byId('user'); var hasloEl = byId('haslo'); var haslo2El = byId('haslo2'); var emailEl = byId('email'); var nazwiskoEl = byId('nazwisko'); var ulicaEl = byId('ulica'); var kodEl = byId('kod'); var miastoEl = byId('miasto'); var telefonEl = byId('telefon'); var reprezentantEl = byId('reprezentant'); var nipEl = byId('nip'); var abonentEl = byId('abonent'); if (!userEl || !nazwiskoEl) return; var reKod = /^(\d{2}-\d{3})/; var reTel = /^\+\d{2}\.\d{9}$/; if (userEl.value.length < 5 || userEl.value.length > 10 || !/^[a-zA-Z]/.test(userEl.value)) a11 = 0; if (hasloEl && haslo2El) { if (hasloEl.value !== haslo2El.value || haslo2El.value.length < 5 || haslo2El.value.length > 36) a12 = 0; else a12 = 1; } if (emailEl) { a3 = reEmailZaloz.test(emailEl.value.trim()) ? 1 : 0; } if (nazwiskoEl) { a9 = nazwiskoEl.value.length >= 6 ? 1 : 0; } if (ulicaEl) { a4 = ulicaEl.value.length >= 6 ? 1 : 0; } if (kodEl) { a5 = kodEl.value.search(reKod) !== -1 ? 1 : 0; } if (miastoEl) { a6 = miastoEl.value.length >= 3 ? 1 : 0; } if (telefonEl) { a7 = (telefonEl.value.length === 13 && reTel.test(telefonEl.value)) ? 1 : 0; } if (abonentEl && abonentEl.value === 'Firma') { a1 = (reprezentantEl && reprezentantEl.value.length >= 6) ? 1 : 0; a2 = (nipEl && nipEl.value.length === 10) ? 1 : 0; } else { a1 = 1; a2 = 1; } spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); } window.refreshZalozValidation = refreshZalozValidation; function validateZalozStep0(doneCallback) { var form = document.querySelector('.create-account-form'); if (!form) { if (doneCallback) doneCallback(true); return true; } var userEl = byId('user'); var hasloEl = byId('haslo'); var haslo2El = byId('haslo2'); var emailEl = byId('email'); if (!userEl) { if (doneCallback) doneCallback(true); return true; } var userOk = (userEl.value.length >= 5 && userEl.value.length <= 10 && /^[a-zA-Z]/.test(userEl.value)); a11 = userOk ? 1 : 0; if (hasloEl && haslo2El) { if (hasloEl.value !== haslo2El.value || haslo2El.value.length < 5 || haslo2El.value.length > 36) a12 = 0; else a12 = 1; } else { a12 = 0; } a3 = (emailEl && reEmailZaloz.test(emailEl.value.trim())) ? 1 : 0; if (a11 === 0) setValidationMessage('username_wynik', 'Nazwa: 5–10 znaków, od litery', 'error'); else setValidationMessage('username_wynik', '', 'success'); if (a12 === 0) setValidationMessage('haslo2_wynik', hasloEl && haslo2El && hasloEl.value !== haslo2El.value ? 'Hasła są różne' : 'Hasło: min. 5 znaków', 'error'); else setValidationMessage('haslo2_wynik', '', 'success'); if (a3 === 0) setValidationMessage('emailw', 'Nieprawidłowy e-mail', 'error'); else setValidationMessage('emailw', '', 'success'); spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); if (a12 !== 1 || a3 !== 1 || !userOk) { if (doneCallback) doneCallback(false); return false; } if (!doneCallback) { return true; } postRequest('username_check', { username: userEl.value }, function (responseText) { var r = (responseText && responseText.trim) ? responseText.trim() : String(responseText); if (r === '0') { a11 = 1; setValidationMessage('username_wynik', '', 'success'); spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); doneCallback(true); } else { a11 = 0; if (r === '1') setValidationMessage('username_wynik', 'Nazwa użytkownika jest zajęta', 'error'); else if (r === '2') setValidationMessage('username_wynik', 'Nazwa użytkownika musi mieć od 5 do 10 znaków', 'error'); else if (r === '3') setValidationMessage('username_wynik', 'Nazwa użytkownika musi zaczynać się literą', 'error'); else setValidationMessage('username_wynik', 'Nieprawidłowa nazwa użytkownika', 'error'); spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); doneCallback(false); } }, function () { setValidationMessage('username_wynik', 'Wystąpił błąd, prosimy spróbować ponownie później', 'error'); a11 = 0; spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); doneCallback(false); }); return false; } function validateZalozStep1() { var form = document.querySelector('.create-account-form'); if (!form) return true; var nazwiskoEl = byId('nazwisko'); var ulicaEl = byId('ulica'); var kodEl = byId('kod'); var miastoEl = byId('miasto'); var telefonEl = byId('telefon'); var reprezentantEl = byId('reprezentant'); var nipEl = byId('nip'); var abonentEl = byId('abonent'); if (!nazwiskoEl) return true; var reKod = /^(\d{2}-\d{3})/; var reTel = /^\+\d{2}\.\d{9}$/; a9 = nazwiskoEl.value.length >= 6 ? 1 : 0; a4 = (ulicaEl && ulicaEl.value.length >= 6) ? 1 : 0; a5 = (kodEl && kodEl.value.search(reKod) !== -1) ? 1 : 0; a6 = (miastoEl && miastoEl.value.length >= 3) ? 1 : 0; a7 = (telefonEl && telefonEl.value.length === 13 && reTel.test(telefonEl.value)) ? 1 : 0; if (abonentEl && abonentEl.value === 'Firma') { a1 = (reprezentantEl && reprezentantEl.value.length >= 6) ? 1 : 0; a2 = (nipEl && nipEl.value.length === 10) ? 1 : 0; } else { a1 = 1; a2 = 1; } if (a9 === 0) setValidationMessage('nazwiskow', 'Min. 6 znaków', 'error'); else setValidationMessage('nazwiskow', '', 'success'); if (a4 === 0) setValidationMessage('ulicaw', 'Min. 6 znaków', 'error'); else setValidationMessage('ulicaw', '', 'success'); if (a5 === 0) setValidationMessage('kodw', 'Format: XX-XXX', 'error'); else setValidationMessage('kodw', '', 'success'); if (a6 === 0) setValidationMessage('miastow', 'Min. 3 znaki', 'error'); else setValidationMessage('miastow', '', 'success'); if (a7 === 0) setValidationMessage('telefonw', 'Format: +48.123456789', 'error'); else setValidationMessage('telefonw', '', 'success'); if (reprezentantEl) setValidationMessage('reprezentantw', a1 === 0 ? 'Min. 6 znaków' : '', a1 === 0 ? 'error' : 'success'); if (nipEl) setValidationMessage('nipw', a2 === 0 ? 'Wymagane 10 cyfr' : '', a2 === 0 ? 'error' : 'success'); var peselEl = byId('pesel'); if (peselEl && abonentEl && abonentEl.value === 'Prywatny') { var pr = validatePeselOptional(peselEl.value); setValidationMessage('peselw', pr.message, pr.valid ? 'success' : 'error'); if (!pr.valid) { spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); return false; } } else if (peselEl) setValidationMessage('peselw', '', 'success'); spr(a1, a2, a3, a4, a5, a6, a7, a9, a11, a12); return (a1 === 1 && a2 === 1 && a4 === 1 && a5 === 1 && a6 === 1 && a7 === 1 && a9 === 1); } window.validateZalozStep0 = validateZalozStep0; window.validateZalozStep1 = validateZalozStep1; var a1=0; // reprezentant var a2=0; // nip var a3=0; // email var a4=0; // ulica var a5=0; // kod var a6=0; // miasto var a7=0; // telefon var a9=0; // nazwisko var a11=0; // user var a12=0; // haslo function shouldUseBaseInstall(value, includeAbove102) { var num = parseInt(value, 10); if (isNaN(num)) { return false; } if (num < 9 || num === 31 || num === 99 || (num >= 23 && num <= 26) || (num >= 40 && num <= 42)) { return true; } return includeAbove102 && num > 102; } function updateSystemAndPeriod(pakietValue, includeAbove102) { postRequest('systemy', { pakiet: pakietValue }, function (responseText) { setHtml('so', responseText); if (shouldUseBaseInstall(pakietValue, includeAbove102)) { setHtml('instl', ''); } }, function () { setHtml('so', 'Wystąpił błąd, prosimy spróbować ponownie później'); }); postRequest('okresy', { pakiet: pakietValue }, function (responseText) { setHtml('okr', responseText); }, function () { setHtml('okr', 'Wystąpił błąd, prosimy spróbować ponownie później'); }); } function syst(s){ var pakiet = byId('pakiet'); postRequest('panele', { system: s, pakiet: pakiet ? pakiet.value : '' }, function (responseText) { setHtml('instl', responseText); }, function () { setHtml('instl', 'Wystąpił błąd, prosimy spróbować ponownie później'); }); } document.addEventListener('DOMContentLoaded', function() { var takisam = byId('takisam'); if (takisam) { takisam.addEventListener('click', function(){ var nazwisko = byId('nazwisko'); var ulica = byId('ulica'); var kod = byId('kod'); var miasto = byId('miasto'); var pocztaNazwisko = byId('poczta_nazwisko'); var pocztaUlica = byId('poczta_ulica'); var pocztaKod = byId('poczta_kod'); var pocztaMiasto = byId('poczta_miasto'); if (this.checked) { if (pocztaNazwisko && nazwisko) pocztaNazwisko.value = nazwisko.value; if (pocztaUlica && ulica) pocztaUlica.value = ulica.value; if (pocztaKod && kod) pocztaKod.value = kod.value; if (pocztaMiasto && miasto) pocztaMiasto.value = miasto.value; } else { if (pocztaNazwisko) pocztaNazwisko.value = ''; if (pocztaUlica) pocztaUlica.value = ''; if (pocztaKod) pocztaKod.value = ''; if (pocztaMiasto) pocztaMiasto.value = ''; } }); } a1=1; spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); var nip = byId('nip'); var pesel = byId('pesel'); var nazwisko = byId('nazwisko'); var reprezentant = byId('reprezentant'); var ulica = byId('ulica'); var kod = byId('kod'); var miasto = byId('miasto'); var telefon = byId('telefon'); var abonent = byId('abonent'); var email = byId('email'); var user = byId('user'); var haslo = byId('haslo'); var haslo2 = byId('haslo2'); if (nip && abonent) { nip.addEventListener('change', function(){ if (nip.value.length === 10 && abonent.value === 'Firma') { setValidationMessage('nipw', '', 'success'); a2=1; } else if (abonent.value === 'Prywatny') { setValidationMessage('nipw', '', 'success'); a2=1; } else { setValidationMessage('nipw', 'Wymagane 10 cyfr', 'error'); a2=0; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (pesel && abonent) { pesel.addEventListener('change', function(){ if (abonent.value === 'Firma') { setValidationMessage('peselw', '', 'success'); return; } var r = validatePeselOptional(pesel.value); setValidationMessage('peselw', r.message, r.valid ? 'success' : 'error'); }); } if (nazwisko) { nazwisko.addEventListener('change', function(){ if (nazwisko.value.length < 6) { setValidationMessage('nazwiskow', 'Min. 6 znaków', 'error'); a9=0; } else { setValidationMessage('nazwiskow', '', 'success'); a9=1; if (abonent && abonent.value === 'Prywatny' && reprezentant) reprezentant.value = nazwisko.value; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (ulica) { ulica.addEventListener('change', function(){ if (ulica.value.length < 6) { setValidationMessage('ulicaw', 'Min. 6 znaków', 'error'); a4=0; } else { setValidationMessage('ulicaw', '', 'success'); a4=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (kod) { kod.addEventListener('change', function(){ var re1=/^(\d{2}-\d{3})/; if (kod.value.search(re1)===-1){ setValidationMessage('kodw', 'Format: XX-XXX', 'error'); a5=0; } else { setValidationMessage('kodw', '', 'success'); a5=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (miasto) { miasto.addEventListener('change', function(){ if (miasto.value.length < 3) { setValidationMessage('miastow', 'Min. 3 znaki', 'error'); a6=0; } else { setValidationMessage('miastow', '', 'success'); a6=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (reprezentant) { reprezentant.addEventListener('change', function(){ if (reprezentant.value.length < 6) { setValidationMessage('reprezentantw', 'Min. 6 znaków', 'error'); a1=0; } else { setValidationMessage('reprezentantw', '', 'success'); a1=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (telefon) { telefon.addEventListener('change', function(){ var re1=/^\+\d{2}\.\d{9}$/; if (telefon.value.search(re1)===-1) { alert("Numer telefonu stacjonarnego musi być poprzedzony plusem (+), zawierać numer kierunkowy do kraju rozdzielony kropką\nnp. +48.221234567"); } if (telefon.value.length !== 13) { setValidationMessage('telefonw', 'Format: +48.123456789', 'error'); a7=0; } else { setValidationMessage('telefonw', '', 'success'); a7=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (abonent) { abonent.addEventListener('change', function(){ if (abonent.value === 'Firma') { hideEl('peselh'); setValidationMessage('peselw', '', 'success'); if (nip && nip.value.length === 10) { setValidationMessage('nipw', '', 'success'); a2=1; } else { setValidationMessage('nipw', 'Wymagane 10 cyfr', 'error'); a2=0; } if (reprezentant && reprezentant.value.length < 6) { setValidationMessage('reprezentantw', 'Min. 6 znaków', 'error'); a1=0; } else { setValidationMessage('reprezentantw', '', 'success'); a1=1; } showEl('reph'); showEl('niph'); } if (abonent.value === 'Prywatny') { hideEl('niph'); hideEl('reph'); setValidationMessage('nipw', '', 'success'); a2=1; if (pesel) { var r = validatePeselOptional(pesel.value); setValidationMessage('peselw', r.message, r.valid ? 'success' : 'error'); } showEl('peselh'); setHtml('reprezentantw', ""); a1=1; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (nip && abonent) { if (nip.value.length === 10 && abonent.value === 'Firma') { setValidationMessage('nipw', '', 'success'); a2=1; } else if (abonent.value === 'Prywatny') { setValidationMessage('nipw', '', 'success'); a2=1; } else { setValidationMessage('nipw', 'Wymagane 10 cyfr', 'error'); a2=0; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); } if (pesel && abonent) { if (abonent.value === 'Firma') setValidationMessage('peselw', '', 'success'); else { var r = validatePeselOptional(pesel.value); setValidationMessage('peselw', r.message, r.valid ? 'success' : 'error'); } } if (email) { email.addEventListener('change', function(){ if (typeof reEmailZaloz !== 'undefined' && reEmailZaloz.test((email.value || '').trim())) { setValidationMessage('emailw', '', 'success'); a3 = 1; } else { setValidationMessage('emailw', 'Nieprawidłowy e-mail', 'error'); a3 = 0; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } if (user) { user.addEventListener('change', function(){ postRequest('username_check', { username: user.value }, function(responseText){ var r = (responseText && responseText.trim) ? responseText.trim() : String(responseText); if (r === '0') { setValidationMessage('username_wynik', '', 'success'); a11 = 1; } else if (r === '1') { setValidationMessage('username_wynik', 'Nazwa użytkownika jest zajęta', 'error'); a11 = 0; } else if (r === '2') { setValidationMessage('username_wynik', 'Nazwa użytkownika musi mieć od 5 do 10 znaków', 'error'); a11 = 0; } else if (r === '3') { setValidationMessage('username_wynik', 'Nazwa użytkownika musi zaczynać się literą', 'error'); a11 = 0; } else { setValidationMessage('username_wynik', 'Nieprawidłowa nazwa użytkownika', 'error'); a11 = 0; } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }, function(){ setValidationMessage('username_wynik', 'Wystąpił błąd, prosimy spróbować ponownie później', 'error'); a11 = 0; spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); }); } if (haslo2 && haslo) { haslo2.addEventListener('change', function(){ if (haslo.value !== haslo2.value) { a12=0; setHtml('haslo2_wynik', " Hasła są różne"); } else { a12=1; setHtml('haslo2_wynik', ""); if (haslo2.value.length < 5 || haslo2.value.length > 36) { a12=0; setValidationMessage('haslo2_wynik', 'Hasło: min. 5 znaków', 'error'); } } spr(a1,a2,a3,a4,a5,a6,a7,a9,a11,a12); }); } var createAccountForm = document.querySelector('.create-account-form'); if (createAccountForm) { createAccountForm.addEventListener('submit', function(ev) { ev.preventDefault(); refreshZalozValidation(); if (a1 && a2 && a3 && a4 && a5 && a6 && a7 && a9 && a11 && a12) { createAccountForm.submit(); } }); } }); function zmiana(id) { var s1 = byId('s1'); var s2 = byId('s2'); var s3 = byId('s3'); var target = byId(id); [s1, s2, s3].forEach(function (el) { if (el) { el.classList.remove('klik'); el.removeAttribute('aria-current'); } }); if (target) { target.classList.add('klik'); target.setAttribute('aria-current', 'step'); } } document.addEventListener('DOMContentLoaded', function() { var s1 = byId('s1'); var s2 = byId('s2'); var s3 = byId('s3'); var b1 = byId('b1'); var b2 = byId('b2'); var b3 = byId('b3'); if (s1) s1.addEventListener('click', function(){ zmiana('s1'); }); if (s2) s2.addEventListener('click', function(){ zmiana('s2'); }); if (s3) s3.addEventListener('click', function(){ zmiana('s3'); }); if (b1) b1.addEventListener('click', function(){ zmiana('s1'); }); if (b2) b2.addEventListener('click', function(){ zmiana('s2'); }); if (b3) b3.addEventListener('click', function(){ zmiana('s3'); }); }); function lista_zmiana(){ var pakiet = byId('pakiet'); updateSystemAndPeriod(pakiet ? pakiet.value : '', true); }