$(document).ready(function(){ initMasks(); initSimplebar(); initTooltip(); // go to anchor animation $(document).on('click', 'a', function(e){ if (window.location.pathname !== $(this).prop('pathname')) { return; } let href = $(this).attr('href'); if (typeof href != 'undefined' && href.indexOf('#block_') === 0) { e.preventDefault(); if (href.indexOf('#block_group_') === 0) { let groupId = href.substr(13); let $block = $('.block[data-group-id="'+groupId+'"]'); if ($block.length) { href = '#' + $block.parent().attr('id'); } } $('html, body').animate({ scrollTop: $(href).offset().top - 100 }, 500); // TODO: get distance to block and calculate time needed for the smooth speed } }); }); function initSimplebar() { $('.js-simplebar').each(function(){new SimpleBar(this)}); } function initTooltip() { $('[data-toggle="tooltip"]').tooltip(); } // convert serialized array to obj function convertFormArrToObj(dataArr) { let data = {}; for (i = 0; i < dataArr.length; i++) { if (dataArr[i]['name'].indexOf('[]') !== -1) { let name = dataArr[i]['name'].slice(0, -2); if (!data[name]) { data[name] = []; } data[name].push(dataArr[i]['value']); } else if (dataArr[i]['name'].indexOf('[') !== -1) { // fucking awesome kostyl! let firstBracketPos = dataArr[i]['name'].indexOf('['); let name = dataArr[i]['name'].substr(0, firstBracketPos) + ']' + dataArr[i]['name'].substr(firstBracketPos); data[name] = dataArr[i]['value']; } else if (data[dataArr[i]['name']]) { if (!Array.isArray(data[dataArr[i]['name']])) { data[dataArr[i]['name']] = [data[dataArr[i]['name']]]; } data[dataArr[i]['name']].push(dataArr[i]['value']); } else { data[dataArr[i]['name']] = dataArr[i]['value']; } } return data; } function startBtnLoad($btn) { let width = $btn.outerWidth(); let height = $btn.outerHeight(); $btn.data('original-html', $btn.html()); $btn.html('
'); $btn.css('width', width); $btn.css('height', height); $btn.addClass('loading'); $btn.prop('disabled', true); $btn.css('padding', 0); $btn.css('display', 'inline-flex'); $btn.css('justify-content', 'center'); $btn.css('align-items', 'center'); } function endBtnLoad($btn) { let originalText = $btn.data('original-html'); $btn.html(originalText); $btn.removeClass('loading'); $btn.prop('disabled', false); $btn.attr('style', ''); } /* cookies */ function getCookie(name) { let matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } function setCookie(name, value, options = {}) { options = Object.assign({ path: '/' }, options); if (options.expires instanceof Date) { options.expires = options.expires.toUTCString(); } let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value); for (let optionKey in options) { updatedCookie += "; " + optionKey; let optionValue = options[optionKey]; if (optionValue !== true) { updatedCookie += "=" + optionValue; } } document.cookie = updatedCookie; } function deleteCookie(name) { setCookie(name, "", { 'max-age': -1 }) }