62 lines
2.1 KiB
JavaScript
62 lines
2.1 KiB
JavaScript
|
|
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);
|