/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ function savePreferences(sender) { var sendForm = true; var sigList = $("signaturePlacementList"); if (sigList) sigList.disabled = false; if ($("categoriesList")) { serializeCategories(null); } if ($("dayStartTime")) { var start = $("dayStartTime"); var selectedStart = parseInt(start.options[start.selectedIndex].value); var end = $("dayEndTime"); var selectedEnd = parseInt(end.options[end.selectedIndex].value); if (selectedStart >= selectedEnd) { alert (getLabel ("Day start time must be prior to day end time.")); sendForm = false; } } if ($("enableVacation") && $("enableVacation").checked) { if ($("autoReplyText").value.strip().length == 0 || $("autoReplyEmailAddresses").value.strip().length == 0) { alert(getLabel("Please specify your message and your email addresses for which you want to enable auto reply.")); sendForm = false; } } if ($("enableForward") && $("enableForward").checked) { if ($("forwardAddress").value.strip().length == 0) { alert(getLabel("Please specify an address to which you want to forward your messages.")); sendForm = false; } } if (sendForm) $("mainForm").submit(); return false; } function _setupEvents(enable) { var widgets = [ "timezone", "shortDateFormat", "longDateFormat", "timeFormat", "weekStartDay", "dayStartTime", "dayEndTime", "firstWeek", "messageCheck", "subscribedFoldersOnly", "language"]; for (var i = 0; i < widgets.length; i++) { var widget = $(widgets[i]); if (widget) { if (enable) widget.observe("change", onChoiceChanged); else widget.stopObserving("change", onChoiceChanged); } } $("replyPlacementList").observe ("change", onReplyPlacementListChange); $("composeMessagesType").observe ("change", onComposeMessagesTypeChange); var categoriesValue = $("categoriesValue"); if (categoriesValue) categoriesValue.value = ""; } function onChoiceChanged(event) { var hasChanged = $("hasChanged"); hasChanged.value = "1"; _setupEvents(false); } function addDefaultEmailAddresses() { var defaultAddresses = $("defaultEmailAddresses").value.split(/, */); var addresses = $("autoReplyEmailAddresses").value.trim(); if (addresses) addresses = addresses.split(/, */); else addresses = new Array(); defaultAddresses.each(function(adr) { for (var i = 0; i < addresses.length; i++) if (adr == addresses[i]) break; if (i == addresses.length) addresses.push(adr); }); $("autoReplyEmailAddresses").value = addresses.join(", "); } function initPreferences() { _setupEvents(true); if (typeof (initAdditionalPreferences) != "undefined") initAdditionalPreferences(); if ($("signature")) { onComposeMessagesTypeChange(); } var table = $("categoriesList"); if (table) { resetCategoriesColors(null); var r = $$("TABLE#categoriesList tbody tr"); for (var i= 0; i < r.length; i++) r[i].identify(); table.multiselect = true; resetTableActions(); $("categoryAdd").observe("click", onCategoryAdd); $("categoryDelete").observe("click", onCategoryDelete); } // Disable placement (after) if composing in HTML if ($("composeMessagesType")) { if ($("composeMessagesType").value == 1) { $("replyPlacementList").selectedIndex = 0; $("replyPlacementList").disabled = 1; } onReplyPlacementListChange (); } if ($("addDefaultEmailAddresses")) $("addDefaultEmailAddresses").observe("click", addDefaultEmailAddresses); } function resetTableActions() { var r = $$("TABLE#categoriesList tbody tr"); for (var i = 0; i < r.length; i++) { var row = $(r[i]); row.observe("mousedown", onRowClick); var tds = row.childElements(); tds[0].observe("mousedown", endAllEditables); tds[0].observe("dblclick", onNameEdit); tds[1].observe("mousedown", endAllEditables); tds[1].childElements()[0].observe ("dblclick", onColorEdit); } } function makeEditable (element) { element.addClassName ("editing"); element.removeClassName ("categoryListCell"); var tmp = element.innerHTML; element.innerHTML = ""; var textField = new Element ("input", {"type": "text", "width": "100%"}); textField.value = tmp; textField.observe ("keydown", interceptEnter); element.appendChild (textField); textField.focus (); textField.select (); } function interceptEnter (e) { if (e.keyCode == Event.KEY_RETURN) { endAllEditables (null); preventDefault (e); return false; } } function endEditable (element) { var tmp = element.childElements ().first ().value; element.innerHTML = tmp; element.removeClassName ("editing"); element.addClassName ("categoryListCell"); } function endAllEditables (e) { var r = $$("TABLE#categoriesList tbody tr td"); for (var i=0; i