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);
}