var trans_finished = 0;
var trans_max = 0;
var trans_texts = new Array(0);
  
function split_strings(str, maxlen) {
	str = str.replace(/([a-z])\.([a-z])/gi, '$1. $2');
	var sen1 = str.split(". ");
	var sentences = new Array(0);
	for (var i = 0; i < sen1.length; i++) {
		var tmp1 = sen1[i].split("!");
		for (var j = 0; j < tmp1.length; j++) sentences.push(tmp1[j]);
	}
	var result = new Array(0);
	var tmp = "";
	for (var i = 0; i < sentences.length; i++) {
		if (sentences[i].length + tmp.length + 2 > maxlen) {
			result.push(tmp);
			tmp = sentences[i] + ". ";
		} else {
			tmp += sentences[i] + ". ";
		}
	}
	result.push(tmp);
	return result;
}
function addTranslatedText(i, trans_field, result) {
	if (!result) return;
	trans_texts[i] = result.translation;
	while (trans_finished < trans_max && trans_texts[trans_finished]) {
		$(trans_field).innerHTML += trans_texts[trans_finished];
		trans_finished++;
	}
}

function translate(field) {
	if (trans_finished < trans_max) return;
	var res = split_strings($(field).innerHTML, 500);
  	
	trans_max = res.length;
	trans_finished = 0;
	$(field+"_caller").setStyle({display: "none"});
	$(field).innerHTML = "<small><i>Translated by Google Translate...</i></small><br /><br />";
	for (var i = 0; i < res.length; i++) {
		google.language.translate(res[i], "", "en", addTranslatedText.curry(i, field));
	}
}

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