google.load("language", "1");

var i = 0;
var langs = new Array();
var oldtext = '';
var used_langs = new Array();

function initialize() {
  for (var lang in google.language.Languages) {
    lang = google.language.Languages[lang];
    if (lang == '') continue;
    if (google.language.isTranslatable(lang))
      langs.push(lang);
  }
}

function googlize(result) {
  if (!google.language) {
    alert("Übersetzer konnte nicht geladen werden!");
    return;
  }
  if (result) {
    if (result.error == null) {
      i += 1;
      document.getElementById("info").innerHTML += '.';
      var text = result.translation;
      oldtext = text;
    } else {
      var text = oldtext;
      used_langs.pop;
    }
  } else {
    i = 0;
    document.getElementById("result").style.display = 'block';
    document.getElementById("info").innerHTML = 'Arbeite';
    document.getElementById("out").style.display = 'none';
    var text = document.getElementById("in").value;
    oldtext = text;
    used_langs = new Array('de');
  }
  if (i == 10) {
    document.getElementById("out").value = text;
    document.getElementById("out").style.display = 'block';
    document.getElementById("info").innerHTML = 'So wurde übersetzt: '+used_langs.join(' -&gt; ');
  } else {
    var lang;
    if (i == 9) {
      lang = 'de';
    } else {
      do {
        lang = langs[Math.ceil(Math.random() * langs.length)];
      } while (lang == used_langs[used_langs.length - 1])
    }
    used_langs.push(lang);
    google.language.translate(text,//{text : text, type : 'text'},
      used_langs[used_langs.length - 2], lang, googlize);
  }
}

google.setOnLoadCallback(initialize);
