function onload () { state.hasChanged = Array (); // quickbar initialesieren cbInit(); updateQuickbar (); showMessages (state.messages); top.setStatus (state.statusbar.value); focus (); } 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"; } if (top.scrollpos) { document.getElementById ("scroll").scrollTop = top.scrollpos; top.scrollpos = 0; } } function focus () { top.focus (); setTimeout ( function () { new Form ().focus ("value[value]"); if (obj = document.getElementById ("value[value]")) { obj.selectionStart = 0; obj.selectionEnd = obj.value.length; } }, 0); } function setValue (name, value, noHasChanged) { new Form ().set ("value["+name+"]", value); if (!noHasChanged) { hasChanged (name); } } function getValue (name) { return new Form ().get ("value["+name+"]"); } function hasChanged (name) { var value = getValue (name); var height = (value.match (/\n/) || value.length > 30) ? ((value.length > 150) ? 200 : 100) : 18; if (obj = document.getElementById ("value[value]")) { obj.style.height = height; } 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 select (obj, name) { // zuerst Änderungen speichern if (save (function () {select (obj, name);})) { return; } if (old = document.getElementById ("value[value]")) { old.parentNode.style.color = state.values.ok ? "green" : state.values.value ? "" : "red"; old.parentNode.innerHTML = state.values.value ? state.values.value : state.values.defaultValue; } if (old = document.getElementById ("value[ok]")) { old.parentNode.innerHTML = state.values.ok ? "x" : "-"; } top.setProgress (true); var parameter = ""; parameter += "&select[name]=" + (name ? name : ""); parameter += "&select[language]=" + getValue ("language"); parameter += "&select[section]=" + getValue ("section"); var request = new Ajax ("tpl_i18n_settings_action.php", "action=select"+parameter); request.onCompletion = function (response) { if (obj) { eval (response); state.hasChanged = Array (); var value = state.values.defaultValue; var height = (value.match (/\n/) || value.length > 30) ? ((value.length > 150) ? 200 : 100) : 18; obj.nextSibling.innerHTML = ""; obj.nextSibling.nextSibling.innerHTML = ""; update (); focus (); } else { window.location.reload (); } } request.run (); } function add () { // zuerst Änderungen speichern if (save (add)) { return; } lc = prompt ("enter new text", ""); if (!lc) { return; } top.setProgress (true); var request = new Ajax ("tpl_i18n_settings_action.php", "action=add&lc="+lc); request.onCompletion = function (response) { window.location.reload (); top.setProgress (false); } request.run (); } function del () { top.setProgress (true); var request = new Ajax ("tpl_i18n_settings_action.php", "action=del"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); setValue ("value", state.values.defaultValue, true) setValue ("ok", state.values.ok, true) update (); focus (); } request.run (); } function delAll () { top.setProgress (true); var request = new Ajax ("tpl_i18n_settings_action.php", "action=delAll"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); if (obj = document.getElementById ("value[value]")) { obj.parentNode.parentNode.parentNode.removeChild (obj.parentNode.parentNode); } update (); } request.run (); } function save (onCompletion) { // Alle zu speichernde Werte zusammen suchen 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 (!onCompletion) { if (old = document.getElementById ("value[value]")) { old.parentNode.style.color = state.values.ok ? "green" : state.values.value ? "" : "red"; old.parentNode.innerHTML = state.values.value ? state.values.value : state.values.defaultValue; } if (old = document.getElementById ("value[ok]")) { old.parentNode.innerHTML = state.values.ok ? "x" : "-"; } } 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_i18n_settings_action.php", "action=save&"+values); request.onCompletion = onCompletion ? onCompletion : function (response) { eval (response); state.hasChanged = Array (); update (); new Form ().focus ("value[value]"); } 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_i18n_settings_action.php", "action=undo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); setValue ("value", state.values["value"], true); setValue ("ok", state.values["ok"], true); update (); focus (); } request.run (); } function redo () { top.setProgress (true); var request = new Ajax ("tpl_i18n_settings_action.php", "action=redo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); setValue ("value", state.values["value"], true); setValue ("ok", state.values["ok"], true); update (); focus (); } request.run (); } function help () { top.setProgress (true); var request = new Ajax ("tpl_i18n_settings_action.php", "action=message&text=help text"); request.onCompletion = function (response) { showMessages ({0:{type : "info", text : response}}); top.setProgress (false); } request.run (); }