var inputHint = "请在这里输入需要翻译的文字。";
var outputHint = "在这里输出翻译结果。";
    
function IsPostQuestion(){ 
    if($("content").value == "" || $("content").value == inputHint){
        setHint("没有翻译内容。");
        return false;
    }
    return true;
}
function setQuestVal(ilang){
    $("YwendaForm").bt.value = "请大家帮忙翻译句子 —" + $("content").value.substring(0,23);
    switch(ilang){
        case 0:
        default:
            $("YwendaForm").sort.value = "英语"; break;
        case 1:
            $("YwendaForm").sort.value = "日语"; break;
        case 2:
            $("YwendaForm").sort.value = "韩语"; break;
        case 3:
            $("YwendaForm").sort.value = "法语"; break;
        case 4:
            $("YwendaForm").sort.value = "德语"; break;
        case 5:
            $("YwendaForm").sort.value = "意大利语"; break;
        case 6:
            $("YwendaForm").sort.value = "西班牙语"; break;
        case 7:
            $("YwendaForm").sort.value = "葡萄牙语"; break;
        case 8:
            $("YwendaForm").sort.value = "俄语"; break;
        case 9:
            $("YwendaForm").sort.value = "阿拉伯语"; break;
        case 10:
            $("YwendaForm").sort.value = "印度语"; break;
        case 11:
            $("YwendaForm").sort.value = "越语"; break;
            
    }
    $("YwendaForm").word.value = "\r\n原文：\r\n";
    $("YwendaForm").word.value += "<font color=darkorange>" + $("content").value + "</font>";
    $("YwendaForm").word.value += "；\r\n机器译文：\r\n";
    $("YwendaForm").word.value += "<font color=green>" + $("contentout").value + "</font>";
    $("YwendaForm").word.value += "。\r\n\r\n期待大家给出更好的答案，先谢了。";
}
    
var sug_lab = "翻译建议";
var sug_exp = "我们会利用您的建议更新我们的系统来提供更好的翻译服务。";
function _rolldown(bChg){             
    if($("zippyicon").alt=="close"){
        $("zippyicon").alt="open"
         $("zippyicon").src="../img/minus_sm.gif";
         $("sug_exp").innerHTML=sug_exp;
         $("suggesttable").style.display="inline";
         $("suggesttable").style.visibility="visible";
         $("suggestion").value=$("contentout").value;
         $("suggestion").focus();
         setHintVisible(false);
    }
    else{
        $("zippyicon").alt="close"
         $("zippyicon").src="../img/plus_sm.gif";
         $("suggesttable").style.display="none";
         $("suggesttable").style.visibility="hidden";
         setHintVisible(true);
    }
           
}
//针对日语，处理与goo的链接/d
function setKanJiVal(){
    if($('sl_direct').value=="jazh")
        $("p").value=$("content").value;
    else
        $("p").value=$("contentout").value;
}


	 
//检查翻译字数/d
function chkText() {//en:1300,others:230
	var field = $("content");
	var tranCnt = (getTransType() == "en") ? 1300 : 230;
    if (field.value.length > tranCnt){
        ((field.value.length-tranCnt) > 23)?
        setHint("请将字符限制在 " + tranCnt + " 个以内。"+"您大概超过 "+String(Math.ceil((field.value.length-tranCnt)/field.cols))+" 行。"):
        setHint("请将字符限制在 " + tranCnt + " 个以内。"+"您大概超过 "+String(field.value.length-tranCnt)+" 个字符。")
        //the below 5-lines code only support ie
        field.focus();
        var _tOffset = field.createTextRange(); 
        _tOffset.moveStart("character",tranCnt);
        _tOffset.moveEnd("character");
        _tOffset.select();   
    
        return false;
   }
   return true;
}


var TranEngineTag = "google";
var bTranslating = false;
function translate(){
    //here insert test code 
    getAD(1);//get advertisement
	//if(bTranslating) {return;}
    
    Lemma("trn");
}

var arrOrgText = Array();//放置原文数组

var maxlength	= 1000;
var paralength	=0;
var tranPrama	=Array();
var setflag		=0;
var last_from_language ="";
var last_to_language="";
var translatedSentence="";
function exTranslate(){
    bNewTranslatedText = true;//and py communiction
    {TranEngineTag = $('selEng').value;/*assign engine tag*/}
    getTransType();
    //initialize variables
	maxlength	= 1000;
	paralength	=0;
	tranPrama	=Array();
	arrOrgText = Array();
	setflag		=0;
	last_from_language ="";
	last_to_language="";
	var container = $("contentout");	

	var text = $("content").value;
	translatedSentence = text;//necessary, replace text after translated

	tranPrama = shortCutParagraphs(text);
	paralength = tranPrama.length ;		
	last_from_language =from_language;
	last_to_language=to_language;
	//if(tranPrama[setflag]==""||tranPrama[setflag]=="\n"||tranPrama[setflag]=="undefined")

    container.value = "";container.style.color = "#000";//clear
   	setHint( '正在翻译中 ...');  $("loading").style.visibility = "visible";//显示动画

    switch(TranEngineTag){
    case "google": google.language.translate(tranPrama[setflag], from_language, to_language, largeTranslated); break;
    case "ms":     msTranslate(tranPrama[setflag], from_language, to_language, largeTranslated);     break;
	}
}		

