403Webshell
Server IP : 37.9.174.138  /  Your IP : 216.73.216.117
Web Server : Apache
System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64
User : ftpuser ( 1001)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/ttjs.cz/dev/lib/custom/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/ttjs.cz/dev/lib/custom/functions.js
(function ($, window, document) {
    $.fn.goTop = function (options) {
        var defaults = {
            scrollTop: 100,
            scrollSpeed: 1000,
            fadeInSpeed: 1000,
            fadeOutSpeed: 500
        };
        var options = $.extend(defaults, options);
        var $this = $(this);
        $(window).on('scroll', function () {
            if ($(window).scrollTop() > options.scrollTop) {
                $this.fadeIn(options.fadeInSpeed);
            } else {
                $this.fadeOut(options.fadeOutSpeed);
            }
        });
        $this.on('click', function () {
            $('html,body').animate({
                'scrollTop': 0
            }, options.speed);
        });
    };
})(jQuery, window, document);

/**
 * open loading window
 * 
 * @param {string}   text           Text in loading window.
 * 
 */
function showLoadingWindow(text) {
    if (text === undefined) {
        text = "Prebieha spracovanie...";
    }
    swal({
        title: text,
        text: "<div class='loader'></div>",
        html: true,
        showConfirmButton: false
    });
}

/**
 * open loading window
 * 
 * @param {string}   text           Text in loading window.
 * @param {string}   text           Message in loading window.
 * 
 */
function showLoadingWindowMessage(text, message) {
    swal({
        title: text,
        text: message + "<div class='loader'></div>",
        html: true,
        showConfirmButton: false
    });
}

function closeSwal() {
    swal({
        title: "",
        timer: 0,
        animation: false
    });
}

function copyHtmlAndClearHtmlVars(template, target, callback, defaultValues) {
    if (defaultValues === undefined) {
        defaultValues = {};
    }
    $(target).html("<div class='loader'></div>");
    $(target).html(clearVars($(template).html(), defaultValues));
    if (typeof callback === 'function') {
        callback();
    }
}

function clearVars(template, defaultValues) {
    var patt = /\{([^}]+)\}/g;
    return template.replace(patt, function (_, key) {
        if (defaultValues[key] === undefined) {
            return "";
        }
        return defaultValues[key];
    });
}

/**
 * Set values to html inputs and replaces variables in HTML tagged {{{var}}}
 * 
 * @param {string}   template       Source element selector.
 * @param {string}   target         Target element selector. If is false, data will bind to source otherwise template element will be copied into target selector.
 * @param {object}   actionData     Data object with paramaters for ajax request.
 * @param {string}   url            Ajax request endpoint.
 * @param {object}   additionalData Data object to merge with ajax response data for binding.
 * @param {function} callback       Function called after data bind. First paramater passed to function is reponse data object merged with additional data object.
 * 
 */
function bindToHtml(template, target, actionData, url, additionalData, callback, customLoader) {
    if (url === undefined || url === false) {
        if (template !== false) {
            $(target).html(renderHtmlBind($(template).html(), additionalData));
        }

        $("body").removeClass("loaded");

        $.each(additionalData, function (index, element) {
            if (jQuery.type(element) !== "object" && jQuery.type(element) !== "array") {
                if ($(target + " [name='" + index + "']").length !== 0) {
                    var targetInput = $(target + " [name='" + index + "']");
                    if (targetInput.attr("type") === "checkbox" && !targetInput.hasClass("edit-mode-switch")) {
                        if (element == targetInput.val()) {
                            targetInput.attr('checked', 'checked');
                        }
                    } else {
                        targetInput.is("textarea") ? targetInput.html(element) : targetInput.val(element);
                    }
                }
            } else {
                $.each(element, function (index2, element2) {
                    if ($(target + " [name='" + index + "[]'][value='" + index2 + "']").length !== 0) {
                        $(target + " [name='" + index + "[]'][value='" + index2 + "']").prop("checked", true);
                    } else if ($(target + " [name='" + index + "[]'][value='" + element2 + "']").length !== 0) {
                        $(target + " [name='" + index + "[]'][value='" + element2 + "']").prop("checked", true);
                    }
                });
            }
            if (additionalData.state !== "undefined") {
                $(target + " [type='checkbox'][name='state']").val("DISABLED");
                $(target + " [type='hidden'][name='state']").val("ACTIVE");
                if (additionalData.state !== "ACTIVE") {
                    $(target + " [type='checkbox'][name='state']").prop("checked", true);
                }
            }
        });

        if (typeof callback === 'function') {
            callback(additionalData);
        }
        $("body").addClass("loaded");
    } else {
        ajax(url, 'POST', actionData, function (response) {
            var mergedData = Object.assign(response.data, additionalData);
            if (template !== false) {
                $(target).html(renderHtmlBind($(template).html(), mergedData));
            }
            $.each(mergedData, function (index, element) {
                if (jQuery.type(element) !== "object" && jQuery.type(element) !== "array") {
                    if ($(target + " [name='" + index + "']").length !== 0) {
                        var targetInput = $(target + " [name='" + index + "']");
                        if (targetInput.attr("type") === "checkbox" && !targetInput.hasClass("edit-mode-switch")) {
                            if (element == targetInput.val()) {
                                targetInput.attr('checked', 'checked');
                            }
                        } else {
                            targetInput.is("textarea") ? targetInput.html(element) : targetInput.val(element);
                        }
                    }
                } else {
                    $.each(element, function (index2, element2) {
                        if ($(target + " [name='" + index + "[]'][value='" + index2 + "']").length !== 0) {
                            $(target + " [name='" + index + "[]'][value='" + index2 + "']").prop("checked", true);
                        } else if ($(target + " [name='" + index + "[]'][value='" + element2 + "']").length !== 0) {
                            $(target + " [name='" + index + "[]'][value='" + element2 + "']").prop("checked", true);
                        }
                    });
                }
            });
            if (mergedData.state !== "undefined") {
                $(target + " [type='checkbox'][name='state']").val("DISABLED");
                $(target + " [type='hidden'][name='state']").val("ACTIVE");
                if (mergedData.state !== "ACTIVE") {
                    $(target + " [type='checkbox'][name='state']").prop("checked", true);
                }
            }
            if (typeof callback === 'function') {
                callback(mergedData);
            }
        }, false, false, true, customLoader);
    }
}

