Files
MaszToZadanieDomowe.com/dziennik/skrypty_funkcje.js
2026-02-10 21:35:37 +01:00

2641 lines
91 KiB
JavaScript

function strtr(tekst, tablica, zmienna2)
{
if ((typeof (tablica) == "object") && (tablica.length))
{
for (i in tablica)
{
tekst = tekst.replace(RegExp(tablica[i][0], "g"), tablica[i][1])
}
return tekst;
}
else
{
var tablica2 = new Array();
for (i = 0; i < tablica.length; i++)
tablica2[i] = [tablica.substr(i, 1), zmienna2.substr(i, 1)]
return strtr(tekst, tablica2);
}
}
function otworzLink(url, event){
var click = ( event.which === 1 || event.which === 13 ); // LPM / Enter
var newTab = ( click && ( event.ctrlKey || event.metaKey ) ) || event.which === 2;
var newWindow = event.shiftKey;
if(newTab){
var win = window.open(url, '_blank');
win.focus();
}else if(newWindow){
var win = window.open(url, '_blank', 'noopener,noreferrer');
if (win) win.focus();
}else if (click) {
window.location.href = url;
}
}
function pad(num, size) {
var s = num + "";
while (s.length < size)
s = "0" + s;
return s;
}
function SprawdzEmail(email)
{
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if(email.match(validRegex)==null)
{
return false;
}
return true;
//return /\S+@\S+\.\S+/.test(email);
// var wzor = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9_-]+)(\.[a-zA-Z0-9_-]+)*(\.[a-zA-Z]{2,7})$/;
// var Wynik = email.match(wzor);
// if (Wynik == null)
// {
// return false;
// }
// return true;
}
function sprawdzFormatDaty(d)
{
var wzor = /^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/; //RRRR-MM-DD
if (d.match(wzor) == null)
{
return false;
}
return true;
}
function sprawdzWartosc(wartosc)
{
return wartosc != '' && wartosc != 0 && wartosc != undefined && wartosc != null;
}
function oknoDynamiczne(zawartosc, max, zamykanie, szerokosc, elementPoZamknieciu)
{
if (typeof elementPoZamknieciu === 'undefined') {
if (typeof stronaElementPoZamknieciu !== 'undefined') {
elementPoZamknieciu = stronaElementPoZamknieciu;
}
} else {
stronaElementPoZamknieciu = elementPoZamknieciu;
}
if ($('#zakryj').get(0) == undefined)
{
$('div#content').append('<div id="zakryj"></div><div id="zakryjcontent"></div>');
}
szerokosc = (szerokosc == 'full' ? $(window).width() : (isNaN(szerokosc) ? 800 : szerokosc));
szerokoscOkna = szerokosc;
$('#zakryjcontent').css('width', szerokosc + 'px');
if (zamykanie == true)
{
zawartosc = '<a class="button_right zamknij" href="javascript:;" title="Zamknij okno">X</a>' + zawartosc;
}
$("#zakryjcontent").html(zawartosc);
oknoDynamiczneResize(max, szerokosc);
$("#zakryj, #zakryjcontent").fadeIn('fast');
$("#zakryjcontent .zamknij").click(function(){
$("#zakryj, #zakryjcontent").fadeOut('fast');
$('body').css('overflow', 'auto');
if (typeof elementPoZamknieciu !== 'undefined' && elementPoZamknieciu !== false) {
$(elementPoZamknieciu).focus();
}
skasujAktualneTooltipy(false);
return false;
});
/*if($('#zakryjcontent input[type=text]').get(0)!=undefined)
{
$($('#zakryjcontent input[type=text]')[0]).focus();
}
else if($('#zakryjcontent textarea').get(0)!=undefined)
{
$($('#zakryjcontent textarea')[0]).focus();
}*/
$('body').css('overflow', 'hidden');
return false;
}
function oknoDynamiczneResize(max, szerokosc)
{
var szerokosc_ekranu = $(window).width();
var wysokosc_ekranu = $(window).height();
var szer_okna = $(window).width() - 150;
if (szerokosc != undefined && szer_okna > szerokosc)
{
szer_okna = szerokosc;
}
else if (szerokosc == undefined && szer_okna > 800)
{
szer_okna = 800;
}
var wys_okna_max = wysokosc_ekranu - 50;
var scrollTop = $(window).scrollTop();
var odl_od_lewej = parseInt(szerokosc_ekranu / 2) - parseInt(szer_okna / 2) + $(document).scrollLeft();
var odl_od_gory = scrollTop + 10;
$("#zakryjcontent").css('max-height', wys_okna_max).css('width', szer_okna).css('height', 'auto').css('left', odl_od_lewej).css('top', odl_od_gory);
var ustawiona_wysokosc = $("#zakryjcontent").height();
if (max == 1)
{
$("#zakryjcontent").css('height', wys_okna_max);
}
else if (ustawiona_wysokosc < wys_okna_max)
{
odl_od_gory = parseInt(wysokosc_ekranu / 2) - parseInt(ustawiona_wysokosc / 2) + scrollTop; // wyśrodkowanie
if (odl_od_gory > 50)
{
odl_od_gory -= 50;
}
$("#zakryjcontent").css('top', odl_od_gory);
}
if ($(".przewijaj1:visible").height() != null) {
$(".przewijaj1").css('height', parseInt(wys_okna_max - 220));
}
return true;
}
function ograniczZnaki(pole, max, jquery)
{
if (jquery == false || jquery == undefined)
{
if (pole.value.length > max)
{
pole.value = pole.value.substring(0, max);
}
}
else
{
if (pole.val().length > max)
{
pole.val(pole.val().substring(0, max));
}
}
}
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds) {
break;
}
}
}
$.fn.extend({
insertAtCaret: function (myValue) {
var obj;
if (typeof this[0].name != 'undefined')
obj = this[0];
else
obj = this;
if ($.browser.msie) {
obj.focus();
sel = document.selection.createRange();
sel.text = myValue;
obj.focus();
}
else if ($.browser.mozilla || $.browser.webkit) {
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var scrollTop = obj.scrollTop;
obj.value = obj.value.substring(0, startPos) + myValue + obj.value.substring(endPos, obj.value.length);
obj.focus();
obj.selectionStart = startPos + myValue.length;
obj.selectionEnd = startPos + myValue.length;
obj.scrollTop = scrollTop;
} else {
obj.value += myValue;
obj.focus();
}
}
})
jQuery.fn.hasScrollBar = function (direction)
{
if (direction == 'vertical')
{
return this.get(0).scrollHeight > this.innerHeight();
}
else if (direction == 'horizontal')
{
return this.get(0).scrollWidth > this.innerWidth();
}
return false;
}
function timeValidate(time) {
var a, b, c, f, err = 0;
a = time;
if (a.length != 5)
err = 1;
b = a.substring(0, 2);
c = a.substring(2, 3);
f = a.substring(3, 5);
if (/\D/g.test(b))
err = 1;
if (/\D/g.test(f))
err = 1;
if (b < 0 || b > 23)
err = 1;
if (f < 0 || f > 59)
err = 1;
if (c != ':')
err = 1;
if (err == 1) {
return false;
}
return true;
}
function scrollTo(selector, time, offset, scrolledElm)
{
if ($(selector).length && $(selector).offset()) {
var targetOffset = $(selector).offset().top;
if (offset != undefined) {
targetOffset += offset;
}
if(!scrolledElm) scrolledElm = $('html,body');
scrolledElm.animate({scrollTop: targetOffset}, time);
}
}
function blokujWysylkeFormularzaEnterem()
{
$(document).keypress(function (evt) {
if (evt.keyCode == 13) {
return false;
}
});
}
function parsujJsona(dane)
{
try {
return (typeof dane==='string' ? $.parseJSON(dane) : dane);
}
catch (e)
{
return false;
}
}
var nawigacja_indeks = 0;
function nawigacjaTygodniami(select)
{
select.each(
function () {
nawigacja_indeks++;
var id_nastepny = 'nastepny_tydzien_' + nawigacja_indeks;
var id_poprzedni = 'poprzedni_tydzien_' + nawigacja_indeks;
var id_select = 'select_nawigacja_tygodnie_' + nawigacja_indeks;
var select = $(this);
$(this).attr('id', id_select);
$(this).after('<div class="fright"> <a id="' + id_poprzedni + '" style="margin-left:10px;" class="button poprzedni_tydzien" href="#" title="Poprzedni tydzień">poprzedni tydzień</a>\n\
<a id="' + id_nastepny + '" class="button nastepny_tydzien" href="#" title="Następny tydzień">następny tydzień</a></div>');
$('#' + id_nastepny).unbind('click').click(
function () {
var wybor = select.find('option:selected');
var nastepna_opcja = $(wybor.nextAll('option')[0]);
if (nastepna_opcja.size() == 0)
{
nastepna_opcja = $(wybor.parents('optgroup').next('optgroup').find('option')[0]);
}
if (nastepna_opcja.size() == 0)
{
nastepna_opcja = $(select.find('option')[0]);
}
nastepna_opcja.attr('selected', 'true');
select.change();
}
);
$('#' + id_poprzedni).unbind('click').click(
function () {
var wybor = select.find('option:selected');
var poprzednia_opcja = $(wybor.prevAll('option')[0]);
if (poprzednia_opcja.size() == 0)
{
var opcje = wybor.parents('optgroup').prev('optgroup').find('option');
poprzednia_opcja = $(opcje[opcje.length - 1]);
}
if (poprzednia_opcja.size() == 0)
{
var opcje = select.find('option');
poprzednia_opcja = $(opcje[opcje.length - 1]);
}
poprzednia_opcja.attr('selected', 'true');
select.change();
}
);
}
)
return false;
}
var poprzedniNastepnyIndex = 0;
/**
*
* @param {type} select
* @param {type} popTekst
* @param {type} nastTekst
* @param {type} nastepnaLinia
* @param {type} wyslijFormularzPoZmianie
* @returns {undefined}
*/
function poprzedniNastepny(select, popTekst, nastTekst, nastepnaLinia, wyslijFormularzPoZmianie) {
// przygotowanie wartosci argumentow funkcji
if (typeof popTekst == 'undefined')
popTekst = 'Poprzednia opcja';
if (typeof nastTekst == 'undefined')
nastTekst = 'Następna opcja';
if (nastepnaLinia != true)
nastepnaLinia = false;
if (wyslijFormularzPoZmianie != true)
wyslijFormularzPoZmianie = false;
// dodawanie przyciskow do DOM
select.each(function () {
poprzedniNastepnyIndex++;
select.attr('pni', poprzedniNastepnyIndex);
$('<a href="javascript:;" class="input_tButton poprzedni-nastepny" pni="' + poprzedniNastepnyIndex + '" rel="nastepny" style="margin-left:3px;">' + nastTekst + '</a>').insertAfter(select);
$('<a href="javascript:;" class="input_tButton poprzedni-nastepny" pni="' + poprzedniNastepnyIndex + '" rel="poprzedni" style="margin-left:3px;">' + popTekst + '</a>').insertAfter(select);
if (nastepnaLinia) {
$('<br /><br />').insertAfter(select);
}
});
$('body').off('click', '.poprzedni-nastepny');
$('body').on('click', '.poprzedni-nastepny', function () {
var pni = $(this).attr('pni'),
rel = $(this).attr('rel');
var select = $('select[pni="' + pni + '"]');
var opts = select.children('option'),
optSelected = opts.index(select.find(':selected')),
chosen = false;
if (rel == 'poprzedni') {
// jesli pierwszy -> idziemy do ostatniego
if (optSelected - 1 < 0) {
chosen = opts.length - 1;
} else {
chosen = optSelected - 1;
}
} else if (rel == 'nastepny') {
// jesli ostatni -> wracamy do pierwszego
if (optSelected + 1 >= opts.length) {
chosen = 0;
} else {
chosen = optSelected + 1;
}
}
if (chosen !== false) {
select.val(opts.eq(chosen).attr('value'));
// wywolanie eventu nasluchujacego zmiane w tym selectcie
select.change();
if (wyslijFormularzPoZmianie) {
select.parents('form').submit();
}
}
});
}
/*
CapsLock.js
Allows the status of the caps lock key to be determined
Created by Kate Morley - http://code.iamkate.com/ - and released under the terms
of the CC0 1.0 Universal legal code:
http://creativecommons.org/publicdomain/zero/1.0/legalcode
*/
const CapsLock = (function(){
var IS_MAC = /Mac/.test(navigator.platform);
var capsLock = false;
var listeners = [];
// Returns whether caps lock currently appears to be on.
function isOn(){
return capsLock;
}
// Adds a listener. When a change is detected in the status of the caps lock
// key the listener will be called with the value true if caps lock is now on
// and false if caps lock is now off. The parameter is:
//
// listener - the listener
function addListener(listener){
listeners.push(listener);
}
// Handles a key press event. The parameter is:
//
// e - the event
function handleKeyPress(e){
var charCode = e.charCode;
var shiftKey = e.shiftKey;
var priorCapsLock = capsLock;
if (charCode >= 97 && charCode <= 122){
capsLock = shiftKey;
}else if (charCode >= 65 && charCode <= 90 && !(shiftKey && IS_MAC)){
capsLock = !shiftKey;
}
}
window.addEventListener('keypress', handleKeyPress);
return {isOn: isOn, addListener: addListener};
})();
function isArray(obj) {
return obj.constructor == Array;
}
function zaleznosciDat(dataod, datado, bezAutoUzupelnianiaDrugiejDaty)
{
var change = function () {
var val = dataod.val();
var val2 = datado.val();
if (val == '' || val2 == '' || val2 < val)
{
dataod.val($(this).val());
if(val2 == '' && bezAutoUzupelnianiaDrugiejDaty){
return false;
}
datado.val($(this).val());
}
return false;
}
dataod.change(change);
datado.change(change);
}
function walidacja(formularz, parametry, confirms, zwrocWynik)
{
var fn = function () {
var info = '';
var confirmInfo = '';
for (parametry_pol in parametry) // nazwa pola, etykietka, wymogi walidacji
{
if(typeof parametry[parametry_pol] == 'function'){
var fn2 = parametry[parametry_pol](formularz);
if(fn2 !== undefined){
info += fn2;
}
continue;
}
var nazwa_pola = parametry[parametry_pol][0];
var etykieta_pola = parametry[parametry_pol][1];
var pole = formularz.find('*[name="' + nazwa_pola + '"]');
if (pole.get(0) === undefined)
{
pole = formularz.find('*[name*="' + nazwa_pola + '"]');
}
var wartosc_pola = pole.val();
var ile = parametry[parametry_pol].length;
for (var i = 2; i < ile; i++)
{
switch (parametry[parametry_pol][i])
{
case 'checked':
if (pole.is(':checked') == false)
{
info += 'Należy wybrać opcję dla pozycji: ' + etykieta_pola + '\n';
}
break;
case 'notEmpty':
case 'notEmptySelect':
case 'notEmptySelectZero':
if (wartosc_pola == '' || wartosc_pola == null || (wartosc_pola == 0 && parametry[parametry_pol][i] == 'notEmptySelectZero'))
{
if (parametry[parametry_pol][i] == 'notEmpty')
{
info += 'Należy uzupełnić pozycję: ' + etykieta_pola + '\n';
}
else
{
info += 'Należy wybrać opcję dla pozycji: ' + etykieta_pola + '\n';
}
}
break;
case 'isNaN':
case 'isNaNifNotEmpty':
case 'isNaNnotNegative':
if (wartosc_pola == '' && parametry[parametry_pol][i] == 'isNaNifNotEmpty')
{
continue;
}
if (isNaN(wartosc_pola) || wartosc_pola == '')
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (wymagana liczba)\n';
}
else if (parametry[parametry_pol][i] == 'isNaNnotNegative' && wartosc_pola < 0)
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa - wartość musi być większa lub równa zero\n';
}
break;
case 'tinyMCE':
if (tinyMCE.get(nazwa_pola).getContent() == '')
{
info += 'Należy uzupełnić pozycję: ' + etykieta_pola + '\n';
}
break;
case 'url':
var regex = new RegExp("(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})");
if(!wartosc_pola.length || !regex.test(wartosc_pola)){
info += 'Należy wprowadzić prawidłowy adres URL w pozycji: ' + etykieta_pola + '\n';
}
break;
case 'data':
case 'dataifNotEmpty':
if (wartosc_pola == '' && parametry[parametry_pol][i] == 'dataifNotEmpty')
{
continue;
}
if (sprawdzFormatDaty(wartosc_pola) == false)
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (wymagana data w formacie RRRR-MM-DD)\n';
}
break;
case 'time':
case 'timeifNotEmpty':
if (wartosc_pola == '' && parametry[parametry_pol][i] == 'timeifNotEmpty')
{
continue;
}
if (timeValidate(wartosc_pola) == false)
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (wymagana godzina w formacie GG:MM)\n';
}
break;
case 'email':
case 'emailIfNotEmpty':
if (wartosc_pola == '' && parametry[parametry_pol][i] == 'emailIfNotEmpty')
{
continue;
}
if (SprawdzEmail(wartosc_pola) == false)
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (wymagany poprawny adres e-mail)\n';
}
break;
case 'pesel1':
case 'pesel1ifNotEmpty':
if (wartosc_pola == '' && parametry[parametry_pol][i] == 'pesel1ifNotEmpty')
{
continue;
}
if (isNaN(wartosc_pola) || wartosc_pola.length < 11)
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (wymagane 11 cyfr)\n';
}
break;
default:
if (isArray(parametry[parametry_pol][i]) == true)
{
if (parametry[parametry_pol][i][0] == 'wieksze_od')
{
if (wartosc_pola <= $('*[name*=' + parametry[parametry_pol][i][1] + ']').val())
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (za mała wartość)\n';
}
}
else if (parametry[parametry_pol][i][0] == 'wieksze_lub_rowne_od')
{
if (wartosc_pola < $('*[name*=' + parametry[parametry_pol][i][1] + ']').val())
{
info += 'Pozycja "' + etykieta_pola + '" jest nieprawidłowa (za mała wartość)\n';
}
}
else if (parametry[parametry_pol][i][0] == 'czy_rowne')
{
if (wartosc_pola == $('*[name*=' + parametry[parametry_pol][i][1] + ']').val())
{
confirmInfo += 'Podane daty są identyczne\n';
}
}
if(parametry[parametry_pol][i][0] == 'min_dlugosc'){
if(wartosc_pola.length < parametry[parametry_pol][i][1]){
info += 'Pozycja "' + etykieta_pola + '" ma zbyt krótki tekst (minimalna liczba znaków: '+parametry[parametry_pol][i][1]+')\n';
}
}
}
break;
}
}
}
if (info != '')
{
alert('Pojawiły się następujące problemy:\n' + info);
return false;
}
if (confirmInfo != '')
{
if (!confirm('Pojawiły się następujące problemy:\n' + confirmInfo+"\nCzy chcesz kontynuować?"))
return false;
}
if (confirms != undefined && confirms != '')
{
if (confirm(confirms) == false)
{
return false;
}
}
przerwij_sprawdzanie_logowania = true;
return true;
}
if(zwrocWynik){
return fn();
}else{
formularz.submit(fn);
}
}
function repozytorium()
{
var repo_link = $('a#repozytorium');
if (repo_link.length == 1)
{
/* var content = $('#content');
.css({
'left' : parseInt(content.offset().left+parseInt(content.css('width'))-150)
}) */
$('a#repozytorium').unbind('click').click(
function () {
var obiekt = $(this);
obiekt.html('<img src="'+system_url+'/dziennik/wait_iam_loading2.gif" alt=""/>');
$.get(
$(this).attr('href'),
function (data)
{
oknoDynamiczne(data, 1);
$('#zmienTryb').focus();
obiekt.html('Pliki');
}
);
return false;
}
);
}
}
function generowanieTokenow(powtorka)
{
// iForm = 1;
// var formularze = $('form:not([data-token-disabled])').filter(function () {
// return $(this).find('input[name=mobidziennik_tokenos]').length == 0;
// });
// if (formularze.length > 0) {
// var arr = new Array();
// formularze.each(function () {
// $(this).attr('data-form-id', iForm);
// arr.push(iForm);
// iForm++;
// });
// $.ajax({
// type: "POST",
// url: system_url + '/helper/generujtokenos',
// data: {
// formularze: arr
// },
// dataType: 'json'
// }).done(function(data) {
// if(data && data.formularze){
// $.each(data.formularze, function(k, v) {
// var form = $('form[data-form-id="'+k+'"]');
// if (v && v.token !== '') {
// if (!form.find('input[name=mobidziennik_tokenos]').length){
// form.append(v.input);
// }
// }
// });
// }
// }).fail(function() {
// if(!powtorka){
// setTimeout(function(){
// generowanieTokenow(true);
// }, 500);
// }else{
// alert('Wystąpił błąd podczas wczytywania formularza. Prosimy odświeżyć stronę.');
// }
// });
// }
}
function infoORodo()
{
$.post(
system_url + '/helper/rodoobowiazekinformacyjny',
function(data)
{
if(data!='')
{
oknoDynamiczne(data);
}
}
);
}
function isAppleDevice()
{
return (
(navigator.userAgent.toLowerCase().indexOf("ipad") > -1) ||
(navigator.userAgent.toLowerCase().indexOf("iphone") > -1) ||
(navigator.userAgent.toLowerCase().indexOf("ipod") > -1)
);
}
function isMobile(skipMac) {
var a = navigator.userAgent || navigator.vendor || window.opera;
if(skipMac){
var reg = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i;
}else{
var reg = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Macintosh\; Intel Mac OS/i;
}
// Ze względu na inny select box multiple przy urządzeniach Apple dopisano: Macintosh\; Intel Mac OS
return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) ||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)) ||
reg.test(a);
}
$.fn.isOnScreen = function () {
var win = $(window);
var viewport = {
top: win.scrollTop(),
left: win.scrollLeft()
};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};
var przerwij_sprawdzanie_logowania = false;
var ostrzezenieOnadchodzacymAutowylogowaniu = false;
var ostrzezenieOnadchodzacymAutowylogowaniuInterval = false;
function sprawdzZalogowanie()
{
var fnn = function () {
if (przerwij_sprawdzanie_logowania == true)
{
clearInterval(sprawdzaj_zalogowanie);
return false;
}
$.get(
system_url + '/helper/sprawdzzalogowanie' + '&extendSession=' + extendSession,
function (data)
{
var json = parsujJsona(data);
if (json)
{
if(!json.zalogowany){
clearInterval(sprawdzaj_zalogowanie);
$('body #sprawdzzalogowanie').remove();
//$('body').append('<div id="sprawdzzalogowanie" title="Doszło do wylogowania z mobiDziennika" style="display:none"><strong>Najprawdopodobniej doszło do wylogowania z systemu na przykład na skutek zmiany Twojego adresu IP, zbyt długiej bezczynności lub utraty autoryzacji urządzenia/przeglądarki</strong>.<br /><br />Należy zalogować się ponownie.<br /><br />PODPOWIEDŹ:<br />Jeżeli aktualnie wprowadzano do systemu jakieś dane <a href="' + system_url + '/logowanie" title="Logowanie" target="_blank">zaloguj się ponownie w osobnej karcie przeglądarki</a>, a następnie wróć do aktualnej karty, dzięki czemu w wielu przypadkach nie utracisz wprowadzonych danych.<br/><br/>Należy również pamiętać, że na prośbę dyrekcji możliwe jest wyłączenie mechanizmu auto wylogowania na skutek zmiany adresu IP.</div>');
//$('body').append('<div id="sprawdzzalogowanie" title="Doszło do wylogowania z mobiDziennika" style="display:none"><strong>Najprawdopodobniej doszło do wylogowania z systemu na przykład na skutek zbyt długiej bezczynności, utraty autoryzacji urządzenia/przeglądarki lub zmiany jej parametrów</strong>.<br /><br />Należy zalogować się ponownie.<br /><br />PODPOWIEDŹ:<br />Jeżeli aktualnie wprowadzano do systemu jakieś dane <a href="' + system_url + '/logowanie" title="Logowanie" target="_blank">zaloguj się ponownie w osobnej karcie przeglądarki</a>, a następnie wróć do aktualnej karty, dzięki czemu w wielu przypadkach nie utracisz wprowadzonych danych.</div>');
$('body').append('<div id="sprawdzzalogowanie" title="'+json.komunikat_tytul+'" style="display:none">'+json.komunikat_tresc+'</div>');
//$('body').append('<div id="sprawdzzalogowanie-css"><link rel="stylesheet" type="text/css" href="' + system_url + '/biblioteki/jquery_ui/themes/blitzer/jquery.ui.all.css"/></div>');
$("#sprawdzzalogowanie").dialog({
resizable: false,
dialogClass: "dialog-danger",
width: 600,
modal: true,
closeText: "Zamknij",
buttons: {
"Zamknij komunikat": function () {
$(this).dialog("close");
}
}
});
$('.ui-widget-overlay').css('z-index', '5000');
$('.ui-dialog').css('z-index', '6000');
$('.ui-icon-closethick').css({'left': '0', 'top': '0'});
$("#ostrzezenieautowylogowanie").remove();
}else if(json.ostrzezenie && !ostrzezenieOnadchodzacymAutowylogowaniu){
ostrzezenieOnadchodzacymAutowylogowaniu = true;
$('body').append('\
<div id="ostrzezenieautowylogowanie" data-czas="'+json.ostrzezenie+'" title="Ostrzeżenie przed automatycznym wylogowaniem z systemu za '+json.ostrzezenie+' s" style="display:none">\n\
'+json.ostrzezenie_tresc+'<br /><br />\
</div>\n\
');
$("#ostrzezenieautowylogowanie").dialog({
resizable: false,
dialogClass: "dialog-danger",
width: 600,
modal: true,
closeText: "Zamknij",
buttons: [
{
text: "Przedłuż czas trwania sesji",
click: function(){
ostrzezenieOnadchodzacymAutowylogowaniu = false;
clearInterval(ostrzezenieOnadchodzacymAutowylogowaniuInterval);
$.get(system_url + '/helper/sprawdzzalogowanie?uid=' + $('body').attr('uid') + '&extendSession=1');
$(this).remove();
}
},
{
text: "Wyloguj",
click: function(){
document.location.href = base_url+'wyloguj';
}
}
]
});
$('.ui-widget-overlay').css('z-index', '5000');
$('.ui-dialog').css('z-index', '6000');
$('.ui-icon-closethick').css({'left': '0', 'top': '0'});
$("#ostrzezenieautowylogowanie").attr('data-czas', json.ostrzezenie);
clearInterval(ostrzezenieOnadchodzacymAutowylogowaniuInterval);
ostrzezenieOnadchodzacymAutowylogowaniuInterval = setInterval(function(){
var czas = $("#ostrzezenieautowylogowanie").attr('data-czas');
czas -= 1;
$("#ostrzezenieautowylogowanie").attr('data-czas', czas);
if(czas < 0){
$("#ostrzezenieautowylogowanie").remove();
clearInterval(ostrzezenieOnadchodzacymAutowylogowaniuInterval);
fnn();
}else if(!$("#ostrzezenieautowylogowanie:visible").length){
$("#ostrzezenieautowylogowanie").remove();
}
$("#ostrzezenieautowylogowanie").parent().find('.ui-dialog-titlebar span:first').html('Ostrzeżenie przed automatycznym wylogowaniem z systemu za '+czas+' s');
}, 1000);
}
}
}
);
extendSession = 0;
};
//return false;
var sprawdzaj_zalogowanie = setInterval(fnn, 60000);
}
function extSession(){
extendSession = true;
}
function zapiszLekcjeOffline()
{
return false;
//alert(system_url+'-dane');
var klucz = system_url + '-dane';
if (localStorage.getItem(klucz))
{
$.post(
system_url + '/helper/zapiszlekcjeoffline', {dane: JSON.parse(localStorage.getItem(klucz))},
function (data)
{
window.localStorage.clear();
zapiszDaneOfflineDoStarage();
}
);
}
}
function zapiszDaneOfflineDoStarage()
{
return false;
var klucz = system_url + '-zasoby';
// ZMIANA POD PRZETARG BB
//var klucz = document.location.host+'-zasoby';
alert(klucz);
var zasoby = JSON.parse(localStorage.getItem(klucz));
// if(zasoby==null)
// {
// $.post(
// system_url+'/helper/zapiszdaneofflinedostarage',
// function(data)
// {
// json = parsujJsona(data);
// if(json)
// {
// localStorage.setItem(klucz, JSON.stringify(json));
// }
// }
// );
// }
$.post(
system_url + '/helper/zapiszdaneofflinedostarage',
function (data)
{
json = parsujJsona(data);
if (json)
{
localStorage.setItem(klucz, JSON.stringify(json));
}
}
);
/*$.get(
system_url+'/wersja-offline.html',
function(data)
{
}
);*/
}
function sprawdzWysokoscTekstu(html, width) {
if (width == undefined)
width = 650; // jak w niebezpiecznej operacji
$('body').prepend('<div id="tmpWysTekstu" style="width:' + width + 'px;position:absolute;top:-9999px;right:-9999px;"></div>');
var rtr = $('#tmpWysTekstu').html(html).height();
$('#tmpWysTekstu').remove();
return rtr;
}
function niebezpiecznaOperacja(element, zdarzenie, tytul, tresc, wysokosc, funkcjaJesliTrue, czas, funkcjaJesliFalse, buttonsOff, trescPrzyciskow, ostrzezenie)
{
if (typeof czas === 'undefined') {
czas = 500;
}
element.each(
function () {
$(this).unbind(zdarzenie).bind(zdarzenie,
function () {
var obiekt = $(this);
var id = obiekt.attr('niebezpiecznaOperacjaId');
if (id == '' || id == undefined)
{
var id = 'niebezpiecznaOperacja-' + new Date().getTime();
obiekt.attr('niebezpiecznaOperacjaId', id);
}
//$('body').append('<div id="' + id + '-css"><link rel="stylesheet" type="text/css" href="' + system_url + '/biblioteki/jquery_ui/themes/blitzer/jquery.ui.all.css"/></div>');
if ($('#' + id).get(0) == undefined)
{
$('body').append('<div id="' + id + '" style="display:none;">' + tresc + '</div>');
}
var buttons = [
{
text: ( trescPrzyciskow ? trescPrzyciskow[0] : "Rozumiem konsekwencje, kontynuuj operację" ),
icon: 'ui-icon-alert',
click: function (){
$('body').addClass('oknoTrue');
$(this).dialog("close");
if (typeof funkcjaJesliTrue == 'function'){
//obiekt.remove();
funkcjaJesliTrue(obiekt);
}else if (zdarzenie == 'click'){
//alert(obiekt.attr('href')); return false;
window.location.href = obiekt.attr('href');
}else{
// dla pozostałych przypadków np. submit formularza
}
return true;
}
}, {
text: ( trescPrzyciskow ? trescPrzyciskow[1] : 'Anuluj operację' ),
click: function () {
$(this).dialog("close");
return false;
}
}
];
if(buttonsOff){
buttons = {};
}
setTimeout(
function () {
$("#" + id).dialog({
dialogClass: ( ostrzezenie ? 'dialog-warning' : 'dialog-danger' ),
resizable: false,
width: 700,
height: (wysokosc == '' || wysokosc == undefined ? 240 : wysokosc),
modal: true,
title: (tytul == '' || tytul == undefined ? ( ostrzezenie ? 'Uwaga! Operacja kasowania' : 'UWAGA! Niebezpieczna operacja kasowania' ) : tytul),
closeText: "Zamknij ostrzeżenie",
beforeClose: function (event, ui) {
$('#' + id + '-css').remove();
if (!$('body.oknoTrue').length && typeof funkcjaJesliFalse == 'function') {
$('body').removeClass('oknoTrue');
funkcjaJesliFalse(obiekt);
}
},
buttons: buttons
});
$('.ui-icon-closethick').css({'left': '0', 'top': '0'});
},
czas
);
return false;
}
);
}
);
return false;
}
function kasowanieClick()
{
$('body').off('click.kasowanie', 'a.kasowanie').on('click.kasowanie', 'a.kasowanie', function () {
var element = '';
if ($(this).attr('rel'))
element = ' ' + $(this).attr('rel');
return confirm("Skasować" + element + "?");
});
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name) == 0)
return c.substring(name.length, c.length);
}
return "";
}
jQuery.fn.scrollTo = function (elem) {
$(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top - 10);
return this;
};
function naglowki_tabel(tabele, iKl, iRw, sWysNg, sSzerNg, tm, tabWidth, calaTabela)
{
if (!$.ng)
$.ng = [];
if (calaTabela == undefined)
calaTabela = true;
// tabele, w ktorych naglowki maja sie przesuwac
tabele = $('table' + tabele + ':not([ng])');
if (!tabele.length)
return false;
tabele.each(function () {
var tabela = $(this);
var id = Math.random();
tabela.attr('ng', id);
$.ng.push(id);
// iKl - ilosc kolumn, ktore maja byc przeznaczone na naglowek boczny
// iRw - ilosc wierszy, ktore maja byc przeznaczone na naglowek gorny
// sWysNg - wysokosc naglowka gornego. Jesli jest inna niz 0 to wartosc pobierania jest z tej zmiennej
// sSzerNg - szerokosc naglowka bocznego. Jesli jest inna niz 0 to wartosc pobierana jest z tej zmiennej
// tm - opoznienie z jakim ma dziala skrypt (podawane w milisekundach)
var wysNg = 0; // wysokosc naglowka (wczytywana automatycznie)
var szerNg = 0; // szerokosc naglowka (wczytywana automatycznie)
//console.log('iKl: '+iKl);
iKl = (iKl > 0 && tabela.width() > $(window).width() ? iKl : 0); //dopisane 7 lipca 2014, Bartek
//console.log('iKl: '+iKl);
if (isMobile(true)) //dopisane 15 października 2014, Bartek
{
iKl = 0;
}
//console.log('iKl: '+iKl);
//alert(isMobile());
//alert(iKl);
setTimeout(function () {
// pobranie szerokosci tabeli
var szerTbl = parseInt(tabela.parent().width());
if (parseInt(tabela.width()) > szerTbl) {
szerTbl = tabela.width();
if (parseInt(tabela.css('border-width')) > 0)
szerTbl += parseInt(tabela.css('border-width'));
}
if (!tabWidth)
tabWidth = tabela.width() + ($.browser.webkit ? 2 : -1);
// utworzenie elementu do przechowywania naglowka gornego
tabela.parent().append('<div class="ng_top" ng="' + id + '" style="width:' + szerTbl + 'px;overflow:hidden;left:0;top:0;z-index:550;position:fixed;background:#fff;"></div>');
// skopiowanie tabeli do naglowka gornego
var tableClon = tabela[0].cloneNode(false);
var ngRw = tabela.find('tr:lt(' + iRw + ')').clone(true, true);
$(ngRw).find('a').attr('tabindex', '-1');
$('.ng_top[ng="' + id + '"]').html(tableClon).children('table').append(ngRw);
$('.ng_top[ng="' + id + '"] table').removeAttr('ng');
// korzystanie z realnej table[ng], by pobrac widoczne elementy DOM
$('table[ng="' + id + '"]').find('tr:lt(' + iRw + ')').each(function () {
var indexx = $(this).index();
$(this).find('th, td').each(function () {
var elm = $('.ng_top[ng="' + id + '"] table tr').eq(indexx).find('td, th').eq($(this).index()).innerWidth($(this).innerWidth());
/*
//if(elm[0].getBoundingClientRect().width != $(this)[0].getBoundingClientRect().width)
var ths = $(this);
elm.innerWidth( ths.innerWidth() );
for(iii = 0; iii < 5; iii++){
if(parseInt(elm[0].getBoundingClientRect().width) == parseInt(ths[0].getBoundingClientRect().width)){
elm.addClass('ustawione');
break;
}else if(parseInt(elm[0].getBoundingClientRect().width) < parseInt(ths[0].getBoundingClientRect().width)){
console.log('za male - '+parseInt(elm[0].getBoundingClientRect().width)+' < '+parseInt(ths[0].getBoundingClientRect().width)+' -- '+elm.text());
elm.innerWidth( ths[0].getBoundingClientRect().width+iii );
}else{
console.log('za duze - '+parseInt(elm[0].getBoundingClientRect().width)+' > '+parseInt(ths[0].getBoundingClientRect().width)+' -- '+elm.text());
elm.innerWidth( ths[0].getBoundingClientRect().width-iii );
}
}*/
});
});
/*
if(!calaTabela){
var ngRw = tabela.find('tr:lt('+iRw+')').clone(true,true);
var klonTabela = tabela[0].cloneNode(false);
console.log(klonTabela);
return false;
$('.ng_top[ng="'+id+'"]').html(klonTabela).children('table').append(ngRw);
$('.ng_top[ng="'+id+'"] table').removeAttr('ng');
$('table[ng="'+id+'"]').find('tr:lt('+iRw+')').each(function(){ // korzystanie z realnej table[ng], by pobrac widoczne elementy DOM
var indexx = $(this).index();
$(this).find('th, td').each(function(){
$('.ng_top[ng="'+id+'"] table tr').eq(indexx).find('td, th').eq( $(this).index() ).innerWidth( $(this).innerWidth() );
});
});
}else{
tabela.clone(true, true).appendTo('.ng_top[ng="'+id+'"]');
$('.ng_top[ng="'+id+'"] > table').width(tabWidth);
}*/
if (iKl > 0)
{
// utworzenie elementu do przechowywania naglowka bocznego
tabela.parent().append('<div class="ng_left" ng="' + id + '" style="width:' + szerTbl + 'px;overflow:hidden;left:0;top:0;z-index:551;display:none;position:fixed;background:#fff;"></div>');
// skopiowanie tabeli do naglowka bocznego
var tableClon = tabela[0].cloneNode(false);
var ngKl = tabela.find('tr').clone(true, true);
$('.ng_left[ng="' + id + '"]').html(tableClon).children('table').append(ngKl);
$('.ng_left[ng="' + id + '"] table').removeAttr('ng');
// korzystanie z realnej table[ng], by pobrac widoczne elementy DOM
$('table[ng="' + id + '"]').find('tr').each(function () {
var indexx = $(this).index();
$(this).find('th, td').filter(':lt(' + iKl + ')').each(function () {
$('.ng_left[ng="' + id + '"] table tr').eq(indexx).find('td, th').eq($(this).index()).innerHeight($(this).outerHeight() - 1);
});
$('.ng_left[ng="' + id + '"] table tr').eq(indexx).find('td, th').filter(':gt(' + (iKl - 1) + ')').remove();
});
// tabela.clone(true, true).appendTo('.ng_left[ng="'+id+'"]');
// $('.ng_left[ng="'+id+'"] > table').width(tabWidth);
}
if (iKl && iRw) {
// utworzenie elementu do przechowywania wspolnej czesci obu naglowkow
tabela.parent().append('<div class="ng_corner" ng="' + id + '" style="width:' + szerTbl + 'px;overflow:hidden;left:0;top:0;z-index:552;display:none;position:fixed;background:#fff;"></div>');
// skopiowanie tabeli do naglowka wspolnego
var tableClon = tabela[0].cloneNode(false);
var ngCrn = tabela.find('tr:lt(' + iRw + ')').clone(true, true);
$('.ng_corner[ng="' + id + '"]').html(tableClon).children('table').append(ngCrn);
$('.ng_corner[ng="' + id + '"] table').removeAttr('ng');
// korzystanie z realnej table[ng], by pobrac widoczne elementy DOM
$('table[ng="' + id + '"]').find('tr:lt(' + iRw + ')').each(function () {
var indexx = $(this).index();
$('.ng_corner[ng="' + id + '"] table tr').eq(indexx).find('td, th').filter(':gt(' + (iKl - 1) + ')').remove();
});
// tabela.clone(true, true).appendTo('.ng_corner[ng="'+id+'"]');
// $('.ng_corner[ng="'+id+'"] > table').width(tabela.width()+2);
}
// sprawdzenie wszystkich wierszy
j = 0;
tabela.children('tbody').children('tr:lt(' + (iRw + 1) + ')').each(function () {
i = 0;
// sprawdzenie wszystkich kolumn
$(this).children('td:lt(' + (iKl + 1) + ')').each(function () {
if (i >= iKl) {
// wylaczenie widocznosci kolumn wystajacych poza naglowek boczny
$('.ng_left[ng="' + id + '"] > table > tbody > tr').eq(j).children('td').eq(i).css('visibility', 'hidden');
if (i == iKl && j == iRw) {
// pobranie szerokosci naglowka
szerNg += $(this).position().left;
}
} else {
// ustawienie szerokoci elementow naglowka bocznego
$('.ng_left[ng="' + id + '"] > table > tbody > tr').eq(j).children('td').eq(i).css('min-width', $(this).width() + 'px');
}
i++;
});
if (j == iRw) {
$('.ng_top[ng="' + id + '"] > table > tbody > tr').eq(j).css('visibility', 'hidden');
} else if (j < iRw) {
wysNg += $(this).outerHeight() + 1; // pobranie wysokosci naglowka
} else
// wylacznie widocznosci wierszy wystajacych poza naglowek boczny
$('.ng_top[ng="' + id + '"] > table > tbody > tr').eq(j).css('visibility', 'hidden');
j++;
});
// ustawienie wysokosci naglowka gornego na taki jaki podano przy deklarowaniu funkcji
if (sWysNg != 0)
wysNg = sWysNg;
// ustawienie szerokosci naglowka bocznego na taki jaki podano przy deklarowaniu funkcji
if (sSzerNg != 0)
szerNg = sSzerNg;
// ustawienie wysokosci naglowka gornego
$('.ng_top[ng="' + id + '"]').height(wysNg);
// ustawienie szerokosci naglowka bocznego
$('.ng_left[ng="' + id + '"]').width(szerNg);
if (iKl && iRw) {
$('.ng_corner[ng="' + id + '"]').width(szerNg + 2).height(wysNg);
}
// usuniecie marginesu skopiowanych tabel
$('.ng_top[ng="' + id + '"] > table, .ng_corner[ng="' + id + '"] > table, .ng_left[ng="' + id + '"] > table').css('margin-top', '0');
// wywolanie funkcji fScroll po wczytaniu strony
fScroll();
}, tm);
});
function fScroll() {
for (var i in $.ng) {
var tabela = $('table[ng="' + $.ng[i] + '"]');
if ($(document).scrollLeft() >= tabela.offset().left) {
var ng_left = true;
$('.ng_left[ng="' + $.ng[i] + '"]').css('top', tabela.offset().top - $(document).scrollTop()).css('display', 'block');
} else {
var ng_left = false;
$('.ng_left[ng="' + $.ng[i] + '"]').css('display', 'none');
}
if (tabela.height() >= $(window).height()*0.7 && $(document).scrollTop() >= tabela.offset().top && tabela.offset().top + tabela.height() > $(document).scrollTop() + $('.ng_top[ng="' + $.ng[i] + '"]').height()) {
var ng_top = true;
$('.ng_top[ng="' + $.ng[i] + '"]').css('left', tabela.offset().left - $(document).scrollLeft()).css('display', 'block');
} else {
var ng_top = false;
$('.ng_top[ng="' + $.ng[i] + '"]').css('display', 'none');
}
if ($('.ng_corner[ng="' + $.ng[i] + '"]').length && ng_left && ng_top) {
$('.ng_corner[ng="' + $.ng[i] + '"]').css('display', 'block');
} else {
$('.ng_corner[ng="' + $.ng[i] + '"]').css('display', 'none');
}
}
}
// wywolanie funkcji fScroll podczas przesuwania ekranu
if (!$.ngf) {
$(window).scroll(function () {
fScroll();
});
$(window).resize(function () {
fScroll();
});
$.ngf = true;
}
}
function is_loading() {
//if ($('#ajax_loading_e_dziennik:visible').length)
// return true;
return false;
}
function okienkaInformacyjne()
{
if ($("[class*='okienko_informacyjne']:not([id2])").get(0))
{
$("[class*='okienko_informacyjne']:not([id2])").each(
function () {
var id2 = generateId(10);
$(this).attr('id2', id2).prepend('<a href="#" class="okienko_informacyjne_close" id2="' + id2 + '" title="Zamknij komunikat"><img src="' + system_url + '/dziennik/ikonka-close.png" style="width:20px; height:auto; float:right; margin-left:10px;" alt="zamknij informacje"/></a>');
}
);
$('body').on('click', '.okienko_informacyjne_close', function () {
var okienko = $("[class*='okienko_informacyjne'][id2='" + $(this).attr('id2') + "']");
okienko.css('visibility', 'hidden');
if ($("[class*='okienko_informacyjne'][id2='" + $(this).attr('id2') + "']").css('float') == 'none')
{
okienko.hide();
}
else
{
okienko.css('visibility', 'hidden');
}
return false;
});
}
}
function generateId() {
var gen = Math.round(new Date().getTime() + (Math.random() * 100));
//alert(gen);
return gen;
//function generateId()
// var arr = new Uint8Array((len || 40) / 2);
// window.crypto.getRandomValues(arr);
// return [].map.call(arr, function(n) { return n.toString(16); }).join("");
}
function str_replace(search, replace, subject, count) {
var i = 0,
j = 0,
temp = '',
repl = '',
sl = 0,
fl = 0,
f = [].concat(search),
r = [].concat(replace),
s = subject,
ra = Object.prototype.toString.call(r) === '[object Array]',
sa = Object.prototype.toString.call(s) === '[object Array]';
s = [].concat(s);
if (count) {
this.window[count] = 0;
}
for (i = 0, sl = s.length; i < sl; i++) {
if (s[i] === '') {
continue;
}
for (j = 0, fl = f.length; j < fl; j++) {
temp = s[i] + '';
repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
s[i] = (temp)
.split(f[j])
.join(repl);
if (count && s[i] !== temp) {
this.window[count] += (temp.length - s[i].length) / f[j].length;
}
}
}
return sa ? s : s[0];
}
function is_numeric(mixed_var) {
var whitespace =
" \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
return (typeof mixed_var === 'number' || (typeof mixed_var === 'string' && whitespace.indexOf(mixed_var.slice(-1)) === -
1)) && mixed_var !== '' && !isNaN(mixed_var);
}
function print_r(o)
{
function f(o, p, s)
{
for (x in o)
{
if ('object' == typeof o[x])
{
s += p + x + ' obiekt: \n';
pre = p + '\t';
s = f(o[x], pre, s);
}
else
{
s += p + x + ' : ' + o[x] + '\n';
}
}
return s;
}
return f(o, '', '');
}
/**
* Usuwa dodatkowe spacje z początku i końca tekstu oraz dodatkowe spacje z środka tekstu
* @param {type} tresc
* @returns {unresolved}
*/
function usunDodatkoweSpacje(tresc) {
var l = tresc.length;
var pop = '';
var nTresc = '';
for (var i = 0; i < l; i++) {
if (tresc[i] == ' ' && (pop == '' || pop == ' ' || i + 1 == l))
continue;
nTresc += tresc[i];
pop = tresc[i];
}
return nTresc;
}
function usunSpacjeZPoczatkuLinii(tresc) {
var l = tresc.length,
usun = true,
nTresc = '';
for (var i = 0; i < l; i++) {
if (usun && tresc[i] == ' ')
continue;
else if (usun)
usun = false;
else if (!usun && tresc[i] == "\n")
usun = true;
nTresc += tresc[i];
}
return nTresc;
}
function strpos(haystack, needle, offset) {
var i = (haystack + '').indexOf(needle, (offset || 0));
return i === -1 ? false : i;
}
function czyWcisnietoStrzalke(keyCode)
{
var arrow = {left: 37, up: 38, right: 39, down: 40};
switch (keyCode) {
case arrow.up:
case arrow.down:
case arrow.left:
case arrow.right:
return true;
}
return false;
}
function cieniowanieElementow(selektor, element)
{
if (selektor)
{
$(selektor).removeClass('komorka_kolor');
$(selektor + ":odd").addClass('komorka_kolor');
}
else if (element)
{
element.removeClass('komorka_kolor');
element.filter(":odd").addClass('komorka_kolor');
}
}
// wierszeTabeli - $('table tr')
// fraza - $('input')
// wykonajPo - function(){ ... }
function wyszukiwarkaTabeli(wierszeTabeli, pole, wykonajPo, nieKoloruj, dodatkoweFiltry) {
pole.unbind('keyup').keyup(function (ev) {
var fraza = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(),
cls = 'komorka_biala',
znalezionychWierszy = 0;
if (nieKoloruj != true)
nieKoloruj = false;
wierszeTabeli.show().filter(function () {
$(this).html(str_replace(['<b style="color:#bf0000"><i>', '</i></b>'], ['', ''], $(this).html()));
var text = '';
$(this).children('td:not([data-no-search="true"])').each(function(){
text += $(this).text().replace(/\s+/g, ' ').toLowerCase();
});
if (~text.indexOf(fraza)){
if(dodatkoweFiltry){
for(var i = 0; i < dodatkoweFiltry.length; i++){
var wartosc = $('[name="'+dodatkoweFiltry[i]+'"]').val();
if(wartosc.length && wartosc != $(this).attr('data-'+dodatkoweFiltry[i])){
return true;
}
}
}
$(this).removeClass('komorka_biala').removeClass('komorka_kolor').addClass(cls);
if (cls == 'komorka_biala')
cls = 'komorka_kolor';
else
cls = 'komorka_biala';
if (fraza.length && !nieKoloruj) {
$(this).children('td:not([data-no-search="true"])').each(function () {
var mTresc = $(this).html(),
mTrescL = mTresc.length,
html = '',
start = 0,
stop = 0;
var pattern = new RegExp("(" + fraza + ")(?![^<]*>|[^<>]*<\/)", 'gi');
while (pattern.test(mTresc) == true) {
stop = pattern.lastIndex - fraza.length;
html = html + mTresc.substring(start, stop) + '<b style="color:#bf0000"><i>' + mTresc.substring(pattern.lastIndex - fraza.length, pattern.lastIndex) + '</i></b>';
start = pattern.lastIndex;
}
if (html.length) {
html = html + mTresc.substring(start);
$(this).html(html);
}
});
}
return false;
}
return true;
}).hide();
if (typeof wykonajPo == 'function') {
wykonajPo();
}
});
pole.keyup();
if(dodatkoweFiltry){
for(var i = 0; i < dodatkoweFiltry.length; i++){
$('[name="'+dodatkoweFiltry[i]+'"]').off('change.filtr').on('change.filtr', function(){
pole.keyup();
});
}
}
}
function wyciagnijLiczbe(s)
{
return s.match(/\d+/)[0];
}
function grupyOcenOpisKolumn()
{
var opisy = $('.interaktywny_opis_kolumny_grupy_ocen');
if (opisy.length > 0)
{
var grupa = ($('input[name=opis]').val() != undefined ? $('input[name=opis]') : $('input[name=edycjaopis]'));
opisy.each(
function () {
$(this).html('Opis ocen z kolumny: <strong>' + grupa.val() + ' - ' + $(this).prevAll('input[name*=kolumny]').val() + '</strong>');
}
)
}
}
/*
* pole: document.getElementById('...')
* pozycja: 0 - poczatek, -1 koniec, lub dokładny numer pozycji
*/
function ustawKursorWPolu(pole, pozycja) {
if (pozycja == -1)
pozycja = pole.value.length;
if (pole.createTextRange) {
var part = pole.createTextRange();
part.move("character", pozycja);
part.select();
} else if (pole.setSelectionRange) {
pole.setSelectionRange(pozycja, pozycja);
}
pole.focus();
}
function ustawTabIndexy() // NIE WŁĄCZAĆ !!!!
{
var pola_form = $('input, select, textarea');
if (pola_form)
{
var tabindex = 1;
pola_form.each(
function () {
$(this).attr("tabindex", tabindex);
tabindex++;
}
);
}
}
function ocenaPisemna(ocena, plec)
{
switch (ocena)
{
case '1':
return 'niedostateczny';
break;
case '2':
return 'dopuszczający';
break;
case '3':
return 'dostateczny';
break;
case '4':
return 'dobry';
break;
case '5':
return 'bardzo dobry';
break;
case '6':
return 'celujący';
break;
case '7':
return 'wybitny';
break;
case 'nk':
case 'NK':
if (plec == 2)
{
return 'nieklasyfikowana';
}
else
{
return 'nieklasyfikowany';
}
break;
case 'zw':
case 'ZW':
if (plec == 2)
{
return 'zwolniona';
}
else
{
return 'zwolniony';
}
break;
}
return ocena;
}
function urldecode(url) {
return decodeURIComponent(url.replace(/\+/g, ' '));
}
function isFloat(n) {
return n === +n && n !== (n|0);
}
function isInteger(n) {
return n === +n && n === (n|0);
}
function number_format (number, decimals, decPoint, thousandsSep) { // eslint-disable-line camelcase
// discuss at: http://locutus.io/php/number_format/
// original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// improved by: Kevin van Zonneveld (http://kvz.io)
// improved by: davook
// improved by: Brett Zamir (http://brett-zamir.me)
// improved by: Brett Zamir (http://brett-zamir.me)
// improved by: Theriault (https://github.com/Theriault)
// improved by: Kevin van Zonneveld (http://kvz.io)
// bugfixed by: Michael White (http://getsprink.com)
// bugfixed by: Benjamin Lupton
// bugfixed by: Allan Jensen (http://www.winternet.no)
// bugfixed by: Howard Yeend
// bugfixed by: Diogo Resende
// bugfixed by: Rival
// bugfixed by: Brett Zamir (http://brett-zamir.me)
// revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
// revised by: Luke Smith (http://lucassmith.name)
// input by: Kheang Hok Chin (http://www.distantia.ca/)
// input by: Jay Klehr
// input by: Amir Habibi (http://www.residence-mixte.com/)
// input by: Amirouche
// example 1: number_format(1234.56)
// returns 1: '1,235'
// example 2: number_format(1234.56, 2, ',', ' ')
// returns 2: '1 234,56'
// example 3: number_format(1234.5678, 2, '.', '')
// returns 3: '1234.57'
// example 4: number_format(67, 2, ',', '.')
// returns 4: '67,00'
// example 5: number_format(1000)
// returns 5: '1,000'
// example 6: number_format(67.311, 2)
// returns 6: '67.31'
// example 7: number_format(1000.55, 1)
// returns 7: '1,000.6'
// example 8: number_format(67000, 5, ',', '.')
// returns 8: '67.000,00000'
// example 9: number_format(0.9, 0)
// returns 9: '1'
// example 10: number_format('1.20', 2)
// returns 10: '1.20'
// example 11: number_format('1.20', 4)
// returns 11: '1.2000'
// example 12: number_format('1.2000', 3)
// returns 12: '1.200'
// example 13: number_format('1 000,50', 2, '.', ' ')
// returns 13: '100 050.00'
// example 14: number_format(1e-8, 8, '.', '')
// returns 14: '0.00000001'
number = (number + '').replace(/[^0-9+\-Ee.]/g, '')
var n = !isFinite(+number) ? 0 : +number
var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
var sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep
var dec = (typeof decPoint === 'undefined') ? '.' : decPoint
var s = ''
var toFixedFix = function (n, prec) {
var k = Math.pow(10, prec)
return '' + (Math.round(n * k) / k)
.toFixed(prec)
}
// @todo: for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep)
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || ''
s[1] += new Array(prec - s[1].length + 1).join('0')
}
return s.join(dec)
}
function walidacjaKluczaVulcanAscInne(element,rodzaj_klucza,typ_klucza,id_elementu)
{
$(element).change(
function() {
var klucz = $(this).val();
if (klucz)
{
$.post(
system_url + '/helper/walidacjakluczavulcanascinne', {rodzaj_klucza:rodzaj_klucza,typ_klucza:typ_klucza,klucz:klucz,id_elementu:id_elementu},
function (data)
{
var json = parsujJsona(data);
if(json)
{
if(json.klucz_pierwotny!=json.klucz_unikalny)
{
element.val(json.klucz_unikalny);
alert('Podany klucz "'+json.klucz_pierwotny+'" nie jest uniknalny.\n\nSystem zmienił podany klucz na "'+json.klucz_unikalny+'".');
}
}
}
);
}
}
);
}
/*
function getCaretCharacterOffsetWithin(element) {
var caretOffset = 0;
var doc = element.ownerDocument || element.document;
var win = doc.defaultView || doc.parentWindow;
var sel;
if (typeof win.getSelection != "undefined") {
sel = win.getSelection();
if (sel.rangeCount > 0) {
var range = win.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();
preCaretRange.selectNodeContents(element);
preCaretRange.setEnd(range.endContainer, range.endOffset);
caretOffset = preCaretRange.toString().length;
}
} else if ( (sel = doc.selection) && sel.type != "Control") {
var textRange = sel.createRange();
var preCaretTextRange = doc.body.createTextRange();
preCaretTextRange.moveToElementText(element);
preCaretTextRange.setEndPoint("EndToEnd", textRange);
caretOffset = preCaretTextRange.text.length;
}
return caretOffset;
}
function setPositionCaret(node,caret) {
node.focus();
//var textNode = node.firstChild;
var textNode = node;
var range = document.createRange();
range.setStart(textNode, caret);
range.setEnd(textNode, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
function SetCaretPosition(el, pos){
// Loop through all child nodes
var childNodes = el.childNodes;
for(var i=0;i<childNodes.length;i++){
node = childNodes[i];
if(node.nodeType == 3){ // we have a text node
if(node.length >= pos){
// finally add our range
var range = document.createRange(),
sel = window.getSelection();
range.setStart(node,pos);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
return -1; // we are done
}else{
pos -= node.length;
}
}else{
pos = SetCaretPosition(node,pos);
if(pos == -1){
return -1; // no need to finish the for loop
}
}
}
return pos; // needed because of recursion stuff
}
*/
function KontrolaOcenyOpisowejNaSwiadectwie(klasa)
{
this.klasa = klasa;
this.timer = Array();
this.timerTimeOut = 1000;
this.podgladOcenyNaSwiadectwie = function(pole_ocena,podglad_typ) {
index_elementu = $('textarea').index(pole_ocena);
//alert(index_elementu);
if(this.timer[index_elementu])
{
window.clearTimeout(this.timer[index_elementu]);
}
var ocena = pole_ocena.val();
if(ocena.length>300 || pole_ocena.css('color').toString()=='rgb(255, 0, 0)')
{
klasa = this.klasa;
this.timer[index_elementu] = window.setTimeout(
function(){
$.post(
system_url+'/helper/podgladocenaopisowa2', {ocena:ocena,typ:podglad_typ,klasa:klasa},
function(data)
{
var json = parsujJsona(data);
if(json)
{
if(json.za_dlugi_tekst)
{
/*if(pole_ocena.css('color').toString()!='rgb(255, 0, 0)')
{
alert('Czerwone oznaczenie podanej oceny oznacza, że nie zmieści się ona na wydruku świadectwa.');
}*/
if(typeof KontrolaOcenyOpisowejNaSwiadectwie_powiadomiono === 'undefined')
{
alert('Czerwone oznaczenie podanej oceny oznacza, że nie zmieści się ona na wydruku świadectwa.');
KontrolaOcenyOpisowejNaSwiadectwie_powiadomiono = true;
}
pole_ocena.css('color','red');
}
else
{
pole_ocena.css('color','black');
}
}
}
);
},
this.timerTimeOut
);
}
}
}
function skasujAktualneTooltipy(animacja){
if(typeof animacja === 'undefined') animacja = true;
$('.tipsy').fadeOut( ( animacja ? 'fast' : 1 ), function(){
$(this).remove();
});
}
function ajaxForm(formSelector, onDone, onFail){
$('body').on('submit', formSelector, function(){
$.ajax({
url: $(this).attr('action'),
method: $(this).attr('method'),
data: $(this).serialize(),
dataType: 'json',
})
.done(onDone)
.fail(onFail);
return false;
});
}
$.komunikat = null;
function komunikat(selector, tresc, zamknijZa){
$(selector).html( tresc );
if( !$(selector).is(':visible') ){
$(selector).slideDown('fast');
}
if(zamknijZa){
clearTimeout($.komunikat);
$.komunikat = setTimeout(function(){
$(selector).slideUp('fast');
}, zamknijZa*1000 );
}
}
function isset ()
{
// http://kevin.vanzonneveld.net
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: FremyCompany
// + improved by: Onno Marsman
// + improved by: Rafał Kukawski
// * example 1: isset( undefined, true);
// * returns 1: false
// * example 2: isset( 'Kevin van Zonneveld' );
// * returns 2: true
var a = arguments,
l = a.length,
i = 0,
undef;
if (l === 0)
{
throw new Error('Empty isset');
}
while (i !== l)
{
if (a[i] === undef || a[i] === null)
{
return false;
}
i++;
}
return true;
}
function obj_isset(){
var arg = arguments;
var obj = arg[0];
if(!arg || typeof obj != 'object'){
return false;
}
for(var i = 1; i < arg.length; i++){
if(!obj[ arg[i] ]){
return false;
}
obj = obj[ arg[i] ];
}
return true;
}
function obj_set(){
var arg = arguments;
var obj = arg[0];
var current = obj;
for(var i = 1; i < arg.length; i++){
current[ arg[i] ] = {};
current = current[ arg[i] ];
}
return obj;
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
$.fn.setCursorPosition = function(pos) {
this.each(function(index, elem) {
if (elem.setSelectionRange) {
elem.setSelectionRange(pos, pos);
} else if (elem.createTextRange) {
var range = elem.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
});
return this;
};
$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', start);
range.select();
}
});
};
function escapeHtml(text) {
var map = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#039;'
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
}
function czas(czas){
return czas.substring(0, 5);
}
$.fn.rysunekPodglad = function() {
window.dataRysunek = $(this).attr('data-rysunek');
var dialog = $('<div id="rysunek-dialog" title="Podgląd notatki"></div>').appendTo('body');
var content = $('<iframe />')
.attr('src', system_url+'/helper/rysunek')
.attr('style', 'border:0; width:100%; height: 100%; float:left')
.prop('outerHTML');
$('#rysunek-dialog').html( content );
$('#rysunek-dialog').dialog({
autoOpen: true,
modal: true,
width: $(window).width()-20,
height: $(window).height()-20,
resizable: false,
draggable: false,
close: function( event, ui ) {
$('#rysunek-dialog').remove();
$(window).off('resize.rysunekdialog');
}
});
$(window).on('resize.rysunekdialog', function(){
$('#rysunek-dialog').dialog({
width: $(window).width()-20,
height: $(window).height()-20
});
});
};
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(search, this_len) {
if (this_len === undefined || this_len > this.length) {
this_len = this.length;
}
return this.substring(this_len - search.length, this_len) === search;
};
}
function nl2br (str) {
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1<br />$2');
}
function htmlspecialchars_decode(string){
return $('<span />').html(string).text();
}
function htmlspecialchars_encode(string){
return $('<span />').text(string).html();
}
function b64toBlob(b64Data, contentType, sliceSize){
if(typeof sliceSize == 'undefined') sliceSize = 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
function resizeImage(fn, base64, maxSide, quality, name){ // name is optional
var type = base64.split(',')[0].match(/data:([\.0-9a-z\/\-\+]+);+/)[1];
var img = new Image();
img.src = base64;
img.onload = function(){
var canvas = document.createElement('canvas');
var width = img.width;
var height = img.height;
if (width > height) {
if (width > maxSide) {
height *= maxSide / width;
width = maxSide;
}
} else {
if (height > maxSide) {
width *= maxSide / height;
height = maxSide;
}
}
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, width, height);
try {
ctx.canvas.toBlob(function(blob){
fn(blob, name);
}, type, quality);
} catch(error){
var cnt = ctx.canvas.toDataURL(type, quality).split(',');
fn(b64toBlob(cnt[1], type), name);
}
}
}
function copyToClipboard(text) {
var copyDiv = document.createElement('div');
copyDiv.contentEditable = true;
document.body.appendChild(copyDiv);
copyDiv.innerHTML = text;
copyDiv.unselectable = "off";
copyDiv.focus();
document.execCommand('SelectAll');
document.execCommand("Copy", false, null);
document.body.removeChild(copyDiv);
/* var $temp = $("<input>");
$("body").append($temp);
$temp.val(txt).select();
document.execCommand("copy");
$temp.remove(); */
}
function sciezkaMenuTekst()
{
$("body").keydown(function(e){
var keyCode = e.keyCode || e.which;
//console.log(keyCode);
if(keyCode && keyCode==119)
{
var menu_pozycje = $('div#menu_gray').find('li:hover');
if(menu_pozycje.length)
{
var m = new Array();
menu_pozycje.each(
function() {
m.push($($(this).find('a')[0]).html());
}
);
var sciezka = m.join(" -> ");
copyToClipboard(sciezka);
alert('Ścieżka: "'+sciezka+'" została skopiowana do schowka.');
}
}
});
}
function rzymskaLiczbaDoArabskiej(roman){
if(roman.match(/([^MDCLXVI])+/)){
return 0;
}
var romans = {
'M': 1000, 'CM': 900, 'D': 500, 'CD': 400, 'C': 100, 'XC': 90, 'L': 50, 'XL': 40, 'X': 10, 'IX': 9, 'V': 5, 'IV': 4, 'I': 1,
};
var number = 0;
$.each(romans, function(key, value){
while(roman.indexOf(key) === 0) {
number += value;
roman = roman.substring(key.length);
}
});
return number;
}
function roznicaDatWdniach(d1,d2)
{
return (new Date(d1) - new Date(d2))/(1000 * 60 * 60 * 24);
}
function pobierzWszystkiePliki(elm, index){
if(typeof index == 'undefined'){
index = 0;
}
window.location = elm.eq(index).attr('href');
if(elm.eq(index+1).length){
setTimeout(function(){
pobierzWszystkiePliki(elm, index+1);
}, 500);
}
}
function wyborSzkolyGlobalnej(url, woj, typSzkoly, cnt, wyborSzkoly){
$.ajax({
type: "POST",
url: url,
data: { pobierz: 'form', typ_szkoly: typSzkoly, woj: woj },
dataType: 'json'
}).done(function(data) {
if(data.html){
cnt.append(data.html);
szkolyGlobalne.wyborSzkoly = wyborSzkoly;
}
}).fail(function(){
alert('Nie udało się wczytać danych.');
});
}
function tabelaCheckboxy(wiersze){
$('body').on('click', wiersze, function(e){
if($(e.target).is('.checkbox')) return false;
$(this).find('.checkbox').click();
});
}
function tabelaCheckboxy2(wiersze){
$('body').off('click.checkboxy2').on('click.checkboxy2', wiersze, function(e){
if($(e.target).is('.checkbox2')) return true;
$(this).find('.checkbox2').click();
});
}
function parsowaniePeselu(s){
//Sprawdź długość, musi być 11 znaków
if (s.length != 11)
return;
//Sprawdź, czy wszystkie znaki to cyfry
var aInt = new Array();
for (i=0;i<11; i++)
{
aInt[i] = parseInt(s.substring(i,i+1));
if (isNaN(aInt[i])){
return;
}
}
//Sprawdź sumę kontrolną
var wagi = [1,3,7,9,1,3,7,9,1,3,1];
var sum=0;
for (i=0;i<11;i++)
sum+=wagi[i]*aInt[i];
if ((sum%10)!=0)
return;
//Policz rok z uwzględnieniem XIX, XXI, XXII i XXIII wieku
var rok = 1900+aInt[0]*10+aInt[1];
if (aInt[2]>=2 && aInt[2]<8)
rok+=Math.floor(aInt[2]/2)*100;
if (aInt[2]>=8)
rok-=100;
var miesiac = pad((aInt[2]%2)*10+aInt[3], 2);
var dzien = pad(aInt[4]*10+aInt[5], 2);
//Sprawdź poprawność daty urodzenia
if (!checkDate(dzien,miesiac,rok))
return;
var plec = (aInt[9]%2==1)?1:2;
return {
plec: plec,
data: rok+'-'+miesiac+'-'+dzien
};
}
function checkDate(d,m,y)
{
var dt = new Date(y,m-1,d);
return dt.getDate()==d &&
dt.getMonth()==m-1 &&
dt.getFullYear()==y;
}
function plecOrazDataZpeselu(pesel, dokument_nie_pesel, plec, data_urodzenia){
if(!dokument_nie_pesel || !$('input[name="'+dokument_nie_pesel+'"]:checked').length){
var pesel = parsowaniePeselu($('input[name='+pesel+']').val());
if(typeof pesel == 'object'){
$('select[name='+plec+']').val(pesel.plec);
$('input[name='+plec+'][value="'+pesel.plec+'"]').prop('checked', 'checked');
$('input[name='+data_urodzenia+']').val(pesel.data);
}
}
}
function select2searchSetAfterOpen()
{
$('select.select2-hidden-accessible:not([multiple])').die('select2:open').live('select2:open', function (e) {
var v = $(this).val();
if(v!='')
{
var s = $('.select2-search__field');
s.val(v);
//s.keyup ();
//setTimeout(function(){s.keyup ();},500);
}
});
}
function isValidDate(dateString) {
// Sprawdzamy czy format pasuje do YYYY-MM-DD
const regex = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
if (!regex.test(dateString)) {
return false;
}
// Parsowanie roku, miesiąca i dnia
const [year, month, day] = dateString.split('-').map(Number);
// Sprawdzenie czy data jest poprawna (uwzględnia miesiące i lata przestępne)
const date = new Date(year, month - 1, day);
return (
date.getFullYear() === year &&
date.getMonth() === month - 1 &&
date.getDate() === day
);
}
function sprawdzDlugoscIskroc(tekst, limit, typ) {
if(!typ) typ = 1;
const znaki = Array.from(tekst);
if (limit > 0 && znaki.length > limit) {
if (typ === 1) {
return znaki.slice(0, limit - 3).join('') + '...';
}
return znaki.slice(0, limit).join('');
}
return tekst;
}
function wyborUczniow(p){
var body = $('body');
var mobile = isMobile(true);
var empty = $(p.selUczWybrani).find('.empty');
if(mobile){
empty.remove();
}
body.on('change', p.selKlasy, function(){
var zespol = $(this).val();
if(!zespol.length){
return;
}
$.post(p.urlKlasy, {
zespol: zespol,
tylkoaktywni: p.tylkoAktywni,
wyswietl_klase: p.wyswietlKlase,
bez_numerow_ewidencyjnych: p.bezNumerowEwidencyjnych,
data_aktywnosci: p.dataAktywnosci
}, function (data){
$(p.selDoUczWyboru).html(data).val(null);
$(p.selUczWybrani).find('option').each(function(){
if(mobile){
$(p.selDoUczWyboru).find('option[value="'+$(this).attr('value')+'"]').prop('selected', true);
}else{
$(p.selDoUczWyboru).find('option[value="'+$(this).attr('value')+'"]').css('display', 'none');
}
});
});
});
body.on('change', p.selDoUczWyboru, function(){
$(this).find('option:selected').each(function(){
if(!$(p.selUczWybrani).find('option[value="'+$(this).attr('value')+'"]').length){
var opt = $(this);
if(!mobile){
opt = $(this).prop('selected', false);
}
opt = $(this).clone();
if(p.fnWybranyOpt){
opt = p.fnWybranyOpt($(this), opt);
}
$(p.selUczWybrani).append( opt );
if(mobile){
$(p.selUczWybrani).find('option[value="'+$(this).attr('value')+'"]').prop('selected', true);
}else{
$(this).css('display', 'none');
}
}
});
if(mobile){
var arr = $(p.selUczWybrani).val();
$(this).find('option:not(:selected)').each(function(){
var val = $(this).attr('value');
$(p.selUczWybrani).find('option[value="'+val+'"]').remove();
if(arr.indexOf(val) !== -1){
arr = removeByValue(arr, val);
}
});
$(p.selUczWybrani).val(null).val(arr);
}else{
empty.css('display', $(p.selUczWybrani).find('option[value]').length ? 'none' : 'block');
}
if(p.fnPoZmianach){
p.fnPoZmianach();
}
});
body.on('change', p.selUczWybrani, function(){
$(this).find('option'+( mobile ? ':not(:selected)' : ':selected' )).each(function(){
if(mobile){
$(p.selDoUczWyboru).find('option[value="'+$(this).attr('value')+'"]').prop('selected', false);
}else{
$(p.selDoUczWyboru).find('option[value="'+$(this).attr('value')+'"]').css('display', 'block');
}
$(this).remove();
});
if(!mobile){
empty.css('display', $(this).find('option[value]').length ? 'none' : 'block');
}
if(p.fnPoZmianach){
p.fnPoZmianach();
}
});
if(p.btnPlec){
$('body').on('click', p.btnPlec, function(){
$(p.selDoUczWyboru).find('option.plec'+$(this).attr('rel')).prop('selected', true);
$(p.selDoUczWyboru).change();
});
}
if(p.selKlasyChange){
$(p.selKlasy).change();
}
if(p.selPozostali && p.btnPozostali){
$(p.btnPozostali).click(function(){
if(!$(p.selKlasy).val()){
alert('Nie wybrano klasy');
return false;
}
$.post(
p.urlKlasy, {
klasa: $(p.selKlasy).val(),
zespol: $(p.selPozostali).val()
},
function (data) {
try {
var json = $.parseJSON(data); // ok i link
if (json.uczniowie == 1) {
$.each(json.idki, function (i, l) {
$(p.selDoUczWyboru).find('option[value=' + l + ']').prop('selected', true);
});
$(p.selDoUczWyboru).change();
} else {
alert('Nie znaleziono pasujących uczniów');
}
} catch (e) {
alert('Spróbuj ponownie oraz upewnij się czy nie doszło do wylogowania z systemu.');
}
}
);
return false;
});
}
}
function removeByValue(arr, val) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === val) {
arr.splice(i, 1);
i--;
}
}
return arr;
}