/**
  $RCSfile: translateText.js,v $
  $Revision: 1.15 $
  $Date: 2009-05-13 13:12:13 $

  Bootstrap script for the text translation page
*/

var SYSTRAN_POPUP_SENTENCE_HIGHLIGHT = "#e5f5ff";
var SYSTRAN_POPUP_ALTMEANING_HIGHLIGHT = "#ffedbd";
var SYSTRAN_POPUP_TOKEN_HIGHLIGHT = "#b9e7fd";
var SYSTRAN_ALTMEANING_COLOR = "#fffddc";

var SYSTRAN_CHOICE_STATE_UNSELECTED = 0;
var SYSTRAN_CHOICE_STATE_DEFAULT = 1;
var SYSTRAN_CHOICE_STATE_SELECTED = 2;

var SYSTRAN_IMAGE_PATH = "template/TemplateImages/";

/**
 * Strings
 */

var SYSTRAN_STRING_LEGEND_ORIGINAL_SOURCE = "Original source:";
var SYSTRAN_STRING_LEGEND_TRANSLATED = "Translated:";
var SYSTRAN_STRING_SYSTRAN_FEEDBACK = "Systran Feedback";
var SYSTRAN_STRING_FEEDBACK_SEND = "Send";
var SYSTRAN_STRING_SYSTRAN_FEEDBACK_SENT = "Thank you for submitting your feedback.";
var SYSTRAN_STRING_SYSTRAN_FEEDBACK_ERROR = "An error has occured."
var SYSTRAN_STRING_ADVANCED_FEEDBACK = "Advanced feedback";


var systranIE = document.all;

function load(){
    if (document.getElementById("src_lang") == null
            || document.getElementById("tgt_lang") == null
            || document.getElementById("edit_src") == null
            || document.getElementById("edit_tgt") == null)
        return;
    languageSelection = new LanguagePairSelection(
            document.getElementById("src_lang"),
            document.getElementById("tgt_lang"),
            systranBox.onLpChange,
            null);
    systranBox._popupBtnId = "btn-popup";
    systranBox._popupImgOff = "_img/translator/toolbar-popup-off-normal.gif";
    systranBox._popupImgOn = "_img/translator/toolbar-popup-on-normal.gif";
    systranBox._popupImgClick = "_img/translator/toolbar-popupclic-on-normal.gif";
    systranBox._autoTrans = false;
    updateAutoTransButton(systranBox._autoTrans);
    systranBox.init();
    lastAdRefresh = new Date().getTime();
    systranBox.onLoadResult = onLoadTranslationResult;
    _hasEmail = true;
    if(document.getElementById("edit_src").value) {
        translateFromParameter();
    }
    else if(systranBox._srcWindow && containsTextToTranslate(document.location.href)) {
        translateFromParameter();
    }
    else if(systranBox._autoTrans) {
        updateTextboxLayout(readCookie("sboxlayout"));
    }
    else {
        updateTextboxLayoutButton(readCookie("sboxlayout"));
    }
    if (typeof(systranPopupTextInit) != "undefined")
        systranPopupTextInit();    
}

// Return true if url is in format /translate/lp/text
function containsTextToTranslate(href){
    var index = href.indexOf("/traduire");
    if(index < 0)
        index = href.indexOf("/translate") + 10;
    else
        index += 9;
    if(index == href.length)
        return false;
    return href.charAt(index) == '/';
}

function translate(force) {
    systranBox.doTranslate(force);
    updateTextboxLayout(readCookie("sboxlayout"));
}

function translateFromParameter() {
    translate(true);
    updateTextboxLayout(readCookie("sboxlayout"));
}

function email(loggedIn) {
    if(loggedIn) {
        systranBox.doEmail()
    }
    else {
        bubbleOpen('login','systranet','help', 'tipLink');
    }
}

function toggleTextLayout() {
    var toggleBtn = document.getElementById("btn-layout");
    if(toggleBtn.src.indexOf("horizontal") > -1) {
        updateTextboxLayout("h");
        createCookie("sboxlayout", "h", 365);
    }
    else {
        updateTextboxLayout("v");
        createCookie("sboxlayout", "v", 365);
    }
}

function updateTextboxLayout(layout) {
    var richText = false;
    if (typeof(systranPopupWindow) != "undefined") {
        systranPopupWindow.hide(true);
        richText = true;
    }
    var contextChoices = document.getElementById("context_choices");
    if(layout == "v") {
        document.getElementById("edit_src").className = "edit_src_v";
        document.getElementById("edit_tgt").className = "edit_tgt_v";

        document.getElementById("zone_src").className = "zone_src_v";
        document.getElementById("zone_tgt").className = "zone_tgt_v";

        if(typeof(systranPopupMeanings) != "undefined" && contextChoices != null) {
            contextChoices.className = "context_choices_v";
        }
    }
    else {
        document.getElementById("edit_src").className = "edit_src_h";
        document.getElementById("edit_tgt").className = "edit_tgt_h";

        document.getElementById("zone_src").className = "zone_src_h";
        document.getElementById("zone_tgt").className = "zone_tgt_h";

        if(typeof(systranPopupMeanings) != "undefined" && contextChoices != null) {
            contextChoices.className = "context_choices_h";
        }
    }
    updateTextboxLayoutButton(layout);
}

function updateTextboxLayoutButton(layout) {
    var toggleBtn = document.getElementById("btn-layout");
    if(layout == "v") {
        toggleBtn.src = toggleBtn.src.replace("vertical", "horizontal");
    }
    else {
        toggleBtn.src = toggleBtn.src.replace("horizontal", "vertical");
    }
}

function toggleAutoTrans() {
    systranBox._autoTrans = !systranBox._autoTrans;
    createCookie("sboxauto", systranBox._autoTrans ? "1" : "0", 365);
    updateAutoTransButton(systranBox._autoTrans);
    if(systranBox._autoTrans) {
        translate(false);
    }
}

function updateAutoTransButton(enabled) {
    var autoTransButton = document.getElementById("btn-autotrans");
    if (autoTransButton != null) {
        if(enabled) {
            autoTransButton.src = autoTransButton.src.replace("off", "on");
        }
        else {
            autoTransButton.src = autoTransButton.src.replace("on", "off");
        }
    }
    //sai._gui = sai._gui.substring(0, sai._gui.length - 1) + (enabled ? 't' : 's');
}

function getFeedbackFormPrefillText() {
    return systranBox.getCurrentSourceSentence();
}

function onLoadTranslationResult() {
    systranPopupTextRefresh();
    /*if(new Date().getTime() - lastAdRefresh  > 10000) {
        refreshAds();
        lastAdRefresh = new Date().getTime();
    } */
}

var lastAdRefresh = new Date().getTime();
onInitLps = load;
sai._onProcessingStart = function(request) { document.getElementById("processing").style.display = "inline"; };
sai._onProcessingFinish = function(request) { document.getElementById("processing").style.display = "none"; };

