﻿var crtX = 0;
var crtY = 0;
var crtLang = "";
var crtId = "";
var crtLoadingImg = "<img src=\"http://www.ihaoke.com/web/img/lightbox/loading.gif\" />";
var crtGoogleBranding = '<div style="color: rgb(103, 103, 103);" class="gBranding"><span style="vertical-align: middle; font-family: arial,sans-serif; font-size: 11px;" class="gBrandingText">powered by<img style="padding-left: 1px; vertical-align: middle;" src="http://www.google.com/uds/css/small-logo.png"></span></div>';
var crtPartWords = 200;
var crtOrgTxt = "";
var crtNextPartNum =0;
var crtTotalPartNum =0;

function initGtranslateBlock()
{
    var div = document.createElement("div");
    div.id="GtranslateBlock";
    div.style.position="absolute";
    div.style.display="none";
    div.style.background="white";
    div.style.color="black";
    div.style.border="3px black OUTSET";
    div.style.padding="2px";
    
    var select= document.createElement("select");
    select.id="langSelector";
    select.onchange=setLang;
    
    for(var key in google.language.Languages )
    {
        var val = google.language.Languages[key];
        select.options.add(new Option(key,val));
    }
     
    div.innerHTML = "Select Your Language&nbsp;==>&nbsp;";
    div.appendChild(select);
    
    //google branding
    //google.language.getBranding(div);
    var divGoogleBranding = document.createElement("div");
    divGoogleBranding.innerHTML = crtGoogleBranding;     
    div.appendChild(divGoogleBranding);
    
    document.body.appendChild(div);
    
    var divAnswer= document.createElement("div");
    divAnswer.id="GtranslateAnswerBlock";
    divAnswer.style.position="absolute";
    divAnswer.style.display="none";
    divAnswer.style.background="white";
    divAnswer.style.color="black";
    divAnswer.style.border="3px black OUTSET";
    divAnswer.style.padding="10px";
    divAnswer.style.width="32px";
    divAnswer.style.height="32px";
    divAnswer.innerHTML = crtLoadingImg;
    divAnswer.onclick=closeGtranslateAnswerBlock;
    
    document.body.appendChild(divAnswer);
}

function openGtranslateAnswerBlock()
{
    jQuery("#GtranslateAnswerBlock").css({"top":crtY,"left":crtX,"display":"block","width":"32px","height":"32px"});       
}
function closeGtranslateAnswerBlock()
{
    jQuery("#GtranslateAnswerBlock").html(crtLoadingImg);
    jQuery("#GtranslateAnswerBlock").css({"display":"none","width":"32px","height":"32px"});
}
function showAnswer(value)
{
    jQuery("#GtranslateAnswerBlock").css({"width":"auto","height":"auto"});   
    
    var answer = "";
    if (crtNextPartNum==0) answer=value;
    else answer = jQuery("#GtranslateAnswerBlock").html() + value;
    
    jQuery("#GtranslateAnswerBlock").html(answer);
}

function Gtranslate()
{
    if (jQuery("#" + crtId).length == 0 ) return false;
    openGtranslateAnswerBlock();
	
    crtOrgTxt = jQuery("#"+crtId).html();
    crtTotalPartNum = 0;
    crtNextPartNum =0;
    
	if (crtOrgTxt.length > crtPartWords ) 
		crtTotalPartNum = (crtOrgTxt.length - crtOrgTxt.length%crtPartWords)/crtPartWords; 
	
	DoGtranslate();
} 

function DoGtranslate()
{
    tmptxt = crtOrgTxt.substring(crtNextPartNum*crtPartWords,(crtNextPartNum+1)*crtPartWords-1);
	
    google.language.translate( tmptxt, "", crtLang, function(result) {
		if (!result.error) 
			showAnswer(result.translation);
		else
			showAnswer("Ha, I can't translate it!!");    

		if (crtNextPartNum==crtTotalPartNum)
		{
		    crtNextPartNum = 999;
		    showAnswer("<br />[close]");
		}
		else
		{
		    crtNextPartNum = crtNextPartNum + 1;
		    DoGtranslate();
		}
    });
}

function GtranslateInit(evt,id)
{
    if (id == null ) return false;
    if (id.length == 0 ) return false;
    crtId = id;
    crtX = evt.pageX ?evt.pageX:evt.clientX + document.documentElement.scrollLeft;
    crtY = evt.pageY ?evt.pageY:evt.clientY + document.documentElement.scrollTop;
    if(jQuery("#GtranslateBlock").length == 0 ) 
    {
        initGtranslateBlock();
    }
    
    if (crtLang == "" || crtLang == "zh-CN" || crtLang == "zh-TW") 
    {
        jQuery("#GtranslateBlock").css({"top":crtY,"left":crtX,"display":"block"});
        var tmpIdx = jQuery("#langSelector").get(0).selectedIndex;
        jQuery("#langSelector").get(0).selectedIndex = (tmpIdx >= 3)?tmpIdx-3:-1;
    }                    
    else  Gtranslate();
}

function GtranslateInit2(evt,id,lang)
{
    if (id == null ) return false;
    if (id.length == 0 ) return false;
    if (lang == null ) return false;
    if (lang.length == 0 ) return false;
    crtId = id;
    crtX = evt.pageX ?evt.pageX:evt.clientX + document.documentElement.scrollLeft;
    crtY = evt.pageY ?evt.pageY:evt.clientY + document.documentElement.scrollTop;
    crtLang = lang;
    if(jQuery("#GtranslateBlock").length == 0 ) 
    {
        initGtranslateBlock();
    }
    Gtranslate();
}

function setLang()
{
    if (jQuery("#langSelector").length <= 0 )return false;
    var selectObj = jQuery("#langSelector")[0];
    if (selectObj.selectedIndex > -1 )
    {
        crtLang = selectObj.options[selectObj.selectedIndex].value;
        jQuery("#GtranslateBlock").css("display","none");
        Gtranslate();
    }
}