function runtranslate() {
    if($("#trfrom").val().length>0 && ($("#trfrom").val()!=translatorLast || causedByLangswitch))
    {
    causedByLangswitch=false;
    translatorLast=$("#trfrom").val();
    $.post(Drupal.settings.basePath+"translator.php", { query: $("#trfrom").val() , direction: $("#langfromto span").text() },
      function(data){
        data=data.substr(data.indexOf("<target>")+8,data.indexOf("</target>")-data.indexOf("<target>")-8);  
        $("#trto").html(data);
        $("#trto").slideDown(); 
        $("#opts").slideUp();
      }, "text");

    
    }
}

causedByLangswitch=false;
translateFieldLastMod=new Date();
translatorTimerRunning=0;
translatorLast='';

function translatorTimer()
{
var tmp=new Date();
if (tmp-translateFieldLastMod>800)
    {
        runtranslate()
        translatorTimerRunning=0;
    } else {
        setTimeout("translatorTimer()",500);       
    }
}



$(document).ready(function(){
//non-human-translation
$(".nht-globalizator").attr("title","automatic translation!")

//przygotowanie zawartosci okienka
$("#translator").html('<textarea id="trfrom">'+langprompt[$("html").attr("lang")]+'</textarea>    <div id="langpick">     <div id="langfromto"> - </div>   </div>    <div id="trto"></div>');

//przygotowanie listy wyboru
langoptions='';
arrow=' <div class="trarr"> &nbsp;&nbsp;&nbsp; </div> ';
//pl to sth
for(var j in langtexts['pl'])
{
i='pl';
if(i!=j)
    {
    langoptions+='<li>'+langtexts[$("html").attr("lang")][i]+arrow+langtexts[$("html").attr("lang")][j]+'<span>'+i+j+'</span></li>';
    }
}
//from sth to pl
for(var i in langtexts['pl'])
{
j='pl';
if(i!=j)
    {
    langoptions+='<li>'+langtexts[$("html").attr("lang")][i]+arrow+langtexts[$("html").attr("lang")][j]+'<span>'+i+j+'</span></li>';
    }
}

$("#langfromto").html(langtexts[$("html").attr("lang")]['pl']+arrow+langtexts[$("html").attr("lang")]['en']+'<span>plen</span>');

$("body").append('<div id="opts"><ul>'+langoptions+'</ul></div>');


    $("#trto").hide();
    $("#translator").slideDown();
   $("#trfrom").bind("keyup",function () {  
        $("#opts").slideUp(); 
        if($("#trfrom").val().length>255)
                {$("#trfrom").val($("#trfrom").val().substr(0,255));}
        translateFieldLastMod=new Date();
        if(translatorTimerRunning==0)
            {
            translatorTimerRunning=1;
            translatorTimer();            
            }            
   }).bind("change",function() {
        translatorTimerRunning=1;
        translatorTimer();
        $("#opts").slideUp();
   }).bind("click",function () {
      $(this).text(' ').unbind("click"); 
   });
   
   $opts=$("#opts");
   $opts.bind("mouseleave",function () {
       $(this).slideUp();
   });
   $opts.find("li").bind("click",function () {
       var $opty=$("#opts");
       $("#"+$opty.data("pick")).html($(this).html()); 
       //$opty.hide(); 
       $opty.slideUp();
       causedByLangswitch=true;
       $("#trfrom").triggerHandler("change");
   }); 
   
   $("#langpick").bind("click",function () {
        $opts=$("#opts");               
        $this=$(this);
        $opts.css({top:$this.offset().top+'px',left:$this.offset().left+'px'}).toggle();
        $opts.data("pick",$this.find("#langfromto").attr("id"));
   }); 
   
   $("#langfromto").bind("wasmouseenter",function () {
        $opts=$("#opts");
        $this=$(this).parent();                                       
        $opts.css({top:$this.offset().top+'px',left:$this.offset().left+'px'}).show();
        $opts.data("pick",$(this).attr("id"));
   });  
});

langtexts=new Array();
langprompt=new Array();
langtexts['pl']=new Array();
langtexts['pl']['pl']='polski';
langtexts['pl']['en']='angielski';
langtexts['pl']['de']='niemiecki';
langtexts['pl']['ru']='rosyjski';
langtexts['pl']['fr']='francuski TEST';
langprompt['pl']='Wpisz tekst do przetłumaczenia';

langtexts['en']=new Array();
langtexts['en']['pl']='Polish';
langtexts['en']['en']='English';
langtexts['en']['de']='German';
langtexts['en']['ru']='Russian';
langtexts['en']['fr']='French TEST';
langprompt['en']='Enter text to translate';

langtexts['de']=new Array();
langtexts['de']['pl']='Polnisch';
langtexts['de']['en']='Englisch';
langtexts['de']['de']='Deutsch';
langtexts['de']['ru']='Russisch';
langtexts['de']['fr']='Französisch TEST';
langprompt['de']='Hier den zu übersetzenden Text eingeben.';

langtexts['ru']=new Array();
langtexts['ru']['pl']='польский';
langtexts['ru']['ru']='русский';
langtexts['ru']['de']='немецкий';
langtexts['ru']['en']='английский';
langtexts['ru']['fr']='Французский TEST';
langprompt['ru']='Ввести текст для перевода';

langtexts['fr']=new Array();
langtexts['fr']['pl']='polonais';
langtexts['fr']['en']='anglais';
langtexts['fr']['de']='allemand';
langtexts['fr']['ru']='russe';
langtexts['fr']['fr']='français TEST';
langprompt['fr']='Entrez ici le texte à traduire';
