mourningdove/htdocs/js/profile.js

62 lines
2.1 KiB
JavaScript
Raw Normal View History

2026-05-24 01:03:05 +00:00
var Profile = new Object();
Profile.init = function () {
// collapse any section that the user has set to collapse
HTTPReq.getJSON({
url: LiveJournal.getAjaxUrl("profileexpandcollapse"),
method: "GET",
data: HTTPReq.formEncoded({ mode: "load" }),
onData: function (data) {
if (data.headers) {
data.headers.forEach(function (header) {
var headerid = header + "_header";
if ($(headerid)) {
Profile.expandCollapse(headerid, false);
}
});
}
},
onError: function (msg) { }
});
// add event listeners to all of the headers
var headers = DOM.getElementsByClassName(document, "expandcollapse");
headers.forEach(function (header) {
DOM.addEventListener(header, "click", function (evt) { Profile.expandCollapse(header.id, true) });
});
}
Profile.expandCollapse = function (headerid, should_save) {
var self = this;
var bodyid = headerid.replace(/header/, 'body');
var arrowid = headerid.replace(/header/, 'arrow');
// figure out whether to expand or collapse
var expand = !DOM.hasClassName($(headerid), 'on');
if (expand) {
// expand
DOM.addClassName($(headerid), 'on');
if ($(arrowid)) { $(arrowid).src = Site.imgprefix + "/profile_icons/arrow-down.gif"; }
if ($(bodyid)) { $(bodyid).style.display = "block"; }
} else {
// collapse
DOM.removeClassName($(headerid), 'on');
if ($(arrowid)) { $(arrowid).src = Site.imgprefix + "/profile_icons/arrow-right.gif"; }
if ($(bodyid)) { $(bodyid).style.display = "none"; }
}
// save the user's expand/collapse status
if (should_save) {
HTTPReq.getJSON({
url: LiveJournal.getAjaxUrl("profileexpandcollapse"),
method: "GET",
data: HTTPReq.formEncoded({ mode: "save", header: headerid, expand: expand }),
onData: function (data) { },
onError: function (msg) { }
});
}
}
LiveJournal.register_hook("page_load", Profile.init);