function renderHtmlBind(template, data) {
    data.remover = "";
    var patt = /\{\{\{([^}]+)\}\}\}/g;
    var patt2 = /\-\-\-([^-]+)\-\-\-/g;

    return template.replace(patt, function (_, key) {
        if (data[key] === null || data[key] === undefined) {
            return "";
        }
        return data[key];

    }).replace(patt2, function (_, key) {
        if (data[key] === null || data[key] === undefined) {
            return "";
        }
        return data[key];
    });
}


// call this before showing SweetAlert
function fixBootstrapModal() {
    var modalNode = document.querySelector('.modal[tabindex="-1"]');
    if (!modalNode)
        return;
    modalNode.removeAttribute('tabindex');
    modalNode.classList.add('js-swal-fixed');
}

// call this before hiding SweetAlert (inside done callback)
function restoreBootstrapModal() {
    var modalNode = document.querySelector('.modal.js-swal-fixed');
    if (!modalNode)
        return;
    modalNode.setAttribute('tabindex', '-1');
    modalNode.classList.remove('js-swal-fixed');
}

var Latinise = {};
Latinise.latin_map = {"Á": "A", "Ă": "A", "Ắ": "A", "Ặ": "A", "Ằ": "A", "Ẳ": "A", "Ẵ": "A", "Ǎ": "A", "Â": "A", "Ấ": "A", "Ậ": "A", "Ầ": "A", "Ẩ": "A", "Ẫ": "A", "Ä": "A", "Ǟ": "A", "Ȧ": "A", "Ǡ": "A", "Ạ": "A", "Ȁ": "A", "À": "A", "Ả": "A", "Ȃ": "A", "Ā": "A", "Ą": "A", "Å": "A", "Ǻ": "A", "Ḁ": "A", "Ⱥ": "A", "Ã": "A", "Ꜳ": "AA", "Æ": "AE", "Ǽ": "AE", "Ǣ": "AE", "Ꜵ": "AO", "Ꜷ": "AU", "Ꜹ": "AV", "Ꜻ": "AV", "Ꜽ": "AY", "Ḃ": "B", "Ḅ": "B", "Ɓ": "B", "Ḇ": "B", "Ƀ": "B", "Ƃ": "B", "Ć": "C", "Č": "C", "Ç": "C", "Ḉ": "C", "Ĉ": "C", "Ċ": "C", "Ƈ": "C", "Ȼ": "C", "Ď": "D", "Ḑ": "D", "Ḓ": "D", "Ḋ": "D", "Ḍ": "D", "Ɗ": "D", "Ḏ": "D", "Dz": "D", "Dž": "D", "Đ": "D", "Ƌ": "D", "DZ": "DZ", "DŽ": "DZ", "É": "E", "Ĕ": "E", "Ě": "E", "Ȩ": "E", "Ḝ": "E", "Ê": "E", "Ế": "E", "Ệ": "E", "Ề": "E", "Ể": "E", "Ễ": "E", "Ḙ": "E", "Ë": "E", "Ė": "E", "Ẹ": "E", "Ȅ": "E", "È": "E", "Ẻ": "E", "Ȇ": "E", "Ē": "E", "Ḗ": "E", "Ḕ": "E", "Ę": "E", "Ɇ": "E", "Ẽ": "E", "Ḛ": "E", "Ꝫ": "ET", "Ḟ": "F", "Ƒ": "F", "Ǵ": "G", "Ğ": "G", "Ǧ": "G", "Ģ": "G", "Ĝ": "G", "Ġ": "G", "Ɠ": "G", "Ḡ": "G", "Ǥ": "G", "Ḫ": "H", "Ȟ": "H", "Ḩ": "H", "Ĥ": "H", "Ⱨ": "H", "Ḧ": "H", "Ḣ": "H", "Ḥ": "H", "Ħ": "H", "Í": "I", "Ĭ": "I", "Ǐ": "I", "Î": "I", "Ï": "I", "Ḯ": "I", "İ": "I", "Ị": "I", "Ȉ": "I", "Ì": "I", "Ỉ": "I", "Ȋ": "I", "Ī": "I", "Į": "I", "Ɨ": "I", "Ĩ": "I", "Ḭ": "I", "Ꝺ": "D", "Ꝼ": "F", "Ᵹ": "G", "Ꞃ": "R", "Ꞅ": "S", "Ꞇ": "T", "Ꝭ": "IS", "Ĵ": "J", "Ɉ": "J", "Ḱ": "K", "Ǩ": "K", "Ķ": "K", "Ⱪ": "K", "Ꝃ": "K", "Ḳ": "K", "Ƙ": "K", "Ḵ": "K", "Ꝁ": "K", "Ꝅ": "K", "Ĺ": "L", "Ƚ": "L", "Ľ": "L", "Ļ": "L", "Ḽ": "L", "Ḷ": "L", "Ḹ": "L", "Ⱡ": "L", "Ꝉ": "L", "Ḻ": "L", "Ŀ": "L", "Ɫ": "L", "Lj": "L", "Ł": "L", "LJ": "LJ", "Ḿ": "M", "Ṁ": "M", "Ṃ": "M", "Ɱ": "M", "Ń": "N", "Ň": "N", "Ņ": "N", "Ṋ": "N", "Ṅ": "N", "Ṇ": "N", "Ǹ": "N", "Ɲ": "N", "Ṉ": "N", "Ƞ": "N", "Nj": "N", "Ñ": "N", "NJ": "NJ", "Ó": "O", "Ŏ": "O", "Ǒ": "O", "Ô": "O", "Ố": "O", "Ộ": "O", "Ồ": "O", "Ổ": "O", "Ỗ": "O", "Ö": "O", "Ȫ": "O", "Ȯ": "O", "Ȱ": "O", "Ọ": "O", "Ő": "O", "Ȍ": "O", "Ò": "O", "Ỏ": "O", "Ơ": "O", "Ớ": "O", "Ợ": "O", "Ờ": "O", "Ở": "O", "Ỡ": "O", "Ȏ": "O", "Ꝋ": "O", "Ꝍ": "O", "Ō": "O", "Ṓ": "O", "Ṑ": "O", "Ɵ": "O", "Ǫ": "O", "Ǭ": "O", "Ø": "O", "Ǿ": "O", "Õ": "O", "Ṍ": "O", "Ṏ": "O", "Ȭ": "O", "Ƣ": "OI", "Ꝏ": "OO", "Ɛ": "E", "Ɔ": "O", "Ȣ": "OU", "Ṕ": "P", "Ṗ": "P", "Ꝓ": "P", "Ƥ": "P", "Ꝕ": "P", "Ᵽ": "P", "Ꝑ": "P", "Ꝙ": "Q", "Ꝗ": "Q", "Ŕ": "R", "Ř": "R", "Ŗ": "R", "Ṙ": "R", "Ṛ": "R", "Ṝ": "R", "Ȑ": "R", "Ȓ": "R", "Ṟ": "R", "Ɍ": "R", "Ɽ": "R", "Ꜿ": "C", "Ǝ": "E", "Ś": "S", "Ṥ": "S", "Š": "S", "Ṧ": "S", "Ş": "S", "Ŝ": "S", "Ș": "S", "Ṡ": "S", "Ṣ": "S", "Ṩ": "S", "Ť": "T", "Ţ": "T", "Ṱ": "T", "Ț": "T", "Ⱦ": "T", "Ṫ": "T", "Ṭ": "T", "Ƭ": "T", "Ṯ": "T", "Ʈ": "T", "Ŧ": "T", "Ɐ": "A", "Ꞁ": "L", "Ɯ": "M", "Ʌ": "V", "Ꜩ": "TZ", "Ú": "U", "Ŭ": "U", "Ǔ": "U", "Û": "U", "Ṷ": "U", "Ü": "U", "Ǘ": "U", "Ǚ": "U", "Ǜ": "U", "Ǖ": "U", "Ṳ": "U", "Ụ": "U", "Ű": "U", "Ȕ": "U", "Ù": "U", "Ủ": "U", "Ư": "U", "Ứ": "U", "Ự": "U", "Ừ": "U", "Ử": "U", "Ữ": "U", "Ȗ": "U", "Ū": "U", "Ṻ": "U", "Ų": "U", "Ů": "U", "Ũ": "U", "Ṹ": "U", "Ṵ": "U", "Ꝟ": "V", "Ṿ": "V", "Ʋ": "V", "Ṽ": "V", "Ꝡ": "VY", "Ẃ": "W", "Ŵ": "W", "Ẅ": "W", "Ẇ": "W", "Ẉ": "W", "Ẁ": "W", "Ⱳ": "W", "Ẍ": "X", "Ẋ": "X", "Ý": "Y", "Ŷ": "Y", "Ÿ": "Y", "Ẏ": "Y", "Ỵ": "Y", "Ỳ": "Y", "Ƴ": "Y", "Ỷ": "Y", "Ỿ": "Y", "Ȳ": "Y", "Ɏ": "Y", "Ỹ": "Y", "Ź": "Z", "Ž": "Z", "Ẑ": "Z", "Ⱬ": "Z", "Ż": "Z", "Ẓ": "Z", "Ȥ": "Z", "Ẕ": "Z", "Ƶ": "Z", "IJ": "IJ", "Œ": "OE", "ᴀ": "A", "ᴁ": "AE", "ʙ": "B", "ᴃ": "B", "ᴄ": "C", "ᴅ": "D", "ᴇ": "E", "ꜰ": "F", "ɢ": "G", "ʛ": "G", "ʜ": "H", "ɪ": "I", "ʁ": "R", "ᴊ": "J", "ᴋ": "K", "ʟ": "L", "ᴌ": "L", "ᴍ": "M", "ɴ": "N", "ᴏ": "O", "ɶ": "OE", "ᴐ": "O", "ᴕ": "OU", "ᴘ": "P", "ʀ": "R", "ᴎ": "N", "ᴙ": "R", "ꜱ": "S", "ᴛ": "T", "ⱻ": "E", "ᴚ": "R", "ᴜ": "U", "ᴠ": "V", "ᴡ": "W", "ʏ": "Y", "ᴢ": "Z", "á": "a", "ă": "a", "ắ": "a", "ặ": "a", "ằ": "a", "ẳ": "a", "ẵ": "a", "ǎ": "a", "â": "a", "ấ": "a", "ậ": "a", "ầ": "a", "ẩ": "a", "ẫ": "a", "ä": "a", "ǟ": "a", "ȧ": "a", "ǡ": "a", "ạ": "a", "ȁ": "a", "à": "a", "ả": "a", "ȃ": "a", "ā": "a", "ą": "a", "ᶏ": "a", "ẚ": "a", "å": "a", "ǻ": "a", "ḁ": "a", "ⱥ": "a", "ã": "a", "ꜳ": "aa", "æ": "ae", "ǽ": "ae", "ǣ": "ae", "ꜵ": "ao", "ꜷ": "au", "ꜹ": "av", "ꜻ": "av", "ꜽ": "ay", "ḃ": "b", "ḅ": "b", "ɓ": "b", "ḇ": "b", "ᵬ": "b", "ᶀ": "b", "ƀ": "b", "ƃ": "b", "ɵ": "o", "ć": "c", "č": "c", "ç": "c", "ḉ": "c", "ĉ": "c", "ɕ": "c", "ċ": "c", "ƈ": "c", "ȼ": "c", "ď": "d", "ḑ": "d", "ḓ": "d", "ȡ": "d", "ḋ": "d", "ḍ": "d", "ɗ": "d", "ᶑ": "d", "ḏ": "d", "ᵭ": "d", "ᶁ": "d", "đ": "d", "ɖ": "d", "ƌ": "d", "ı": "i", "ȷ": "j", "ɟ": "j", "ʄ": "j", "dz": "dz", "dž": "dz", "é": "e", "ĕ": "e", "ě": "e", "ȩ": "e", "ḝ": "e", "ê": "e", "ế": "e", "ệ": "e", "ề": "e", "ể": "e", "ễ": "e", "ḙ": "e", "ë": "e", "ė": "e", "ẹ": "e", "ȅ": "e", "è": "e", "ẻ": "e", "ȇ": "e", "ē": "e", "ḗ": "e", "ḕ": "e", "ⱸ": "e", "ę": "e", "ᶒ": "e", "ɇ": "e", "ẽ": "e", "ḛ": "e", "ꝫ": "et", "ḟ": "f", "ƒ": "f", "ᵮ": "f", "ᶂ": "f", "ǵ": "g", "ğ": "g", "ǧ": "g", "ģ": "g", "ĝ": "g", "ġ": "g", "ɠ": "g", "ḡ": "g", "ᶃ": "g", "ǥ": "g", "ḫ": "h", "ȟ": "h", "ḩ": "h", "ĥ": "h", "ⱨ": "h", "ḧ": "h", "ḣ": "h", "ḥ": "h", "ɦ": "h", "ẖ": "h", "ħ": "h", "ƕ": "hv", "í": "i", "ĭ": "i", "ǐ": "i", "î": "i", "ï": "i", "ḯ": "i", "ị": "i", "ȉ": "i", "ì": "i", "ỉ": "i", "ȋ": "i", "ī": "i", "į": "i", "ᶖ": "i", "ɨ": "i", "ĩ": "i", "ḭ": "i", "ꝺ": "d", "ꝼ": "f", "ᵹ": "g", "ꞃ": "r", "ꞅ": "s", "ꞇ": "t", "ꝭ": "is", "ǰ": "j", "ĵ": "j", "ʝ": "j", "ɉ": "j", "ḱ": "k", "ǩ": "k", "ķ": "k", "ⱪ": "k", "ꝃ": "k", "ḳ": "k", "ƙ": "k", "ḵ": "k", "ᶄ": "k", "ꝁ": "k", "ꝅ": "k", "ĺ": "l", "ƚ": "l", "ɬ": "l", "ľ": "l", "ļ": "l", "ḽ": "l", "ȴ": "l", "ḷ": "l", "ḹ": "l", "ⱡ": "l", "ꝉ": "l", "ḻ": "l", "ŀ": "l", "ɫ": "l", "ᶅ": "l", "ɭ": "l", "ł": "l", "lj": "lj", "ſ": "s", "ẜ": "s", "ẛ": "s", "ẝ": "s", "ḿ": "m", "ṁ": "m", "ṃ": "m", "ɱ": "m", "ᵯ": "m", "ᶆ": "m", "ń": "n", "ň": "n", "ņ": "n", "ṋ": "n", "ȵ": "n", "ṅ": "n", "ṇ": "n", "ǹ": "n", "ɲ": "n", "ṉ": "n", "ƞ": "n", "ᵰ": "n", "ᶇ": "n", "ɳ": "n", "ñ": "n", "nj": "nj", "ó": "o", "ŏ": "o", "ǒ": "o", "ô": "o", "ố": "o", "ộ": "o", "ồ": "o", "ổ": "o", "ỗ": "o", "ö": "o", "ȫ": "o", "ȯ": "o", "ȱ": "o", "ọ": "o", "ő": "o", "ȍ": "o", "ò": "o", "ỏ": "o", "ơ": "o", "ớ": "o", "ợ": "o", "ờ": "o", "ở": "o", "ỡ": "o", "ȏ": "o", "ꝋ": "o", "ꝍ": "o", "ⱺ": "o", "ō": "o", "ṓ": "o", "ṑ": "o", "ǫ": "o", "ǭ": "o", "ø": "o", "ǿ": "o", "õ": "o", "ṍ": "o", "ṏ": "o", "ȭ": "o", "ƣ": "oi", "ꝏ": "oo", "ɛ": "e", "ᶓ": "e", "ɔ": "o", "ᶗ": "o", "ȣ": "ou", "ṕ": "p", "ṗ": "p", "ꝓ": "p", "ƥ": "p", "ᵱ": "p", "ᶈ": "p", "ꝕ": "p", "ᵽ": "p", "ꝑ": "p", "ꝙ": "q", "ʠ": "q", "ɋ": "q", "ꝗ": "q", "ŕ": "r", "ř": "r", "ŗ": "r", "ṙ": "r", "ṛ": "r", "ṝ": "r", "ȑ": "r", "ɾ": "r", "ᵳ": "r", "ȓ": "r", "ṟ": "r", "ɼ": "r", "ᵲ": "r", "ᶉ": "r", "ɍ": "r", "ɽ": "r", "ↄ": "c", "ꜿ": "c", "ɘ": "e", "ɿ": "r", "ś": "s", "ṥ": "s", "š": "s", "ṧ": "s", "ş": "s", "ŝ": "s", "ș": "s", "ṡ": "s", "ṣ": "s", "ṩ": "s", "ʂ": "s", "ᵴ": "s", "ᶊ": "s", "ȿ": "s", "ɡ": "g", "ᴑ": "o", "ᴓ": "o", "ᴝ": "u", "ť": "t", "ţ": "t", "ṱ": "t", "ț": "t", "ȶ": "t", "ẗ": "t", "ⱦ": "t", "ṫ": "t", "ṭ": "t", "ƭ": "t", "ṯ": "t", "ᵵ": "t", "ƫ": "t", "ʈ": "t", "ŧ": "t", "ᵺ": "th", "ɐ": "a", "ᴂ": "ae", "ǝ": "e", "ᵷ": "g", "ɥ": "h", "ʮ": "h", "ʯ": "h", "ᴉ": "i", "ʞ": "k", "ꞁ": "l", "ɯ": "m", "ɰ": "m", "ᴔ": "oe", "ɹ": "r", "ɻ": "r", "ɺ": "r", "ⱹ": "r", "ʇ": "t", "ʌ": "v", "ʍ": "w", "ʎ": "y", "ꜩ": "tz", "ú": "u", "ŭ": "u", "ǔ": "u", "û": "u", "ṷ": "u", "ü": "u", "ǘ": "u", "ǚ": "u", "ǜ": "u", "ǖ": "u", "ṳ": "u", "ụ": "u", "ű": "u", "ȕ": "u", "ù": "u", "ủ": "u", "ư": "u", "ứ": "u", "ự": "u", "ừ": "u", "ử": "u", "ữ": "u", "ȗ": "u", "ū": "u", "ṻ": "u", "ų": "u", "ᶙ": "u", "ů": "u", "ũ": "u", "ṹ": "u", "ṵ": "u", "ᵫ": "ue", "ꝸ": "um", "ⱴ": "v", "ꝟ": "v", "ṿ": "v", "ʋ": "v", "ᶌ": "v", "ⱱ": "v", "ṽ": "v", "ꝡ": "vy", "ẃ": "w", "ŵ": "w", "ẅ": "w", "ẇ": "w", "ẉ": "w", "ẁ": "w", "ⱳ": "w", "ẘ": "w", "ẍ": "x", "ẋ": "x", "ᶍ": "x", "ý": "y", "ŷ": "y", "ÿ": "y", "ẏ": "y", "ỵ": "y", "ỳ": "y", "ƴ": "y", "ỷ": "y", "ỿ": "y", "ȳ": "y", "ẙ": "y", "ɏ": "y", "ỹ": "y", "ź": "z", "ž": "z", "ẑ": "z", "ʑ": "z", "ⱬ": "z", "ż": "z", "ẓ": "z", "ȥ": "z", "ẕ": "z", "ᵶ": "z", "ᶎ": "z", "ʐ": "z", "ƶ": "z", "ɀ": "z", "ff": "ff", "ffi": "ffi", "ffl": "ffl", "fi": "fi", "fl": "fl", "ij": "ij", "œ": "oe", "st": "st", "ₐ": "a", "ₑ": "e", "ᵢ": "i", "ⱼ": "j", "ₒ": "o", "ᵣ": "r", "ᵤ": "u", "ᵥ": "v", "ₓ": "x"};
String.prototype.latinise = function () {
    return this.replace(/[^A-Za-z0-9\[\] ]/g, function (a) {
        return Latinise.latin_map[a] || a;
    });
};
String.prototype.latinize = String.prototype.latinise;
String.prototype.isLatin = function () {
    return this === this.latinise();
}

