﻿var blocksize = 1000;
var array;
var delimiter = String.fromCharCode(10);
var sesion = 0;
var tduration = 0.0;
var twcount = 0;
var tscount = 0;
var pageTracker;

function doTranslation() {
    if (!($("#source_text").hasClass("tempText")))
        {
             var source = $("#source_text").val();
             if (source.length>0) {
                 $("textarea").removeClass("tempText")
                  $("#output_text").val("");
                    sesion = Math.random();    
                    $("#translationComplete").hide();
                    $("#translating, #ajaxLoader").show();  
                    formTextAreas();
                    array = source.split(delimiter);
                    tduration = 0;
                    twcount = 0;
                    tscount = 0;
                    translateBlock(0, sesion);
               }       
        }   
}


function formTextAreas() {   
        var h = 250;
        if ($("#source_text").attr("scrollHeight") > h) { h = $("#source_text").attr("scrollHeight") + 10; }
        $("#source_text, #output_text").css("height", h + 'px');
    }
    
function fillTextAreas() {
    if ($("#source_text").val().length == 0) {
        if (!$("#source_text").hasClass("tempText")) $("#source_text").addClass("tempText");
        $("#source_text").val($("#sourceTextTemplate").val());
    }
    if ($("#output_text").val().length == 0) {
        if (!$("#output_text").hasClass("tempText")) $("#output_text").addClass("tempText");
        $("#output_text").val($("#outputTextTemplate").val());
    }
    }

function translateBlock(start, ses) {
    var i;
    var temp = "";
    for (i = start; i < array.length; i++) {
        temp += array[i];
        if (temp.length < blocksize) {
            temp += delimiter;
        }
        else {
            break;
        }
    }
    if (temp.length > 0) {
        translateThis(temp, i, array.length, ses);
        temp = "";
    }
}

function registerEvent(category,label, value) {
    try
    {
        pageTracker._trackEvent("translation", $("#systemID").val(), label, value);
    }
    catch(err) {
        err = err;
    }
}

function translateThis(texts, nr, total, ses) {
    $.getJSON("getTranslation.aspx?&sid=" + Math.random(), { text: texts, system: $("#systemID").val() },
        function(data) {
            if (ses == sesion) {
                try {
                    registerEvent("fragment", "duration", parseInt((parseFloat(data.duration) * 1000)));
                    tduration += parseFloat(data.duration);
                    registerEvent("fragment", "word count", parseInt(data.wordcount));
                    twcount += parseInt(data.wordcount);
                    registerEvent("fragment", "symbol count", texts.length);
                    tscount += texts.length;
                } catch (err) { }

                if ($("#output_text").val() == '') {
                    $("#output_text").val($("#output_text").val() + data.translation);
                }
                else {
                    $("#output_text").val($("#output_text").val() + delimiter + data.translation);
                }

                if (nr < total - 1) {
                    translateBlock(nr + 1, ses);
                }
                else {
                    endTranslation();
                }
            }
        });
}

function endTranslation() {
    array = null;  
    $("#translating, #ajaxLoader").hide();
    $("#translationComplete").show();  
    registerEvent("total", "total duration", parseInt(tduration*1000));
    registerEvent("total", "total symbol count", tscount);
    registerEvent("total", "total word count", twcount);   
}

function clickInTextArea(obj) {
    if ($(obj).hasClass("tempText")) {
        $(obj).val("");
        $(obj).removeClass("tempText")    
   }}

function resetFields() {
    sesion = Math.random();
    $("#translationComplete, #translating, #ajaxLoader").hide(); 
    $("#source_text, #output_text").val("");    
    formTextAreas();
    fillTextAreas();
}

$(document).ready(function() {
    $("#lang" + $("#ui_lang").val()).addClass("currentLang").attr("href", "#");
    formTextAreas();
    fillTextAreas();
    try {
        $.getJSON("getrss.aspx", { lang: $("#ui_lang").val() }, function(data) {
            for (var i = 0; i < data.items.length; i++) {
                var obj = $("<div/>").addClass("blog").html('<b>' + data.items[i].Title + '</b>. ' + data.items[i].Description);
                $("<a target='_blank'/>").attr("href", data.items[i].Link).html($("#blogRead").val()).appendTo(obj);
                $("<span class='blogFooter'/>").html("<br/>" + $("#blogWrote").val() + ": <b>" + data.items[i].Author + "</b>. " + $("#blogDate").val() + ": " + data.items[i].Date).appendTo(obj);
                obj.appendTo(".rss_feed");
            }
            var ob = $("<div class='subscribe' />");            
            $("<img src='img/subscribe.png' />").appendTo(ob);
            $("<a target='_blank'/>").attr("href", data.url + 'feeds/posts/default').html($("#blogSubscribe").val()).appendTo(ob);
            ob.appendTo(".rss_feed")

        });
    } catch (err) { }
    try {
        pageTracker = _gat._getTracker("UA-11083087-1");
        pageTracker._trackPageview();
    } catch (err) { }

});


function ismaxlength(obj) {
    var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "";
    if (obj.getAttribute && obj.value.length > mlength) {
        obj.value = obj.value.substring(0, mlength - 3)+"...";
    }
};



