function expand_wall_textarea(id) { var el = document.getElementById('post-buttons'+id); var wi = document.getElementById('wall-post-input'+id); el.style.display = "block"; wi.className = "expanded-textarea"; } function expand_comment_textarea(id) { var el = document.getElementById('commentTextArea'+id); var wi = document.getElementById('wall-post-input'+id); el.style.display = "block"; wi.focus(); } function edit_post(id, wid) { var el = document.getElementById('text'+wid+'_'+id); var ed = document.getElementById('text_edit'+wid+'_'+id); if (el.style.display == "none") { el.style.display = "block"; ed.style.display = "none"; } else { el.style.display = "none"; ed.style.display = "block"; } } function hidePanel(panel, count = 0) { $(panel).toggleClass("content_title_expanded content_title_unexpanded"); $(panel).next('div').slideToggle(300); if(count != 0){ if($(panel).hasClass("content_title_expanded")) $(panel).html($(panel).html().replaceAll(" ("+count+")", "")); else $(panel).html($(panel).html() + " ("+count+")"); } } function parseAjaxResponse(responseString) { try { const response = JSON.parse(responseString); if(response.flash) NewNotification(response.flash.title, response.flash.message || "", null); return response.success || false; } catch(error) { if(responseString === "Хакеры? Интересно...") { location.reload(); return false; } else { throw error; } } } function toggleMenu(id) { if($(`#post-buttons${id} #wallAttachmentMenu`).is('.hidden')) { $(`#post-buttons${id} #wallAttachmentMenu`).css({ opacity: 0 }); $(`#post-buttons${id} #wallAttachmentMenu`).toggleClass('hidden').fadeTo(250, 1); } else { $(`#post-buttons${id} #wallAttachmentMenu`).fadeTo(250, 0, function () { $(this).toggleClass('hidden'); }); } } document.addEventListener("DOMContentLoaded", function() { //BEGIN u("#_photoDelete").on("click", function(e) { var formHtml = "
"; formHtml += ""; formHtml += "
"; u("body").append(formHtml); MessageBox(tr('warning'), tr('question_confirm'), [ tr('yes'), tr('no') ], [ (function() { u("#tmpPhDelF").nodes[0].submit(); }), (function() { u("#tmpPhDelF").remove(); }), ]); return e.preventDefault(); }); /* @rem-pai why this func wasn't named as "#_deleteDialog"? It looks universal IMO */ u("#_noteDelete").on("click", function(e) { var formHtml = "
"; formHtml += ""; formHtml += "
"; u("body").append(formHtml); MessageBox(tr('warning'), tr('question_confirm'), [ tr('yes'), tr('no') ], [ (function() { u("#tmpPhDelF").nodes[0].submit(); }), (function() { u("#tmpPhDelF").remove(); }), ]); return e.preventDefault(); }); u("#_pinGroup").on("click", async function(e) { e.preventDefault(); let link = u(this).attr("href"); let thisButton = u(this); let groupName = u(this).attr("data-group-name"); let groupUrl = u(this).attr("data-group-url"); let list = u('#_groupListPinnedGroups'); thisButton.nodes[0].classList.add('loading'); thisButton.nodes[0].classList.add('disable'); let req = await ky(link); if(req.ok == false) { NewNotification(tr('error'), tr('error_1'), null); thisButton.nodes[0].classList.remove('loading'); thisButton.nodes[0].classList.remove('disable'); return; } if(!parseAjaxResponse(await req.text())) { thisButton.nodes[0].classList.remove('loading'); thisButton.nodes[0].classList.remove('disable'); return; } // Adding a divider if not already there if(list.nodes[0].children.length == 0) { list.nodes[0].append(u('').first()); } // Changing the button name if(thisButton.html().trim() == tr('remove_from_left_menu')) { thisButton.html(tr('add_to_left_menu')); for(let i = 0; i < list.nodes[0].children.length; i++) { let element = list.nodes[0].children[i]; if(element.pathname == groupUrl) { element.remove(); } } }else{ thisButton.html(tr('remove_from_left_menu')); list.nodes[0].append(u('' + groupName + '').first()); } // Adding the group to the left group list if(list.nodes[0].children[0].className != "menu_divider" || list.nodes[0].children.length == 1) { list.nodes[0].children[0].remove(); } thisButton.nodes[0].classList.remove('loading'); thisButton.nodes[0].classList.remove('disable'); return false; }); }); //END ONREADY DECLS function repostPost(id, hash) { uRepostMsgTxt = tr('your_comment') + ":

"; MessageBox(tr('share'), uRepostMsgTxt, [tr('send'), tr('cancel')], [ (function() { text = document.querySelector("#uRepostMsgInput_"+id).value; hash = encodeURIComponent(hash); xhr = new XMLHttpRequest(); xhr.open("POST", "/wall"+id+"/repost?hash="+hash, true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhr.onload = (function() { if(xhr.responseText.indexOf("wall_owner") === -1) MessageBox(tr('error'), tr('error_repost_fail'), [tr('ok')], [Function.noop]); else { let jsonR = JSON.parse(xhr.responseText); NewNotification(tr('information_-1'), tr('shared_succ'), null, () => {window.location.href = "/wall" + jsonR.wall_owner}); } }); xhr.send('text=' + encodeURI(text)); }), Function.noop ]); } function setClubAdminComment(clubId, adminId, hash) { MessageBox("Изменить комментарий к администратору", `


`, [tr('edit_action'), tr('cancel')], [ () => { if (document.querySelector(`#uClubAdminCommentTextArea_${clubId}_${adminId}`).value === "") { document.querySelector(`#uClubAdminCommentRemoveCommentInput_${clubId}_${adminId}`).value = "1"; } document.querySelector(`#uClubAdminCommentForm_${clubId}_${adminId}`).submit(); }, Function.noop ]); } function showCoinsTransferDialog(coinsCount, hash) { MessageBox(tr("transfer_poins"), `
${tr("points_transfer_dialog_header_1")} ${tr("points_transfer_dialog_header_2")} ${tr("points_amount", coinsCount)}
${tr("receiver_address")}:
${tr("coins_count")}:
${tr("message")}:
`, [tr("transfer_poins_button"), tr("cancel")], [ () => { document.querySelector("#coins_transfer_form").submit(); }, Function.noop ]); } function chunkSubstr(string, size) { const numChunks = Math.ceil(string.length / size); const chunks = new Array(numChunks); for (let i = 0, o = 0; i < numChunks; ++i, o += size) { chunks[i] = string.substr(o, size); } return chunks; } function autoTab(original, next, previous) { if(original.getAttribute && original.value.length == original.getAttribute("maxlength") && next !== undefined) next.focus(); else if(original.value.length == 0 && previous !== undefined) previous.focus(); } function showSupportFastAnswerDialog(answers) { let html = ""; for(const [index, answer] of Object.entries(answers)) { html += `
${answer.replace(/\n/g, "
")}
`; } MessageBox(tr("fast_answers"), html, [tr("close")], [ Function.noop ]); } function supportFastAnswerDialogOnClick(answer) { u("body").removeClass("dimmed"); u(".ovk-diag-cont").remove(); const answerInput = document.querySelector("#answer_text"); answerInput.value = answer; answerInput.focus(); } function ovk_proc_strtr(string, length = 0) { const newString = string.substring(0, length); return newString + (string !== newString ? "…" : ""); } function showProfileDeactivateDialog(hash) { MessageBox(tr("profile_deactivate"), `
${tr("profile_deactivate_header")}

${tr("profile_deactivate_reason_header")}



`, [tr("profile_deactivate_button"), tr("cancel")], [ () => { $("#profile_deactivate_dialog").submit(); }, Function.noop ]); $('[id^="deactivate_r_"]').on("click", function () { $('#deactivate_reason').val($(this).data("text")); }); } function showIncreaseRatingDialog(coinsCount, userUrl, hash) { MessageBox(tr("increase_rating"), `
${tr("you_have_unused_votes", coinsCount)}
${tr("apply_voucher")} »
${tr("to_whom")}:
${tr("increase_by")}:
${tr("message")}:
${tr("price")}: ${tr("points_amount", 0)} (1% = ${tr("points_amount_one", 1)})
`, [tr("increase_rating_button"), tr("cancel")], [ () => { document.querySelector("#increase_rating_form").submit(); }, Function.noop ]); document.querySelector("#value_input").oninput = function () { let value = Number(this.value); value = isNaN(value) ? "?" : ovk_proc_strtr(String(value), 7); if(!value.endsWith("…") && value != "?") value = Number(value); if(typeof value === "number") document.querySelector("#rating_price").innerHTML = tr("points_amount", value); else document.querySelector("#rating_price").innerHTML = value + " " + tr("points_amount_other").replace("$1 ", ""); }; } function escapeHtml(text) { var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, function(m) { return map[m]; }); } $(document).on("scroll", () => { if($(document).scrollTop() > $(".sidebar").height() + 50) { $(".floating_sidebar")[0].classList.add("show"); } else if($(".floating_sidebar")[0].classList.contains("show")) { $(".floating_sidebar")[0].classList.remove("show"); $(".floating_sidebar")[0].classList.add("hide_anim"); setTimeout(() => { $(".floating_sidebar")[0].classList.remove("hide_anim"); }, 250); } })