/*
hlavni pro /system/
*/
/* Open link in parent window (and close child) * /
function odklik(target,zavri)
{
if(target) {
window.opener.location = target;
} else {
window.opener.location.reload(true);
}
if(zavri) {
window.opener.focus();
window.close();
}
}
//*/
/* vůbec netuším
function repoFormatResult(repo) {
var markup = '
' +
'
' +
'
' +
'
' +
'
' + repo.full_name + '
' +
'
' + repo.forks_count + '
' +
'
' + repo.stargazers_count + '
' +
'
';
if (repo.description) {
markup += '
' + repo.description + '
';
}
markup += '
';
console.log(markup);
return markup;
}
function repoFormatSelection(repo) {
console.log(repo.id);
return repo.id;//full_name;
//return repo.text;
}
function fx(repo) {
return repo.text;
}
//*/
// TOGGLE všech checkboxů stejného name
function toggleAllBox(boxs) {
$("[name='"+boxs+"']").each(function() {
//console.log($(this));
if($(this).prop('checked')==false) {
$(this).prop('checked', true);
} else {
$(this).prop('checked', false);
}
});
}
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
function escapeHtml(str)
{
var map =
{
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": "'"
};
if(str.match(/&|<|>|"|'/)) { // už je escapnuto
return str;
} else if(typeof(str)=='string') {
return str.replace(/[&<>"']/g, function(m) {return map[m];});
}
}
function decodeHtml(str)
{
var map =
{
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": "'"
};
if(typeof(str)=='string') { // jinak hází chybu
return str.replace(/&|<|>|"|'/g, function(m) {return map[m];});
};
}
function log(text) { console.log(text); };
// celé číslo s mezerami po trojčíslích
function printNr(value) {
var tisk = ' ' + value;
var maxl = tisk.length;
var out = '';
var i;
for(i=0; iVícenásobné odeslání může způsobit VÍCENÁSOBNÉ ULOŽENÍ!",
trigger: 'mouseenter',
attach: $(this),
theme: 'TooltipBorder'
});
$('.formsubmit').attr('disabled','disabled');
var text = $(this).val();
$(this).attr('data-oldval', text);
$(this).val(' Odesílá se... ');
$(this).attr('disabled',false);
return true;
};
});
// roztažení vodoznaku na celou délku
//console.log($(document).height());
var vodoznak = $(document).height();
if(vodoznak>5000) {
vodoznak = 2100;
};
var nasobek = Math.floor(vodoznak/700);
vodoznak = nasobek*700;
//console.log(vodoznak);
//console.log($(document).height());
$('#vodoznak').height(vodoznak+'px');
//accordion
$(".accord-edit-postview" ).accordion({ // např. granty
heightStyle: "content",
collapsible: true,
active: false
});
$( "#accord-fe" ).accordion({ // frontend
heightStyle: "content"
//collapsible: true,
//active: 1
});
//counter
$("[maxlength]").jqEasyCounter();
// LOADER PŘI VŠECH SUBMITECH
$('form').submit(function() { // korektní odesílací tlačítko formuláře
//$.prettyLoader.hide();
//console.log(event);
//console.log($(this));
//alert( "Handler for .submit() called." );
//event.preventDefault();
});
// ColorPicker
$(".colorpicker").colorpicker({
strings: "Tématické barvy,Základní barvy,Paleta barev,Tématické barvy,zpět na Paletu barev,Historie,historie je zatím prázdná",
transparentColor: false
});
/**
* PRETTY PHOTO
**/
$("a[rel^='prettyPhoto']").prettyPhoto({
theme: 'dark_square', /* pp_default / light_rounded / dark_rounded / light_square / dark_square / facebook */
deeplinking: false, /* Allow prettyPhoto to update the url to enable deeplinking. */
social_tools: false /* html or false to disable */
});
// PRETTY LOADER
$.prettyLoader({
animation_speed: 'fast', // fast/normal/slow/integer
bind_to_ajax: false, // true/false
delay: false, // false OR time in milliseconds (ms)
loader: '/system/htc/prettyloader/images/prettyLoader/ajax-loader.gif', // Path to your loader gif
offset_top: 13, // integer
offset_left: 10 // integer
});
// RadioMagnet (označení nadřazeného radia při změně tohto checkboxu)
$("input[class^='check_magnet']").on("change", function() {
var pole = $(this).prop('class');
var radio = pole.match(/\[(.+)\]$/);
$("#"+radio[1]).prop('checked', true);
});
/**
* ICO 2 ARES
**/
$("[name^='New[ICO']").on("keyup change", function() {
//console.log($(this).attr("name")+' = '+$(this).val());
var name = $(this).attr("name");
var val = $(this).val();
if(val.length==8) {
//console.log(val);
var url = "/system/ajax_ares.php?ic=" + val;
//console.log(url);
$.ajax({url: url}).done(function(data) {
//data = $.parseJSON(data); // není nutné pokud předtím nevolám fci $.ajaxSetup(
//console.log(data);
var error = data.error;
if(error) { alert(error); };
var cast = name.match(/ICO([^\]]*)/);
var appe = cast[1];
if(data) {
$.each(data, function (key, val) {
//$(selname).append('');
//console.log("name='New["+key+appe+"]' = "+val);
$("[name='New["+key+appe+"]']").val(val);
});
}
});
}
});
/**
* ZŠ FORM TEST
**/
// SPUŠTĚNÍ PRO TESTOVÁNÍ
// nastavení href dle obsahu položky
$('.zsform-test').on("mouseenter", function() {
var href = $(this).attr('data-href');
var name = $(this).attr('data-name');
var id = $(this).attr('data-id');
if(id) { // beru html() z id (view)
var text = $('#'+id).html();
text = text.replace(/(
)/gm, '~'); //
nahradíme ~
} else if(name) { // beru val() z name (edit)
var text = $('[name="'+name+'"]').val();
text = text.replace(/(\r\n|\n|\r)/gm, '~'); // entery nahradíme ~
} else {
alert("CHYBA: odkaz nemá definován zdroj obsahu");
}
//console.log(text);
//text = text.replace(/\+/gm, '$');
//console.log(name);
//console.log(text);
href = href + '&text=' + encodeURI(toUTF8Array(text));
//console.log(href);
$(this).attr('href', href);
});
// zrušíme href při opuštění
$('.zsform-test').on("mouseleave", function() {
$(this).removeAttr('href');
});
/**
* WIN 2 UTF
**/
function toUTF8Array(str) {
var utf8 = [];
for (var i=0; i < str.length; i++) {
var charcode = str.charCodeAt(i);
if (charcode < 0x80) utf8.push(charcode);
else if (charcode < 0x800) {
utf8.push(0xc0 | (charcode >> 6),
0x80 | (charcode & 0x3f));
}
else if (charcode < 0xd800 || charcode >= 0xe000) {
utf8.push(0xe0 | (charcode >> 12),
0x80 | ((charcode>>6) & 0x3f),
0x80 | (charcode & 0x3f));
}
// surrogate pair
else {
i++;
charcode = ((charcode&0x3ff)<<10)|(str.charCodeAt(i)&0x3ff)
utf8.push(0xf0 | (charcode >>18),
0x80 | ((charcode>>12) & 0x3f),
0x80 | ((charcode>>6) & 0x3f),
0x80 | (charcode & 0x3f));
}
}
return utf8;
}
function fromUTF8Array($) {
return eval("String.fromCharCode(" + $ + ")");
}
function fromUTF8Array(data) { // array of bytes
var str = '',
i;
for (i = 0; i < data.length; i++) {
var value = data[i];
if (value < 0x80) {
str += String.fromCharCode(value);
} else if (value > 0xBF && value < 0xE0) {
str += String.fromCharCode((value & 0x1F) << 6 | data[i + 1] & 0x3F);
i += 1;
} else if (value > 0xDF && value < 0xF0) {
str += String.fromCharCode((value & 0x0F) << 12 | (data[i + 1] & 0x3F) << 6 | data[i + 2] & 0x3F);
i += 2;
} else {
// surrogate pair
var charCode = ((value & 0x07) << 18 | (data[i + 1] & 0x3F) << 12 | (data[i + 2] & 0x3F) << 6 | data[i + 3] & 0x3F) - 0x010000;
str += String.fromCharCode(charCode >> 10 | 0xD800, charCode & 0x03FF | 0xDC00);
i += 3;
}
}
return str;
}
/**
* DYNAMIC DATA TABLES
**/
$('.dynamicdatatables').dataTable( {
"sPaginationType": "full_numbers",
//"bJQueryUI": true,
//"sScrollY": "400px",
//"bPaginate": false,
//"bScrollCollapse": true,
"aaSorting": [[ 0, "desc" ]],
"oLanguage": {
"sUrl": "/system/htc/datatables/czech.txt"
}
});
//*
var sdiak="áäčďéěíĺľňóôőöŕšťúůűüýřžÁÄČĎÉĚÍĹĽŇÓÔŐÖŔŠŤÚŮŰÜÝŘŽ´´ˇ¨";
var bdiak="aacdeeillnoooorstuuuuyrzAACDEEILLNOOOORSTUUUUYRZ ";
function toAscii(txt) {
var tx = "";
for(var p=0;p' : '
';
return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
}
//*
$(function() {
$("[title]" ).tooltip({
content: function() {
var text = $(this).attr('title');
text = nl2br(text);
return text;
},
tooltipClass: "tooltip-title"
});
});
/**/
/**
* CHECKBOX TOGGLE
**/
// pustíme na 1x začátku (mělo by fungovat pro checkbox i radio)
$(':checkbox.toggle, :radio.toggle').show(1, CheckboxToggle);
// chekboxy po kterých následuje jejich toggle div
$(':checkbox.toggle, :radio.toggle').change(CheckboxToggle);
function CheckboxToggle() {
// projedeme všechny imputy a radia stejného jména
var name = $(this).attr('name');
//console.log(name);
$('[name="'+name+'"]').each(function() {
if($(this).is('input:checkbox, input:radio')) {
//console.log((this));
var elem = '#toggle-' + $(this).attr('id');
//console.log(elem);
if($(this).is(':checked') ){
$(elem).css('padding-left', '20px');
$(elem).slideDown(100);
} else {
$(elem).slideUp(100);
};
};
});
};
/**
* DIV TOGGLE
**/
var iPlus = '';
var iMinus = '';
$("div.toggle").siblings().toggle(100);
//var html = $("div.toggle").html();
$("div.toggle").prepend(' ');
$("div.toggle").find("span:first-of-type").html(iPlus);
$("div.toggle").click(function() {
var html = $(this).find("span:first-of-type").html();
if(html) {
if(trim(html) == trim(iMinus)) {
html = iPlus;
} else {
html = iMinus;
};
$(this).siblings().toggle(100);
$(this).find("span:first-of-type").html(html);
//console.log(iMinus);
};
});
/**
* LI TREE
**/
// zatržítka u souvisejících větví
$("ul.ullitree input:checkbox").click(function() {
//console.log($(this));
if($(this).prop("checked")) {
$(this).parent().find('input:checkbox').prop("checked", true);
} else {
$(this).parent().find('input:checkbox').prop("checked", false);
};
ParentCheck($(this));
});
// řešení zatržítka u nadřazené větve
function ParentCheck(box) {
var parent = box.parent().parent().parent();
//console.log(parent);
if(parent.is('li')) {
var elem = parent.find('input.TreeBox').first();
if(elem.prop("checked") && !box.prop("checked")) {
elem.prop("checked", false);
} else if(!elem.prop("checked") && box.prop("checked")) {
// zjistíme všechna podřízená zatržítka
var allchecked = true;
var pocet = 0;
elem.parent().find('input.TreeBox').each(function() {
if(!$(this).prop("checked") && pocet>0){ // první je vždy ten nezatržený
allchecked = false;
};
pocet++;
});
if(allchecked) {
elem.prop("checked", true);
};
};
ParentCheck(elem);
};
}
/**
* SLIDER
**/
// NUMBER CZ
var numberCZ = function(val, format) {
if(val) {
var val = val.toString().replace(/,/ig, '.');
var val = val.replace(/ */g, '');
var x = val.split('.');
if(x[1]) {
var dec = x[1].length;
} else {
var dec = 0;
};
if(val) {
if(format) {
var val = number_format(val, dec, ',', ' ');
} else {
var val = number_format(val, dec, ',', '');
};
};
};
//console.log('CZ: '+val);
return val;
};
// NUMBER EN
var numberEN = function(val) {
if(val==',') {
val = '0,';
} else if(val) {
var val = val.replace(/,/ig, '.');
var val = val.replace(/ */g, '');
val = parseFloat(val);
}
//console.log('EN: '+val+'('+typeof(val)+')');
return val;
};
// find-slider
$(".find-slider").each(function() {
var minx = parseFloat($(this).attr('data-min'));
var maxx = parseFloat($(this).attr('data-max'));
var step = parseFloat($(this).attr('data-step'));
var vals =[parseFloat($(this).attr('data-setmin')), parseFloat($(this).attr('data-setmax')) ];
var format = $(this).attr('data-format') * 1 || 0; // formátovat čísla?
//console.log(maxx);
$(this).slider({
range: true,
min: minx,
max: maxx,
step: step,
values: vals,
slide: function( event, ui ) {
var format = $(this).attr('data-format');
var idx = $(this).attr('id').split('-');
var idi = idx[0] * 1 || 0;
$( "#" + idi + "-od" ).val(numberCZ(ui.values[ 0 ], format)).addClass('x');
$( "#" + idi + "-do" ).val(numberCZ(ui.values[ 1 ], format)).addClass('x');
}
});
});
// správná čísla (nikoli písmena)
$("input.find-slider-value").on('keydown keyup', function(event) {
var k = event.keyCode;
//console.log(k);
if((k>105 || k<96) && k!=8 && k!=46 && k!=35 && k!=36 && k!=37 && k!=39 && k!=13 && k!=188 && k!=110) return false; // jen čísla, delete a backspace + home, end, <- a -> a enter a čárka(188 i 110)
// prověření čísel
var val = numberEN($(this).val());
//console.log(val.toString());
if(val.toString().match(/\./i) && (k==188 || k==110)) { // další čárku nechci
return false;
} else if(val.toString().substr(-1,1)!=',' && (k==188 || k==110)) { // po čárce čekáme na číslo
return true;
} else {
var idx = $(this).attr('id').split('-');
var slider = $('#' +(idx[0] * 1 || 0) + '-slider');
var minx = parseFloat(slider.attr('data-min'));
var maxx = parseFloat(slider.attr('data-max'));
var format = slider.attr('data-format') * 1 || 0; // formátovat čísla?
//console.log('min: '+minx+'('+typeof(minx)+'), max: '+maxx+'('+typeof(maxx)+'), val: '+val+'('+typeof(val)+')');
// větší než max
if(idx[1]=='do' && val>maxx) {
$(this).val(numberCZ(maxx, format));
return false;
};
// větší než hořejšek
var setmax = parseFloat(slider.slider('values',1));
if(idx[1]=='od' && val>setmax) {
$(this).val(numberCZ(setmax, format));
return false;
};
};
});
// správná čísla (formát zápisu)
$("input.find-slider-value").on('keyup', function(event) {
// smazání mnoha nul
var idx = $(this).attr('id').split('-');
var slider = $('#' +(idx[0] * 1 || 0) + '-slider');
var format = slider.attr('data-format') * 1 || 0; // formátovat čísla?
var val = $(this).val();
if(val.toString().substr(-1,1)!=',') {
var val = numberEN(val);
$(this).val(numberCZ(val, format));
};
});
// správná čísla (minimální velikost)
$("input.find-slider-value").on('change blur', function(event) { // blur, protože v IE nefunguje change
var val = numberEN($(this).val());
if(val.toString().substr(-1,1)!=',') {
var idx = $(this).attr('id').split('-');
var slider = $('#' +(idx[0] * 1 || 0) + '-slider');
var minx = parseFloat(slider.attr('data-min'));
var format = slider.attr('data-format') * 1 || 0; // formátovat čísla?
// menší než min
if(idx[1]=='od' && val0) {
$(this).val(numberCZ(minx, format));
return false;
};
//menší než spodek
var setmin = parseFloat(slider.slider('values',0));
//console.log(setmin+'-'+val);
if(idx[1]=='do' && val0) {
$(this).val(numberCZ(setmin, format));
return false;
};
};
});
// posun dle čísla
$("input.find-slider-value").on('keyup change', function(event) {
//console.log($(this).val());
var val = numberEN($(this).val());
var idx = $(this).attr('id').split('-');
var ids = '#' +(idx[0] * 1 || 0) + '-slider';
var key = 0;
if(idx[1]=='do') {
key = 1;
var setmin = parseFloat($(ids).slider('values', 0));
if(valDO KONTEJNERU LZE ODKLÁDAT:
nic",
trigger: 'click',
theme: 'TooltipDark',
//theme: 'TooltipBorder',
closeButton: 'box'
});
*/
/*
$('small').each(function() {
$(this).jBox('Tooltip', {
content: function() {
var text = 'x'.$(this).attr('title');
text = nl2br(text);
console.log(text);
text = "" + text + "
";
return text;
}
});
});
/**/
/*
new jBox('Tooltip', {
attach: jQuery('.gprice'),
theme: 'TooltipBorder',
trigger: 'click',
title: 'Hello, I\'m a tooltip!',
content: 'You have many options to change appearance and behavior',
animation: 'move',
pointer: 'left:80',
closeOnMouseleave: false,
closeButton: 'box'
});
*/
/**
* eGranty
**/
// načtení přehledu
var castka = $('span#castka').html();
if(castka) {castka = castka.replace(/([^\d]+)/g, '')*1 || 0; };
if(castka>0) { grantyTable(); };
// změny v příspěvcích
function grantyNotice(step, value) {
//console.log(step + ': ' + value);
// Změna
var title = '';
var text = '';
var color = 'blue';
if(step=='disable') {
color = 'red';
title = 'Zamítnutí';
if(value) {
text = 'úspora: ' + printNr(value) + ',- Kč';
} else {
text = 'celkové prostředky bezezměn';
};
} else if(step=='enable') {
color = 'yellow';
title = 'Zrušení zamítnutí';
text = 'nyní můžete žádost ohodnotit';
} else if(step=='new') {
color = 'green';
title = 'Nový příspěvek';
text = 'navržení příspěvku: ' + printNr(value) + ',- Kč';
} else if(step=='up') {
color = 'green';
title = 'Navýšení příspěvku';
text = 'příspěvek navýšen o: ' + printNr(value) + ',- Kč';
} else if(step=='del') {
color = 'black';
title = 'Zrušení příspěvku';
text = 'úspora: ' + printNr(value) + ',- Kč';
text += '
nezapomeňte žádost zamítnout';
} else if(step=='down') {
color = 'yellow';
title = 'Snížení příspěvku';
text = 'příspěvek snížen o: ' + printNr(value) + ',- Kč';
} else if(step=='body') {
color = 'green';
title = 'Zadání bodového hodnocení';
text = 'přiděleno ' + printNr(value) + ' bodů';
} else if(step=='body-0') {
color = 'red';
title = 'Zrušení bodového hodnocení';
text = 'přidělené body byly smazány';
} else if(step=='text') {
color = 'blue';
title = 'Změna v textu uložena';
text = 'text: "' + value + '"';
} else if(step=='tema') {
color = 'black';
title = 'ZMĚNA TÉMATU PROVEDENA';
text = 'nové číslo žádosti: ' + value;
} else if(step=='null') {
color = 'black';
title = 'POLOŽKA BEZE ZMĚN';
text = value;
} else if(step=='error') {
color = 'red';
title = 'CHYBA PŘI UKLÁDÁNÍ';
text = value;
};
if(text) {
new jBox('Notice', {
color: color,
maxWidth: '300px',
autoClose: 30000, // 30 sec
animation: {open:'slide:top',close:'zoomIn'},
title: title,
//width: '260px',
content: text
});
};
//sleep(1000);
if(value>0) { grantyTable(); }; // pokud je změna
};
// CELKOVÝ PŘEHLED
function grantyTable(text) {
if(text) {
var color = 'red';
var title = 'CHYBA PŘI UKLÁDÁNÍ';
var content = text;
} else {
// Celkový přehled
var castka = $('#castka').html();
var celkem = $('#celkem').html();
var Ncastka = castka.replace(/([^\d]+)/g, '')*1 || 0;
var Ncelkem = celkem.replace(/([^\d]+)/g, '')*1 || 0;
var Nzbyva = Ncastka - Ncelkem;
var zbyva = printNr(Nzbyva);
var color = 'blue';
var title = 'CELKOVÝ PŘEHLED';
var content = "" + castka + ",- Kč
" + celkem + ",- Kč
" + zbyva + ",- Kč
"
+ "k dispozici:
rozděleno:
zbývá:
";
if(Nzbyva<0) color = 'red';
if(Nzbyva==0) color = 'green';
if(Ncelkem==0) color = 'black';
};
new jBox('Notice', {
color: color,
autoClose: false,
closeButton: 'box',
stack: false,
animation: 'tada',
title: title,
width: '260px',
attributes: {x:'right',y:'bottom'},
//*
content: content
/*/
content: ""
+ "k dispozici: | " + castka + ",- Kč |
"
+ "rozděleno: | " + celkem + ",- Kč |
"
+ "zbývá: | " + zbyva + ",- Kč |
"
+ "
"
/**/
});
};
// zatržítko zamítnuto
$('.gcheck').click(function() {
//var idx = $(this).attr('id').replace(/check-/i, ''); už nepotřebuji
if($(this).is(':checked') ){
$(this).parents('tr.gtr').addClass('gtr_del');
$(this).siblings('.gbody, .gprice').prop('disabled', true);
$(this).siblings('.gbody, .gprice').val('');
$(this).parents('tr.gtr').removeClass('gtr_ok');
} else {
$(this).parents('tr.gtr').removeClass('gtr_del');
$(this).siblings('.gbody, .gprice').prop('disabled', false);
// pozadí řádku dle bodů
var bodysum = 0;
$(this).siblings('.gbody').each(function() {
bodysum += $(this).val() * 1;
});
if(bodysum > 0) {
$(this).parents('tr.gtr').addClass('gtr_ok');
} else {
$(this).parents('tr.gtr').removeClass('gtr_ok');
};
};
});
// OMEZENÍ NA ČÍSLA
$('.gprice, .gbody').on('keydown', function(event) {
var k = event.keyCode;
//console.log(k);
if((k>=65 && k<=90) || (k>=106 && k<=222)) return false; // NE písmena a značky
});
// plynulé zadávání navržené částky
$('.gprice').on('keyup', function() { // keyup
var val = $(this).val();
var num = val.replace(/\s/g, '')*1 || 0;
if(num > 0) {
$(this).parents('tr.gtr').addClass('gtr_ok');
if(num!==val) { $(this).val(num); }; // přepíšu tu nulu na začátku
} else {
$(this).parents('tr.gtr').removeClass('gtr_ok');
//$(this).val('');
};
var suma = grantySum(val);
});
// plynulé zadávání bodů
$('.gbody').on('keyup', function() { // keyup
var val = $(this).val();
var num = val.replace(/\s/g, '')*1 || 0;
var maximum = $(this).attr('data-max');
if(maximum && maximum 0) {
if(num!==val) { $(this).val(num); }; // přepíšu tu nulu na začátku
};
var bodysum = num;
$(this).siblings('.gbody').each(function() {
bodysum += $(this).val() * 1;
});
if(bodysum > 0) {
$(this).parents('tr.gtr').addClass('gtr_ok');
} else {
$(this).parents('tr.gtr').removeClass('gtr_ok');
};
});
// přepočítání součtů pod tabulkou - PRŮBĚŽNÉ
function grantySum(idx) {
var items = $('.gprice');
//console.log(items);
var suma = 0;
$.each(items, function (key, val) {
suma += $(this).val()*1;
});
var castka = $('#castka').html();
castka = castka.replace(/([^\d]+)/g, '')*1 || 0;
var zbyva = castka - suma;
$('#zbyva').html(printNr(zbyva));
$('#celkem').html(printNr(suma));
return suma;
};
// ZPRACOVÁNÍ PŘÍSPĚVKŮ - UKLÁDÁNÍ AJAXEM;
$('[data-gajax]').on('change', function() {
//console.log(this);
var name = $(this).attr('name');
var type = $(this).attr('type');
//console.log(name);
if(type=='checkbox') {
if($(this).is(':checked') ){
var val = 1;
} else {
var val = '';
}
} else {
var val = $(this).val();
};
var a_link = $(this).attr('data-gajax') + '&name=' + name + '&v=' + val;
var url = "/system/misc/granty_ajax.php?" + a_link;
//console.log(url);
// AJAX GRANTY
//$.prettyLoader.show(); hází chybu
$.ajax({url: url}).done(function(data) {
//data = $.parseJSON(data); // není nutné pokud předtím nevolám fci $.ajaxSetup(
//console.log(data);
//$.prettyLoader.hide(); hází chybu
if(data) {
var error = data.error;
var text = data.text;
var name = data.name;
var elem = "[name='" + name + "']";
} else {
var error = 'chybná odpověď serveru';
};
if(error) {
grantyNotice('error', error);
} else if($.type(data)=='string') {
grantyNotice('error', data);
} else if(!text) {
grantyNotice('error', 'neznámá chyba');
} else if(data.change<1) {
grantyNotice('null', 'stejná hodnota se v DB již nachází');
} else if(0<('___'+name).search("Navrh")) { // doplním znaky na začátku, aby hledaný řetězec byl na vyšších místech
// přepočet částek - příprava pro Notice
var novy = $(elem).val()*1 || 0;
var stary = $(elem).attr('data-oldvalue')*1 || 0;
var value = 0;
var step = '';
$(elem).attr('data-oldvalue', novy);
if(novy && !stary) {
step = 'new';
value = novy;
} else if(!novy && stary) {
step = 'del';
value = stary;
} else if(novy > stary) {
step = 'up';
value = novy - stary;
} else if(novy < stary) {
step = 'down';
value = stary - novy;
};
if(step) grantyNotice(step, value);
//console.log('$(".gprice").on("change") ' + stary + '->' + novy + ' (' + value + ')');
} else if(0===name.search("Kriterium")) {
if(data.new>0) {
grantyNotice('body', data.new);
} else {
grantyNotice('body-0', 0);
};
} else if(0===name.search("Zamitnuti")) {
// notice zamítnutí spočítání úspory
var idx = $(elem).attr('id').replace(/check-/i, '');
if($(elem).is(':checked') ){
var value = $('#price-' + idx).val();
var step = 'disable';
} else {
$('#price-' + idx).prop('disabled', false);
var value = 0;
var step = 'enable';
};
$('#price-' + idx).val('');
$('#price-' + idx).attr('data-oldvalue', 0);
var suma = grantySum(idx);
grantyNotice(step,value);
} else if(0===name.search("Tema")) {
// změna tématu
$('#nr-' + data.id).html(data.new);
grantyNotice('tema', data.new);
} else {
// změny v textu
grantyNotice('text', data.new);
};
}).fail(function( event, request, settings ) {
$.prettyLoader.hide();
grantyNotice('error', 'komunikace se serverem selhala...');
/*
console.log(event);
console.log(request);
console.log(settings);
/**/
});
});
/**
* SELECT2
**/
// nastavení šířky selectu2 dle položek uvnitř
function select2_setWidth(selname, lenIn, minLen) {
var len = lenIn;
if(len==0) { len = 26 }; // pro 'Nenalezeny žádné položky'
if(len<20) { len = 20 }; // původně 18
if(len==999) {
$(selname).addClass('s2spin');
len = 26;
} else {
$(selname).removeClass('s2spin');
};
if(minLen && len' + len + '/minLen:' + minLen);
len *= 8.2;
len = Math.round(len);
if(len>600) {
var width = '80%';
} else {
var width = len + 'px';
};
var id = '#s2id_' + $(selname).attr('id');
var style = $(id).attr('style');
style = style.replace(/width:\s?[0-9px%]+/i, 'width: ' + width);
$(id).attr('style',style);
//console.log('fce:select2_setWidth(), id:' + id + ' width=' + width + ' style= ' + style);
}
// rekurzivní funkce pro kaskádu select2 při CS
function CS_next(nx) {
var next = $(this).attr('data-cs-next');
if(!next) {
var next = nx;
//console.log('odkaz: ' + nx + ' type: ' + $.type(next));
var data = false; // když to volám z funkce, tak stejně žádná nejsou
} else {
//console.log('next: ' + next + ' type: ' + $.type(next));
var data = $(this).select2('data');
};
//console.log(next);
//console.log('typ:' + $.type(next));
//console.log('fce:CS_next(), next:' + next);
if(next && $.type(next)=='string') {
var next_name = "[name='New[" + next + "]']";
// tak jako tak smažeme původní výběr i všechna data
$(next_name).select2("val", "");
$(next_name).html('\n');
//console.log(data);
if(data) {
var csdata = data.id;
$(next_name).attr("data-cs-data",csdata);
$(next_name).select2("enable", true);
$(next_name).select2({"placeholder":'--- vyber ---'});
$(next_name).attr("title",'');
select2_setWidth(next_name, 999); // nastavení šířky selectu na základ + aby se točil spin
// NEXT OPTIONS
select2_ajaxCS(next_name);
} else {
$(next_name).removeAttr("data-cs-data");
$(next_name).select2("enable", false);
$(next_name).select2({"placeholder":'^^^ vyber ^^^'});
$(next_name).attr("title",'vyberte nejprve nadřazenou položku');
select2_setWidth(next_name, 0); // nastavení šířky selectu dle počtu znaků
};
var next2 = $(next_name).attr('data-cs-next');
if(next2) { CS_next(next2) };
};
};
// načtení položek selectu2 pro CS
function select2_ajaxCS(selname) {
var a_key = $(selname).attr('data-cs-prev');
var a_val = $(selname).attr('data-cs-data');
var a_link = $(selname).attr('data-link') + '&k=' + a_key + '&v=' + a_val;
var url = "/system/ajax_select.php?" + a_link;
//console.log(url);
$.ajax({url: url}).done(function(data) {
//data = $.parseJSON(data); // není nutné pokud předtím nevolám fci $.ajaxSetup(
//console.log(data);
var error = data.error;
if(error) { alert(error); };
select2_setWidth(selname, data.maxlen); // nastavení šířky selectu dle počtu znaků
if(data.count) {
$.each(data['item'], function (key, val) {
$(selname).append('');
});
}
});
};
// profil jakýkoli Select
$(".select2_").select2({ // select
placeholder: "--- vyber ---",
minimumResultsForSearch: 20, // Infinity
allowClear: false
}).on('change', CS_next);
$(".select2_X").select2({ // select X (clearable verze)
placeholder: "--- vyber ---",
minimumResultsForSearch: 20, // Infinity
allowClear: true
}).on('change', CS_next);
$(".select2_CSdisable").select2({ // select X
placeholder: "^^^ vyber ^^^",
minimumResultsForSearch: 20, // Infinity
allowClear: true
}).on('change', CS_next); // tady to musim
// select+char má povinný znak
$(".select2_char").select2({ // select+char
placeholder: "--- vyber ---",
minimumInputLength: 1,
allowClear: false
}).on('change', CS_next); // tady to musim
$(".select2_charX").select2({ // select+char X
placeholder: "--- vyber ---",
minimumInputLength: 1,
allowClear: true
}).on('change', CS_next); // tady to musim
// select+menu se nezavírá při výběru
$(".select2_menu").select2({ // select+menu
placeholder: "--- vyber ---",
allowClear: false,
closeOnSelect: false
});
$(".select2_menuX").select2({ // select+menu X
placeholder: "--- vyber ---",
allowClear: true,
closeOnSelect: false
});
// základní nastavení pro SELECT2 AJAX
var select2_ajax = { // select jakýkoli delší než x položek
placeholder: "--- vyber ---",
minimumInputLength: 2,
/* voleno lokálně přes $.extend():
allowClear: true,
width: "80%",
multiple: true,
/**/
ajax: {
url: function(element, callback){
//var a_name = $(this).attr('name');
var a_link = $(this).attr('data-link');
var url = "/system/ajax_select.php?" + a_link;
//console.log(url);
return url;
},
dataType: 'json',
quietMillis: 500,
data: function(term, page) {
return {
q: term, // search term
page: page
};
},
results: function(data, page, query) {
//data = $.parseJSON(data);
if(data!=null) {
var error = data.error;
if(error) { alert(error); };
var more = (page * 20) < data.total_count;
//console.log(data);
//console.log(query.element.attr('multiple'));
if(query.element.attr('multiple')!='multiple') {
select2_setWidth('#'+query.element.attr('id'), data.maxlen, 36);
};
return { results: data.item, more: more };
};
},
cache: true
},
initSelection: function(element, callback) {
var id = $(element).val();
var a_link = $(element).attr('data-link');
var url = "/system/ajax_select.php?" + a_link + '&v=' + id;
//console.log(url);
//console.log(id);
if(id !== "") {
$.ajax(url, {dataType: "json"}).done(function(data) {
//console.log(data.item);
//console.log($(element).attr('multiple'));
var error = data.error;
if(error) { alert(error); };
if($(element).attr('multiple')=='multiple') { // multiple
callback(data.item);
} else { // single
select2_setWidth('#'+element.attr('id'), data.maxlen, 36);
callback(data.item[0]);
};
});
} else {
select2_setWidth('#'+element.attr('id'), 0, 36);
};
}
};
// běžný ajax
$(".select2_ajax").select2($.extend(true, {
width: 'element'
},select2_ajax));
// ajax s možností mazání X
$(".select2_ajaxX").select2($.extend(true, {
allowClear: true,
width: 'element'
},select2_ajax));
// multiple ajax
$(".select2_ajax_multiple").select2($.extend(true, {
multiple: true,
width: "80%"
},select2_ajax));
$(".select2_ajax_multipleX").select2($.extend(true, {
allowClear: true,
multiple: true,
width: "80%"
},select2_ajax));
// vybrat VŠECHNY položky u multiple select2
$(".s2_all").click(function(){
var id = $(this).attr('data-for');
if($(this).is(':checked') ){
$("#" + id + " > option").prop("selected","selected");
$("#" + id).trigger("change");
}else{
$("#" + id + " > option").removeAttr("selected");
$("#" + id).trigger("change");
}
});
// SELECT2 pro stránku find
// profil jakýkoli Select Find - lokální verze
$(".select2_f").select2({
placeholder: "--- nerozhoduje ---",
minimumResultsForSearch: 20, // Infinity
allowClear: true
});
// profil Zadavatel/Editor - lokální a ajaxová verze
$(".select2_ze0").select2({
placeholder: "--- nerozhoduje ---",
minimumResultsForSearch: 20, // Infinity
allowClear: true,
width: "element"
});
$(".select2_zeX").select2({
placeholder: "--- nerozhoduje ---",
allowClear: true,
minimumInputLength: 2,
width: "80%",
ajax: {
url: function(element, callback){
//var a_name = $(this).attr('name');
var a_link = $(this).attr('data-link');
var url = "/system/ajax_select.php?" + a_link;
//console.log(url);
return url;
},
dataType: 'json',
quietMillis: 500,
data: function (term, page) {
return {
q: term, // search term
page: page
};
},
results: function (data, page) {
var more = (page * 20) < data.total_count;
//console.log(data);
var error = data.error;
if(error) { alert(error); };
return { results: data.item, more: more };
},
cache: true
},
initSelection: function(element, callback) {
var id = $(element).val();
var a_link = $(element).attr('data-link');
var url = "/system/ajax_select.php?" + a_link + '&v=' + id;
//console.log(url);
//console.log(id);
if(id !== "") {
$.ajax(url, {dataType: "json"}).done(function(data) {
var error = data.error;
if(error) { alert(error); };
callback(data.item[0]);
});
}
}
});
// Výjímky
$(".select2_").on("change", function(e) { // změna v selectu
var tr_id = $(this).parents("tr").attr("id");
//console.log(tr_id);
//console.log(e.val);
if(tr_id=='TbEditTr1787') { // GrantyZadosti Tema
var form = $(this).parents("form");
var deftema = form.find("[name='deftema']").attr('value');
var AutoReload = form.find("[name='AutoReloadForm']").attr('value'); // smím dělat reload
//console.log(form);
//console.log('AutoReload: '+AutoReload+', deftema: '+deftema+', e.val: '+e.val);
if(AutoReload && deftema!=e.val) { // jen pokud se témata skutečně liší
form.find("[name='ReloadForm']").attr('value','1');
validsubmit = true;
form.submit();
};
};
});
/**
* CLEARABLE INPUT
**/
//$('input.clearable').addClass('x');
function tog(v){return v?'addClass':'removeClass';}
$(document).on('input change', '.clearable', function(){
$(this)[tog(this.value)]('x');
}).on('mousemove', '.x', function( e ){
$(this)[tog(this.offsetWidth-18 < e.clientX-this.getBoundingClientRect().left)]('onX');
}).on('click', '.onX', function(){
$(this).removeClass('x onX').val('').change();
});
/**
* Timepicker JQuery UI
**/
/* Czech initialisation for the timepicker plugin */
/* Written by David Spohr (spohr.david at gmail). */
jQuery(function($){
$.timepicker.regional['cs'] = {
hourText: 'Hodiny',
minuteText: 'Minuty',
amPmText: ['AM', 'PM'] ,
closeButtonText: 'Zavřít',
nowButtonText: 'Nyní',
deselectButtonText: 'Odoznačit' }
$.timepicker.setDefaults($.timepicker.regional['cs']);
});
$('input.timepicker').timepicker({
beforeShow: function(text, inst) {
setTimeLimits($(this));
},
showPeriodLabels: false
}).on('blur', function() { check_time($(this)); });
// vyhledávání OD
$('input.find-timepicker-from').timepicker({
beforeShow: function(text, inst) {
var id = $(this).attr('tabindex');
var to = $("#" + id + "-do").val();
if(to) {
var pole = to.split(':');
var h = pole[0] * 1 || 0;
var m = pole[1] * 1 || 0;
$(this).timepicker('option', {
maxTime: {
hour: h,
minute: m
}
});
};
},
showPeriodLabels: false
}).on('blur', function() { check_time($(this)); });
// vyhledávání DO
$('input.find-timepicker-to').timepicker({
beforeShow: function(text, inst) {
var id = $(this).attr('tabindex');
var from = $("#" + id + "-od").val();
if(from) {
var pole = from.split(':');
var h = pole[0] * 1 || 0;
var m = pole[1] * 1 || 0;
$(this).timepicker('option', {
minTime: {
hour: h,
minute: m
}
});
};
$(this).timepicker( "option", "mintime", from );
},
showPeriodLabels: false
}).on('blur', function() { check_time($(this)); });
/**
* KALENDÁŘ JQuery UI
**/
// nastavení
var calendarCSlocalization = {
dateFormat: "dd.mm.yy",
firstDay: 1,
buttonText: "Choose",
dayNames: [ "Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota" ],
dayNamesMin: [ "Ne", "Po", "Út", "St", "Čt", "Pá", "So" ],
monthNames: [ "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec" ],
changeYear: true,
beforeShow: function(text, inst) {
setDateLimits($(this));
},
onClose: function(sDate) {
if(this.value == '') {$(this).removeClass('x')}
else {$(this).addClass('x')};
}
};
// nastavení
$.datepicker.setDefaults(calendarCSlocalization);
// univerzální do editu
$('input.datepicker').datepicker().on('blur', function() { check_date($(this)); });
// vyhledávání OD
$('input.find-datepicker-from').datepicker({
beforeShow: function(text, inst) {
var id = $(this).attr('tabindex');
var to = $("#" + id + "-do").val();
$(this).datepicker( "option", "maxDate", to );
}
}).on('blur', function() { check_date($(this)); });
// vyhledávání DO
$('input.find-datepicker-to').datepicker({
beforeShow: function(text, inst) {
var id = $(this).attr('tabindex');
var from = $("#" + id + "-od").val();
$(this).datepicker( "option", "minDate", from );
}
}).on('blur', function() { check_date($(this)); });
}); // END of Document Ready Function