{"version":3,"file":"main.js","names":["style","getComputedStyle","document","body","$","brandSecondary","getPropertyValue","brandSuccess","brandPrimary","brandInfo","brandWarning","brandDanger","brandFont","Window","alert","text","title","showModal","searchParam","param","resp","location","search","split","length","params","forEach","currentValue","replace","content","type","callback","modalClass","modal","append","backdrop","on","remove","e","preventDefault","input","siblings","password","is","icon","find","toggleClass","closest","attr","spinObject","obj","spinner","prepend","Object","prototype","hasOwnProperty","call","validator","setDefaults","errorElement","errorPlacement","error","element","appendTo","validClass","errorClass","highlight","addClass","name","unhighlight","removeClass","onkeyup","keyCode","valid","validate","rules","required","minlength","maxlength","mail","email","rangelength","password2","equalTo","submitHandler","ajax","dataType","url","data","serialize","beforeSend","show","animate","width","success","hide","last","showErrors","userData","userLoad","showConfirm","jqXHR","textStatus","errorThrown","window","console","log","signIn","confirmation","html","history","pushState","authorized","dropdown","css","href","first","page","section","empty","feedLoader","getCookie","cname","decodedCookie","decodeURIComponent","cookie","ca","i","c","charAt","substring","indexOf","getFormData","$form","unindexed","serializeArray","indexed","map","n","value","JSON","stringify","setGDPR","d","Date","setTime","getTime","toUTCString","tooltip","elem","original","item","cash","newTitle","titleOrig","newAnons","anons","anonsOrig","opacity","objs","quantity","channel","id","after","blog","confirmed","keys","subscriptions","before","notifications","phone","whatsapp","botname","telegram","loadLikes","action","messenger","likes","dislikes","userMessage","counter","status","Number","subscribed","subscribers","declOfNum","forms","Math","abs","n1","post","players","magazineLoader","managersLoader","docsLoader","postFlag","contentType","items","filter","off","translated","titleSize","uppRatio","textClass","imageRatio","heigth","video","changeColor","color","picture","source","redirect","link","encodeURIComponent","translit","scrolling","groupped","year","String","push","img","cover","thumbnail","footer","bottom","height","messages","parent","player","YT","Player","events","onReady","onPlayerReady","onStateChange","onPlayerStateChange","playItem","event","target","h","unMute","playVideo","p","getBoundingClientRect","top","left","position","pauseVideo","calcPosition","innerWidth","innerHeight","querySelector","addEventListener","val","str","sp","toLowerCase","transl","а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","_","result","curentSim","undefined","rgb2hsl","rbg","r","g","b","max","min","s","l","HTMLcolor","scrollTop","profileChange","random","onchange","URL","createObjectURL","files","formData","FormData","processData","each","lang","getJSON","langs","flags","browser","getScript","setLang","reload"],"sources":["src/main.js"],"sourcesContent":["/* eslint-disable max-statements-per-line */\nimport {\n userData,\n userMessage\n} from 'index'\nimport $ from 'jquery'\n\nconst style = getComputedStyle(document.body)\n$.brandSecondary = style.getPropertyValue('--secondary')\n$.brandSuccess = style.getPropertyValue('--success')\n$.brandPrimary = style.getPropertyValue('--primary')\n$.brandInfo = style.getPropertyValue('--info')\n$.brandWarning = style.getPropertyValue('--warning')\n$.brandDanger = style.getPropertyValue('--danger')\n$.brandFont = style.getPropertyValue('--font-family-sans-serif')\n\nWindow.alert = (text, title) => {\n showModal(title, text, 'alert')\n}\n\nfunction searchParam(param) {\n let resp = false\n if (document.location.search.split('?').length > 1) {\n const params = document.location.search.split('?')[1].split('&')\n params.forEach((currentValue) => {\n if (currentValue.split('=')[0] === param) {\n resp = currentValue.replace(`${param}=`, '')\n }\n })\n }\n return resp\n}\n\nfunction showModal(title, content, type, callback, style) {\n let modalClass = ''\n if (type === 'alert') {\n modalClass = 'modal-danger'\n }\n if (type === 'confirm') {\n modalClass = 'modal-warning'\n }\n if (type === 'auth') {\n modalClass = 'modal-auth'\n }\n modalClass = style ? `modal-${style}` : modalClass\n const modal = `\n
\n
\n
\n ${type === 'edit' || type === 'approve' || type === 'auth' ? '
' : ''}\n
\n ${type === 'auth' ? `\n \"\"\n \n ` : `\n
${title}
\n \n `}\n
\n ${type === 'approve' || type === 'auth' ? `\n
\n ${content}\n
` : `\n
\n

${content}

\n
\n `}\n ${type === 'auth' ? `\n
\n
\n ` : `\n
\n ${type === 'approve' ? `\n \n \n \n ` : ''}\n ${type === 'confirm' ? `` : ''}\n ${type === 'edit' ? '' : ''}\n
\n ${type === 'edit' || type === 'approve' ? '' : ''}\n `}\n
\n
\n
`\n $('body').append(modal)\n if (typeof callback === 'function') {\n callback()\n }\n $('.modal').modal({\n backdrop: 'static'\n })\n}\n\n$(document).on('hidden.bs.modal', '.modal', function () {\n $(this).remove()\n})\n\n$(document).on('click', '.inside-control .btn-see', function (e) {\n e.preventDefault()\n const input = $(this).siblings('input')\n const password = input.is('input[type=\"password\"]')\n const icon = $(this).find('i')\n icon.toggleClass('icon-eye', !password).toggleClass('icon-eye-crossed', password)\n if (password) {\n input.closest('form').find('.pared').attr('type', 'text')\n } else {\n input.closest('form').find('.pared').attr('type', 'password')\n }\n})\n\nfunction spinObject(obj) {\n const spinner = $(`\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n `)\n $(obj).prepend(spinner)\n return spinner\n}\n\nif (Object.prototype.hasOwnProperty.call($, 'validator')) {\n $.validator.setDefaults({\n errorElement: 'div',\n errorPlacement: (error, element) => {\n error.appendTo(element.closest('.form-group'))\n },\n validClass: '',\n errorClass: 'feedback invalid-feedback',\n highlight: (element) => {\n $(element).addClass('is-invalid')\n if ($(element).is('.radio')) {\n const name = $(element).attr('name')\n $(element).closest('form').find(`[name=${name}]`).addClass('is-invalid')\n }\n },\n unhighlight: (element) => {\n $(element).removeClass('is-invalid')\n if ($(element).is('.radio')) {\n const name = $(element).attr('name')\n $(element).closest('form').find(`[name=${name}]`).removeClass('is-invalid')\n }\n },\n onkeyup: function onkeyup(element, e) {\n if (!(e.keyCode === 13 && $('.summary-error').is('div'))) {\n $('.summary-error').remove()\n }\n $(element).valid()\n }\n })\n}\n\n$(document).on('click', '.sign-up', () => {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n
%%Зарегистрируйтесь на HorseExpert.ru и вы сможете оценивать и комментировать публикации, создавать свои блоги и подписываться на чужие.%%
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n \n
\n
\n \n \n
\n \n %%Авторизироваться%%\n `, 'auth', () => {\n const validator = $('.validate').validate({\n rules: {\n name: {\n required: true,\n minlength: 4,\n maxlength: 32\n },\n mail: {\n required: true,\n email: true\n },\n password: {\n required: true,\n rangelength: [8, 32]\n },\n password2: {\n required: true,\n rangelength: [8, 32],\n equalTo: $('form').find('input[name=\"password\"]')\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/signup.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.summary-error').remove()\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
${data.error}
`)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal').modal('hide')\n userData = data.userData\n userLoad()\n showConfirm()\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n})\n\n$(document).on('click', '.sign-in', () => {\n signIn()\n})\n\nfunction signIn(confirmation) {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n ${confirmation ? `` : ''}\n
%%Авторизируйтесь на HorseExpert.ru и вы сможете оценивать и комментировать публикации, создавать свои блоги и подписываться на чужие.%%
\n
\n \n
\n
\n \n \n \n \n
\n %%Забыли пароль?%%\n \n %%Зарегистрироваться%%\n `, 'auth', () => {\n const validator = $('.validate').validate({\n rules: {\n mail: {\n required: true,\n email: true\n },\n password: {\n required: true,\n minlength: 8\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/login.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
${data.error}
`)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal').modal('hide')\n userData = data.userData\n userLoad()\n if (confirmation) {\n showModal('', `\n
%%Ваш электронный адрес подтвержден.%%
\n \n `, 'auth')\n } else {\n showConfirm()\n }\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n}\n\n$(document).on('click', '.forgot, .change-password', () => {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n
%%Введите вашу электронную почту и мы вышлем вам ссылку с помощью которой вы сможете обновить пароль%%
\n
\n \n
\n \n %%Авторизироваться%%\n `, 'auth', () => {\n const validator = $('.validate').validate({\n rules: {\n mail: {\n required: true,\n email: true\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/forgot.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
${data.error}
`)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal-body').html(`\n
%%На указанную вами электронную почту была выслана ссылка. Пройдите по ней и вы сможете сбросить забытый пароль%%
\n \n `)\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n})\n\nif (searchParam('reset').length > 0) {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n \n
%%Придумайте новый пароль и мы сохраним его%%
\n
\n \n
\n
\n \n \n \n \n
\n \n `, 'auth', () => {\n history.pushState(null, null, '/')\n const validator = $('.validate').validate({\n rules: {\n password: {\n required: true,\n rangelength: [8, 32]\n },\n password2: {\n required: true,\n rangelength: [8, 32],\n equalTo: $('form').find('input[name=\"password\"]')\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/reset.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
${data.error}
`)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal').modal('hide')\n userData = data.userData\n userLoad()\n showConfirm()\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n}\n\n$(document).on('click', '.logout', () => {\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/logout.json',\n success: (data) => {\n if (data.error) {\n window.console.log(data.error)\n } else {\n authorized = false\n userData = false\n $('a.profile')\n .dropdown('dispose')\n .css('background-image', 'none')\n .attr('data-original-title', '%%Авторизироваться%%')\n .addClass('sign-in icon-avatar')\n .attr('id', '')\n .attr('data-toggle', 'tooltip')\n .attr('aria-haspopup', 'true')\n .attr('aria-expanded', 'false')\n .siblings('.dropdown-menu')\n .remove()\n $('.likes a').addClass('disabled')\n $('.likes a').removeClass('text-primary')\n $('.add-comment').addClass('disabled')\n $('.btn-subscribe').removeClass('active').text('%%Подписаться%%')\n $('.btn-subscribe-post').addClass('d-none').removeClass('active').html('%%Подписаться%%')\n if (!$('.feed').is('div')) {\n location.href = '/index.html'\n }\n $('.subscriptions').remove()\n $('.notifications').remove()\n $('.filter .btn').addClass('disabled').removeClass('active').first().addClass('active')\n page = 0\n if (section !== 'magazine') {\n $('.feed').empty()\n feedLoader(0)\n }\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n})\n\nfunction getCookie(cname) {\n const name = `${cname}=`\n const decodedCookie = decodeURIComponent(document.cookie)\n const ca = decodedCookie.split(';')\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) === ' ') {\n c = c.substring(1)\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length)\n }\n }\n return false\n}\n\nfunction getFormData($form) {\n const unindexed = $form.serializeArray()\n const indexed = {}\n\n $.map(unindexed, (n) => {\n indexed[n.name] = n.value\n })\n return JSON.stringify(indexed)\n}\n\nif (getCookie('gdpr')) {\n setGDPR()\n} else {\n $('body').append(`\n
\n \n
\n

%%Наш сайт использует cookie-файлы, чтобы улучшить вашу работу. Мы предполагаем, что вы согласны с этим, но можете отказаться, если хотите.%%

\n
\n \n %%Узнать больше%%\n
\n
\n
\n `)\n}\n\n$(document).on('change', '#gdpr-checkbox', () => {\n setGDPR()\n})\n\nfunction setGDPR() {\n const d = new Date()\n d.setTime(d.getTime() + 3600000)\n document.cookie = `gdpr=true; expires=${d.toUTCString()} path=/;`\n}\n\n$(document).on('click', '[title]', function () {\n $(this).tooltip('hide')\n})\n\n$(document).on('click', '.feed .translate', function () {\n const elem = $(this).closest('.feed-item')\n const original = $(elem).is('.original')\n const item = cash[$(elem).attr('translate-id')]\n const newTitle = original ? item.title : item.titleOrig\n const newAnons = original ? item.anons : item.anonsOrig\n const title = $(elem).find('.title')\n const anons = $(elem).find('.anons')\n if (newTitle !== $(title).text() || newAnons !== $(anons).text()) {\n $(title).animate({\n opacity: 0\n }, () => {\n $(title).text(newTitle).animate({\n opacity: 1\n })\n })\n $(anons).animate({\n opacity: 0\n }, () => {\n $(anons).text(newAnons).animate({\n opacity: 1\n })\n })\n }\n $(this).attr('data-original-title', `${original ? '%%Показать оригинал%%' : '%%Показать перевод%%'}`)\n $(elem).toggleClass('original', !original)\n})\n\n$(document).on('click', '.chanel .translate', function () {\n const original = $('.post-body').is('.original')\n const objs = $('.post-body .title, .post-body .title-orig, .post-body .body, .post-body .body-orig')\n $(this).attr('data-original-title', `${original ? '%%Показать оригинал%%' : '%%Показать перевод%%'}`)\n $(objs).animate({\n opacity: 0\n }, () => {\n $('.post-body').toggleClass('original', !original)\n $(objs).animate({\n opacity: 1\n })\n })\n})\n\nconst quantity = 16\nlet channel = 0\nif (location.href.search('channel.html') > -1) {\n channel = searchParam('id')\n}\nlet authorized = false\nfunction userLoad() {\n authorized = true\n $('a.profile')\n .css('background-image', `url(/img/users/${userData.id}.jpg)`)\n .removeClass('sign-up sign-in icon-avatar')\n .attr('data-original-title', '')\n $('.dropdown a.profile')\n .attr('data-original-title', '%%Профиль%%')\n .attr('id', 'dropdownMenuButton')\n .attr('data-toggle', 'dropdown')\n .attr('aria-haspopup', 'true')\n .attr('aria-expanded', 'false')\n .after(`\n
\n
${userData.name}
\n
\n %%Профиль%%\n ${Object.prototype.hasOwnProperty.call(userData, 'blog') && userData.blog ? '%%Публикации%%' : ''}\n
\n %%Выйти%%\n
\n `)\n if (userData.confirmed) {\n $('.likes a').removeClass('disabled')\n $('.add-comment').removeClass('disabled')\n $('.btn-subscribe-post').removeClass('d-none')\n $('.filter .btn').removeClass('disabled')\n }\n $('.subscriptions').remove()\n if (Object.prototype.hasOwnProperty.call(userData, 'subscriptions') && Object.keys(userData.subscriptions).length > 0) {\n $('.social').before(`\n \n
\n `)\n for (const id in userData.subscriptions) {\n if (Object.prototype.hasOwnProperty.call(userData.subscriptions, id)) {\n const title = userData.subscriptions[id]\n $('ul.subscriptions').append(`\n
  • ${title}
  • \n `)\n if (channel === id) {\n $('.side-menu a.active').removeClass('active')\n $(`[data-channel=${id}]`).addClass('active')\n }\n if ($('.btn-subscribe').attr('data-id') === id) {\n $('.btn-subscribe').text('%%Отписаться%%').addClass('subscribed')\n }\n }\n }\n }\n $('.notifications').remove()\n if (Object.prototype.hasOwnProperty.call(userData, 'notifications') && (Object.prototype.hasOwnProperty.call(userData.notifications, 'whatsapp') || Object.prototype.hasOwnProperty.call(userData.notifications, 'telegram'))) {\n $('.social').before(`\n
    \n ${Object.prototype.hasOwnProperty.call(userData.notifications, 'whatsapp') ? `\n \n \n ` : ''}\n ${Object.prototype.hasOwnProperty.call(userData.notifications, 'telegram') ? `\n \n \n ` : ''}\n
    \n
    \n `)\n }\n loadLikes()\n}\n\n$(document).on('click', '.notifications .btn', function (e) {\n const obj = $(this)\n const action = !$(obj).is('.text-primary')\n if (!action) {\n e.preventDefault()\n const action = !$(obj).is('.text-primary')\n const messenger = $(obj).is('.whatsapp') ? 'whatsapp' : 'telegram'\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/notifications.json',\n data: `${messenger}=${action}`,\n success: (data) => {\n if (data.error) {\n window.console.log(data.error)\n } else {\n userData.notifications[messenger] = action\n $(obj).toggleClass('text-primary', action)\n }\n }\n })\n } else {\n $(obj).toggleClass('text-primary', action)\n }\n})\n\nfunction showConfirm() {\n if (!userData.confirmed) {\n showModal('', `\n
    %%Ваш электронный адрес не подтвержден. При регистрации вам была выслана ссылка пройдя по которой вы сможете это сделать. Без подтверждения електронного адреса функционал будет неполным.%%
    \n \n \n `, 'auth')\n }\n}\n\nfunction loadLikes() {\n if (userData && userData.confirmed && Object.keys(cash).length > 0) {\n userData.likes.forEach((id) => {\n $(`.feed-item[data-id=${id}] a.like`).addClass('text-primary')\n $(`.likes[data-id=${id}] a.like`).addClass('text-primary')\n })\n userData.dislikes.forEach((id) => {\n $(`.feed-item[data-id=${id}] a.dislike`).addClass('text-primary')\n $(`.likes[data-id=${id}] a.dislike`).addClass('text-primary')\n })\n if (authorized) {\n $('.btn-subscribe-post').removeClass('d-none')\n }\n\n for (const id in userData.subscriptions) {\n if (Object.prototype.hasOwnProperty.call(userData.subscriptions, id)) {\n $(`.btn-subscribe-post[data-id=${id}]`).html('%%Отписаться%%').addClass('subscribed')\n }\n }\n }\n}\n\nif (Object.prototype.hasOwnProperty.call(window, 'userMessage')) {\n userMessage()\n}\n\n$(document).on('click', 'a.like, a.dislike', function () {\n if (userData) {\n if (userData.confirmed) {\n const obj = $(this)\n const action = $(obj).is('.like') ? 'like' : 'dislike'\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/like.json',\n data: `id=${$(obj).closest('[data-id]').attr('data-id')}&action=${action}&status=${$(obj).is('.text-primary') ? '0' : '1'}`,\n beforeSend: () => {\n $('.glass').show()\n $(obj).find('i').toggleClass(`icon-${action} icon-spinner icon-spin`)\n },\n success: (data) => {\n $(obj).find('i').toggleClass(`icon-${action} icon-spinner icon-spin`)\n $('.glass').hide()\n if (data.error) {\n window.console.log(data.error)\n } else {\n const counter = $(`.subtitle .${action} b`)\n const status = $(obj).is('.text-primary') ? -1 : 1\n $(counter).text(Number($(counter).text()) + status)\n $(obj).toggleClass('text-primary')\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n } else {\n showConfirm()\n }\n } else {\n signIn()\n }\n})\n\n$(document).on('click', '.btn-subscribe, .btn-subscribe-post', function () {\n if (userData) {\n if (userData.confirmed) {\n const obj = $(this)\n const subscribed = $(obj).is('.subscribed')\n const action = $(obj).is('.subscribed') ? 0 : 1\n const id = $(obj).attr('data-id')\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/subscribe.json',\n data: `id=${id}&action=${action}`,\n beforeSend: () => {\n $('.glass').show()\n $(obj).prepend('')\n },\n success: (data) => {\n $(obj).find('i').remove()\n $('.glass').hide()\n if (data.error) {\n window.console.log(data.error)\n } else {\n if ($('.likes').attr('data-id') === id || channel === id) {\n const subscribers = $('.subscribers span').first()\n const status = subscribed ? -1 : 1\n const counter = Number($(subscribers).text()) + status\n $(subscribers).text(counter)\n $('.subscribers span').last().text(declOfNum(counter, ['%%подписчик%%', '%%подписчика%%', '%%подписчиков%%']))\n }\n $(`.btn-subscribe-post[data-id=${id}]`).html(subscribed ? 'Подписаться' : '%%Отписаться%%').toggleClass('subscribed')\n $(`.btn-subscribe[data-id=${id}]`).text(subscribed ? '%%Подписаться%%' : '%%Отписаться%%').toggleClass('subscribed')\n }\n if (Object.prototype.hasOwnProperty.call(userData.subscriptions, id)) {\n delete userData.subscriptions[id]\n } else {\n userData.subscriptions[id] = $(obj).closest('.feed-item').find('.source').text() || $('.channel-header .title').text() || $('.channel .title').text()\n }\n userLoad()\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n } else {\n showConfirm()\n }\n } else {\n signIn()\n }\n})\n\nfunction declOfNum(n, forms) {\n n = Math.abs(n) % 100\n const n1 = n % 10\n if (n > 10 && n < 20) {\n return forms[2]\n }\n if (n1 > 1 && n1 < 5) {\n return forms[1]\n }\n if (n1 === 1) {\n return forms[0]\n }\n return forms[2]\n}\n\n$(document).on('click', '.send-confirm', function () {\n const spinner = spinObject($(this))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/confirm.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n window.console.log(data.error)\n } else {\n $('.modal-body').html(`\n
    %%На вашу электронную почту была выслана ссылка. Пройдите по ней и вы сможете подтвердить свою электронную почту%%
    \n \n `)\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n})\n\nconst cash = {}\nif (userData) {\n $('[data-toggle=\"tooltip\"]').tooltip()\n userLoad()\n}\n\nlet page = 0\nlet post = 0\nlet search = ''\nconst players = []\nlet section = ''\nif (searchParam('section').length > 0) {\n section = searchParam('section')\n history.pushState(null, null, '/')\n $('.side-menu .section.active').removeClass('active')\n $(`[data-section=${section}]`).addClass('loading active')\n if (section === 'magazine') {\n magazineLoader()\n } else if (section === 'managers') {\n managersLoader()\n } else if (section === 'docs') {\n docsLoader()\n } else {\n feedLoader(0)\n }\n} else {\n feedLoader(0)\n}\n\nfunction feedLoader(postFlag) {\n $('.feed-header .title .section').text($(`[data-section=${section === '' ? 'feed' : section}]`).attr('data-title'))\n if ($('.feed').is('div')) {\n post = postFlag\n $.ajax({\n dataType: 'json',\n type: 'POST',\n contentType: 'application/json; charset=UTF-8',\n url: '/api/news.json',\n data: JSON.stringify({\n page,\n items: quantity,\n post,\n search,\n section,\n channel: Number(channel),\n filter: Number($('.filter .active').attr('data-filter'))\n }),\n beforeSend: function beforeSend() {\n $(document).off('scroll')\n $('.backdrop').show()\n },\n success: function success(data) {\n if (data.error) {\n window.console.log('Feed loading error!')\n } else {\n $('.side-menu .loading').removeClass('loading').addClass('section')\n const items = data\n for (let i = 0; i < items.length; i++) {\n $('main').removeClass('magazine')\n const item = items[i]\n cash[item.id] = item\n const translated = item.title.length > 0 && item.title !== item.titleOrig\n const title = translated ? item.title : item.titleOrig\n const anons = translated ? item.anons : item.anonsOrig\n const titleSize = $('').html(item.title).text().length * (1 + 0.2 * item.uppRatio / 100)\n let textClass = 'length-1'\n if (titleSize > 30) {\n textClass = 'length-2'\n }\n if (titleSize > 45) {\n textClass = 'length-3'\n }\n const imageRatio = item.width >= item.heigth ? 'horizontal' : 'vertical'\n\n if (item.video.length > 0) {\n const video = item.video.split('?')[0]\n $('.feed').append(`\n
    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n

    ${title}

    \n
    \n ${item.source}\n
    \n \n \n
    \n
    \n
    \n \n \n ${translated ? `` : ''}\n
    \n `)\n } else if (item.redirect === 2) {\n const link = item.url\n $('.feed').append(`\n
    \n
    \n ${title === '' && anons === '' ? '' : `\n
    \n
    \n `}\n
    \n \n
    \n ${title === '' && anons === '' ? '' : `\n

    ${title}

    \n
    ${anons}
    \n `}\n
    \n Реклама\n
    \n
    \n
    \n `)\n } else {\n const link = item.redirect ? item.url : `/news/${encodeURIComponent(translit(item.title))}-${item.id}.html`\n $('.feed').append(`\n
    \n
    \n
    \n
    \n
    \n \n
    \n

    ${title}

    \n
    ${anons}
    \n
    \n ${item.source}\n
    \n \n \n
    \n
    \n
    \n ${translated ? `` : ''}\n
    \n `)\n }\n }\n loadLikes()\n page++\n if (items.length === quantity) {\n $(document).on('scroll', scrolling)\n }\n $('[data-toggle=\"tooltip\"]').tooltip()\n }\n },\n error: function error() {\n window.console.log('Error! login.json')\n }\n })\n }\n}\n\nfunction docsLoader() {\n $.ajax({\n dataType: 'html',\n type: 'GET',\n contentType: 'application/json; charset=UTF-8',\n url: '/api/documents.html',\n beforeSend: function beforeSend() {\n $(document).off('scroll')\n $('.backdrop').show()\n },\n success: function success(data) {\n $('main').addClass('magazine')\n $('.side-menu .loading').removeClass('loading').addClass('section')\n $('.feed').append(data)\n }\n })\n}\n\nfunction managersLoader() {\n $('main').addClass('magazine')\n $('.side-menu .loading').removeClass('loading').addClass('section')\n $('.feed').append(`\n
    \n
    ${$(`[data-section=${section}]`).attr('data-title')}
    \n
    \n
    \n
    \n
    %%М.В. Сечина%%
    \n
    %%Президент Евразийской Ассоциации%%
    \n
    \n
    \n
    \n
    %%Садыр Мамытов%%
    \n
    %%Первый вице-президент ЕЕА%%
    \n
    \n
    \n
    \n
    %%Николай Аристов%%
    \n
    %%Вице-президент ЕЕА%%
    \n
    \n
    \n
    \n
    %%Бахромжон Газиев%%
    \n
    %%Вице-президент ЕЕА%%
    \n
    \n
    \n
    \n
    %%Армен Агаджанян%%
    \n
    %%Вице-президент ЕЕА%%
    \n
    \n
    \n
    \n
    %%Александр Тучак%%
    \n
    %%Вице-президент ЕЕА%%
    \n
    \n
    \n
    \n
    %%Сергей Буйкевич%%
    \n
    %%Генеральный секретарь ЕЕА%%
    \n
    \n
    \n
    \n`)\n}\n\nfunction magazineLoader() {\n $.ajax({\n dataType: 'json',\n type: 'POST',\n contentType: 'application/json; charset=UTF-8',\n url: '/api/magazine.json',\n beforeSend: function beforeSend() {\n $(document).off('scroll')\n $('.backdrop').show()\n },\n success: function success(data) {\n if (data.error) {\n window.console.log('Magazine loading error!')\n } else {\n $('main').addClass('magazine')\n $('.side-menu .loading').removeClass('loading').addClass('section')\n const groupped = {}\n for (let i = 0; i < data.length; i++) {\n const item = data[i]\n const year = `_${String(item.year)}`\n if (!Object.prototype.hasOwnProperty.call(groupped, year)) {\n groupped[year] = []\n }\n groupped[year].push(item)\n }\n for (const year in groupped) {\n if (Object.prototype.hasOwnProperty.call(groupped, year)) {\n $('.feed').append(`\n
    \n
    ${year.replace('_', '')}
    \n
    `)\n const items = groupped[year]\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n $('.feed').append(`\n
    \n\n \n \n \n
    \n `)\n }\n }\n }\n $('[data-toggle=\"tooltip\"]').tooltip()\n }\n }\n })\n}\n\n$(document).on('mouseenter', '.feed-item.thumbed', function () {\n const cover = $(this).find('.cover')\n const id = $(this).attr('data-id')\n if ($(cover).css('display') === 'block') {\n const thumbnail = $(this).find('.thumbnail')\n const footer = $(this).find('.video-footer')\n if (!cover.is('.active')) {\n $(footer).animate({\n bottom: 0\n })\n $(thumbnail).animate({\n height: '240px'\n })\n $(`#player_${id}`).animate({\n height: '240px'\n })\n }\n }\n})\n\n$(document).on('click', '.video_complaint', function () {\n if (userData) {\n if (userData.confirmed) {\n const id = $(this).closest('.feed-item').attr('data-id')\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n
    %%Что не так с публикацией?%%
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n `, 'auth', () => {\n const validator = $('.validate').validate({\n rules: {\n type: {\n required: true\n }\n },\n messages: {\n type: {\n required: '%%Необходимо выбрать причину жалобы%%'\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/article_complaint.json',\n data: $('form[name=confirm-form]').serialize(),\n beforeSend: () => {\n $('.summary-error').remove()\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
    ${data.error}
    `)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal').modal('hide')\n showModal('', `\n
    %%Ваша жалоба зарегистрирована. В ближайшее время она будет рассмотрена. Если публикация действительно не соответствует правилам она будет удалена.%%
    \n \n `, 'auth')\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n } else {\n showConfirm()\n }\n } else {\n signIn()\n }\n})\n\n$(document).on('mouseleave', '.feed-item.thumbed', function () {\n const cover = $(this).find('.cover')\n const id = $(this).attr('data-id')\n if ($(cover).css('display') === 'block') {\n const thumbnail = $(this).find('.thumbnail')\n const footer = $(this).find('.video-footer')\n if (!cover.is('.active')) {\n $(thumbnail).animate({\n height: '100%'\n })\n $(footer).animate({\n bottom: '-80px'\n })\n $(`#player_${id}`).animate({\n height: '100%'\n })\n }\n }\n})\n\n$(document).on('click', '.thumbed .cover, .thumbnail', function () {\n const item = $(this).closest('.feed-item')\n const id = $(item).attr('data-id')\n if (!$(`#player_${id}`).is('iframe')) {\n $(this).parent().prepend(``)\n // eslint-disable-next-line no-undef\n const player = new YT.Player(`player_${id}`, {\n events: {\n onReady: onPlayerReady,\n onStateChange: onPlayerStateChange\n }\n })\n players[`player_${id}`] = player\n } else {\n playItem(players[`player_${id}`])\n }\n})\n\nfunction onPlayerStateChange(event) {\n const player = event.target\n if (event.data === 1) {\n $(player.h).siblings('.thumbnail').css('background-image', 'none')\n }\n}\n\nfunction onPlayerReady(event) {\n const player = event.target\n playItem(player)\n}\n\nfunction playItem(player) {\n const item = $(player.h).closest('.feed-item')\n const cover = $(item).find('.cover')\n const thumbnail = $(item).find('.thumbnail')\n if ($(cover).css('display') === 'block') {\n const footer = $(item).find('.video-footer')\n cover.addClass('active')\n player.unMute()\n player.playVideo()\n const p = $(player.h)[0].getBoundingClientRect()\n $(player.h).css(\n {\n width: p.width,\n height: p.height,\n top: p.top,\n left: p.left,\n position: 'fixed',\n 'z-index': 10001\n }\n )\n $('body').append(`\n
    \n \n \n \n
    `)\n $('.modal').modal('show')\n $(document).on('hidden.bs.modal', '.modal', function () {\n const modal = $(this)\n $(player.h).animate(\n {\n width: p.width,\n height: p.height,\n top: p.top,\n left: p.left\n }, () => {\n $(player.h).css(\n {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '240px',\n 'z-index': 'auto'\n }\n )\n cover.removeClass('active')\n $(document).off('hidden.bs.modal', '.modal')\n modal.remove()\n if (!$(player.h).is(':hover')) {\n $(thumbnail).animate({\n height: '100%'\n })\n $(player.h).animate({\n height: '100%'\n })\n $(footer).animate({\n bottom: '-80px'\n })\n }\n }\n )\n player.pauseVideo()\n })\n $(player.h).animate(calcPosition())\n } else {\n player.unMute()\n player.playVideo()\n }\n}\n\nfunction calcPosition() {\n const width = window.innerWidth\n const height = window.innerHeight\n if (width < height) {\n return {\n width: width * 0.8 * 1.641,\n height: width * 0.8 * 0.609,\n top: (height - width * 0.8 * 0.609) / 2,\n left: width * 0.1\n }\n }\n return {\n width: height * 0.8 * 1.641,\n height: height * 0.8,\n top: height * 0.1,\n left: (width - height * 0.8 * 1.641) / 2\n }\n}\n\ndocument.querySelector('[type=search]').addEventListener('search', (e) => {\n e.preventDefault()\n search = $('[type=search]').val()\n page = 0\n $('.feed').empty()\n feedLoader(post)\n})\n\nfunction translit(str) {\n const sp = '_'\n const text = str.toLowerCase()\n const transl = {\n а: 'a',\n б: 'b',\n в: 'v',\n г: 'g',\n д: 'd',\n е: 'e',\n ё: 'e',\n ж: 'zh',\n з: 'z',\n и: 'i',\n й: 'j',\n к: 'k',\n л: 'l',\n м: 'm',\n н: 'n',\n о: 'o',\n п: 'p',\n р: 'r',\n с: 's',\n т: 't',\n у: 'u',\n ф: 'f',\n х: 'h',\n ц: 'c',\n ч: 'ch',\n ш: 'sh',\n щ: 'shch',\n ъ: '\\'',\n ы: 'y',\n ь: '',\n э: 'e',\n ю: 'yu',\n я: 'ya',\n '\\u00AB':'_',\n '\\u00BB':'_', // «»\n ' ': sp,\n _: sp,\n '`': sp,\n '~': sp,\n '!': sp,\n '@': sp,\n '#': sp,\n $: sp,\n '%': sp,\n '^': sp,\n '&': sp,\n '*': sp,\n '(': sp,\n ')': sp,\n '-': sp,\n '=': sp,\n '+': sp,\n '[': sp,\n ']': sp,\n '\\\\': sp,\n '|': sp,\n '/': sp,\n '.': sp,\n ',': sp,\n '{': sp,\n '}': sp,\n '\\'': sp,\n '\"': sp,\n ';': sp,\n ':': sp,\n '?': sp,\n '<': sp,\n '>': sp,\n '№': sp\n }\n let result = ''\n let curentSim = ''\n for (let i = 0; i < text.length; i++) {\n if (transl[text[i]] !== undefined) {\n if (curentSim !== transl[text[i]] || curentSim !== sp) {\n result += transl[text[i]]\n curentSim = transl[text[i]]\n }\n } else {\n result += text[i]\n curentSim = text[i]\n }\n }\n result = result.replace(/^_/, '').replace(/_$/, '') // trim\n return result\n}\n\nfunction rgb2hsl(rbg) {\n const r = rbg[0]\n const g = rbg[1]\n const b = rbg[2]\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n let h = 0\n let s = 0\n const l = (max + min) / 2\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break\n case g: h = (b - r) / d + 2; break\n case b: h = (r - g) / d + 4; break\n default:\n }\n h /= 6\n }\n return [h, s, l] // H - цветовой тон, S - насыщенность, L - светлота\n}\n\nfunction changeColor(HTMLcolor) {\n const e = rgb2hsl(HTMLcolor)\n if (e[0] < 0.55 && e[2] >= 0.5 || e[0] >= 0.55 && e[2] >= 0.75) {\n return 'black'\n }\n return 'white'\n}\n\nfunction scrolling() {\n if (section !== 'magazine' && section !== 'managers' && section !== 'docs' && $(this).scrollTop() >= $(this).height() - $(window).height() - 100) {\n feedLoader(post)\n }\n}\n\n$('.sidebar-toggler').on('click', () => {\n $('.sidebar, .post-sidebar').toggleClass('open')\n $('.sidebar').toggleClass('ps--scrolling-y', $('.sidebar').is('.open'))\n})\n\n$(document).on('click', '.promo-link', function () {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n const id = $(this).closest('.feed-item').attr('data-id')\n $.ajax({\n dataType: 'json',\n type: 'post',\n url: '/api/promo.json',\n data: `id=${id}`,\n success: (data) => {\n $('.glass').hide()\n if (data.error) {\n window.console.log(data.error)\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n})\n\nlet profileChange = false\n$(document).on('click', '.btn-profile', () => {\n if ($('.modal').is('.show')) {\n $('.modal').modal('hide')\n }\n showModal('', `\n \n
    \n \n \n
    \n
    \n \n
    \n \n %%Поменять пароль%%\n `, 'auth', () => {\n document.querySelector('.modal .file-input').onchange = function () {\n const url = URL.createObjectURL(this.files[0])\n $(this).closest('.avatar').attr('style', `background-image: url(${url})`)\n }\n const validator = $('.validate').validate({\n rules: {\n name: {\n required: true,\n minlength: 4,\n maxlength: 32\n }\n },\n submitHandler: () => {\n const spinner = spinObject($('.modal [type=\"submit\"]'))\n const formData = new FormData($('.validate')[0])\n const name = $('.modal [name=\"name\"]').val()\n $.ajax({\n dataType: 'json',\n type: 'post',\n contentType: false,\n processData: false,\n url: '/api/profile.json',\n data: formData,\n beforeSend: () => {\n $('.summary-error').remove()\n $('.glass').show()\n spinner.animate({\n width: 24,\n 'margin-right': 4\n })\n },\n success: (data) => {\n spinner.animate({\n width: 0,\n 'margin-right': 0\n })\n $('.glass').hide()\n if (data.error) {\n if (typeof data.error === 'string') {\n $('form .form-group').last().append(`
    ${data.error}
    `)\n } else {\n validator.showErrors(data.error)\n }\n } else {\n $('.modal').modal('hide')\n $('.profile').each(function () {\n $(this).attr('style', `background-image: url(/img/users/${userData.id}.jpg?${Math.random()})`)\n })\n $('.avatar').each(function () {\n if ($(this).css('background').search(`${userData.id}.jpg`) >= 0) {\n $(this).attr('style', `background-image: url(/img/users/${userData.id}.jpg?${Math.random()})`).siblings('.name').text(name)\n $('.username').text(name)\n userData.name = name\n }\n })\n $('.username').text(name)\n userData.name = name\n profileChange = true\n }\n },\n error: (jqXHR, textStatus, errorThrown) => {\n window.console.log(jqXHR, textStatus, errorThrown)\n }\n })\n }\n })\n })\n})\n\n$(document).on('click', '.filter .btn:not(.active)', function () {\n $(this).addClass('active').siblings().removeClass('active')\n page = 0\n $('.feed').empty()\n feedLoader()\n})\n\nlet lang = false\n$.getJSON('/api/flags.json', (data) => {\n const langs = data.langs\n const flags = data.flags\n\n lang = getCookie('lang')\n if (!lang) {\n lang = data.browser\n }\n\n langs.forEach((item) => {\n if (lang === item) {\n $('.select-lang .active').append(``)\n } else {\n $('.select-lang .links').append(``)\n }\n })\n if (lang !== 'en' && Object.prototype.hasOwnProperty.call($, 'validator')) {\n $.getScript(`/vendors/localization/messages_${lang}.min.js`)\n }\n})\n\n\n$('.select-lang').on('click', function () {\n $(this).toggleClass('hover')\n})\n\n$('.select-lang .links').on('click', 'i', function () {\n lang = $(this).attr('data-lang-code')\n setLang()\n})\n\nfunction setLang() {\n $('.select-lang .links').append($('.select-lang .active i'))\n $('.select-lang .active').append($(`[data-lang-code=${lang}]`))\n document.cookie = `lang=${lang}; path=/;`\n location.reload()\n}\n\nexport {\n feedLoader,\n getCookie,\n getFormData,\n magazineLoader,\n profileChange,\n section,\n spinObject\n}\n"],"mappings":"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"}