﻿//压缩
var g_Text = "请输入您需要翻译的文本！";
//document.charset='utf-8';
//document.charset='gb2312';
function sdict(query)
{
	query = query?query:"error";
	query =query.replace(/[!,！？。，：]/g," ");
	var src= "http://www.google.com/dictionary/json?q="+encodeURIComponent(query)+"&sl=en&tl=zh-CN&restrict=pr,sp&client=te&callback=?"; 
	$.getJSON(src,function(data){
	q = data.query.split(' ');

	if(data.spellings)
	{ 
		if(!$('#spellings').attr('id'))
		{
			$('#mode').prepend("<a href='#spellings' class='restag' id='sp'>拼写建议</a>"); 
			$("<div id=spellings><p class=rows><span>拼写建议</span></p><div class='mytext'></div></div>").insertAfter('#mode');	
		}
		$("#spellings>.mytext").empty();
		for(var key in data.spellings)
		{		
			$("#spellings>.mytext").append("<a href=\"?sl=en&tl=zh-CN&q="+encodeURIComponent(data.spellings[key])+"\">"+data.spellings[key]+"</a>");	
		}
	}
	else{
		$('#spellings').remove("");$("#sp").remove();
	}
	

	if(data.primaries)
	{
		if(!$('#primaries').attr('id'))
		{
		//$('#mode').prepend("<a href='#primaries' class='restag' id='pr'>词典解释</a>"); 
		//$("<div id=primaries><p class=rows><span>词典解释</span></p><div class='mytext'></div></div>").insertAfter('#mode');	
		}
		$("#primaries>.mytext").empty();
		for(var key in data.primaries)
			entryParse($("#primaries>.mytext"),data.primaries[key]);
	}
	else{
		$('#primaries').remove("");$("#pr").remove();
	}
	
		$(".tog").toggle( function () {$(this).siblings("ul").show();$(this).html("隐藏例句"); },function () {$(this).siblings("ul").hide(); $(this).html("查看例句");}); 
		$(".speak").click(function(){
		if($(this).attr('url'))url=$(this).attr('url');
		else url="http://api.microsofttranslator.com/V2/Http.svc/Speak?language=zh-CHS&appid=05DBC69E5594C137B9E22680F92F8E5E97BFAC7B&text="+encodeURIComponent($(this).prev().html()); 
		$("#rd").html("<bgsound src="+url+"></bgsound>");});
	});
}

function entryParse(obj,entry)
{

	if(typeof(entry)=='string'){  obj.append("<a href='http://www.uicms.net/'></a>&nbsp;");}
	else if(entry.type=="sound")
	{
		
	}
	else
	{
			 if(entry.text) { //alert(2); 
			 obj.append("<span>&nbsp;"+entry.text+"</span>");
			 }
			if(entry.labels)   {  for ( var i in entry.labels ){       obj.append("<span class=label>["+entry.labels[i].text+"]</span>");       }			}
			 if(entry.terms)   { 
			 if( entry.type=='meaning'&&entry.terms.length==2&&entry.terms[0].language=='en'&&entry.terms[1].language=='zh-Hans')obj.append(entry.terms[1].text);
			 else for ( var i=0;i<entry.terms.length;i++ ){

			if(entry.terms[i].type=="sound")obj.append("<img src=\"img/speak.gif\"  class='speak' url='"+entry.terms[i].text+"' border=0>");
			else if(entry.terms[i].type=="phonetic")	obj.append("<span class="+entry.terms[i].type+">&nbsp;"+entry.terms[i].text+"</span>");
			else if(entry.type=="related"||entry.type=='headword')obj.append("&nbsp;<a href='http://www.uicms.net/'></a>&nbsp;");					
			else if(entry.type=='example'&&entry.terms[i].type=='text') {

				obj.append("<span>"+entry.terms[i].text+"</span><img src=\"img/speak.gif\" class='speak' border=0>");

			}
			else
				obj.append("&nbsp;<span>"+entry.terms[i].text+"</span>");		
			
			 if(entry.terms[i].labels)for(j in entry.terms[i].labels) obj.append("<span class=label1>["+entry.terms[i].labels[j].text+"]</span>");
			 
			 entry.type=='example'?obj.append("<br>"):""; 
			 } 
			 if(entry.type=='meaning'&&entry.entries) {obj.append("<span class='tog'>查看例句</span>");}
			 
			 }
       if(entry.entries) 	{ 
       var obj2 =  entry.type=='meaning'?$("<ul style='display:none'></ul>"):$("<ul></ul>");  
       for ( var i in entry.entries ){ 
       var obj3 = $("<li class="+entry.type+entry.entries[i].type+"></li>");
       entryParse(obj3,entry.entries[i]);
       obj2.append(obj3);
         }        
       obj.append(obj2);
       }
	}
	return obj;
}

