/* 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 var text = $('#'+id).html(); } else if(name) { // beru val() z name var text = $('[name="'+name+'"]').val(); } else { alert("CHYBA: odkaz nemá definován zdroj obsahu"); } text = text.replace(/(\r\n|\n|\r)/gm, '~'); 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 = '[ rozbalit detail ] '; var iMinus = '[ zabalit detail ] '; $("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