function continueTrans()
{
	if(tranPrama[setflag]==""||tranPrama[setflag]=="\n"||tranPrama[setflag]=="undefined")//
    {
	    translatedSentence += "";
	    if(setflag < paralength)
	    {
		    setflag++;
		    continueTrans();
	    }
    }	
    //$("contentout").value += "... ";
	if(setflag < paralength){
        switch(TranEngineTag){
        case "google": google.language.translate(tranPrama[setflag], from_language, to_language, largeTranslated); break;
        case "ms":     msTranslate(tranPrama[setflag], from_language, to_language, largeTranslated); break;
	    }
	}
	else
	{
		var container = $("contentout");
		translatedSentence = replaceAll(translatedSentence,"&quot;","\"");//replace special character
		translatedSentence = replaceAll(translatedSentence,"&lt;","M");
		translatedSentence = replaceAll(translatedSentence,";&gt;",">");
    	container.style.color = "black";
		container.value = replaceAll(translatedSentence,"&#39;","'");
		//suggestion box
		if($("zippyicon").alt=="open"){
            $("suggestion").value=container.innerText;
        }
        setHint("翻译完成。");    $("loading").style.visibility = "hidden";
        //bTranslating = false;//finished flag
		Lemma("add");//增加词条
	}
}

function largeTranslated(result) {
    var bSucc = false;
    
    switch(TranEngineTag){
    case "google": 
        if (result.translation) {translatedSentence = translatedSentence.replace(tranPrama[setflag],result.translation);bSucc = true;}
        break;
    case "ms":
        {translatedSentence = translatedSentence.replace(tranPrama[setflag],result);bSucc = true;}			 
        break;
    }
	if(bSucc){	
		setflag++ ;
		continueTrans();
    }else
    {
        setHint("原文无法翻译，请稍后再试。");    $("loading").style.visibility = "hidden";
	}
}

function msTranslate(originalText,sL,dL,callback){
    try{
        Microsoft.Translator.translate(originalText, sL, dL, callback);
    }catch(err)
    {
       setHint("无法翻译。");$("loading").style.visibility = "hidden";
    } 
}

function postSuggestion(){
    Lemma("sug");
}


function Lemma(pType){
    var text=$('content').value;
    var translatedText=$('contentout').value;
    var suggText=$('suggestion').value;
    var passData;
    
    if(text=="" || text==inputHint){
        setHint("请检查 -原文- 内容。");return false;
    }
    switch(pType){
    case "add":
        if(text==translatedText) return false;
        passData="pT=a";
        break;
    case "sug":
        if(translatedText==""){
            setHint("请检查 -译文- 内容。");return false;
        }
        if(suggText==""){
            setHint("请提交 有效建议内容。");return false;
        }
        if(text==translatedText){
            setHint("-原文-内容 与 -译文-内容 相同。");return false;
        }
        if(translatedText==suggText){
            setHint("-译文-内容 与 建议内容 相同。");return false;
        }
        passData="pT=s"+"&suTxt="+encodeURIComponent(suggText);
        break;
    case "trn":
        //bTranslating = true;    
        exTranslate();
        return false;
        //passData="pT=t";
        break;
    }

    passData+= "&orTxt="+encodeURIComponent(text)
        +"&fL="+encodeURIComponent(from_language)+"&tL="+encodeURIComponent(to_language);
    if(pType!="trn"){
        passData+="&trTxt="+encodeURIComponent(translatedText)
    }
    var AJAX=crtAJAX();
    if (AJAX==null) {
            setHint ("您的浏览器原因，不能翻译。");
            return false;
    }
    else{
        AJAX.onreadystatechange = function() {
          if (AJAX.readyState==4 || AJAX.readyState=="complete") {
            successed(pType,AJAX);
            AJAX=null;//free
          }                               
        }
        AJAX.open("POST", "../svrLib/translate.asp", true);
        AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        AJAX.send(passData);
    }
}

function successed(pType,aResquest){
    switch(pType){
    case "sug":
        _rolldown();
        setHint("感谢您为 Siyiguan 提供翻译建议。");
        break;
    case "trn":
        if(aResquest.responseText=="*N*"){
            //alert(aResquest.responseText);
            exTranslate();
        }
        else{
            var tranText=aResquest.responseText;
            (tranText.substring(0,5) == "*DID*")?
            $('contentout').value = tranText.substring(5,tranText.length-0):
            exTranslate();//$('contentout').value = $('content').value;

            setHint("翻译完成。");
        }
        break;
    }
}


function setInputHint(tag){
    if(tag == 1){
        if($("content").value == inputHint) {			   
            $("content").value="";
	        $("content").style.color = "#000";
        }
        else{
	        $("content").style.color = "#000";
        }
    }
    else if(tag == 0){
        if($("content").value == "") {
	        $("content").value=inputHint;
	        $("content").style.color = "gray";
        }
    }
}

function clearall(){
  $("content").value="";
  $("contentout").value="";
}
  
