setTimeout(_resizeIframe, 100, obj, ch);
}
+function initWidget(inflated, deflated) {
+ var elInf = document.getElementById(inflated);
+ var elDef = document.getElementById(deflated);
+
+ if (!elInf || !elDef) {
+ return;
+ }
+ if (localStorage.getItem(window.location.pathname + ":" + inflated) != "none") {
+ elInf.style.display = "block";
+ elDef.style.display = "none";
+ } else {
+ elInf.style.display = "none";
+ elDef.style.display = "block";
+ }
+}
+
+function openCloseWidget(inflated, deflated) {
+ var elInf = document.getElementById(inflated);
+ var elDef = document.getElementById(deflated);
+
+ if (!elInf || !elDef) {
+ return;
+ }
+
+ if (window.getComputedStyle(elInf).display === "none") {
+ elInf.style.display = "block";
+ elDef.style.display = "none";
+ localStorage.setItem(window.location.pathname + ":" + inflated, "block");
+ } else {
+ elInf.style.display = "none";
+ elDef.style.display = "block";
+ localStorage.setItem(window.location.pathname + ":" + inflated, "none");
+ }
+}
+
function openClose(theID) {
var el = document.getElementById(theID);
if (el) {
var last_popup_button = null;
var lockLoadContent = false;
+const urlRegex = /^(?:https?:\/\/|\s)[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})(?:\/+[a-z0-9_.:;-]*)*(?:\?[&%|+a-z0-9_=,.:;-]*)?(?:[&%|+&a-z0-9_=,:;.-]*)(?:[!#\/&%|+a-z0-9_=,:;.-]*)}*$/i;
+
$(function() {
$.ajaxSetup({cache: false});
}
});
+/**
+ * Inserts a BBCode tag in the comment textarea identified by id
+ *
+ * @param {string} BBCode
+ * @param {int} id
+ * @returns {boolean}
+ */
+function insertFormatting(BBCode, id) {
+ let textarea = document.getElementById('comment-edit-text-' + id);
+
+ if (textarea.value === '') {
+ $(textarea)
+ .addClass("comment-edit-text-full")
+ .removeClass("comment-edit-text-empty");
+ closeMenu("comment-fake-form-" + id);
+ openMenu("item-comments-" + id);
+ }
+
+ insertBBCodeInTextarea(BBCode, textarea);
+
+ return true;
+}
+
+/**
+ * Inserts a BBCode tag in the provided textarea element, wrapping the currently selected text.
+ * For URL BBCode, it discriminates between link text and non-link text to determine where to insert the selected text.
+ *
+ * @param {string} BBCode
+ * @param {HTMLTextAreaElement} textarea
+ */
+function insertBBCodeInTextarea(BBCode, textarea) {
+ let selectionStart = textarea.selectionStart;
+ let selectionEnd = textarea.selectionEnd;
+ let selectedText = textarea.value.substring(selectionStart, selectionEnd);
+ let openingTag = '[' + BBCode + ']';
+ let closingTag = '[/' + BBCode + ']';
+ let cursorPosition = selectionStart + openingTag.length + selectedText.length;
+
+ if (BBCode === 'url') {
+ if (urlRegex.test(selectedText)) {
+ openingTag = '[' + BBCode + '=' + selectedText + ']';
+ selectedText = '';
+ cursorPosition = selectionStart + openingTag.length;
+ } else {
+ openingTag = '[' + BBCode + '=]';
+ cursorPosition = selectionStart + openingTag.length - 1;
+ }
+ }
+
+ textarea.value = textarea.value.substring(0, selectionStart) + openingTag + selectedText + closingTag + textarea.value.substring(selectionEnd, textarea.value.length);
+ textarea.setSelectionRange(cursorPosition, cursorPosition);
+ textarea.dispatchEvent(new Event('change'));
+ textarea.focus();
+}
+
function NavUpdate() {
if (!stopped) {
- var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&f=&uid=' + localUser : '');
+ var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&uid=' + localUser : '');
$.get(pingCmd, function(data) {
if (data.result) {
// send nav-update event
$('body').css('cursor', 'auto');
}
/* autocomplete @nicknames */
- $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl");
+ $(".comment-edit-form textarea").editor_autocomplete(baseurl + '/search/acl');
/* autocomplete bbcode */
$(".comment-edit-form textarea").bbco_autocomplete('bbcode');
}
});
}
-function doignore(ident) {
+function dopin(ident) {
ident = ident.toString();
$('#like-rotator-' + ident).show();
- $.get('ignored/' + ident, function(data) {
+ $.get('pinned/' + ident, function(data) {
if (data.match(/1/)) {
- $('#ignored-' + ident).addClass('ignored');
- $('#ignored-' + ident).removeClass('unignored');
+ $('#pinned-' + ident).addClass('pinned');
+ $('#pinned-' + ident).removeClass('unpinned');
+ $('#pin-' + ident).addClass('hidden');
+ $('#unpin-' + ident).removeClass('hidden');
+ } else {
+ $('#pinned-' + ident).addClass('unpinned');
+ $('#pinned-' + ident).removeClass('pinned');
+ $('#pin-' + ident).removeClass('hidden');
+ $('#unpin-' + ident).addClass('hidden');
+ }
+ $('#like-rotator-' + ident).hide();
+ });
+}
+
+function doignore(ident) {
+ ident = ident.toString();
+ $('#like-rotator-' + ident).show();
+ $.get('item/ignore/' + ident, function(data) {
+ if (data === 1) {
+ $('#ignored-' + ident)
+ .addClass('ignored')
+ .removeClass('unignored');
$('#ignore-' + ident).addClass('hidden');
$('#unignore-' + ident).removeClass('hidden');
} else {
- $('#ignored-' + ident).addClass('unignored');
- $('#ignored-' + ident).removeClass('ignored');
+ $('#ignored-' + ident)
+ .addClass('unignored')
+ .removeClass('ignored');
$('#ignore-' + ident).removeClass('hidden');
$('#unignore-' + ident).addClass('hidden');
}
}
function preview_post() {
- $("#jot-preview").val("1");
$("#jot-preview-content").show();
$.post(
"item",
- $("#profile-jot-form").serialize(),
+ $("#profile-jot-form").serialize() + '&preview=1',
function(data) {
if (data.preview) {
$("#jot-preview-content").html(data.preview);
},
"json"
);
- $("#jot-preview").val("0");
return true;
}
function previewTheme(elm) {
theme = $(elm).val();
- $.getJSON('pretheme?f=&theme=' + theme,function(data) {
+ $.getJSON('pretheme?theme=' + theme,function(data) {
$('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
});