Current Path : /data/web/virtuals/51568/virtual/www/www/jidelna/ |
Current File : /data/web/virtuals/51568/virtual/www/www/jidelna/jidelna.js |
function removeTags(str) { if ((str === null) || (str === '')) return ''; else str = str.toString(); return str.replace(/(<([^>]+)>)/ig, ''); } function formLoad() { document.getElementById("jidelnaForma").reset(); $("input[name='typStravnika']").val('z'); $("input[name='zpusobUhrady']").val('b'); } function typZmena(typ) { $("#msg-jidelna").html("").addClass('d-none'); if (typ == 'z') { $("#tridaInput").removeClass('d-none'); $("#rodiceZakaKontakt").removeClass("d-none"); $("#dospelecKontakt").addClass("d-none"); $("#zakCoObjednavam").removeClass("d-none"); $("#zacatekDospelecDiv").addClass("d-none"); $("#zacatekZakDiv").removeClass("d-none"); $("#datumNarozeniZakDiv").removeClass("d-none"); } else { $("#tridaInput").addClass('d-none'); $("#rodiceZakaKontakt").addClass("d-none"); $("#dospelecKontakt").removeClass("d-none"); $("#zakCoObjednavam").addClass("d-none"); $("#zacatekDospelecDiv").removeClass("d-none"); $("#zacatekZakDiv").addClass("d-none"); $("#datumNarozeniZakDiv").addClass("d-none"); } } function uhradaZmena(typ) { if (typ == 'b') { $("#cisloUctu").removeClass('d-none'); } else { $("#cisloUctu").addClass('d-none'); } } function kontrolaUctu(predcisli, cislo) { function doplnNuly(cislo, pocet) { while (cislo.length < pocet) { cislo = '0' + cislo; } return cislo; } cislo = doplnNuly(predcisli, 6) + doplnNuly(cislo, 10); let vahy = [10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1], soucet = 0; for (let i = 0; i < 16; i++) { soucet += vahy[i] * cislo[i]; } return soucet % 11 == 0; } function kontrolaJmena(jmeno, pad2, errMsg) { if (jmeno.length == 0) { errMsg.push('jméno ' + pad2 + ' nesmí zůstat prázdné'); } else { let jmenoPole = jmeno.split(" "); if (jmenoPole.length < 2) { errMsg.push('uveď příjmení i jméno ' + pad2); } if (jmenoPole.some((element) => element.length < 2)) { errMsg.push('některá z částí jména ' + pad2 + ' zdá se příliš krátká'); } } } function emailJidelnaPrihlaska() { $("#msg-jidelna").html("").addClass('d-none alert-danger').removeClass('alert-success'); var prijmenijmeno = $("#prijmenijmeno").val().trim(), jmeno = $("#jmeno").val().trim(), typstravnika = $("input[name='typStravnika']:checked").val().trim(), bydliste = $("#bydliste").val().trim(), emailRegex = new RegExp(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/), telefonRegex = new RegExp(/\b\d{9}\b/), datumZak = $("#zacatekZak").val(), datumDospelec = $("#zacatekDospelec").val(), dnes = moment().format('YYYY-MM-DD'), errMsg = []; prijmenijmeno = removeTags(prijmenijmeno); $("#prijmenijmeno").val(prijmenijmeno); if (prijmenijmeno.length == 0) { errMsg.push('příjmení nesmí zůstat prázdné'); } jmeno = removeTags(jmeno); $("#jmeno").val(jmeno); if (jmeno.length == 0) { errMsg.push('jméno nesmí zůstat prázdné'); } bydliste = removeTags(bydliste); $("#bydliste").val(bydliste); if (bydliste.length == 0) { errMsg.push('bydliště nesmí zůstat prázdné'); } if (typstravnika == 'z') { var trida = $("#trida").val().trim(), otec = $("#otec").val().trim(), otectelefon = $("#otectelefon").val().trim(), matka = $("#matka").val().trim(), matkatelefon = $("#matkatelefon").val().trim(), email = $("#email").val().trim(), datumnarozeni = $("#datumNarozeniZak").val().trim(); datumPred5 = moment().subtract(5, 'years').format('YYYY-MM-DD'); datumPred16 = moment().subtract(16, 'years').format('YYYY-MM-DD'); if ((datumnarozeni > datumPred5) || (datumnarozeni < datumPred16)) { errMsg.push('datum narození neodpovídá stáří žáka základní školy'); } if (datumZak <= dnes) { errMsg.push('datum začátku stravování musí následovat po dnešku'); } trida = removeTags(trida); $("#trida").val(trida); var tridaRegex = new RegExp(/[1-9]\.[A-C]/); if (!tridaRegex.test(trida)) { errMsg.push('text zadaný jako třída zdá se neobvyklý'); } otec = removeTags(otec); $("#otec").val(otec); otectelefon = removeTags(otectelefon); $("#otectelefon").val(otectelefon); matka = removeTags(matka); $("#matka").val(matka); matkatelefon = removeTags(matkatelefon); $("#matkatelefon").val(matkatelefon); email = removeTags(email); $("#email").val(email); kontrolaJmena(otec, 'otce', errMsg); kontrolaJmena(matka, 'matky', errMsg); if (!telefonRegex.test(otectelefon)) { errMsg.push('telefon otce není asi správný'); } if (!telefonRegex.test(matkatelefon)) { errMsg.push('telefon matky není asi správný'); } if (!emailRegex.test(email)) { errMsg.push('text zadaný jako e-mail nemá správnou strukturu'); } var objednavams = $("#objednavams").prop("checked"), objednavamo = $("#objednavamo").prop("checked"); if (!objednavams && !objednavamo) { errMsg.push('zvol alespoň jednu z možností svačina, oběd'); } if (trida.length > 0) { let rocnik = trida.substr(0, 1); if ((rocnik < 4) && objednavams) { errMsg.push('svačiny jsou až od 4. třídy'); } } } else { if (datumDospelec <= dnes) { errMsg.push('datum začátku stravování musí následovat po dnešku'); } var telefonDospelec = $("#telefonDospelec").val().trim(); telefonDospelec = removeTags(telefonDospelec); $("#telefonDospelec").val(telefonDospelec); if (!telefonRegex.test(telefonDospelec)) { errMsg.push('telefon není asi správný'); } var emailDospelec = $("#emailDospelec").val().trim(); emailDospelec = removeTags(emailDospelec); if (!emailRegex.test(emailDospelec)) { errMsg.push('text zadaný jako e-mail nemá správnou strukturu'); } } var zpusobUhrady = $("input[name='zpusobUhrady']:checked").val(); if (zpusobUhrady == 'b') { var ucetPredcisli = $("#ucetPredcisli").val().trim(), ucetCislo = $("#ucetCislo").val().trim(), ucetBanka = $("#ucetBanka").val().trim(); ucetPredcisli = removeTags(ucetPredcisli); $("#ucetPredcisli").val(ucetPredcisli); ucetCislo = removeTags(ucetCislo); $("#ucetCislo").val(ucetCislo); ucetBanka = removeTags(ucetBanka); $("#ucetBanka").val(ucetBanka); var ucetPredcisliRegex = new RegExp(/^(\s*|\d{1,6})$/), ucetCisloRegex = new RegExp(/\b\d{3,10}\b/), ucetBankaRegex = new RegExp(/\b\d{4}\b/); if (!ucetPredcisliRegex.test(ucetPredcisli)) { errMsg.push('předčíslí účtu obsahuje neobvyklé znaky'); } if (!ucetCisloRegex.test(ucetCislo)) { errMsg.push('v čísle účtu je chyba (neobvyklý znak nebo délka)'); } if (!ucetBankaRegex.test(ucetBanka)) { errMsg.push('kód banky by měl obsahovat 4 číslice'); } if (!kontrolaUctu(ucetPredcisli, ucetCislo)) { errMsg.push('v čísle účtu (případně předčíslí) je asi překlep'); } } let gdpr = $("#gdpr").prop("checked"); if (!gdpr) { errMsg.push('<strong>je potřeba vyslovit souhlas se zpracováním údajů<strong>'); } if (errMsg.length > 0) { let errList = '<ul class="mb-0">'; for (let li of errMsg) { errList += '<li>' + li + '</li>'; } errList += '<ul>'; $("#msg-jidelna").html(errList).removeClass('d-none'); } else { let data = { command: 'odeslatPrihlasku', typstravnika: typstravnika, prijmenijmeno: prijmenijmeno, jmeno: jmeno, bydliste: bydliste, zpusobuhrady: zpusobUhrady, }; if (zpusobUhrady == 'b') { data.predcisliuctu = ucetPredcisli; data.cislouctu = ucetCislo; data.bankakod = ucetBanka; } else { data.predcisliuctu = ''; data.cislouctu = ''; data.bankakod = ''; } if (typstravnika == 'z') { data.otec = otec; data.otectelefon = otectelefon; data.matka = matka; data.matkatelefon = matkatelefon; data.email = email; data.trida = trida; data.obed = objednavamo; data.svacina = objednavams; data.zacatek = datumZak; data.datumnarozeni = datumnarozeni; } else { data.otec = ''; data.otectelefon = telefonDospelec; data.matka = ''; data.matkatelefon = ''; data.trida = ''; data.obed = '0'; data.svacina = '0'; data.datumnarozeni = ''; data.email = emailDospelec; data.zacatek = datumDospelec; } $.ajax({ url: 'www/jidelna/jidelna.php', type: 'POST', dataType: 'HTML', data: { //command = odeslatPrihlasku 'data': JSON.stringify(data) }, success: function(result) { formLoad(); data = JSON.parse(result); $("#jidelnaCardMain").html(data.rekapitulace); $("#naTlacitko").html(`<div class="d-flex mt-4"> <a href="https://www.zsrepubliky.cz" class="ml-auto"> <button class="btn btn-outline-primary rounded-0">Zpět na domovskou stránku</button> </a> </div>`) } }); } }