2641 lines
91 KiB
JavaScript
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 = {
|
|
'&': '&',
|
|
'<': '<',
|
|
'>': '>',
|
|
'"': '"',
|
|
"'": '''
|
|
};
|
|
|
|
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;
|
|
} |