function onload () { state.hasChanged = Array (); // quickbar initialesieren cbInit(); updateQuickbar (); showMessages (state.messages); top.setStatus (state.statusbar.value); } function onresize () { if (obj = document.getElementById ("scroll")) { obj.className = "content_hidden"; obj.style.width = obj.parentNode.offsetWidth; obj.style.height = obj.parentNode.offsetHeight; obj.className = "content"; } } function focus () { top.focus (); } function setValue (name, value, noHasChanged) { new Form ().set ("value["+name+"]", value, true); if (!noHasChanged) { hasChanged (name); } } function getValue (name) { return new Form ().get ("value["+name+"]"); } function hasChanged (name) { var value = getValue (name); if ((value == state.values[name]) == (state.hasChanged[name] == true)) { if (typeof state.values[name] == "undefined") { state.values[name] = ""; } state.hasChanged[name] = !state.hasChanged[name]; var changed = false; for (var i in state.hasChanged) { changed |= state.hasChanged[i]; } state.quickbar.disabledButtons.save = !changed; state.quickbar.disabledButtons.undo = !changed; updateQuickbar (); } } var disableButtonsList = Array (); function updateQuickbar () { for (var name in disableButtonsList) { document.getElementById (name).setEnabled (true); } disableButtonsList = Array (); for (var name in state.quickbar.disabledButtons) { if (state.quickbar.disabledButtons[name]) { document.getElementById (name).setEnabled (false); disableButtonsList[name] = true; } } } function update () { updateQuickbar (); top.setStatus (state.statusbar.value); } function save (onCompletion) { // Alle zu speichernde Werte zusammen suchen var changeLanguage = false; var values = ""; for (var name in state.hasChanged) { if (state.hasChanged[name]) { state.values[name] = getValue(name); values += "&value["+name+"]="+encodeURIComponent (state.values[name]); if (name == "language") { changeLanguage = true; } } } if (values) { state.hasChanged = Array (); top.setProgress (true); var path = window.location.pathname.replace (/(.*\/).*/, "$1"); // ist für Save beim direkten öffnen einer neuen Seite var request = new Ajax (path+"tpl_user_settings_action.php", "action=save&"+values); request.onCompletion = onCompletion ? onCompletion : function (response) { try { if (changeLanguage) { reload (); } else { eval (response); state.hasChanged = Array (); new Form ().set ("value[password]", ""); new Form ().set ("value[password2]", ""); showMessages (state.messages); update (); focus (); } } catch (e) {}; } request.run (); return true; } else { return false; } } function undo () { // zuerst Änderungen speichern if (save (undo)) { return; } // Undo durchführen top.setProgress (true); var request = new Ajax ("tpl_user_settings_action.php", "action=undo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); for (var name in state.values) { setValue (name, state.values[name], true); } update (); focus (); } request.run (); } function redo () { top.setProgress (true); var request = new Ajax ("tpl_user_settings_action.php", "action=redo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); for (var name in state.values) { setValue (name, state.values[name], true); } update (); focus (); } request.run (); } function reload () { top.reload (true); window.location.reload (); } function help () { top.setProgress (true); var request = new Ajax ("tpl_user_settings_action.php", "action=message&text=help text"); request.onCompletion = function (response) { showMessages ({0:{type : "info", text : response}}); top.setProgress (false); } request.run (); }