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

function getSelectedValue(select) {
    var index = select.selectedIndex;
    if ((index >= 0) && (index < select.length)) {
      return select.options[index].value;
    }
    return '';
}

function setSelectedValue(list, newValue) {
    var i=0;
    while ((list.options[i].value != newValue) && (i < list.options.length))
        {i++;}
    if (i < list.options.length)
        {list.selectedIndex = i;}
}

function strrpos(haystack, needle, offset){
    var i = (haystack+'').lastIndexOf( needle, offset );
    return i >= 0 ? i : false;
}

function myTranslate() {
    sourceText = document.getElementById('sourceText').value;
    sourceLang = getSelectedValue(document.getElementById('sourceLang'));
    translateLang = getSelectedValue(document.getElementById('translateLang'));
    var maxi = 500;
    var pole = [];
    var y = 1;
    while (sourceText.length>maxi) {
        var pos = maxi;
        var pos = strrpos(sourceText, '. ', maxi);
        if (pos > 0) pos = pos+2;
        else pos = strrpos(sourceText, ' ', maxi)+1;
        pole[y] = sourceText.substring(0, pos);
        sourceText = sourceText.substring(pos, sourceText.length);
        y++;
    }
    pole[y] = sourceText;

    var container = document.getElementById("translatedText");
    container.innerHTML = '';

    for(var i in pole) {
        //alert(pole[i].length);
        google.language.translate(pole[i], sourceLang, translateLang, function(result) {
          if (!result.error) {
            //alert(pole[i]);
            container.innerHTML += result.translation + ' ';
          }

        });
    if(document.getElementById('branding') && !document.getElementById('branding').innerHTML) google.language.getBranding('branding');
    }

}

function myLanguage() {
    sourceText = document.getElementById('sourceText').value.substring(0, 500);
    //alert(sourceText);
    google.language.detect(sourceText, function(result) {
      if (!result.error) {
        oldLang = getSelectedValue(document.getElementById('sourceLang'));
        setSelectedValue(document.getElementById('sourceLang'), result.language)
        if (result.language == getSelectedValue(document.getElementById('translateLang'))) setSelectedValue(document.getElementById('translateLang'), oldLang);
      }
    });
}

function languageSwap() {
    sourceLang = getSelectedValue(document.getElementById('sourceLang'));
    translateLang = getSelectedValue(document.getElementById('translateLang'));
    setSelectedValue(document.getElementById('translateLang'), sourceLang);
    setSelectedValue(document.getElementById('sourceLang'), translateLang);
    }