function detect(dotrans)
{
var stl=gl?gl:"en";
 sourceText = $('#q').val().replace(/(^\s*)|(\s*$)/g, '');

	text = sourceText.substring(0,50);

  var src="http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q="+encodeURIComponent(text)+"&callback=?";
  $.getJSON(src,function(result){		
						 if($('#detState').html()==1||$("#q").val()=="") return ;
						 $("#detNote").html("检测语言");		$("#sl").val(result.responseData.language);  
if($("#sl").val()!=result.responseData.language)$("#sl").val(stl);
if($("#sl").val()=="zh-CN"||$("#sl").val()=="zh-TW")$("#tl").val(stl); else $("#tl").val("zh-CN");});
  if(sourceText.length==0)$(".tips").html("请在下面的文本框内输入文字，然后点击开始翻译按钮，进行翻译，如果您看不到翻译结果，请重新翻译！");
else $(".tips").html("您输入的文本一共有"+sourceText.length+"个字符，语种为"+$("#sl").find("option:selected").text() );
  if(dotrans)translate();
}



function init()
{
	$('#q').elastic();
	$("#q").bind('mousedown',function(){if($("#q").val()=="请输入您需要翻译的文本！")$("#q").val('');});
	$("#q").bind('propertychange', function(){ setTimeout("detect()",50);  });
	
	$("#sl").bind('change',function(){$("#detNote").html("选择语言"); $('#detState').html('1'); 
	 if($("#sl").val()=="zh-CN"||$("#sl").val()=="zh-TW")$("#tl").val(gl?gl:"en"); else $("#tl").val("zh-CN");	});
	$("#tl").bind('change',function(){$("#detNote").html("选择语言"); $('#detState').html('1');});
	
	$("#uicms1").bind('submit',function(){
//	iniad();
//	return true;
	
	});

}

function ui_translate(sourceLang,targetLang) {
  	sourceText = $('#q').val().replace(/(^\s*)|(\s*$)/g, '');
	tStr = "";
	if(sourceLang==targetLang)
	{
		alert("请选择两种不同的语言！");
		history.back(-1); 
	}
	query = sourceText.split('\n');
	Rtranslation("gg",query,0,sourceLang,targetLang,tStr);
	Rtranslation("hj",query,0,sourceLang,targetLang,tStr);
	Rtranslation("ms",query,0,sourceLang,targetLang,tStr);
	Rtranslation("bb",query,0,sourceLang,targetLang,tStr);
	Rtranslation("wl",query,0,sourceLang,targetLang,tStr);
	sdict(query[0]);
	//$.getScript("index.php?job=ruku&tl="+targetLang+"&sl"+sourceLang+"&q="+encodeURIComponent(query));
}


function translate() {
  	sourceText = $('#q').val().replace(/(^\s*)|(\s*$)/g, '');
	sourceLang = $("#sl").val();
	targetLang = $("#tl").val(); 
	tStr = "";
	if(sourceLang==targetLang)
	{
		alert("请选择两种不同的语言！");
		history.back(-1); 
	}
	query = sourceText.split('\n');
	Rtranslation("gg",query,0,sourceLang,targetLang,tStr);
	Rtranslation("hj",query,0,sourceLang,targetLang,tStr);
	Rtranslation("ms",query,0,sourceLang,targetLang,tStr);
	Rtranslation("bb",query,0,sourceLang,targetLang,tStr);
	Rtranslation("wl",query,0,sourceLang,targetLang,tStr);
	sdict(query[0]);
	$.getScript("index.php?job=ruku&tl="+targetLang+"&sl="+sourceLang+"&q="+encodeURIComponent(query));
}

