/*
 * Copyright 2006, Peter Rowntree. All Rights Reserved.
 * http://www.hdyn.com/wr/common/contact.php?addr=pr
 */

function doLoad()
{
   var inOb=document.getElementById("letters");
   var max=getQueryItem("max");
   if(max != null)
      inOb.maxLength=max;
   g_infoOb=document.getElementById('xfc');
   document.getElementById("letters").focus();
}

function send()
{
   var s=document.getElementById("letters").value;
   xfrComm(" ");
   if(s == "")
      return;
   try
   {
      sendXML("<doc></doc>","/ui22/send.hds?action=108&ss="+encodeURIComponent(s),sendDone,null);
   }
   catch(e)
   {
      xfrComm(typeof e.message == "undefined" ? e : e.message);
   }
}

function sendDone(req)
{  
   try
   {
      testError(req);
      var s=getBodyAsStr(req.responseXML);
      if(s == null || s == "")
      {
         xfrComm(randColor("&loz;"));
         wikit("");
      }
      else
      {
         if(typeof s.innerHTML != "undefined")
            s=s.innerHTML;
         wikit(s);
         var len=s.length;
         var s2="";
         for(var i=0; i<len; ++i)
            s2+=randColor(s.charAt(i));
         xfrComm(s2);
      }
   }
   catch(e)
   {
      xfrComm(typeof e.message == "undefined" ? e : e.message);
   }
   document.getElementById("letters").focus();
}

function randColor(s)
{
   var c=[0,0,0];
   var i=rand(3);
   var pool=500;
   for(var j=0; j<3; ++j)
   {
      var x=rand(pool < 256 ? pool : 256);
      pool-=x;
      c[i]=x;
      if(++i >= 3)
         i=0;
   }
   return "<span style='color: rgb("+c[0]+","+c[1]+","+c[2]+");'>"+s+"</span>";
}

function rand(lt)
{
   return Math.floor(Math.random()*0.99999*lt);
}

function wikit(s)
{
   document.getElementById("wiktionary").href=
      "http://en.wiktionary.org/wiki/"+s.replace(/[^a-zA-Z]/g,"_");
}
