var items;
var orig;
var lang;
var i;
var progress;
var progress_bar;
var current_lang = "pl";

function translate(i){
  content = items[i].innerHTML
  items[i].innerHTML = "Translating..."
  google.language.translate(content, current_lang, lang, function(result) {
    if (!result.error) items[i].innerHTML = result.translation;
    percent = (Math.round((i / items.length)*100)/100)
    progress.text(percent*100)
    progress_bar.css("width", percent * 400 + "px")
    
    if (i < items.length-1) translate(i+1);
    else {
      $("#translate_loader").slideUp();
      //$("#translate").hide();
      current_lang = lang;
    } 
  });
}

function translate_tag(tag){
  items = document.body.getElementsByTagName(tag);
  translate(0);
}

function init(){
  //{"en": "English", "fr": "Francais"}
  $("#nav").append("<li id=\"translate\"><select></select></li>")
  
  
  
  list = "<option value=\"\" selected>Choose language</a>";
  for(var n in google.language.Languages){
    if(n != "UNKNOWN" && google.language.isTranslatable(google.language.Languages[n]))
      list += "<option value=\"" + google.language.Languages[n] + "\">" + n + "</option>";
  }
  select =  $("#translate select")
  select.append(list);
  
  select.change(function(){
    lang = this.value
    if(lang == "") return false
    items = []
    k = 0
    tags = ["p", "h2", "#nav a", "a.more", "a.comments", "span.date", "#pager", "#sidebar h3", "#sidebar li", "h3", "form label", "div.user span"]
    
    for(var t=0 ; t<tags.length ; t++){
      tmp = $(tags[t])
      for(var j=0 ; j<tmp.length ; j++){
        items[k] = tmp[j];
        k++;
      }
    }
    
    // translate header
    
   google.language.translate("Translating in progress... (thanks to Google)", "en", lang, function(result) {
      $("#content").prepend("<div id=\"translate_loader\">" + result.translation + "<div><span></span><em>0</em>%</div></div>")
      progress = $("#translate_loader div em")
      progress_bar = $("#translate_loader div span")
      translate(0);
    });
    
    
    return false;
  });
  $("#nav").append()
}

google.load('language', "1");
google.setOnLoadCallback(init);
