var translator = 1;
var chunk_size = 5;
var calls = 0;
var translated = [];
var translations = [];
var store_translation = [];

function initialize() {
    var lang = translator == 1 ? 'ru' : 'en';

    for (id in translations) {
        titles = translations[id];

        if (store_translation[id] == true) {
            translated[id] = [];

            for (idx in titles) {
                translated[id].push([titles[idx], ""]);
            }
        }

        for (i = 0; i < titles.length / chunk_size; i++) {
            chunk = titles.slice(i * chunk_size, i * chunk_size + chunk_size);
            data = '<h1>' + id + i + "</h1><h1>" + chunk.join('</h1><h1>') + '</h1>';

            if (store_translation[id] == true) {
                calls++;
             }
            google.language.translate(data, "ja", lang, updateTitles);
        }
    }
}

function updateTitles(result)
{
    if (!result.error) {
        var translated_titles = result.translation.split('</h1><h1>');


        var index = translated_titles.shift().match(/>\s*([a-z]+)(\d+)/i);
        index[1] = index[1].toLowerCase();
        index[2] = parseInt(index[2]);
        i
        
        for (var j = 0; j < translated_titles.length; j++) {
            title = translated_titles[j];
            title = $j.trim(title.replace("</h1>", ''));
            if (title != "") {
                container_id = '#' + index[1] + '-' + (chunk_size * index[2] + j);
                $j(container_id).html(title);
                if (store_translation[index[1]] == true) {
                    translated[index[1]][(chunk_size * index[2] + j)][1] = title;
                }
            }
        }

        if (store_translation[index[1]] == true)
        {
            calls--;            
            if (calls == 0) {
                for (id in translated) {
                    $j.post('/dictionary/store', {'values[]': translated[id]});
                }
            }
        }
    }
}

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



