/**
 * Copyright 2007 Jeffrey Palm
 */

function example() {
  doTranslate("cat");
}

function $n(tag,on) {
  var e = document.createElement(tag);
  if (on) on.appendChild(e);
  return e;
}

function $t(text,on) {
  var e = document.createTextNode(text);
  if (on) on.appendChild(e);
  return e;
}

function onClick() {
  var q = document.getElementById("q").value;
  if (!q) return;
  doTranslate(q);
}

function doTranslate(q) {
  document.getElementById("word").innerHTML = "<em>loading...<b>" + q + "</b></em>";
  var url = '/translate/do_translate.php?q=' + escape(q);
  new Ajax.Request(url,
		   {
		     method:'get',
		       onSuccess: function(transport) {
		       var res = transport.responseText || "";
		       translate(q,res);
		     },
		       onFailure: function() { 
		       alert('Something went wrong...');
		     }
		   });
}

function translate(q,res) {
  if (!res) return;
  document.getElementById("word").innerHTML = q;

  var lines = res.split(/\n/);
  trans = new Array();
  trans2langs = new Array();
  trans.push(q);
  trans2langs[q] = "English";
  for (var i=0; i<lines.length; i++) {
    var ln = lines[i];
    var ws = ln.split(/\|/);
    if (ws.length < 2) continue;
    var lang = ws[0];
    var tran = ws[1].toLowerCase();
    trans.push(tran);
    trans2langs[tran] = lang;
  }
  trans.sort();
  var t = document.getElementById("mainP");
  while (t.childNodes && t.childNodes.length > 0) {
    t.removeChild(t.firstChild);
  }
  show();
  document.getElementById("q").value = "";
  
}

var trans2langs;
var trans;
function show() {
  if (!trans || trans.length == 0) return;
  var tran = trans.shift();
  var lang = trans2langs[tran];
  var t = document.getElementById("mainP");
  var tr = $n("tr",t);
  var n;
  var id1 = "_" + lang + "1";
  var id2 = "_" + lang + "2";
  n = $n("td",tr);
  n.id = id1;
  n.innerHTML = lang;
  n.align = "right";
  n.style.display = "none";
  n = $n("td",tr);
  n.id = id2;
  n.innerHTML = "<em>" + tran + "</em>";
  n.style.display = "none";
  Effect.Appear(id1);
  Effect.Appear(id2);
  setTimeout("show()",500);
  
}

