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 ();
}