String.prototype.hashCode = function () {
    var hash = 0, i, chr;
    if (this.length === 0)
        return hash;
    for (i = 0; i < this.length; i++) {
        chr = this.charCodeAt(i);
        hash = ((hash << 5) - hash) + chr;
        hash |= 0; // Convert to 32bit integer
    }
    return hash;
};

function makeUrl(nameSelector, addressSelector, separator) {
    var page = $(nameSelector)[0];
    var address = $(addressSelector)[0];
    separator = separator === undefined ? "-" : separator;
    address.value = page.value.latinise().replace(/[\&\#\,\+\(\)\$\~\%\.\'\"\:\*\?\<\>\{\}\//\\\]\[\=\;\!]/g, '').replace(/\s\s+/g, " ").trim().replace(/\s/g, separator).toLowerCase();
}

/**
 * Send ajax request.
 * 
 * @param {string}   url             Ajax request endpoint.
 * @param {string}   type            POST or GET
 * @param {object}   data            Data object with paramaters for request.
 * @param {function} successCallback Function called on success. First paramater passed to function is reponse object.
 * @param {function} errorCallback   Function called on error. First paramater passed to function is reponse object.
 * @param {function} failCallback    Function called on fail. First paramater passed to function is reponse object.
 * @param {bool}     showFailAlerts  If false, on error or fail is no action, otherwise open error/fail message window.
 * 
 */
function ajax(url, type, data, successCallback, errorCallback, failCallback, showFailAlerts, customLoader) {
//    showLoadingWindow();
    if (customLoader !== true) {
        $('body').removeClass('loaded');
    }
    var ajaxParams = {
        url: url,
        type: type,
        data: data
    };
    if (data instanceof FormData) {
        ajaxParams["processData"] = false;
        ajaxParams["contentType"] = false;
    }
    $.ajax(ajaxParams).done(function (response) {
        if (response.code === 0) {
            if (typeof successCallback === 'function') {
                successCallback(response);
            } else if (typeof eval(successCallback) === 'function') {
                eval(successCallback)(response);
            }
        } else {
            if (showFailAlerts !== false) {
                swal({
                    title: response.status,
                    text: response.message,
                    confirmButtonColor: "#d9534f",
                    type: "error",
                    html: true
                });
            }
            if (typeof errorCallback === 'function') {
                errorCallback(response);
            } else if (typeof eval(errorCallback) === 'function') {
                eval(errorCallback)(response);
            }
        }

    }).fail(function (response) {
        if (showFailAlerts !== false) {
            swal({
                title: "Chyba!",
                text: JSON.parse(response.responseText).message,
                confirmButtonColor: "#d9534f",
                type: "error",
                html: true
            });
        }
        if (typeof failCallback === 'function') {
            failCallback(response);
        } else if (typeof eval(failCallback) === 'function') {
            eval(failCallback)(response);
        }
    }).always(function () {
        if (customLoader !== true) {
            $('body').addClass('loaded');
        }
    });
}

$(document).ready(function (e) {
    $('[data-toggle="tooltip"]').tooltip();
    $("select[readonly='readonly'] option:not(:selected)").attr('disabled', true);
    $('body').on('shown.bs.modal', function (e) {
        $("select[readonly='readonly'] option:not(:selected)").attr('disabled', true);
        $('.modal.fade.in .selectpickerManual').selectpicker('render');
    })
});

$(document).on('hidden.bs.modal', function (event) {
    if ($('.modal:visible').length) {
        $('body').addClass('modal-open');
    }
});

/**
 * Open pdf modal. Don't forget include modal #pdfModal DOM before call this function.
 * 
 * @param {string}   url     Path to PDF.
 * @param {string}   title   Modal title.
 * 
 */
function openPdf(url, title) {
    if (url.length > 2) {
        $('#pdfModal .modal-body').html('<div class="row"><iframe width="100%" style="height: 400px; border:none; margin-top: -16px; margin-bottom: -20px;" src="/pdf-viewer/web/viewer.html?file=' + url + '"></iframe></div>');
        $('#pdfModal .modal-title').html(title);
        $('#pdfModal .modal-footer a').attr("href", url);
        $('#pdfModal').modal({
            backdrop: 'static',
            keyboard: false
        });
    }
}


/**
 * Open private file manager modal. Don't forget include modal DOM before call this function.
 * 
 * @param {string}   modalSelector     Modal element selector.
 * @param {string}   folder            Folder path to open.
 * @param {string}   fieldId           Field id to bind path value.
 * 
 */
function openFileManager(modalSelector, folder, fieldId) {
    $(modalSelector + ' .modal-body').html('<div class="row filemanagerModal"><iframe id="fm-iframe" style="width: 100%; height: 400px; border:none;" src="/filemanagers/private/filemanager/filemanager/dialog.php?sort_by=name&descending=0&fldr=' + folder + (fieldId === undefined ? '' : '&field_id=' + fieldId) + '"></iframe></div>');
    $(modalSelector).modal({
        backdrop: 'static',
        keyboard: false
    });
}

/**
 * Open public file manager modal. Don't forget include modal DOM before call this function.
 * 
 * @param {string}   modalSelector     Modal element selector.
 * @param {string}   folder            Folder path to open.
 * @param {string}   fieldId           Field id to bind path value.
 * 
 */
function openPublicFileManager(modalSelector, fieldId) {
    $(modalSelector + ' .modal-body').html('<div class="row filemanagerModal"><iframe id="fm-iframe" style="width: 100%; height: 400px; border:none;" src="/filemanagers/global/filemanager/filemanager/dialog.php?' + (fieldId === undefined ? '' : '&field_id=' + fieldId) + '"></iframe></div>');
    $(modalSelector).modal({
        backdrop: 'static',
        keyboard: false
    });
}

/**
 * Render picture input inside viewId.
 * 
 * @param {string}   hiddenInputSelector     Input selector for img hidden value (for form submit).
 * @param {string}   viewId                  Id of element where picture input renders.
 * @param {string}   value                   Img path to set as defalut value on render.
 * @param {string}   defaultImg              Default img path (sets after current pic deletion).
 * 
 */
function setPictureAttachment(hiddenInputSelector, viewId, value, defaultImg) {
    $("#" + viewId).html('<div onclick="removeAttachment(\'' + hiddenInputSelector + '\', \'' + viewId + '\', \'' + defaultImg + '\')" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-remove"></span></div><br><img style="width: 100px; margin-top: 5px" src="' + value + '">');
}

/**
 * Render attachment input inside viewId.
 * 
 * @param {string}   hiddenInputSelector     Input selector for attachment hidden value (for form submit).
 * @param {string}   viewId                  Id of element where attachment input renders.
 * @param {string}   value                   Attachment path to set as defalut value on render.
 * @param {string}   defaultFile              Default attachment path (sets after current attachment deletion).
 * 
 */
function setAttachment(hiddenInputSelector, viewId, value, defaultFile) {
    $("#" + viewId).html('<div onclick="removeAttachment(\'' + hiddenInputSelector + '\', \'' + viewId + '\', false, \'' + defaultFile + '\')" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-remove"></span></div><span style="margin-left: 5px">' + decodeURI(value.replace(/^.*[\\\/]/, '')) + '</span>');
}


function removeAttachment(hiddenInputSelector, viewId, defaultImg, defaultFile) {
    $(hiddenInputSelector).val("");
    $("#" + viewId).html('<span id="' + viewId + '">nie je vybraný žiadny súbor</span>');
    if (defaultImg !== undefined && defaultImg !== false) {
        setPictureAttachment(hiddenInputSelector, viewId, defaultImg, defaultImg);
        $(hiddenInputSelector).val(defaultImg);
    } else if (defaultFile !== undefined && defaultFile !== false) {
        setAttachment(hiddenInputSelector, viewId, defaultFile, defaultFile);
        $(hiddenInputSelector).val(defaultFile);
    }
}

function clearDateInput(btn, event) {
    btn.parent().prev("input").val("");
    event.stopPropagation();
}


$(document).ready(function () {

    $('a[href*="#"]:not([href="#"]):not([data-toggle])').click(function () {
        if (location.pathname.replace(/^\//, '') === this.pathname.replace(/^\//, '') && location.hostname === this.hostname) {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
            if (target.length) {
                $('html,body').animate({
                    scrollTop: target.offset().top
                }, 1000);
                return false;
            }
        }
    });

    $('#go-top').goTop({
        scrollTop: 100,
        scrollSpeed: 1000,
        fadeInSpeed: 1000,
        fadeOutSpeed: 500
    });

    $('.modal').on('shown.bs.modal', function (e) {
        $(".form_date").datetimepicker({
            autoclose: true,
            format: "dd.mm.yyyy",
            minView: 'month',
            language: Config.LANG,
            weekStart: 1
        });


        $(".form_datetime").datetimepicker({
            autoclose: true,
            format: "dd.mm.yyyy hh:ii",
            language: Config.LANG,
            weekStart: 1
        });

        $(".form_advance_datetime").datetimepicker({
            format: "dd MM yyyy - hh:ii",
            autoclose: true,
            todayBtn: true,
            startDate: "2013-02-14 10:00",
            minuteStep: 10,
            language: Config.LANG,
            weekStart: 1
        });

        $(".form_meridian_datetime").datetimepicker({
            format: "dd MM yyyy - HH:ii P",
            language: Config.LANG,
            showMeridian: true,
            autoclose: true,
            todayBtn: true
        });

//        $('body').removeClass("modal-open"); // fix bug when inline picker is used in modal

        // Workaround to fix datetimepicker position on window scroll
        $(document).scroll(function () {
            $('#form_modal1 .form_datetime, #form_modal1 .form_advance_datetime, #form_modal1 .form_meridian_datetime').datetimepicker('place'); //#modal is the id of the modal
        });
    })
});

Number.prototype.pad = function (size) {
    var s = String(this);
    while (s.length < (size || 2)) {
        s = "0" + s;
    }
    return s;
}

function getUrlHashVariable(variable, url) {
    if (url === undefined) {
        url = window.location.href;
    }
    var hash = url.split("#");
    if (hash.length < 2) {
        return false;
    }
    var hashes = hash[1].split("&");
    var vars = {};
    for (var i = 0; i < hashes.length; i++) {
        var explode = hashes[i].split("=");
        vars[explode[0]] = explode[1];
    }
    if (vars[variable] === undefined) {
        return false;
    }
    return vars[variable];
}

/***************************************_______________________V2_________________________***********************************************/


$(document).ready(function (e) {
    $("body").on("click", ".btn.disabled, .btn:disabled", function (e) {
        e.stopPropagation();
        return false;
    });

    $(".datepicker").datetimepicker({
        autoclose: true,
        format: "dd.mm.yyyy",
        language: Config.LANG,
        weekStart: 1,
        minView: 'month',

    });

    $(".datepicker-disable-past").datetimepicker({
        autoclose: true,
        format: "dd.mm.yyyy",
        language: Config.LANG,
        weekStart: 1,
        minView: 'month',
        startDate: new Date()
    });

    $("input[type='password']").each(function () {
        $(this).before("<div style='text-align: right; color: #555; float: right;'><div style='cursor: pointer;' onclick='toggleInputPasswordType($(this))'><i class='fa fa-eye-slash'></i> zobrazit heslo</div></div>");
    });
});

function toggleInputPasswordType(element) {
    var input = element.parent().next();
    console.log(input.attr("type"));
    if (input.attr("type") === "password") {
        element.html("<i class='fa fa-eye'></i> skryť heslo");
        input.attr("type", "text");
    } else {
        element.html("<i class='fa fa-eye-slash'></i> zobrazit heslo");
        input.attr("type", "password");
    }
}

function applyReadOnly(elementSelector) {
    $(elementSelector + " input, " + elementSelector + " select, " + elementSelector + " textarea").attr("disabled", true);
    $(elementSelector + " .btn").addClass("disabled");
}

function applyReadOnlyModal(elementSelector) {
    applyReadOnly(elementSelector);
    $(elementSelector + " input.readOnlyActive").removeAttr("disabled");
    $(elementSelector + " input.readOnlyActive").removeClass("disabled");

    if (readOnly !== true) {
        $(elementSelector + " input.edit-mode-switch").removeAttr("disabled");
    }
}

function removeReadOnly(elementSelector) {
    $(elementSelector + " input, " + elementSelector + " select, " + elementSelector + " textarea").removeAttr("disabled");
    $(elementSelector + " .btn").removeClass("disabled");
}

function closeElementModal(modalSelector, formStateToCompare) {
    var fs = formStateToCompare === undefined ? formState : formStateToCompare;
    var modal = $(modalSelector);
    if (isNaN(parseInt(modal.find("form input[name='id']").val()))) {
        modal.find("button[data-dismiss='modal']").click();
    } else {
        if ($(modalSelector).find("form").serialize().length === 0 || fs === $(modalSelector).find("form").serialize()) {
            modal.find("button[data-dismiss='modal']").click();
        } else {
//            console.log(fs);
//            console.log($(modalSelector).find("form").serialize());
            swal({
                title: globalTranslates["Zmeny nebudú uložené!"],
                type: "error",
                showCancelButton: true,
                confirmButtonClass: "btn-danger",
                confirmButtonText: globalTranslates["Zavrieť bez uloženia"],
                cancelButtonText: globalTranslates["Zostať"],
                confirmButtonColor: Config.SWEET_ALERT_OK_BUTTON_INFO_COLOR,
                closeOnConfirm: true,
                closeOnCancel: true
            },
                    function (isConfirm) {
                        if (isConfirm) {
                            modal.find("button[data-dismiss='modal']").click();
                        }
                    });
        }
    }
}

function closeParentModal(modal, defaultFormState, formState, closeForce) {

    if (defaultFormState === formState || closeForce || formState.length === 0) {
        modal.find("[data-dismiss='modal-disabled']").attr("data-dismiss", "modal");
        modal.find("button[data-dismiss='modal']").click();
    } else {
        swal({
            title: globalTranslates["Zmeny nebudú uložené!"],
            type: "error",
            showCancelButton: true,
            confirmButtonClass: "btn-danger",
            confirmButtonText: globalTranslates["Zavrieť bez uloženia"],
            cancelButtonText: globalTranslates["Zostať"],
            confirmButtonColor: Config.SWEET_ALERT_OK_BUTTON_INFO_COLOR,
            closeOnConfirm: true,
            closeOnCancel: true
        },
                function (isConfirm) {
                    if (isConfirm) {
                        modal.find("[data-dismiss='modal-disabled']").attr("data-dismiss", "modal");
                        modal.find("button[data-dismiss='modal']").click();
                    } else {
                        modal.one("click", "[data-dismiss='modal-disabled']", function (e) {
                            closeParentModal(modal, defaultFormState, $("#form-container form").serialize());
                        });
                    }
                });
    }
}

function openModalIframe(modal, title, url) {
    if (url.length > 2) {
        $(modal + ' .modal-body').html('<iframe width="100%" style="height: 100%; border:none;" src="' + url + '"></iframe>');
        $(modal + ' .modal-title').html(title);
        $(modal).modal({
            backdrop: 'static',
            keyboard: false
        });
    }
}

function revertGroupSelection(selector) {
    $(selector).each(function () {
        if ($(this).is(":checked")) {
            $(this).prop('checked', false);
        } else {
            $(this).prop('checked', true);
        }
    });

    refreshGroupActions();

}

function refreshGroupActions(selector, tempElementSelector, targetElementSelector) {
    var checked = $(selector + ":checked").length;
    if (checked > 0) {
        $(targetElementSelector).html($(tempElementSelector).html());
    } else {
        $(targetElementSelector).html("");
    }

    $(targetElementSelector + " .count").each(function () {
        $(this).html(checked);
    });
}

function getGroupActionsValues(selector) {
    var values = [];
    $(selector).each(function () {
        if ($(this).is(":checked")) {
            values.push($(this).val());
        }
    });
    return values;
}

function placeLoader(elementSelector) {
    $(elementSelector).html('<h1 class="text-center"><i class="fa fa-spin fa-circle-notch"></i></h1>');
}


function loadRemoteHTML(targetSelector, sourceUrl, params, successCallback, errorCallback, failCallback, showFailAlerts, putLoader) {
    if (putLoader !== false) {
        placeLoader(targetSelector);
    }
    ajax(sourceUrl, "POST", params, function (response) {
        $(targetSelector).html(response.data.html);
        $(targetSelector + " [data-toggle='tooltip']").tooltip();
        if (typeof successCallback === 'function') {
            successCallback(response);
        } else if (typeof eval(successCallback) === 'function') {
            eval(successCallback)(response);
        }
    }, errorCallback, failCallback, showFailAlerts, true);
}

function openRemoteHTMLModal(modal, title, url, params, successCallback, errorCallback, failCallback, showFailAlerts, putLoader) {
    $(modal + ' .modal-title').html(title);
    $(modal).modal({
        backdrop: 'static',
        keyboard: false
    });
    if (typeof bootstrap !== 'undefined') {
        let modalObject = new bootstrap.Modal(document.querySelector(modal), {
            keyboard: false,
            backdrop: 'static'
        });
        modalObject.show();
    }
    loadRemoteHTML(modal + ' .modal-body', url, params, successCallback, errorCallback, failCallback, showFailAlerts, putLoader);
}



Youez - 2016 - github.com/yon3zu
LinuXploit