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

var nativeLanguage = 'en';
var tagText = new Array();
var tagBlackList = new Array("SCRIPT", "IMG", "INPUT");
var m = 0;

function searchArray(needle, haystack)
{
	var found = false;
	for (var i =0 ; i < haystack.length; i++){
		if (needle == haystack[i]){
			found = true;
			return found;
		}
	}
	return found;
}

jQuery(document).ready(function() {
	google.load("language", "1");
	var translateBox = "<div id='translating-box' style='text-align:center; background-color:#ffffff; color:#333; border:1px #3333ee solid; padding: 5px; margin-bottom:8px; width:208px; display:none; clear:all;'>"
	translateBox += "<div id='branding'></div><h3 style='text-align:center;'>Translating...</h3></div>"
	jQuery("#cartstart").before(translateBox);

	var destLanguage = jQuery("#select-language").html();
	var dest;
	for (lang in google.language.Languages) {
		langStr = lang;
		if (langStr.toLowerCase() == destLanguage.toLowerCase()) {dest = google.language.Languages[lang];}
	 }
	if (nativeLanguage != dest) {
		getPageText(jQuery("body"));
		google.language.getBranding('branding');
		jQuery("#translating-box").show("slow");
		for (var i = 0 ; i < tagText.length; i++ ) {
			value = jQuery(tagText[i]).html();
			if (value.length < 2000) {
				google.language.translate(value, nativeLanguage, dest, translationHandler.bind(this, i));
			} 
			else {
				m++;
			}
		}
	}
});

function getPageText(tag){
	if (jQuery(tag).children().length > 0) {
		jQuery(tag).children().each(function() {
			getPageText(this);
			if((jQuery(this)[0].nodeName == 'DIV') || ( jQuery(this)[0].nodeName == 'A')){
				tagText.push(jQuery(tag));
			}
		});
	}
	else {
		if (!(searchArray(jQuery(tag)[0].nodeName, tagBlackList))) 
		{
			tagText.push(jQuery(tag));
		}
	}
}

function translationHandler(i, result) {
	m++;
	var progress = Math.floor(m / tagText.length * 100);
	if (result.translation) {
		jQuery(tagText[i]).html(result.translation);
	}
	if ( progress > 85) {
		jQuery("#translating-box").hide("slow");
	}
	jQuery("#translating-box h3").text("Translating... "+ progress + "% done");
}


