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

var sl="AUTO", tl="en";
var timeout = "";

function initialize()
{
    document.text.text.focus(); 
    fill_language(); 
//    google.language.getBranding("branding");
    get_results(false);
}

function reset_timer()
{
    if (timeout != "") {
        clearTimeout(timeout);
    }
    timeout = setTimeout('get_results(false)', 1000); 
}

function is_punct(char)
{
    if (char == ' ' || char == ';' || char == ',') return(true);
    return(false);
}

function loadpage(page_request, containerid1, containerid2)
{
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http")==-1))
    {
        var text = page_request.responseText.split("-----");
        containerid1.innerHTML = '<textarea rows="8" style="width: 100%;" readonly>' + text[0] + '</textarea>'; // GOOGLE
        if (!text[1]) text[1] = "-----";
        containerid2.innerHTML = '<textarea rows="8" style="width: 100%;" readonly>' + text[1] + '</textarea>'; // BING
    }
}

function open_url(url, containerid1, containerid2)
{
    var page_request = false;

    if (typeof XMLHttpRequest == "undefined") // if IE
    {
        try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP.6.0");
        } 
        catch (e){
            try {
                page_request = new ActiveXObject("Msxml2.XMLHTTP.3.0");
            } 
            catch (e){
                try {
                    page_request = new ActiveXObject("Msxml2.XMLHTTP");
                } 
                catch (e){
                    try{
                        page_request = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e){
                        return false;
                    }
                }
            }
        }
    }
    else { // if Mozilla, Safari etc
        page_request = new XMLHttpRequest();
    }

    page_request.onreadystatechange = function() { loadpage(page_request, containerid1, containerid2); }

    page_request.open('GET', url, true);
    page_request.send(null);
}


function get_results(check)
{
    var text = document.text.text.value;
    var length = text.length;

    if (length == 0) return;
    if (length >= 4000) {
        alert("TOO LONG");
        return;
    }

    if (check == true) 
    {
        var last_char = text.charAt(length-1);

        if (!is_punct(last_char)) // if the last char is not a punctuation sign
        {
            reset_timer();
            return;
        }
    }

    open_url('translate.php?sl=' + sl + '&tl=' + tl + '&text=' + text,
             document.getElementById("results1"), document.getElementById("results2"));
}

function fill_language()
{
    sl = document.text.sl.value;
    tl = document.text.tl.value;

    if (sl == "AUTO") sl = "";
}

function findParam(param, def)
{
    param += "=";
    var res = def;
    URL = self.location.href;
    var p = URL.indexOf(param);
    if (p == -1)
    {
        return res;
    } else
    {
        var temp = URL.substring(p + param.length);
        pe = temp.indexOf("&");
        if (pe == -1) pe = temp.length;
        res = temp.substring(0, pe);
    }
    return Number(res);
}

function setParam(URL, param, value)
{
    param += "=";
    var p = URL.indexOf(param);
    if (p == -1)
    {
        if (URL.indexOf("?") == -1) URL += "&";
        else URL += "?";
        URL += param;
        URL += String(value);
        return URL;
    } else
    {
        p += param.length;
        var pre = URL.substring(0, p);
        post = URL.substring(p);
        pe = post.indexOf("&");
        if (pe == -1) post = "";
        else post = post.substring(pe);
        pre += String(value);
        return (pre + post);
    }
}

function updateParams()
{
    URL = self.location.href;
    URL = setParam(URL, "sl", sl);
    URL = setParam(URL, "tl", tl);
    if (document.images)
        window.location.replace(URL);
    else
        window.location.href = URL;
}