function Rtranslation(tool,sourceArr,i,sourceLang,targetLang,tStr)
{	
	var Twaiting = "正在翻译，请等待... <img src='img/loading.gif'>";
	

	if(i<sourceArr.length)
	{
		if(sourceArr[i]==""||sourceArr[i]==" "||sourceArr[i]=="\t"||sourceArr[i]=="\r")
		{ 
			Rtranslation(tool,sourceArr,i+1,sourceLang,targetLang,tStr); 
			return;
		}
		if(i==0)
		{
			if(!$("#"+tool).attr("id"))
			{
				$("#result").append("<div id="+tool+"><p class=rows><span>翻译结果</span><a href=\"javascript:textcopy('"+tool+">.mytext')\"  class='d_copy'>复制译文</a></p><div class='mytext'></div></div>");	
			}
			$("#"+tool+">.mytext").empty();
		}

		$("#"+tool+">.mytext").append(Twaiting);
  langpair={"ms":{"zh-CN":"zh-CHS","zh-TW":"zh-CHT","en":"en","ja":"ja","ko":"ko","ru":"ru","de":"de","fr":"fr","ar":"ar","es":"es","pt":"pt","it":"it","nl":"nl","sv":"sv","el":"el","cs":"cs","da":"da","hu":"hu","iw":"he","no":"no","ro":"ro","tr":"tr","pl":"pl","bg":"bg","fi":"fi","th":"th","sr":"sr"},
	  "bb":{"zh-CN":10,"zh-TW":9,"en":0,"ja":8,"ko":12,"ru":7,"de":6,"fr":1,"ar":15,"es":3,"pt":5,"it":2,"nl":4,"sv":48,"el":11,"cs":31,"da":43,"hu":30,"iw":14,"fa":51,"no":46,"ur":39,"ro":47,"tr":13,"uk":49,"pl":29,"hi":60}};

		Jsrc = {
		"gg":"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="+encodeURIComponent(sourceArr[i])+"&langpair="+sourceLang+"%7C"+targetLang+"&callback=?",
		"ms":"http://api.microsofttranslator.com/v2/Ajax.svc/Translate?appId=05DBC69E5594C137B9E22680F92F8E5E97BFAC7B&from="+langpair["ms"][sourceLang]+"&to="+langpair["ms"][targetLang]+"&text="+encodeURIComponent(sourceArr[i])+"&oncomplete=?",
		"bb":"http://translation.babylon.com/translate/babylon.php?v=1.0&q="+encodeURIComponent(sourceArr[i])+"&langpair="+langpair["bb"][sourceLang]+"|"+langpair["bb"][targetLang]+"&callback=?&context=babylon.0.10._babylon_api_response",
		"wl":"http://www.dict2009.com/include/qingyun.php?tool="+tool+"&q="+encodeURIComponent(sourceArr[i])+"&sl="+sourceLang+"&tl="+targetLang+"&callback=?",
		"hj":"http://www.dict2009.com/include/qingyun.php?tool="+tool+"&q="+encodeURIComponent(sourceArr[i])+"&sl="+sourceLang+"&tl="+targetLang+"&callback=?",
		"cb":"http://www.dict2009.com/include/qingyun.php?tool="+tool+"&q="+encodeURIComponent(sourceArr[i])+"&sl="+sourceLang+"&tl="+targetLang+"&callback=?"
		};		
		var src = Jsrc[tool];
		$.getJSON(src,function(result){
		result=result.responseData?result.responseData:result;
		result = result.translatedText?result.translatedText:result;	
			tStr +=result+'<br>';			
			if(tool=='gg') 
				$("#"+tool+">.mytext").html(tStr+"<br>在线翻译器 00cf.com");
			else 
				$("#"+tool+">.mytext").html(tStr);
			Rtranslation(tool,sourceArr,i+1,sourceLang,targetLang,tStr); 
			}
		);

	}
}


var webDictCallback=function(str){

    if(str==''){ 	
	$('#netdefine').remove("");$("#netcb").remove();
	return ;
	}
	if(!$('#netdefine').attr('id'))
	{
    $("#mode").append("<a href='#netdefine' id='netcb' class='restag'>网络释义</a>\r\n");
	obj = $("#result").append("<div id='netdefine'><p class='rows'>网络释义 <a href='#header'>返回顶部</a></p><div class=mytext></div></div>\r\n");
	}
	
    var obj= eval(str);

    var out='';


    for(i=0;i<obj.length;i++){

        out+= "<span><a href=http://www.uicms.net/plus/search/index.asp?keyword="+encodeURIComponent(obj[i].word)+">"+obj[i].word+"</a></span><ul>";

        if(typeof obj[i].detail !='undefined'){

            for(j=0;j<obj[i].detail.length;j++){

                out+= "<li>";

                out+= (sourceLang=='en'?obj[i].detail[j].cn:obj[i].detail[j].en)+"<p>"+obj[i].detail[j].abs+" <a href="+obj[i].detail[j].url+" target='_blank'>来源</a></p>";

                out+="</li>";

            }

            out+="</ul>";

        }

    }
    $("#netdefine>.mytext").html(out);

};
