/* 20070703.011 */
var Nameko = {
  XHR: null,

  createXHR: function() {
    try {
      var XHR;
      if (window.XMLHttpRequest) {
        XHR = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        XHR = new ActiveXObject("Microsoft.XMLHTTP");
      }
      return XHR;
    } catch(e) {
    }
  },

  addEvent: function(elementTarget, eventType, functionHandler) {
    try {
      if(elementTarget.addEventListener) {
        elementTarget.addEventListener(eventType, functionHandler, false);
      } else if(elementTarget.attachEvent) {
        elementTarget.attachEvent("on" + eventType, functionHandler);
      } else {
        elementTarget["on" + eventType] = functionHandler;
      }
    } catch(e) {
    }
  },

  keepUpdatedForm: function() {
    if(document.getElementById("formKeepUpdated")) {
      document.getElementById("formKeepUpdated").innerHTML = "<div id='formKeepUpdatedErr'></div>Name:<br /><input type='text' id='keepUpdatedName' style='width:100px; margin-bottom:5px;' /><br />Email:<br /><input type='text' id='keepUpdatedEmail' style='margin-bottom:5px; width:100px;' /><br /><input type='button' id='keepUpdatedButton' value='Subscribe / Unsub.' style='width:100px;' onclick='Nameko.keepUpdated();' />";
    }
  },

  keepUpdated: function() {
    if(document.getElementById("keepUpdatedEmail").value) {
      try {
        Nameko.XHR.abort();
        Nameko.XHR.onreadystatechange = function() {
          if(Nameko.XHR.readyState == 4) {
            document.getElementById("formKeepUpdated").innerHTML = Nameko.XHR.responseText;
          }
        };
        Nameko.XHR.open("GET", "/ajax.php?cmd=keepUpdated&email=" + encodeURIComponent(document.getElementById("keepUpdatedEmail").value) + "&name=" + encodeURIComponent(document.getElementById("keepUpdatedName").value), true);
        Nameko.XHR.send(null);
      } catch(e) {
      }
    } else {
      document.getElementById("formKeepUpdatedErr").innerHTML = "What's your email address?";
    }
  },

  keepUpdatedRemove: function(keepUpdateId) {
    try {
      Nameko.XHR.abort();
      Nameko.XHR.onreadystatechange = function() {
        if(Nameko.XHR.readyState == 4) {
          document.getElementById("formKeepUpdated").innerHTML = Nameko.XHR.responseText;
        }
      };
      Nameko.XHR.open("GET", "/ajax.php?cmd=keepUpdated&keepUpdatedId=" + encodeURIComponent(keepUpdateId), true);
      Nameko.XHR.send(null);
    } catch(e) {
    }
  },

  activateTransButton: function(buttonId) {
    document.getElementById("save_" + buttonId).style.display = "inline";
  },

  saveTranslation: function(translatorEmail, localeId) {
    document.getElementById("save_" + localeId).style.display = "none";
    document.getElementById("saveicon_" + localeId).style.display = "inline";
    var translatedString = encodeURIComponent(document.getElementById("trans_" + localeId).value);
    try {
      Nameko.XHR.onreadystatechange = function() {
        if(Nameko.XHR.readyState == 4) {
          if(Nameko.XHR.responseText == "OK") {
            setTimeout(function() { document.getElementById("saveicon_" + localeId).style.display = "none"; }, "500");
          } else {
            document.getElementById("saveicon_" + localeId).style.display = "none";
            alert("Error. Try again. If this error occours again please send an email to wiz@nameko.org");
            alert(Nameko.XHR.responseText);
          }
        }
      };
      Nameko.XHR.open("POST", "/ajax.php?cmd=saveTranslation", true);
      Nameko.XHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      Nameko.XHR.send("localeId=" + localeId + "&translatorEmail=" + encodeURIComponent(translatorEmail) + "&translatedString=" + translatedString);
    } catch(e) {
    }
  },

  init: function() {
    try {
      if(!document.getElementById) return;
      Nameko.XHR = Nameko.createXHR();
      Nameko.keepUpdatedForm();
    } catch(e) {
    }
  }
}

Nameko.addEvent(window, "load", Nameko.init, false);