53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
var Settings = new Object();
|
|
|
|
Settings.init = function () {
|
|
if (!$('settings_form')) return;
|
|
|
|
Settings.form_changed = false;
|
|
|
|
// capture onclicks on all links to confirm form saving
|
|
var links = document.getElementsByTagName('a');
|
|
for (var i = 0; i < links.length; i++) {
|
|
if (links[i].href != "") {
|
|
DOM.addEventListener(links[i], "click", function (evt) { Settings.navclick_save(evt) })
|
|
}
|
|
}
|
|
|
|
// register all form changes to confirm them later
|
|
var selects = $('settings_form').getElementsByTagName('select');
|
|
for (var i = 0; i < selects.length; i++) {
|
|
DOM.addEventListener(selects[i], "change", function (evt) { Settings.form_change() });
|
|
}
|
|
var inputs = $('settings_form').getElementsByTagName('input');
|
|
for (var i = 0; i < inputs.length; i++) {
|
|
DOM.addEventListener(inputs[i], "change", function (evt) { Settings.form_change() });
|
|
}
|
|
var textareas = $('settings_form').getElementsByTagName('textarea');
|
|
for (var i = 0; i < textareas.length; i++) {
|
|
DOM.addEventListener(textareas[i], "change", function (evt) { Settings.form_change() });
|
|
}
|
|
}
|
|
|
|
Settings.navclick_save = function (evt) {
|
|
var confirmed = false;
|
|
|
|
if (Settings.form_changed == false) {
|
|
return true;
|
|
} else {
|
|
var confirm_msg = "Save your changes?";
|
|
if (Settings.confirm_msg) { confirm_msg = Settings.confirm_msg };
|
|
|
|
confirmed = confirm(confirm_msg);
|
|
}
|
|
|
|
if (confirmed) {
|
|
$('settings_form').submit();
|
|
}
|
|
}
|
|
|
|
Settings.form_change = function () {
|
|
if (Settings.form_changed == true) { return; }
|
|
Settings.form_changed = true;
|
|
}
|
|
|
|
LiveJournal.register_hook("page_load", Settings.init);
|